CN114546296B - 一种基于zns固态硬盘的全闪存系统和地址映射方法 - Google Patents

一种基于zns固态硬盘的全闪存系统和地址映射方法 Download PDF

Info

Publication number
CN114546296B
CN114546296B CN202210437284.5A CN202210437284A CN114546296B CN 114546296 B CN114546296 B CN 114546296B CN 202210437284 A CN202210437284 A CN 202210437284A CN 114546296 B CN114546296 B CN 114546296B
Authority
CN
China
Prior art keywords
flash memory
memory system
full flash
address
solid state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210437284.5A
Other languages
English (en)
Other versions
CN114546296A (zh
Inventor
刘烈超
刘兴斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Lugu Technology Co ltd
Original Assignee
Wuhan Lugu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Lugu Technology Co ltd filed Critical Wuhan Lugu Technology Co ltd
Priority to CN202210437284.5A priority Critical patent/CN114546296B/zh
Publication of CN114546296A publication Critical patent/CN114546296A/zh
Application granted granted Critical
Publication of CN114546296B publication Critical patent/CN114546296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects

Abstract

本发明提供了一种基于ZNS固态硬盘的全闪存系统和地址映射方法,系统包括:至少一个ZNS固态硬盘,至少一个ZNS固态硬盘的物理存储空间包括映射区和数据区;其中,所述映射区用于存储对象FTL映射表;对象FTL映射表包括用于建立目标对象到对应物理地址之间的映射关系;目标对象包括任一构建在所述全闪存系统之上的存储系统操作单元;所述数据区被虚拟化为连续的存储地址空间并用于存储数据。本发明实施例提供的基于ZNS固态硬盘的全闪存系统和地址映射方法,能消除SSD内部、全闪存系统内部和应用本身造成的多重写放大问题,基于对象的映射方式可以适应不同负载混合的复杂场景,同时简化整个存储系统设计。

Description

一种基于ZNS固态硬盘的全闪存系统和地址映射方法
技术领域
本发明涉及ZNS固态硬盘领域,特别涉及一种基于ZNS固态硬盘的全闪存系统和地址映射方法。
背景技术
大数据时代,传统机械硬盘由于机械结构的问题,性能已无法满足企业级存储需求,而以半导体闪存芯片为存储介质的固态硬盘给存储系统带来了革命性的进步,成为传统磁盘的替代品。而随着企业级存储系统本身对数据容量和吞吐率的要求越来越高,单个固态硬盘也日益无法满足当前企业级存储系统的需求,全闪存存储技术特别是基于磁盘阵列技术发展而来的全闪存阵列技术,以一个或多个固态硬盘,提供大容量、高性能、高并发、高可靠性的高性能全闪存存储系统。以全闪存阵列为例,采用的RAID技术基于机械硬盘,并没有考虑固态硬盘的特性,RAID条带随机写后造成的垃圾回收问题,会引入额外的写放大,同时SSD内部由于异位更新,也会引起写放大,无法完全发挥全闪存系统的性能优势。另外,传统块设备接口以逻辑块或者扇区为单位读写,企业级SSD内部FTL映射一般基于闪存页为单位,这种访问粒度上的差异也会造成性能损失甚至加重固态硬盘磨损,而上层存储应用逻辑有自己的分配、回收算法和读写单位,同样会造成性能损失。
传统固态硬盘屏蔽了闪存的访问特性,因此,基于开放闪存操作接口的ZNS固态硬盘被认为是未来发展趋势。在软件定义存储系统中,如何发挥出ZNS固态硬盘的特性,结合应用场景,设计一种新的映射算法,优化整体存储系统性能,是大数据时代全闪存系统要解决的技术问题。
发明内容
有鉴于此,本发明实施例的目的在于提供一种基于ZNS固态硬盘的全闪存系统和地址映射方法,具体包括:
第一方面,本发明实施例提供了一种基于ZNS固态硬盘的全闪存系统,所述全闪存系统包括:
至少一个ZNS固态硬盘,所述至少一个ZNS固态硬盘的物理存储空间包括映射区和数据区;
其中,所述映射区用于存储对象FTL映射表;所述对象FTL映射表包括目标对象的对象ID字段、物理地址字段、大小字段,用于建立目标对象到对应物理地址之间的映射关系;所述目标对象包括任一构建在所述全闪存系统之上的存储系统操作单元,并通过所述对象FTL映射表实现分配、释放、管理或读写操作;所述数据区被虚拟化为连续的存储地址空间并用于存储数据;
所述全闪存系统还包括前端接口模块,用于接收来自应用程序的命令,并与应用程序之间进行数据交换;以及对象FTL映射层,用于将所述命令对应的目标对象映射至所述目标对象对应的对象FTL映射表。
可选地,所述将所述命令对应的目标对象映射至所述目标对象对应的对象FTL映射表,具体包括:
当所述全闪存系统运行时,将所有对象FTL映射表进行缓存;
根据所述目标对象对应的对象ID字段进行Hash运算的结果,得到所述目标对象对应的对象FTL映射表在缓存中的索引地址;
根据所述索引地址定位到目标对象对应的对象FTL映射表。
可选地,所述数据区中目标对象对应的存储数据被存储在多个内部连续的物理分区,所述物理分区内的存储数据是根据目标对象请求的写入顺序依次存放的;
所述多个内部连续的物理分区的最后一部分分区空间用于存储对应的元数据,所述元数据包含了每个内部连续的物理分区的属性。
可选地,所述对象ID字段由构建在所述全闪存系统之上的存储系统统一分配。
可选地,所述对象ID字段由所述全闪存系统根据数据摘要生成。
可选地,所述对象ID为逻辑地址LBA。
可选地,所述数据区被虚拟化为连续的存储地址空间,具体包括:
根据RAID0、RAID1或RAID5算法将所述至少一个ZNS固态硬盘的数据区虚拟化为连续的存储地址空间。
第二方面,本发明实施例提供了一种基于ZNS固态硬盘的地址映射方法,应用于第一方面所述的全闪存系统,所述方法包括:
由前端接口模块接收来自应用程序的命令;
若所述命令为来自应用程序的读请求,在缓存中查询所述目标对象对应的对象FTL映射表;
通过所述目标对象对应的对象FTL映射表获取对应的物理地址;
向所述全闪存系统中的ZNS固态硬盘数据区发起读请求,并将读取到的数据由前端接口模块返回应用程序。
第三方面,本发明实施例提供了一种基于ZNS固态硬盘的地址映射方法,应用于第一方面所述的全闪存系统,所述方法包括:
由前端接口模块接收来自应用程序的命令;
若所述命令为来自应用程序的写请求,接收待写入数据到缓存;
在全闪存系统中的ZNS固态硬盘数据区中,为缓存中的所述待写入数据分配物理地址;
更新缓存中的对象FTL映射表,使其指向分配的物理地址。
可选地,所述方法还包括:
定期将缓存中的对象FTL映射表写入全闪存系统中的ZNS固态硬盘映射区中。
本发明实施例提供的基于ZNS固态硬盘的全闪存系统和地址映射方法,利用ZNS固态硬盘开放闪存操作的特点,面向软件定义的全闪存系统,消除了FTL对闪存操作方式的屏蔽,同时保留固态硬盘对闪存介质的管理功能,使得上层存储层不用处理闪存的失效管理,同时又开放闪存基本操作供上层存储系统结合应用场景优化。针对异构复杂的多应用场景,设计一种基于对象FTL的地址映射算法,将文件系统分配单元、数据库操作单元、块设备操作单元等所有构建在该全闪存系统之上的存储系统操作单元统一视为对象Object,对象的分配、释放、管理和读写等都通过Object-FTL完成,通过这种统一的Object-FTL,消除存储应用、全闪存系统和SSD内部的多重写放大,提供可自适应不同应用负载的对象存储功能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳务的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了根据本发明实施例提供的全闪存系统的结构示意图。
图2示出了根据本发明实施例提供的对象FTL映射表布局示意图。
图3示出了根据本发明实施例提供的全闪存系统中对象FTL映射表的映射方法的流程示意图。
图4示出了根据本发明实施例提供的物理分区的数据布局示意图。
图5示出了根据本发明实施例提供的读请求过程中的地址映射方法流程示意图。
图6示出了根据本发明实施例提供的写请求过程中的地址映射方法流程示意图。
图7示出了根据本发明实施例提供的读写请求过程中的地址映射方法流程示意图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
大数据时代,传统机械硬盘由于机械结构的问题,性能已无法满足企业级存储需求,而以半导体闪存芯片为存储介质的固态硬盘给存储系统带来了革命性的进步,成为传统磁盘的替代品。而随着企业级存储系统本身对数据容量和吞吐率的要求越来越高,单个固态硬盘也日益无法满足当前企业级存储系统的需求,全闪存存储技术特别是基于磁盘阵列技术发展而来的全闪存阵列技术,以一个或多个固态硬盘,提供大容量、高性能、高并发、高可靠性的高性能全闪存存储系统。以全闪存阵列为例,采用的RAID技术基于机械硬盘,并没有考虑固态硬盘的特性,RAID条带随机写后造成的垃圾回收问题,会引入额外的写放大,同时SSD内部由于异位更新,也会引起写放大,无法完全发挥全闪存系统的性能优势。另外,传统块设备接口以逻辑块或者扇区为单位读写,企业级SSD内部FTL映射一般基于闪存页为单位,这种访问粒度上的差异也会造成性能损失甚至加重固态硬盘磨损,而上层存储应用逻辑有自己的分配、回收算法和读写单位,同样会造成性能损失。
因此,基于开放闪存操作接口的ZNS固态硬盘被认为是未来发展趋势。在软件定义存储系统中,如何发挥出ZNS固态硬盘的特性,结合应用场景,设计一种新的映射算法,优化整体存储系统性能,是大数据时代全闪存系统要解决的技术问题。
有鉴于此,本公开实施例的目的在于提供一种基于ZNS固态硬盘的全闪存系统和地址映射方法,以下结合附图详细描述本发明实施例公开的内容。
图1示出了本发明实施例提供的全闪存系统的结构示意图,具体内容如下:
所述全闪存系统包括:
至少一个ZNS固态硬盘,所述至少一个ZNS固态硬盘的物理存储空间包括映射区和数据区;
其中,所述映射区用于存储对象FTL映射表;所述对象FTL映射表包括目标对象的对象ID字段、物理地址字段、大小字段,用于建立目标对象到对应物理地址之间的映射关系;所述目标对象包括任一构建在所述全闪存系统之上的存储系统操作单元,并通过所述对象FTL映射表实现分配、释放、管理或读写操作;所述数据区被虚拟化为连续的存储地址空间并用于存储数据;
所述全闪存系统还包括前端接口模块,用于接收来自应用程序的命令,并与应用程序之间进行数据交换;以及对象FTL映射层,用于将所述命令对应的目标对象映射至所述目标对象对应的对象FTL映射表。
ZNS固态硬盘(ZNS SSD)即分区命名空间固态硬盘,ZNS 是从 OC(Open Channel,开放通道)SSD基础上发展而来的,实现了把FTL(Flash Translation Layer,闪存转换层)从SSD内部迁移到上层的Host端,把SSD内部开放给了Host端,这样用户可以根据自己需要,比较灵活的拥有自己特定的FTL。
本发明实施例提供一种基于ZNS固态硬盘的全闪存系统,采用ZNS固态硬盘,消除FTL对闪存操作方式的屏蔽,同时保留固态硬盘对闪存介质的管理功能,使得上层存储层不用处理闪存的失效管理,同时又开放闪存基本操作供上层存储系统结合应用场景优化。
针对异构复杂的多应用场景,本发明实施例提供的基于ZNS固态硬盘的全闪存系统,采用了对象FTL映射的思想,将文件系统分配单元、数据库操作单元、块设备操作单元等所有构建在该全闪存系统之上的存储系统操作单元统一视为对象Object,对象的分配、释放、管理和读写等都通过对象FTL实现地址映射,通过这种统一的对象FTL映射,消除存储应用、全闪存系统和SSD内部的多重写放大,提供可自适应不同应用负载的对象存储功能,有别于传统系统中块设备接口以逻辑块或者扇区为单位读写,企业级SSD内部FTL映射一般基于闪存页为单位,避免了访问粒度上的差异造成的性能损失甚至加重固态硬盘磨损,同时避免了上层存储应用程序逻辑有自己的分配、回收算法和读写单位所导致的性能损失。
具体而言,全闪存系统的地址映射过程是先通过前端接口模块接收来自应用程序的命令后,使用对象FTL映射层将所述命令对应的目标对象映射至所述目标对象对应的对象FTL映射表中。对象FTL映射表通过至少一个ZNS固态硬盘的物理存储空间的映射区进行存储和管理,并在全闪存系统启动后加载到缓存中以便加快调用过程。
对象FTL映射过程以对象为基本管理单位,每个对象包含一个唯一标识,即对象ID,该对象ID可由构建在该全闪存系统之上的存储系统统一分配,也可以由全闪存系统内部其他模块根据数据摘要生成,在一种特定应用环境下,对象ID也可以是逻辑地址LBA,对象FTL以对象为基本映射单位,每个对象对应一个对象FTL映射表,由Hash算法得到对象对应的对象FTL映射表地址,该对象FTL映射表包含对象所在ZNS固态硬盘的存储地址,对象本身支持可变大小,能适配不同应用负载,并且方便结合硬件加速之后数据的存取。
在本发明实施例提供的全闪存系统内,将存储应用的访问操作转换为ZNS SSD的访问操作,物理存储设备基于一个或多个ZNS SSD,当存在多个ZNS SSD时,组织成ZNS SSD阵列的方式,可支持RAID0/RAID1/RAID5等算法设计数据布局,将物理存储空间虚拟化成一个连续的存储空间,该连续存储空间又分为映射区和数据区,映射区用来存储对象FTL映射表,加速系统上电重建,数据区用于存储实际应用数据。
附图2示出了对象FTL映射表布局示意图,本发明实施例中的对象FTL映射表采用全局缓存映射表的方式,运行时将全部对象FTL映射表缓存起来,每个映射表项大小固定,由对象ID字段OBJ_ID、物理地址字段ZNS_LBA、对象大小字段Size组成,目标对象对应的对象FTL映射表在附图2表项中的地址和目标对象的对应关系由Hash索引算法可以通过Hash函数算出。
通过该对应关系计算出对应的对象FTL映射表项后,可以进一步确定对象所在ZNS固态硬盘的存储地址,由于对象本身支持可变大小,能适配不同应用负载,并且方便结合硬件加速之后数据的存取,同时也避免了传统SSD内部和全闪存系统内部造成的多重写放大问题。
本发明实施例提供的基于ZNS固态硬盘的全闪存系统,针对多应用负载情况,能消除SSD内部、全闪存系统内部和应用本身造成的多重写放大问题,基于对象的映射方式可以适应不同负载混合的复杂场景,同时简化整个存储系统设计,适合于含有硬件加速装置的软件定义存储系统。
基于上述实施例,附图3示出了本发明实施例提供的全闪存系统中对象FTL映射表的映射方法,具体包括如下内容。
S110,当所述全闪存系统运行时,将所有对象FTL映射表进行缓存;
S120,根据所述目标对象对应的对象ID字段进行Hash运算的结果,得到所述目标对象对应的对象FTL映射表在缓存中的索引地址;
S130,根据所述索引地址定位到目标对象对应的对象FTL映射表。
本发明实施例通过对象FTL映射表的方式实现全闪存系统的地址映射。然而为了提高对象FTL映射表的访问效率,通常在全闪存系统运行时,首先需要将所有对象FTL映射表进行缓存,以供后续在访问对象FTL映射表时直接在缓存中进行访问。
接收来自应用程序的命令后,确定如文件系统分配单元、数据库操作单元、块设备操作单元等对象的分配、释放、管理和读写操作,即可以确定目标对象对应的对象ID,在进行Hash运算后即可得到所述目标对象对应的对象FTL映射表在缓存中的索引地址,进而在如附图2所示的对象FTL映射表中查找出目标对象对应的对象FTL映射表项。
具体地,查找目标对象对应的对象FTL映射表在缓存中的索引地址时,首先根据对象ID进行Hash运算得到该Object在缓存映射表中的索引地址,然后根据索引地址定位到缓存映射表项,获取该表项得到Object数据在ZNS固态硬盘中的存储地址ZNS_LBA。
本发明实施例中对象FTL映射表以对象为基本管理单位,每个对象包含一个唯一标识对象ID,该对象ID可由构建在该全闪存系统之上的存储系统统一分配,也可以由全闪存系统内部其他模块根据数据摘要生成,在一种特定应用环境下,对象ID也可以是逻辑地址LBA,Object-FTL以对象为基本映射单位,每个对象对应一个映射表项,由Hash算法得到Object对应的映射表项地址,该映射表项包含对象所在ZNS固态硬盘的存储地址,对象本身支持可变大小,能适配不同应用负载,并且方便结合硬件加速之后数据的存取。
在上述任一实施例的基础上,附图4示出了本发明实施例提供的物理分区的数据布局示意图。
如附图4所示,整个连续的数据区物理地址空间根据ZNS固态硬盘的特性分为多个内部连续的物理分区,物理分区内数据根据请求的写入顺序依次存放,不同对象的数据可以经过相应的加速器处理后连续存放在ZNS固态硬盘中,在一个物理分区的最后,存储对应的元数据,该元数据包含了所属物理分区数据的属性,用来确定当前数据是否有效,供垃圾回收使用。示例性地,元数据中包含的所属物理分区数据的属性可设计为对象ID集合的形式。物理分区中的数据被写入或更新时,同时元数据中包含的所属物理分区数据的对象ID集合,也会相应的更新。此时元数据可以指示系统存储空间回收机制回收失效的存储数据占用的物理存储空间。
基于上述任一实施例,附图5-6示出了基于本发明实施例提供的全闪存系统,在典型的读写请求过程中的地址映射方法的流程示意图。
如附图5所示,在全闪存系统收到读请求时,本发明实施例提供的地址映射方法具体包括如下内容。
S210,由前端接口模块接收来自应用程序的命令;
S220,若所述命令为来自应用程序的读请求,在缓存中查询所述目标对象对应的对象FTL映射表;
S230,通过所述目标对象对应的对象FTL映射表获取对应的物理地址;
S240,向所述全闪存系统中的ZNS固态硬盘数据区发起读请求,并将读取到的数据由前端接口模块返回应用程序。
如附图6所示,在全闪存系统收到写请求时,本发明实施例提供的地址映射方法具体包括如下内容。
S310,由前端接口模块接收来自应用程序的命令;
S320,若所述命令为来自应用程序的写请求,接收待写入数据到缓存;
S330,在全闪存系统中的ZNS固态硬盘数据区中,为缓存中的所述待写入数据分配物理地址;
S340,更新缓存中的对象FTL映射表,使其指向分配的物理地址。
附图7还示出了基于本发明实施例提供的全闪存系统,在面对典型的来自应用程序的读写请求时的地址映射方法的流程示意图,以下将对本发明实施例提供的地址映射方法进行说明。
首先,接收来自应用程序的命令的操作是由全闪存系统中的前段接口模块实现的。同时,前段接口模块还负责实现与应用程序之间进行数据交换。例如在处理读请求时,前段接口模块还负责将读取到的数据返回给应用程序。
在接收到来自应用程序的访问请求时,全闪存系统会判断该请求的类型。无论是读请求还是写请求,后续的地址映射方式都是基于对象FTL映射表进行地址映射。
若所述命令为来自应用程序的读请求,由于全闪存系统在运行时所有对象FTL映射表已经进行缓存操作,因此,可以在缓存中查询所述读请求相关的目标对象对应的对象FTL映射表。具体地,可以根据所述目标对象对应的对象ID字段进行Hash运算的结果,得到所述目标对象对应的对象FTL映射表在缓存中的索引地址,再根据所述索引地址定位到目标对象对应的对象FTL映射表,进而通过所述目标对象对应的对象FTL映射表获取对应的物理地址。最后,就可以通过向所述全闪存系统中的ZNS固态硬盘数据区发起读请求实现整个地址映射过程。
若所述命令为来自应用程序的写请求,前段接口模块可以首先接收待写入数据到缓存中。然后需要在全闪存系统中的ZNS固态硬盘数据区中为缓存中的所述待写入数据分配物理地址,根据该物理地址进行实际数据的写操作即可。在数据区中分配好写入的物理地址后,可以将该信息更新至对象FTL映射表,实现对象FTL映射表的实时维护。具体地,由于全闪存系统在运行时所有对象FTL映射表已经进行缓存操作,可以在缓存中更新缓存中的对象FTL映射表,使其指向分配的物理地址。
此外,由于全闪存系统不断地会对缓存中的对象FTL映射表进行了更新,因此,需要定期将缓存中的对象FTL映射表写入全闪存系统中的ZNS固态硬盘映射区中,以便加速全闪存系统的上电重建过程。
本发明实施例提供的地址映射方法,针对多应用负载情况,能消除SSD内部、全闪存系统内部和应用本身造成的多重写放大问题,基于对象的映射方式可以适应不同负载混合的复杂场景,同时简化整个存储系统设计,适合于含有硬件加速装置的软件定义存储系统。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于ZNS固态硬盘的全闪存系统,其特征在于,所述全闪存系统包括:
至少一个ZNS固态硬盘,所述至少一个ZNS固态硬盘的物理存储空间包括映射区和数据区;
其中,所述映射区用于存储对象FTL映射表;所述对象FTL映射表包括目标对象的对象ID字段、物理地址字段、大小字段,用于建立目标对象到对应物理地址之间的映射关系;所述目标对象包括任一构建在所述全闪存系统之上的存储系统操作单元,并通过所述对象FTL映射表实现分配、释放、管理或读写操作;所述数据区被虚拟化为连续的存储地址空间并用于存储数据;
所述全闪存系统还包括前端接口模块,用于接收来自应用程序的命令,并与应用程序之间进行数据交换;以及对象FTL映射层,用于将所述命令对应的目标对象映射至所述目标对象对应的对象FTL映射表。
2.根据权利要求1所述的全闪存系统,其特征在于,所述将所述命令对应的目标对象映射至所述目标对象对应的对象FTL映射表,具体包括:
当所述全闪存系统运行时,将所有对象FTL映射表进行缓存;
根据所述目标对象对应的对象ID字段进行Hash运算的结果,得到所述目标对象对应的对象FTL映射表在缓存中的索引地址;
根据所述索引地址定位到目标对象对应的对象FTL映射表。
3.根据权利要求1所述的全闪存系统,其特征在于,所述数据区中目标对象对应的存储数据被存储在多个内部连续的物理分区,所述物理分区内的存储数据是根据目标对象请求的写入顺序依次存放的;
所述多个内部连续的物理分区的最后一部分分区空间用于存储对应的元数据,所述元数据包含了每个内部连续的物理分区的属性。
4.根据权利要求1所述的全闪存系统,其特征在于,所述对象ID字段由构建在所述全闪存系统之上的存储系统统一分配。
5.根据权利要求1所述的全闪存系统,其特征在于,所述对象ID字段由所述全闪存系统根据数据摘要生成。
6.根据权利要求1所述的全闪存系统,其特征在于,所述对象ID为逻辑地址LBA。
7.根据权利要求1所述的全闪存系统,其特征在于,所述数据区被虚拟化为连续的存储地址空间,具体包括:
根据RAID0、RAID1或RAID5算法将所述至少一个ZNS固态硬盘的数据区虚拟化为连续的存储地址空间。
8.一种基于ZNS固态硬盘的地址映射方法,应用于权利要求1-7任一项所述的全闪存系统,其特征在于,所述方法包括:
由前端接口模块接收来自应用程序的命令;
若所述命令为来自应用程序的读请求,在缓存中查询所述目标对象对应的对象FTL映射表;
通过所述目标对象对应的对象FTL映射表获取对应的物理地址;
向所述全闪存系统中的ZNS固态硬盘数据区发起读请求,并将读取到的数据由前端接口模块返回应用程序。
9.一种基于ZNS固态硬盘的地址映射方法,应用于权利要求1-7任一项所述的全闪存系统,其特征在于,所述方法包括:
由前端接口模块接收来自应用程序的命令;
若所述命令为来自应用程序的写请求,接收待写入数据到缓存;
在全闪存系统中的ZNS固态硬盘数据区中,为缓存中的所述待写入数据分配物理地址;
更新缓存中的对象FTL映射表,使其指向分配的物理地址。
10.根据权利要求9所述的地址映射方法,其特征在于,所述方法还包括:
定期将缓存中的对象FTL映射表写入全闪存系统中的ZNS固态硬盘映射区中。
CN202210437284.5A 2022-04-25 2022-04-25 一种基于zns固态硬盘的全闪存系统和地址映射方法 Active CN114546296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210437284.5A CN114546296B (zh) 2022-04-25 2022-04-25 一种基于zns固态硬盘的全闪存系统和地址映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210437284.5A CN114546296B (zh) 2022-04-25 2022-04-25 一种基于zns固态硬盘的全闪存系统和地址映射方法

Publications (2)

Publication Number Publication Date
CN114546296A CN114546296A (zh) 2022-05-27
CN114546296B true CN114546296B (zh) 2022-07-01

Family

ID=81666968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210437284.5A Active CN114546296B (zh) 2022-04-25 2022-04-25 一种基于zns固态硬盘的全闪存系统和地址映射方法

Country Status (1)

Country Link
CN (1) CN114546296B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115686372B (zh) * 2022-11-07 2023-07-25 武汉麓谷科技有限公司 一种基于zns固态硬盘zrwa功能的数据管理的方法
CN115543224B (zh) * 2022-11-30 2023-03-24 苏州浪潮智能科技有限公司 基于zns ssd的文件系统控制方法、装置及设备
CN117149085B (zh) * 2023-09-07 2024-03-15 武汉麓谷科技有限公司 一种基于zns固态硬盘的快速寻址方法
CN117453152B (zh) * 2023-12-25 2024-04-02 武汉麓谷科技有限公司 一种ZNS固态硬盘Zone LBA管理方法以及区块管理命令的算法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063377A (zh) * 2009-11-16 2011-05-18 联发科技股份有限公司 存储介质的数据存取管理方法及存储控制器
CN104461387A (zh) * 2014-12-02 2015-03-25 记忆科技(深圳)有限公司 一种提高固态硬盘对未映射区域的读性能的方法
CN105243025A (zh) * 2015-09-25 2016-01-13 联想(北京)有限公司 一种映射表的形成及加载方法、电子设备
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
CN109582593A (zh) * 2018-11-05 2019-04-05 华侨大学 一种基于计算的ftl地址映射方法及数据读、写方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6130971B2 (ja) * 2014-06-27 2017-05-17 華為技術有限公司Huawei Technologies Co.,Ltd. データをフラッシュメモリ装置に書き込む方法、フラッシュメモリ装置及び記憶システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063377A (zh) * 2009-11-16 2011-05-18 联发科技股份有限公司 存储介质的数据存取管理方法及存储控制器
CN104461387A (zh) * 2014-12-02 2015-03-25 记忆科技(深圳)有限公司 一种提高固态硬盘对未映射区域的读性能的方法
CN105243025A (zh) * 2015-09-25 2016-01-13 联想(北京)有限公司 一种映射表的形成及加载方法、电子设备
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
CN109582593A (zh) * 2018-11-05 2019-04-05 华侨大学 一种基于计算的ftl地址映射方法及数据读、写方法

Also Published As

Publication number Publication date
CN114546296A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
CN114546296B (zh) 一种基于zns固态硬盘的全闪存系统和地址映射方法
JP7046669B2 (ja) 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション
US11687446B2 (en) Namespace change propagation in non-volatile memory devices
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US10922235B2 (en) Method and system for address table eviction management
CN105930282B (zh) 一种用于nand flash的数据缓存方法
US9436597B1 (en) Using non-volatile memory resources to enable a virtual buffer pool for a database application
US8966155B1 (en) System and method for implementing a high performance data storage system
US10740251B2 (en) Hybrid drive translation layer
US20110246742A1 (en) Memory pooling in segmented memory architecture
CN109446117B (zh) 一种固态硬盘页级闪存转换层设计方法
US20190087323A1 (en) Memory system and method for controlling nonvolatile memory
JPWO2017149592A1 (ja) ストレージ装置
US9727247B2 (en) Storage device and method, and storage medium
US8566534B1 (en) Low overhead space management for large caches
CN110968269A (zh) 基于scm与ssd的键值存储系统及读写请求处理方法
US11630779B2 (en) Hybrid storage device with three-level memory mapping
CN113835639B (zh) 一种i/o请求处理方法、装置、设备及可读存储介质
CN114676072A (zh) 数据处理方法以及装置
CN114356246B (zh) Ssd内部数据的存储管理方法、装置、存储介质及ssd设备
CN115964350A (zh) 一种文件系统管理模型及系统
CN115407933A (zh) 基于非易失内存的文件元数据存储方法与系统
US20220229777A1 (en) Data storage system with multiple-size object allocator for disk cache
CN113535392A (zh) 基于cma实现支持大内存连续分配的内存管理方法及系统
US11507318B2 (en) Storage device, for allocating physical space for logical address before receiving write request, operating method thereof, and storage system including the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant