CN117950590A - 一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法 - Google Patents
一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法 Download PDFInfo
- Publication number
- CN117950590A CN117950590A CN202410065082.1A CN202410065082A CN117950590A CN 117950590 A CN117950590 A CN 117950590A CN 202410065082 A CN202410065082 A CN 202410065082A CN 117950590 A CN117950590 A CN 117950590A
- Authority
- CN
- China
- Prior art keywords
- partition
- data
- reset
- zenfs
- zone
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000005192 partition Methods 0.000 claims abstract description 105
- 238000003860 storage Methods 0.000 claims abstract description 14
- 238000013500 data storage Methods 0.000 claims abstract description 6
- 238000013403 standard screening design Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000013486 operation strategy Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种优化ZenFS中的重置操作以延长ZNS‑SSD使用寿命的方法,它包括以下步骤:1、记录分区信息以及重构信息。在主机端记录分区的数据存储情况,设备端记录分区的重构信息;2、鉴别ZenFS发出的重置命令。鉴别出针对不是满状态且写指针前存储的都是无效数据的分区的重置命令;3、重构分区。对于不是满状态且写指针前存储的数据都是无效数据的分区,在执行重置操作前,先在设备端对分区进行重构;4、执行重置操作。经过重构后的分区,包含的数据都是无效数据,再对该分区执行重置操作,释放出存储空间;5、访问。访问分区时先查询重构信息表,根据重构信息完成读、写、重置操作;此外,本发明具有成本低、易实施等优势,同时具有良好的可扩展性、实用性。
Description
技术领域
本发明涉及计算机存储技术领域,特别是涉及一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法。
背景技术
由于传统的块接口的局限性,ZNS应运而生,成为新一代的基于闪存的SSD接口标准。ZNS-SSD将逻辑块划分为大小固定的分区,在分区内部,逻辑块可以被随机顺序读取,但必须顺序写入,保证了数据的聚集性。此外,ZNS-SSD将分区和物理媒体边界对齐,并将数据管理的责任转移到主机上,避免了设备内垃圾回收的需要以及容量超配的需要。
基于LSM-tree的键值存储的RocksDB通过追加实现了顺序写,完美契合了ZNS-SSD的存储特性。ZenFS实现了一个用户级的文件系统,介于RocksDB与ZSN-SSD之间,作为RocksDB的存储后端来管理由RocksDB下发的键值数据。同时,ZenFS与Lunix系统合作,将数据存储在闪存芯片上。ZenFS采用LSM–tree aware区域分配策略,通过将具有相同生存期的数据写入同一区域来最小化ZNS-SSD内部的写放大问题。
当SSD剩余存储空间过少时,ZenFS会进行区域清理,释放存储空间以存储新的数据。ZenFS的区域清理会阻塞I/O请求,降低性能,因此ZenFS采用运行时区域重置的机制,在运行期间,对于不是满状态且写指针前存储的数据都是无效数据的分区,ZenFS发出重置命令,将该分区重置。这种运行时区域重置的机制在释放空间的同时不需要进行有效数据的迁移,进一步最小化了ZNS-SSD内部的写放大问题,且能够减少区域清理的调用频率,提高了存储性能。然而,当前ZenFS采用的运行时区域重置机制使用了一种贪婪的方法,如果区域的写指针之前的所有数据都是无效的,则重置一个区域,而不管写指针的位置,那么写指针之后剩余的可写入数据的区域也会被重置,这种贪婪的方法会由于过度的区域重置而缩短存储设备的寿命。
发明内容
针对现有技术难以解决以上问题,本发明提供了一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法。通过优化ZenFS中采用的运行时区域重置机制,对于不是满状态且写指针前存储的数据都是无效数据的分区,在重置前,先将写指针之后剩余的可写入数据的区域重映射到另一个分区中的无效数据占据的区域所映射的闪存块中,保证重置的分区存储的都是无效数据,从而减少了不必要的擦除,延长了存储设备的寿命。
本发明所采用的技术包含以下步骤:
步骤1、记录分区信息以及重构信息。在主机端记录分区的数据存储情况,包括分区的有效数据、无效数据的起始地址和结束地址,以及分区包含的无效数据的数量。当分区写入新的有效数据或者分区中的有效数据被置为无效数据时,则更新分区信息表。在设备端记录分区的重构信息;
步骤2、鉴别ZenFS发出的重置命令。运行时,ZenFS会在以下两种情况下对分区发出重置命令:①分区为满状态且分区里面存储的数据都是无效数据;②分区不是满状态且分区的写指针前存储的数据都是无效数据。针对第②种情况,在执行重置前,在设备端先对分区进行重构,然后再执行重置操作;
步骤3、重构分区。对于不是满状态且写指针前存储的数据都是无效数据的分区(Current Zone),在重置前,先进行重构。在主机端,首先确定Current Zone剩余的可写入数据的区域容量,然后从分区信息表中查找出与Current Zone匹配的分区(Match Zone),匹配的规则是:Match Zone中的无效数据占据的区域容量要大于Current Zone剩余的可写入数据的区域容量,并将Current Zone和Match Zone的信息从主机端传入到设备端。在设备端,根据传入的信息重构Current Zone和Match Zone,重构的规则是:将Current Zone剩余的可写入数据的区域重映射到Match Zone中的无效数据占据的区域所映射的闪存块中,同时将Match Zone中的无效数据占据的区域重映射到Current Zone剩余的可写入数据的区域所映射的闪存块中,并将重构信息记录在重构信息表中;
步骤4、执行重置操作。经过重构后的Current Zone,包含的数据都是无效数据,再执行重置操作,释放出存储空间;
步骤5、访问。访问分区时先查询重构信息表,根据查找到重构信息完成读、写、重置操作。
本发明的有益效果在于针对ZenFS中采用的运行时区域重置机制,对于不是满状态且写指针前存储的数据都是无效数据的分区,在重置前,先将写指针之后剩余的可写入数据的区域重映射到另一个分区中的无效数据占据的区域所映射的闪存块中,保证重置的分区存储的都是无效数据,从而减少了不必要的擦除,延长了存储设备的寿命。本发明具有成本低、易实施等优势,同时具有良好的可扩展性、实用性。
附图说明
本发明的附图说明如下;
图1为本发明的整体架构图与实施原理图;
图2为ZNS-SSD中分区和闪存芯片的映射关系示意图;
图3为ZNS-SSD中重构后分区和闪存芯片的映射关系示意图;
图4为分区在重构后执行重置操作示意图;
图5为本发明的优化ZenFS中的重置操作策略流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明的整体架构图与实施原理图。ZenFS文件系统将RocksDB传下来的SST文件组织成Extent文件存储进分区(zone)中。写指针(Write Pointer,WP)指定了分区的可写入数据的起始地址。ZenFS会对两种情况下的分区发出重置(reset)命令,包括:①分区为满状态,即写指针指向分区的末尾,且分区中的数据都是无效数据,如图中的zone 2;②分区不是满状态,即写指针指向分区中的地址,且写指针前的数据都是无效数据,如图中的zone 0。针对第②种情况,ZenFS发出的重置命令除了会擦除分区中存储了无效数据的闪存块,同时会擦除分区中的没有使用过的空闪存块,这造成了没有必要的擦除,缩短了闪存块的使用寿命。因此,本发明在设备端优化了ZenFS的重置操作,在重置前先对分区进行重构,保证每次执行重置操作擦除的都是存储了无效数据闪存块,避免在重置过程中擦除未使用过的空的闪存块,以此减少了闪存块的磨损程度,延长ZNS-SSD的使用寿命。
图2为ZNS-SSD设备中分区和闪存芯片的映射关系示意图。在ZNS-SSD内部,为了发挥闪存芯片级并行性,一个分区被映射到多个闪存芯片的部分闪存块中。如图,zone0被映射到chip0、chip1、chip2、chip3以及chip4的block0中,zone1被映射到chip0、chip1、chip2、chip3以及chip4的block1中。在zone0中,写指针前的闪存块存储的数据都是无效数据,ZenFS将对zone0发送重置命令,擦除无效数据以便存储新的数据。在擦除的过程中,zone0中未使用过的闪存块也会被擦除,导致了无意义的擦除,严重缩短了闪存块的寿命。
图3为本发明的重构分区和闪存芯片的映射的示意图。在对zone0进行重置前,首先在设备端,先重构分区和闪存芯片的映射。如图,重构后,zone0被映射到chip0、chip1的block0以及chip2、chip3、chip4的block1中,zone1被映射到chip0、chip1的block1以及chip2、chip3、chip4的block0中,并将重构的信息记录在重构表中。
图4为分区在重构后执行重置操作示意图;对重构后的zone0执行重置操作,重置的过程中,会擦除chip0、chip1的block0以及chip2、chip3、chip4的block1闪存块。对于zone1,在chip2、chip3、chip4的block0闪存块上,可以存储新的数据。
图5为本发明的优化ZenFS中的重置操作策略流程图。当ZenFS针对wp前都是无效数据且不是满状态的zone发出重置命令时,先在设备端对zone进行重构,然后再重置。从步骤101开始,具体步骤如下:
在步骤102,初始化分区的信息表和重构表,信息表存储在用户端,重构表存储在设备端。
在步骤103,用户端发出I/O命令;
在步骤104,判断I/O命令是否是重置命令,如果是,则执行步骤105,否则执行步骤112。
在步骤105,判断用户端发出的重置命令是否是针对写指针前都是无效数据且不是满状态的分区,如果是,则执行步骤106,否则执行步骤111。
在步骤106,在用户端匹配分区,并将当前分区和匹配的分区的信息传到设备端。
在步骤107,根据用户端传下来的信息在设备端对当前分区和匹配的分区进行重构。
在步骤108,重构后,更新重构表。
在步骤109,查看重构表并根据重构信息完成对分区的重置操作。
在步骤110,更新分区的信息表。
在步骤111,执行重置操作。
在步骤112,判断I/O命令是否是写命令,如果是,则执行步骤113,如果不是,则执行步骤114。
在步骤113,查看重构表并根据重构信息完成写入操作。
在步骤114,判断I/O命令是否是读命令,如果是,则执行步骤115,如果不是,则执行步骤116。
在步骤115,查看重构表并根据重构信息完成读取操作。
在步骤116,完成相应操作。
在步骤117,结束。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (1)
1.S1:一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法,其特征是,包括以下步骤:
步骤1、记录分区信息以及重构信息。在主机端记录分区的数据存储情况,包括分区的有效数据、无效数据的起始地址和结束地址,以及分区包含的无效数据的大小。当分区写入新的有效数据或者分区中的有效数据被置为无效数据时,则更新分区信息表。在设备端记录分区的重构信息;
步骤2、鉴别ZenFS发出的重置命令。运行时,ZenFS会在以下两种情况下对分区发出重置命令:①分区为满状态且分区里面存储的数据都是无效数据;②分区不是满状态且分区的写指针前存储的数据都是无效数据。针对第②种情况,在执行重置前,在设备端先对分区进行重构,然后再执行重置操作;
步骤3、重构分区。对于不是满状态且写指针前存储的数据都是无效数据的分区(Current Zone),在重置前,在设备端先重构该分区。在主机端,首先确定Current Zone剩余的可写入数据的区域容量,然后从分区信息表中查找出与Current Zone匹配的分区(Match Zone),匹配的规则是:Match Zone中的无效数据占据的区域容量要大于或者等于Current Zone剩余的可写入数据的区域容量,并将Current Zone和Match Zone的信息从主机端传入到设备端。在设备端,根据传入的信息重构Current Zone和Match Zone,重构的规则是:将Current Zone剩余的可写入数据的区域重映射到Match Zone中的无效数据占据的区域所映射的闪存块中,同时将Match Zone中的无效数据占据的区域重映射到CurrentZone剩余的可写入数据的区域所映射的闪存块中,并将重构信息记录在重构信息表中;
步骤4、执行重置操作。经过重构后的Current Zone,包含的数据都是无效数据,再执行重置操作,释放出存储空间;
步骤5、访问。访问分区时先查询重构信息表,根据查找到重构信息完成读、写、重置操作。
S2:根据权利要求1所述的优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法,其特征在于:在步骤1中,在主机端记录分区的数据存储情况,包括分区的有效数据、无效数据的起始地址和结束地址,以及分区包含的无效数据的大小。当分区写入新的有效数据或者分区中的有效数据被置为无效数据时,则更新分区信息表。在设备端记录分区的重构信息。
S3:根据权利要求1所述的优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法,其特征在于:在步骤2中,鉴别ZenFS发出的重置命令的情况。运行时,ZenFS会在两种情况下对分区发出重置命令:
S31:情况一:分区为满状态且分区里面存储的数据都是无效数据;
S32:情况二:分区不是满状态且分区的写指针前存储的数据都是无效数据,针对情况二,在执行重置操作前,在设备端先对分区进行重构,然后再执行重置操作。
S4:根据权利要求1所述的优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法,其特征在于:在步骤3中,在设备端对不是满状态且写指针前存储的数据都是无效数据的分区(Current Zone)进行重构,具体包括以下步骤:
S41:在主机端,确定Current Zone剩余的可写入数据的区域容量;
S42:在主机端,从分区信息表中查找出与Current Zone匹配的分区(Match Zone);
S43:在设备端,将Current Zone剩余的可写入数据的区域重映射到Match Zone中的无效数据占据的区域所映射的闪存块中,同时将Match Zone中的无效数据占据的区域重映射到Current Zone剩余的可写入数据的区域所映射的闪存块中,并将重构信息记录在重构信息表中。
S5:根据权利要求1所述的优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法,其特征在于:在步骤4中,经过重构后的Current Zone,包含的数据都是无效数据,再执行重置操作,释放出存储空间。
S6:根据权利要求1所述的优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法,其特征在于:在步骤5中,访问分区时先查询重构信息表,根据查找到重构信息完成读、写、重置操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410065082.1A CN117950590A (zh) | 2024-01-17 | 2024-01-17 | 一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410065082.1A CN117950590A (zh) | 2024-01-17 | 2024-01-17 | 一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117950590A true CN117950590A (zh) | 2024-04-30 |
Family
ID=90800442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410065082.1A Pending CN117950590A (zh) | 2024-01-17 | 2024-01-17 | 一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117950590A (zh) |
-
2024
- 2024-01-17 CN CN202410065082.1A patent/CN117950590A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8205063B2 (en) | Dynamic mapping of logical ranges to write blocks | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US9152559B2 (en) | Metadata storage associated with wear-level operation requests | |
US8688894B2 (en) | Page based management of flash storage | |
US8521949B2 (en) | Data deleting method and apparatus | |
US8239639B2 (en) | Method and apparatus for providing data type and host file information to a mass storage system | |
US8452940B2 (en) | Optimized memory management for random and sequential data writing | |
US8166258B2 (en) | Skip operations for solid state disks | |
CN102646069B (zh) | 一种延长固态盘使用寿命的方法 | |
US20050015557A1 (en) | Nonvolatile memory unit with specific cache | |
US20080270680A1 (en) | Controller for Non-Volatile Memories and Methods of Operating the Memory Controller | |
US8954656B2 (en) | Method and system for reducing mapping table size in a storage device | |
KR20070060070A (ko) | 최적화된 순차적인 클러스터 관리용 에프에이티 분석 | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN108628542B (zh) | 一种文件合并方法及控制器 | |
CN114510434A (zh) | Zns驱动器中的数据聚合 | |
US20200310669A1 (en) | Optimized handling of multiple copies in storage management | |
CN110309081B (zh) | 基于压缩存储和地址映射表项的ftl读写数据页的方法 | |
CN117950590A (zh) | 一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法 | |
KR100982440B1 (ko) | 단일 플래시 메모리의 데이터 관리시스템 | |
CN111610929A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN113934371B (zh) | 一种存储器及其数据管理方法和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |