CN112860594A - 一种固态盘地址重映射方法、设备及固态盘 - Google Patents
一种固态盘地址重映射方法、设备及固态盘 Download PDFInfo
- Publication number
- CN112860594A CN112860594A CN202110081274.8A CN202110081274A CN112860594A CN 112860594 A CN112860594 A CN 112860594A CN 202110081274 A CN202110081274 A CN 202110081274A CN 112860594 A CN112860594 A CN 112860594A
- Authority
- CN
- China
- Prior art keywords
- address
- metadata
- address remapping
- remapping
- storage area
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
Abstract
本发明公开了一种固态盘地址重映射方法、设备及固态盘,属于存储技术领域,方法包括:将固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,将元数据存储区域划分为多个元数据存储段,将每个元数据存储段划分为多个用于存储地址重映射元数据条目的槽位,并按需为数据存储区域的每个物理块分配零到多个元数据存储段;地址重映射时,通过修改正向地址映射表将目标逻辑页L2重映射到源逻辑页L1所对应的物理页P1,并生成包含P1到L2反向地址映射信息的地址重映射元数据条目,追加持久化到P1所属物理块对应的元数据存储段中。本发明能够在保证正向和反向地址映射信息一致性的情况下,提高反向地址映射信息的查询效率和扩展性。
Description
技术领域
本发明属于存储技术领域,更具体地,涉及一种固态盘地址重映射方法、设备及固态盘。
背景技术
存储系统中广泛存在重复数据写入,一方面,存在很多内容相同的重复数据;另一方面,应用和系统软件会产生大量重复数据写入,比如数据库和文件系统的日志机制会将数据重复写到日志文件和源文件,文件复制和快照操作需要复制数据,一些应用和文件系统的垃圾回收操作和文件系统去碎片化操作都需要迁移数据。
基于闪存的固态盘正在取代传统机械硬盘,在各类存储系统中得到大规模应用。由于闪存不支持就地更新,因此固态盘固件包含一个地址重映射模块,实现数据的异地更新。该模块维护一张正向地址映射表,完成主机逻辑页地址(logical page number,LPN)到闪存物理页地址(physical pagenumber,PPN)的转换。该表通常被缓存在固态盘内DRAM中,以实现快速的查询和地址转换。固态盘固件还会定期执行垃圾回收操作,以闪存块为单位,通过迁移其中的有效数据页和擦除闪存块来回收旧版本数据占据的存储空间。由于闪存写速度较慢且写耐久性受限,因此数据写入会降低固态盘的性能和寿命。
现有工作提出利用固态盘内地址重映射特性消除重复数据写入,从而提高固态盘的写入性能、寿命、以及存储空间利用率。具体而言,通过修改固态盘内正向地址映射表来实现重复数据的逻辑写入,而不必在闪存上进行物理写入。例如,需要将LPN L1迁移或复制到LPN L2,或者待写入的L2的内容与L1的内容相同,那么向闪存写入L2(重复数据)的操作可以转化为几乎零开销的地址重映射操作,即在DRAM中修改L2的正向地址映射条目,使其指向L1对应的闪存页。
除了正向地址映射表之外,固态盘还需要在闪存上持久化数据页的反向地址映射信息(PPN-LPN)和写入时间戳,即当写入逻辑数据页时,将其LPN存储到所写闪存页的OOB(out-of-band)区域中,这有两点作用。第一,垃圾回收操作需要查询有效闪存页的反向地址映射信息,以便在迁移有效数据页之后去修改该数据页对应的正向地址映射表。第二,固态盘异常掉电后,DRAM缓存的正向地址映射信息可能会丢失,需要通过闪存上的反向地址映射信息和写入时间戳重建最新的正向地址映射表。地址重映射操作会导致固态盘内地址映射元数据不一致,即正向地址映射表与反向地址映射表中的信息不一致,具体来说,地址重映射操作会修改DRAM缓存的正向地址映射表,而由于闪存不支持就地更新,闪存页OOB区域中的反向地址映射信息无法进行相应更改,使得持久化的反向地址映射信息与最新的正向地址映射表不一致。在地址映射元数据不一致的情况下,当垃圾回收操作迁移数据或异常掉电后重建正向地址映射表时,会得到错误的正向地址映射信息,从而损害数据一致性,带来数据丢失风险。
针对地址重映射带来的地址映射元数据不一致问题,现有工作提出在闪存上维护一个全局日志,当发生地址重映射操作时,将其修改的反向地址映射条目追加写到日志中,从而保证正向和反向地址映射信息的一致性。每次查询地址映射元数据时,都需要扫描该日志以获取有效闪存页的反向地址映射信息,这将导致严重的性能和扩展性问题。地址重映射操作的使用会不断增加日志的长度,导致高昂的日志扫描开销,从而降低固态盘性能,并限制地址重映射操作的使用。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种固态盘地址重映射方法、设备及固态盘,其目的在于,在保证固态盘中正向和反向地址映射信息一致性的情况下,提高反向地址映射信息的查询效率和扩展性。
为实现上述目的,按照本发明的一个方面,提供了一种固态盘地址重映射方法,固态盘对外暴露地址重映射接口,固态盘地址重映射方法包括:
空间管理步骤:将固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,将重映射元数据存储区域划分为多个元数据存储段,将每个元数据存储段划分为多个用于存储地址重映射元数据条目的槽位,并按需为数据存储区域的每个物理块分配零到多个元数据存储段;地址重映射元数据条目记录的信息包括:地址重映射操作中物理页到逻辑页的反向地址映射信息及对应的时间戳;物理块为闪存垃圾回收单元;
地址重映射步骤:将待映射的目标逻辑页L2重映射到源逻辑页L1所对应的物理页P1后,更新正向地址映射表,使正向地址映射表中记录目标逻辑页L2到物理页P1的正向映射信息,并利用物理页P1到目标逻辑页L2的反向映射信息及当前操作的时间戳生成地址重映射元数据条目,将该地址重映射元数据条目追加写入物理页P1所属物理块对应的元数据存储段中;
若存在元数据存储段位于闪存中,则对于位于闪存中的元数据存储段,向其中追加写入地址重映射元数据条目的方式包括:将地址重映射元数据条目缓存到DRAM中;且固态盘地址重映射方法还包括:
元数据一致性保证步骤:定期将DRAM中缓存的址重映射元数据条目持久化存储到相应的元数据存储段中,并且在将地址重映射元数据条目缓存到DRAM中时,对所缓存的地址重映射元数据条目采取掉电保护措施。
本发明将固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,并利用固态盘以闪存物理块为单位进行垃圾回收和掉电恢复的特点,为每个数据存储区域中的每个物理块按需分配零到多元数据存储段,用于以追加写入的方式维护各物理块由于地址重映射操作而产生的地址重映射元数据条目,从而在垃圾回收和掉电恢复时,对于每一个物理块,仅需扫描其所对应的元数据存储段即可获得所需的反向地址映射信息,由此能够有效提高地址重映射反向映射信息的查询效率,实现元数据的快速查询,并且按需分配元数据存储段的方式有效提高了可扩展性;对于闪存介质中的元数据存储段,通过定期将缓存在DRAM中的地址重映射元数据条目持久化到相应过的元数据存储段中,并对所缓存的地址重映射元数据条目采取掉电保护措施,有效保证了地址重映射元数据条目能够持久化到非易失存储介质中,从而有效保证了正向和反向映射信息的一致性。总体而言,本发明在保证固态盘中正向和反向地址映射信息一致性的情况下,有效提高了反向地址映射信息的查询效率和扩展性。
进一步地,若固态盘的存储介质同时包括闪存和非易失内存,则空间管理步骤中,优先在非易失内存中设置地址重映射元数据存储区域。
固态盘可能是全闪存固态盘,也可能是由闪存和支持字节寻址的非易失内存组成的混合架构固态盘,本发明对于混合架构固态盘,优先在非易失内存中设置地址重映射元数据存储区域,可以利用非易失内存可字节寻址的特性,在地址重映射操作中直接将地址重映射元数据条目写入非易失内存实现反向地址映射信息的持久化,而无需额外采用掉电保护措施。
进一步地,本发明提供的固态盘地址重映射方法,还包括:
垃圾回收步骤:对于待回收的目标物理块,判断其所属的存储区域,若为数据存储区域,则扫描目标物理块内各物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描目标物理块对应的元数据存储段,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳,回收目标物理块及其对应的元数据存储段所属物理块的存储空间,并利用所获得的反向地址映射信息及对应的时间戳更新正向地址映射表;若为地址重映射元数据存储区域,则回收目标物理块的存储空间。
本发明在垃圾回收过程中,仅需扫描待回收物理块及其对应的元数据存储段即可获得待回收物理块中有效页的反向映射信息,能够有效减少扫描开销,减少垃圾回收操作的执行时间,提高固态盘整体性能。
进一步地,地址重映射步骤具体包括如下步骤:
(S1)检查物理页P1所属物理块对应的元数据存储段中是否具有空闲槽位,若是,则转入步骤(S4);否则,转入步骤(S2);
(S2)在地址重映射元数据存储区域中为物理页P1所属物理块分配一个空闲的元数据存储段,若分配成功,则转入步骤(S4);若分配不成功,则转入步骤(S3);
(S3)检查地址重映射元数据存储区域中无效的地址重映射元数据条目的比例,若不小于预设的第一阈值,则在地址重映射元数据存储区域中选取一个物理块,并利用垃圾回收步骤回收所选取物理块的存储空间,转入步骤(S2);否则,说明元数据存储区域的存储空间已满,无法进行地址重映射操作,转入步骤(S6);
(S4)将地址重映射元数据条目追加写入物理页P1所属物理块对应的元数据存储段中,转入步骤(S5);
(S5)更新正向地址映射表,使正向地址映射表中记录目标逻辑页L2到物理页P1的正向映射信息,地址重映射请求处理结束;
(S6)将地址重映射请求转换为重复数据的写入请求,地址重映射请求处理结束。
本发明在写入地址重映射元数据条目时,优先从相关物理页所属物理块对应的元数据存储段中分配空闲槽位;在没有空闲槽位的情况下,尝试从地址重映射元数据存储区域中分配空闲的元数据存储段;在元数据存储段分配不成功的情况下,尝试通过垃圾回收释放无效的地址重映射元数据条目所占用的存储空间;在无法执行地址重映射的情况下,将地址重映射请求转换为重复数据的写入请求,由此保证了元数据存储段的按需分配,并且保证了数据的正常写入。
进一步地,无效的地址重映射元数据条目的识别方式包括:将反向地址映射信息与当前的正向地址映射表不一致的元数据条目识别为无效的地址重映射元数据条目。
进一步地,本发明提供的固态盘地址重映射方法,还包括:若数据存储区域的空闲存储空间低于预设的第二阈值,则在数据存储区域中选取一个物理块,并利用垃圾回收步骤回收所选取物理块的存储空间;
若地址重映射元数据存储区域的空闲存储空间低于预设的第三阈值,则在地址重映射元数据存储区域中选取一个物理块,并利用垃圾回收步骤回收所选取物理块的存储空间。
本发明在数据存储区域或地址重映射元数据存储区域的存储空间不足时,会通过垃圾回收释放无效数据所占据的存储空间,由此能够保证固态盘中存储空间的利用率。
进一步地,本发明提供的固态盘地址重映射方法,还包括:
掉电恢复步骤:在固态盘发生异常掉电后,扫描数据存储区域中每一个物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描地址重映射元数据存储区域,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳;利用所获得的反向地址映射信息及对应的时间戳重建正向地址映射表。
由于固态盘的掉电恢复以物理块为单位进行,本发明在掉电恢复过程中,对于每一个物理块,仅需扫描该物理块及其对应的元数据存储段即可获得该物理块中各物理页的反向映射信息,由此能够有效减少扫描开销,且各物理块的相关扫描可以同时进行,从而有效提高掉电恢复的效率,提高固态盘整体性能。
按照本发明的另一个方面,提供了一种固态盘地址重映射设备,固态盘对外暴露地址重映射接口,固态盘地址重映射设备包括:
空间管理模块,用于将固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,将重映射元数据存储区域划分为多个元数据存储段,将每个元数据存储段划分为多个用于存储地址重映射元数据条目的槽位,并按需为数据存储区域的每个物理块分配零到多个元数据存储段;地址重映射元数据条目记录的信息包括:地址重映射操作中物理页到逻辑页的反向地址映射信息及对应的时间戳;物理块为闪存垃圾回收单元;
地址重映射模块,用于将待映射的目标逻辑页L2重映射到源逻辑页L1所对应的物理页P1后,更新正向地址映射表,使正向地址映射表中记录目标逻辑页L2到物理页P1的正向映射信息,并利用物理页P1到目标逻辑页L2的反向映射信息及当前操作的时间戳生成地址重映射元数据条目,将该地址重映射元数据条目追加写入物理页P1所属物理块对应的元数据存储段中;
若存在元数据存储段位于闪存中,则对于位于闪存中的元数据存储段,地址重映射模块向其中追加写入地址重映射元数据条目的方式包括:将地址重映射元数据条目缓存到DRAM中;且固态盘地址重映射设备还包括:
元数据一致性保证模块:定期将DRAM中缓存的址重映射元数据条目持久化存储到相应的元数据存储段中,并且在将地址重映射元数据条目缓存到DRAM中时,对所缓存的地址重映射元数据条目采取掉电保护措施。
进一步地,本发明提供的固态盘地址重映射设备,还包括:垃圾回收模块,和/或掉电恢复模块;
垃圾回收模块,用于对于待回收的目标物理块,判断其所属的存储区域,若为数据存储区域,则扫描目标物理块内各物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描目标物理块对应的元数据存储段,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳,回收目标物理块及其对应的元数据存储段所属物理块的存储空间,并利用所获得的反向地址映射信息及对应的时间戳更新正向地址映射表;若为地址重映射元数据存储区域,则回收目标物理块的存储空间;
掉电恢复模块,用于在固态盘发生异常掉电后,扫描数据存储区域中每一个物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描地址重映射元数据存储区域,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳;利用所获得的反向地址映射信息及对应的时间戳重建正向地址映射表。
按照本发明的又一个方面,提供了一种固态盘,该固态盘对外暴露地址重映射接口,该固态盘还包括本发明提供的固态盘地址重映射设备。
总体而言,通过本发明所构思的以上技术方案,在保证固态盘中正向和反向地址映射信息一致性的情况下,有效提高了反向地址映射信息的查询效率和扩展性,从而使得地址重映射操作能够得到充分利用,大幅提高存储性能与寿命。
附图说明
图1为本发明实施例提供的固态盘地址重映射方法示意图;
图2为本发明实施例提供的固态盘地址重映射设备示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了解决现有的固态盘地址重映射方法通过维护一个全局日志来保证正向和反向地址映射信息一致性而影响固态盘的性能和扩展性的技术问题,本发明提供了一种固态盘地址重映射方法、设备及固态盘,其整体思路在于:利用固态盘的垃圾回收和掉电恢复以闪存块为单位的特性,将固态盘存储空间划分为数据存储区域和地址重映射元数据存储区域,为数据存储区域中的每一个物理块在地址重映射元数据存储区域中按需分配零到多个元数据存储段,用于独立维护各物理块的地址重映射元数据信息,使得在垃圾回收和掉电保护操作中,对于每一个物理块,仅需扫描该物理块及相应的元数据存储段即可获得所需的反向映射信息,而无需扫描庞大的全局日志,有效提升反向映射信息的查询效率和可扩展性;对于闪存中的元数据存储段,通过定期将DRAM中缓存的地址重映射元数据条目持久化到相应的元数据存储段,并采取掉电保护措施,有效保证正向和反向地址映射信息的一致性。
以下为实施例。
实施例1:
一种固态盘地址重映射方法,固态盘对外暴露地址重映射接口,主机可调用该地址重映射接口,利用固态盘地址重映射特性消除重复数据写入,比如将数据迁移或复制操作转化为快速的地址重映射操作,而不产生数据物理写入;本实施例所针对的固态盘具体为闪存和支持字节寻址的非易失内存组成的混合架构固态盘;
本实施例所提供的固态盘地址重映射方法包括:
空间管理步骤:将固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,将重映射元数据存储区域划分为多个元数据存储段,将每个元数据存储段划分为多个用于存储地址重映射元数据条目的槽位,并按需为数据存储区域的每个物理块分配零到多个元数据存储段;地址重映射元数据条目记录的信息包括:地址重映射操作中物理页到逻辑页的反向地址映射信息及对应的时间戳;物理块为闪存垃圾回收单元;可选地,本实施例中,每一个元数据存储段的大小与一个闪存页大小相等;
地址重映射步骤:将待映射的目标逻辑页L2重映射到源逻辑页L1所对应的物理页P1后,更新正向地址映射表,使正向地址映射表中记录目标逻辑页L2到物理页P1的正向映射信息,并利用物理页P1到目标逻辑页L2的反向映射信息及当前操作的时间戳生成地址重映射元数据条目,将该地址重映射元数据条目追加写入物理页P1所属物理块对应的元数据存储段中;
本实施例中,每一个地址重映射元数据条目的大小仅在字节级别;相比于数据存储区域,地址重映射元数据存储区域为一块较小的区域,在实际应用中,数据存储区域和地址重映射元数据存储区域的大小或者划分比例,可根据实际的负载特性相应设定;
为了有效保证反向和正向地址映射信息的一致性,作为一种优选的实施方式,本实施例的空间管理步骤中,优先在非易失内存中设置地址重映射元数据存储区域,由此能够利用非易失内存可字节寻址的特性,在地址重映射操作中直接将地址重映射元数据条目写入非易失内存实现反向地址映射信息的持久化,无需额外采用掉电保护措施即可保证反向和正向地址映射信息的一致性;可选地,本实施例中,所有的元数据存储段均设置在非易失内存中。
本实施例还包括:
垃圾回收步骤:对于待回收的目标物理块,判断其所属的存储区域,若为数据存储区域,则扫描目标物理块内各物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描目标物理块对应的元数据存储段,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳,回收目标物理块及其对应的元数据存储段所属物理块的存储空间,并利用所获得的反向地址映射信息及对应的时间戳更新正向地址映射表;若为地址重映射元数据存储区域,则回收目标物理块的存储空间;
本实施例在垃圾回收过程中,仅需扫描待回收物理块及其对应的元数据存储段即可获得待回收物理块中有效页的反向映射信息,能够有效减少扫描开销,减少垃圾回收操作的执行时间,提高固态盘整体性能。
本实施例中,地址重映射步骤具体包括如下步骤:
(S1)检查物理页P1所属物理块对应的元数据存储段中是否具有空闲槽位,若是,则转入步骤(S4);否则,转入步骤(S2);
(S2)在地址重映射元数据存储区域中为物理页P1所属物理块分配一个空闲的元数据存储段,若分配成功,则转入步骤(S4);若分配不成功,则转入步骤(S3);
(S3)检查地址重映射元数据存储区域中无效的地址重映射元数据条目的比例,若不小于预设的第一阈值(例如5%),说明地址重映射元数据存储区域中,大量的存储空间被无效的地址重映射元数据条目所占用,则在地址重映射元数据存储区域中选取一个物理块,并利用垃圾回收步骤回收所选取物理块的存储空间,转入步骤(S2);否则,说明元数据存储区域的存储空间已满,无法进行地址重映射操作,转入步骤(S6);
在选取进行回收的物理块时,可根据实际的垃圾回收策略选取,例如选取含无效的地址重映射元数据条目最多的物理块;
(S4)将地址重映射元数据条目追加写入物理页P1所属物理块对应的元数据存储段中,转入步骤(S5);
(S5)更新正向地址映射表,使正向地址映射表中记录目标逻辑页L2到物理页P1的正向映射信息,地址重映射请求处理结束;
(S6)将地址重映射请求转换为重复数据的写入请求,地址重映射请求处理结束;
通过以上地址重映射请求处理方式,本实施例保证了为元数据存储段的按需分配,并且保证了数据的正常写入;其中的第一阈值可根据实际的负载特性相应设定;
作为一种可选的实施方式,本实施例中,无效的地址重映射元数据条目的识别方式包括:将反向地址映射信息与当前的正向地址映射表不一致的元数据条目识别为无效的地址重映射元数据条目。
为了保证固态盘存储空间的利用率,本实施例还包括:若数据存储区域的空闲存储空间低于预设的第二阈值,则在数据存储区域中选取一个物理块,并利用垃圾回收步骤回收所选取物理块的存储空间;
若地址重映射元数据存储区域的空闲存储空间低于预设的第三阈值,则在地址重映射元数据存储区域中选取一个物理块,并利用垃圾回收步骤回收所选取物理块的存储空间;
第二阈值和第三阈值可根据实际的负载特性相应设定;在选取进行回收的物理块时,可根据实际的垃圾回收策略选取,例如选取含无效数据最多或者含无效的地址重映射元数据条目最多的物理块。
本实施例提供的固态盘地址重映射方法,还包括:
掉电恢复步骤:在固态盘发生异常掉电后,扫描数据存储区域中每一个物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描地址重映射元数据存储区域,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳;利用所获得的反向地址映射信息及对应的时间戳重建正向地址映射表。
由于固态盘的掉电恢复以物理块为单位进行,本实施例在掉电恢复过程中,对于每一个物理块,仅需扫描该物理块及其对应的元数据存储段即可获得该物理块中各物理页的反向映射信息,由此能够有效减少扫描开销,且各物理块的相关扫描可以同时进行,从而有效提高掉电恢复的效率,提高固态盘整体性能。
本实施例所处理的地址重映射请求,既可以是由主机软件下发的请求,也可以是固态盘内部生成的请求,比如当固态盘内部实现有重复数据删除功能时,重复数据的写入请求将被转化为地址重映射请求;以下结合具体的请求处理流程,对本实施例所提供的固态盘地址重映射方法做进一步的解释说明。如图1所示,依次处理主机发送的4个原始请求,分别为:(1)写LPN L1的请求,相应的时间戳为t4;(2)更新LPN L2的请求,相应的时间戳为t5;(3)迁移LPN L3到L4的请求,相应的时间戳为t6;(4)复制LPN L5到L6的请求,相应的时间戳为t7;
处理第1个请求时,由于逻辑页L1中的数据不与其他逻辑页中的数据重复,直接将L1中的数据写入闪存中相应的物理页P1中,同时,在物理页P1的带外区域记录反向地址映射信息和相应的时间戳,并在正向地址映射表中记录L1到P1的正向地址映射信息;
处理第2个请求时,由于逻辑页L2中的数据与逻辑页L1中的数据是重复数据,此时该请求将被转换为将L2重映射到L1所对应的物理页P1的地址重映射请求,即图1中的A(L2,L1),处理该地址重映射请求时,会更新正向地址映射表,在其中记录L2到P1的正向地址映射信息,并在物理页P1所属物理块对应的元数据存储段中追加相应的地址重映射条目,即图1中的条目A(t5,P1,L2,null),以记录P1到L2的反向地址映射信息及对应的时间戳t5;
处理第3个请求时,主机会自行将其转换为将L4重映射到L3所对应的物理页P3的地址重映射请求,即图1中的B(L4,L3),处理该地址重映射请求时,会更新正向地址映射表,在其中记录L4到P3的正向地址映射信息,同时将L3设置为无效页,并在物理页P3所属物理块对应的元数据存储段中追加相应的地址重映元数据射条目,即图1中的条目B(t6,P3,L4,L3),以记录P3到L4的反向地址映射信息及对应的时间戳t6;
处理第4个请求时,主机会自行将其转换为将L6重映射到L5所对应的物理页P5的地址重映射请求,即图1中的C(L6,L5),处理该地址重映射请求时,会更新正向地址映射表,在其中记录L6到P5的正向地址映射关系,并在物理页P5所属物理块对应的元数据存储段中追加相应的地址重映射元数据条目,即图1中的条目C(t7,P5,L6,null),以记录P5到L6的反向地址映射信息及对应的时间戳t7。
实施例2:
一种固态盘地址重映射方法,本实施例与上述实施例1类似,所不同之处在于,本实施例所针对的固态盘具体为全闪存固态盘,相应地,址重映射元数据存储区域设置在闪存中;本实施例中,对于位于闪存中的元数据存储段,向其中追加写入地址重映射元数据条目的方式包括:将地址重映射元数据条目缓存到DRAM中;且本实施例提供的固态盘地址重映射方法还包括:
元数据一致性保证步骤:定期将DRAM中缓存的址重映射元数据条目持久化存储到相应的元数据存储段中,并且在将地址重映射元数据条目缓存到DRAM中时,对所缓存的地址重映射元数据条目采取掉电保护措施;
掉电保护措施可借助常用的超级电容实现,也可采用其他能够保证缓存的地址重映射元数据条目在固态盘异常掉电后也能够被持久化到闪存的措施。
应当说明的是,在本发明其他的一些实施例中,地址重映射元数据存储区域也可能同时由闪存和非易失内存构成,从而部分元数据存储段位于闪存中,此时,对于位于闪存中的元数据存储段,采用上述方式完成地址重映射元数据条目的追加写入,并结合上述元数据一致性保证步骤即可保证正向和反向地址映射信息的一致性。
实施例3:
一种固态盘地址重映射设备,如图2所示,固态盘对外暴露地址重映射接口,固态盘地址重映射设备包括:
空间管理模块,用于将固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,将重映射元数据存储区域划分为多个元数据存储段,将每个元数据存储段划分为多个用于存储地址重映射元数据条目的槽位,并按需为数据存储区域的每个物理块分配零到多个元数据存储段;地址重映射元数据条目记录的信息包括:地址重映射操作中物理页到逻辑页的反向地址映射信息及对应的时间戳;物理块为闪存垃圾回收单元;
地址重映射模块,用于将待映射的目标逻辑页L2重映射到源逻辑页L1所对应的物理页P1后,更新正向地址映射表,使正向地址映射表中记录目标逻辑页L2到物理页P1的正向映射信息,并利用物理页P1到目标逻辑页L2的反向映射信息及当前操作的时间戳生成地址重映射元数据条目,将该地址重映射元数据条目追加写入物理页P1所属物理块对应的元数据存储段中;
若存在元数据存储段位于闪存中,则对于位于闪存中的元数据存储段,地址重映射模块向其中追加写入地址重映射元数据条目的方式包括:将地址重映射元数据条目缓存到DRAM中;且固态盘地址重映射设备还包括:
元数据一致性保证模块:定期将DRAM中缓存的址重映射元数据条目持久化存储到相应的元数据存储段中,并且在将地址重映射元数据条目缓存到DRAM中时,对所缓存的地址重映射元数据条目采取掉电保护措施;
本实施例中,各模块的具体实施方式可参考上述实施例1和实施例2中的描述,在此将不作复述。
如图2所示,本实施例所提供的固态盘地址重映射设备还包括:
垃圾回收模块,用于对于待回收的目标物理块,判断其所属的存储区域,若为数据存储区域,则扫描目标物理块内各物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描目标物理块对应的元数据存储段,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳,回收目标物理块及其对应的元数据存储段所属物理块的存储空间,并利用所获得的反向地址映射信息及对应的时间戳更新正向地址映射表;若为地址重映射元数据存储区域,则回收目标物理块的存储空间;
掉电恢复模块:在固态盘发生异常掉电后,扫描数据存储区域中每一个物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描地址重映射元数据存储区域,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳;利用所获得的反向地址映射信息及对应的时间戳重建正向地址映射表;
本实施例中,垃圾回收模块和掉电恢复模块的具体实施方式可参考上述实施例1和实施例2中的描述,在此将不作复述。
实施例4:
一种固态盘,该固态盘对外暴露地址重映射接口,该固态盘还包括上述实施例3提供的固态盘地址重映射设备。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种固态盘地址重映射方法,所述固态盘对外暴露地址重映射接口,其特征在于,所述固态盘地址重映射方法包括:
空间管理步骤:将所述固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,将所述重映射元数据存储区域划分为多个元数据存储段,将每个元数据存储段划分为多个用于存储地址重映射元数据条目的槽位,并按需为所述数据存储区域的每个物理块分配零到多个元数据存储段;所述地址重映射元数据条目记录的信息包括:地址重映射操作中物理页到逻辑页的反向地址映射信息及对应的时间戳;所述物理块为闪存垃圾回收单元;
地址重映射步骤:将待映射的目标逻辑页L2重映射到源逻辑页L1所对应的物理页P1后,更新正向地址映射表,使所述正向地址映射表中记录所述目标逻辑页L2到所述物理页P1的正向映射信息,并利用所述物理页P1到所述目标逻辑页L2的反向映射信息及当前操作的时间戳生成地址重映射元数据条目,将该地址重映射元数据条目追加写入所述物理页P1所属物理块对应的元数据存储段中;
若存在元数据存储段位于闪存中,则对于位于闪存中的元数据存储段,向其中追加写入地址重映射元数据条目的方式包括:将地址重映射元数据条目缓存到DRAM中;且所述固态盘地址重映射方法还包括:
元数据一致性保证步骤:定期将DRAM中缓存的址重映射元数据条目持久化存储到相应的元数据存储段中,并且在将地址重映射元数据条目缓存到DRAM中时,对所缓存的地址重映射元数据条目采取掉电保护措施。
2.如权利要求1所述的固态盘地址重映射方法,其特征在于,若所述固态盘的存储介质同时包括闪存和非易失内存,则所述空间管理步骤中,优先在所述非易失内存中设置所述地址重映射元数据存储区域。
3.如权利要求1或2所述的固态盘地址重映射方法,其特征在于,还包括:
垃圾回收步骤:对于待回收的目标物理块,判断其所属的存储区域,若为数据存储区域,则扫描所述目标物理块内各物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描所述目标物理块对应的元数据存储段,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳,回收所述目标物理块及其对应的元数据存储段所属物理块的存储空间,并利用所获得的反向地址映射信息及对应的时间戳更新正向地址映射表;若为地址重映射元数据存储区域,则回收所述目标物理块的存储空间。
4.如权利要求3所述的固态盘地址重映射方法,其特征在于,所述地址重映射步骤具体包括如下步骤:
(S1)检查所述物理页P1所属物理块对应的元数据存储段中是否具有空闲槽位,若是,则转入步骤(S4);否则,转入步骤(S2);
(S2)在所述地址重映射元数据存储区域中为所述物理页P1所属物理块分配一个空闲的元数据存储段,若分配成功,则转入步骤(S4);若分配不成功,则转入步骤(S3);
(S3)检查所述地址重映射元数据存储区域中无效的地址重映射元数据条目的比例,若不小于预设的第一阈值,则在所述地址重映射元数据存储区域中选取一个物理块,并利用所述垃圾回收步骤回收所选取物理块的存储空间,转入步骤(S2);否则,转入步骤(S6);
(S4)将地址重映射元数据条目追加写入所述物理页P1所属物理块对应的元数据存储段中,转入步骤(S5);
(S5)更新正向地址映射表,使所述正向地址映射表中记录所述目标逻辑页L2到所述物理页P1的正向映射信息,地址重映射请求处理结束;
(S6)将地址重映射请求转换为重复数据的写入请求,地址重映射请求处理结束。
5.如权利要求4所述的固态盘地址重映射方法,其特征在于,无效的地址重映射元数据条目的识别方式包括:将反向地址映射信息与当前的正向地址映射表不一致的元数据条目识别为无效的地址重映射元数据条目。
6.如权利要求3所述的固态盘地址重映射方法,其特征在于,还包括:若所述数据存储区域的空闲存储空间低于预设的第二阈值,则在所述数据存储区域中选取一个物理块,并利用所述垃圾回收步骤回收所选取物理块的存储空间;
若所述地址重映射元数据存储区域的空闲存储空间低于预设的第三阈值,则在所述地址重映射元数据存储区域中选取一个物理块,并利用所述垃圾回收步骤回收所选取物理块的存储空间。
7.如权利要求1或2所述的固态盘地址重映射方法,其特征在于,还包括:
掉电恢复步骤:在所述固态盘发生异常掉电后,扫描所述数据存储区域中每一个物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描所述地址重映射元数据存储区域,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳;利用所获得的反向地址映射信息及对应的时间戳重建正向地址映射表。
8.一种固态盘地址重映射设备,所述固态盘对外暴露地址重映射接口,其特征在于,固态盘地址重映射设备包括:
空间管理模块,用于将所述固态盘的存储空间划分为数据存储区域和地址重映射元数据存储区域,将所述重映射元数据存储区域划分为多个元数据存储段,将每个元数据存储段划分为多个用于存储地址重映射元数据条目的槽位,并按需为所述数据存储区域的每个物理块分配零到多个元数据存储段;所述地址重映射元数据条目记录的信息包括:地址重映射操作中物理页到逻辑页的反向地址映射信息及对应的时间戳;所述物理块为闪存垃圾回收单元;
地址重映射模块,用于将待映射的目标逻辑页L2重映射到源逻辑页L1所对应的物理页P1后,更新正向地址映射表,使所述正向地址映射表中记录所述目标逻辑页L2到所述物理页P1的正向映射信息,并利用所述物理页P1到所述目标逻辑页L2的反向映射信息及当前操作的时间戳生成地址重映射元数据条目,将该地址重映射元数据条目追加写入所述物理页P1所属物理块对应的元数据存储段中;
若存在元数据存储段位于闪存中,则对于位于闪存中的元数据存储段,地址重映射模块向其中追加写入地址重映射元数据条目的方式包括:将地址重映射元数据条目缓存到DRAM中;且所述固态盘地址重映射设备还包括:
元数据一致性保证模块:定期将DRAM中缓存的址重映射元数据条目持久化存储到相应的元数据存储段中,并且在将地址重映射元数据条目缓存到DRAM中时,对所缓存的地址重映射元数据条目采取掉电保护措施。
9.如权利要求8所述的固态盘地址重映射设备,其特征在于,还包括:垃圾回收模块,和/或掉电恢复模块;
所述垃圾回收模块,用于对于待回收的目标物理块,判断其所属的存储区域,若为数据存储区域,则扫描所述目标物理块内各物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描所述目标物理块对应的元数据存储段,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳,回收所述目标物理块及其对应的元数据存储段所属物理块的存储空间,并利用所获得的反向地址映射信息及对应的时间戳更新正向地址映射表;若为地址重映射元数据存储区域,则回收所述目标物理块的存储空间;
所述掉电恢复模块,用于在所述固态盘发生异常掉电后,扫描所述数据存储区域中每一个物理页的带外区域,以获得由写入操作产生的反向地址映射信息及对应的时间戳,并扫描所述地址重映射元数据存储区域,以获得由地址重映射操作产生的反向地址映射信息及对应的时间戳;利用所获得的反向地址映射信息及对应的时间戳重建正向地址映射表。
10.一种固态盘,所述固态盘对外暴露地址重映射接口,其特征在于,所述固态盘还包括权利要求8或9所述的固态盘地址重映射设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110081274.8A CN112860594B (zh) | 2021-01-21 | 2021-01-21 | 一种固态盘地址重映射方法、设备及固态盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110081274.8A CN112860594B (zh) | 2021-01-21 | 2021-01-21 | 一种固态盘地址重映射方法、设备及固态盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860594A true CN112860594A (zh) | 2021-05-28 |
CN112860594B CN112860594B (zh) | 2022-11-01 |
Family
ID=76008680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110081274.8A Active CN112860594B (zh) | 2021-01-21 | 2021-01-21 | 一种固态盘地址重映射方法、设备及固态盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860594B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563026A (zh) * | 2022-12-07 | 2023-01-03 | 合肥康芯威存储技术有限公司 | 一种映射表的重建方法及数据存储设备 |
CN116204542A (zh) * | 2023-04-28 | 2023-06-02 | 广东广宇科技发展有限公司 | 一种数据库快速读写处理方法 |
CN116467224A (zh) * | 2022-01-12 | 2023-07-21 | 联芸科技(杭州)股份有限公司 | L2p映射表重建方法及固态硬盘 |
CN116627354A (zh) * | 2023-07-20 | 2023-08-22 | 湖南博匠信息科技有限公司 | 一种固态硬盘的高性能数据写入方法和数据记录设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101779195A (zh) * | 2007-06-08 | 2010-07-14 | 桑迪士克公司 | 用于存储器装置的存储地址重新映射的方法和系统 |
CN102598019A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 用于分配存储的设备、系统和方法 |
CN102597910A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 存储设备中用于功率减小管理的装置、系统及方法 |
CN103488578A (zh) * | 2012-12-28 | 2014-01-01 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
CN104035729A (zh) * | 2014-05-22 | 2014-09-10 | 中国科学院计算技术研究所 | 一种日志映射的块设备精简配置方法 |
CN104303162A (zh) * | 2012-01-12 | 2015-01-21 | 才智知识产权控股公司(2) | 用于管理缓存接纳的系统和方法 |
US20170024140A1 (en) * | 2015-07-20 | 2017-01-26 | Samsung Electronics Co., Ltd. | Storage system and method for metadata management in non-volatile memory |
US20170249257A1 (en) * | 2016-02-29 | 2017-08-31 | Itu Business Development A/S | Solid-state storage device flash translation layer |
CN109548085A (zh) * | 2017-08-11 | 2019-03-29 | 华为技术有限公司 | 传输数据的方法、接入网设备和终端设备 |
-
2021
- 2021-01-21 CN CN202110081274.8A patent/CN112860594B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101779195A (zh) * | 2007-06-08 | 2010-07-14 | 桑迪士克公司 | 用于存储器装置的存储地址重新映射的方法和系统 |
CN102598019A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 用于分配存储的设备、系统和方法 |
CN102597910A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 存储设备中用于功率减小管理的装置、系统及方法 |
CN104303162A (zh) * | 2012-01-12 | 2015-01-21 | 才智知识产权控股公司(2) | 用于管理缓存接纳的系统和方法 |
CN103488578A (zh) * | 2012-12-28 | 2014-01-01 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
CN104035729A (zh) * | 2014-05-22 | 2014-09-10 | 中国科学院计算技术研究所 | 一种日志映射的块设备精简配置方法 |
US20170024140A1 (en) * | 2015-07-20 | 2017-01-26 | Samsung Electronics Co., Ltd. | Storage system and method for metadata management in non-volatile memory |
US20170249257A1 (en) * | 2016-02-29 | 2017-08-31 | Itu Business Development A/S | Solid-state storage device flash translation layer |
CN109548085A (zh) * | 2017-08-11 | 2019-03-29 | 华为技术有限公司 | 传输数据的方法、接入网设备和终端设备 |
Non-Patent Citations (2)
Title |
---|
HUANG JIAN-ZHONG等: "Design and analysis of a third-party security protocol for storage system", 《2006 INTERNATIONAL WORKSHOP ON NETWORKING, ARCHITECTURE, AND STORAGES (IWNAS"06)》 * |
柯剑等: "动态地址映射虚拟存储系统", 《计算机工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467224A (zh) * | 2022-01-12 | 2023-07-21 | 联芸科技(杭州)股份有限公司 | L2p映射表重建方法及固态硬盘 |
CN116467224B (zh) * | 2022-01-12 | 2023-10-31 | 联芸科技(杭州)股份有限公司 | L2p映射表重建方法及固态硬盘 |
CN115563026A (zh) * | 2022-12-07 | 2023-01-03 | 合肥康芯威存储技术有限公司 | 一种映射表的重建方法及数据存储设备 |
CN116204542A (zh) * | 2023-04-28 | 2023-06-02 | 广东广宇科技发展有限公司 | 一种数据库快速读写处理方法 |
CN116204542B (zh) * | 2023-04-28 | 2023-08-01 | 广东广宇科技发展有限公司 | 一种数据库快速读写处理方法 |
CN116627354A (zh) * | 2023-07-20 | 2023-08-22 | 湖南博匠信息科技有限公司 | 一种固态硬盘的高性能数据写入方法和数据记录设备 |
CN116627354B (zh) * | 2023-07-20 | 2023-09-15 | 湖南博匠信息科技有限公司 | 一种固态硬盘的高性能数据写入方法和数据记录设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112860594B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860594B (zh) | 一种固态盘地址重映射方法、设备及固态盘 | |
CN110678836B (zh) | 用于键值存储的持久性存储器 | |
US9898200B2 (en) | Memory device having a translation layer with multiple associative sectors | |
US7761655B2 (en) | Storage system and method of preventing deterioration of write performance in storage system | |
USRE45222E1 (en) | Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table | |
US9519647B2 (en) | Data expiry in a non-volatile device | |
US8898371B2 (en) | Accessing logical-to-physical address translation data for solid state disks | |
US9009396B2 (en) | Physically addressed solid state disk employing magnetic random access memory (MRAM) | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
CN108604165B (zh) | 存储装置 | |
KR20070096429A (ko) | 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템 | |
US6636941B1 (en) | Enhanced stable disk storage | |
KR20120090965A (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
KR20150083264A (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
CN107817945B (zh) | 一种混合内存结构的数据读取方法和系统 | |
CN110347613B (zh) | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 | |
CN109558333B (zh) | 具有可变额外存储空间的固态存储设备命名空间 | |
US20100318726A1 (en) | Memory system and memory system managing method | |
US20140047161A1 (en) | System Employing MRAM and Physically Addressed Solid State Disk | |
EP2264602A1 (en) | Memory device for managing the recovery of a non volatile memory | |
KR101077901B1 (ko) | 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
CN109725853B (zh) | 一种数据回收方法及装置 | |
US11199983B2 (en) | Apparatus for obsolete mapping counting in NAND-based storage devices | |
CN110389706B (zh) | 一种指纹回收方法以及存储系统 | |
CN107608626B (zh) | 一种基于ssd raid阵列的多级缓存及缓存方法 |
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 |