CN104794070B - 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 - Google Patents

基于动态非覆盖raid技术的固态闪存写缓存系统及方法 Download PDF

Info

Publication number
CN104794070B
CN104794070B CN201510197951.7A CN201510197951A CN104794070B CN 104794070 B CN104794070 B CN 104794070B CN 201510197951 A CN201510197951 A CN 201510197951A CN 104794070 B CN104794070 B CN 104794070B
Authority
CN
China
Prior art keywords
flash memory
solid state
band
write
data
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
CN201510197951.7A
Other languages
English (en)
Other versions
CN104794070A (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.)
Road Nanjing Entropy Information Technology Co Ltd
Original Assignee
Road Nanjing Entropy Information 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 Road Nanjing Entropy Information Technology Co Ltd filed Critical Road Nanjing Entropy Information Technology Co Ltd
Priority to CN201510197951.7A priority Critical patent/CN104794070B/zh
Publication of CN104794070A publication Critical patent/CN104794070A/zh
Application granted granted Critical
Publication of CN104794070B publication Critical patent/CN104794070B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于动态非覆盖RAID技术的固态闪存写缓存系统及方法,系统由多个固态闪存硬盘组成RAID,作为写缓存的存储空间,多个固态闪存硬盘分别和写缓存控制器连接;控制器分别与前端IO以及后端存储数据连接,包括CPU和非易失性内存模块,用于接收前端读请求,从固态闪存硬盘或后端存储设备读取数据,以及接收前端写请求,将数据在非易失性内存模块中组装成RAID条带后以非覆盖方式写入固态闪存硬盘中新分配的条带,以及将固态闪存条带中的活动数据写入后端存储设备,实现固态闪存条带的回收。本发明通过动态组装条带,避免了条带频繁更新,有效提高系统写入带宽,减少了Flash芯片的磨损,具有容量大,性能高,可靠性高等优点。

Description

基于动态非覆盖RAID技术的固态闪存写缓存系统及方法
技术领域
本发明属于数据处理技术领域,具体涉及利用固态闪存硬盘来构建大容量高性能高可靠写缓存系统及方法,既可用于传统的磁盘阵列来替代电池保护DRAM写缓存,也可用于需要大容量缓存的云存储系统。
背景技术
传统磁盘阵列依赖于RAID,即Redundant Array of Inexpensive Disks。中文简称为廉价磁盘冗余阵列。RAID是一种把多块独立的旋转机械硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。磁盘系统通过 RAID 技 术 发挥 多 磁 盘 的 并 行 存 取,I/O请求被分发到多个磁盘设备,通过多设备的并行工作提供聚合带宽.在设备内部,磁盘系统通过数据分布以及I/O 调度等多种手段顺序化数据的访问,减少寻道时间,以提高磁盘的吞吐率。
RAID1 镜象(Mirror)存储。它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID5 奇偶校验(XOR)条带存储,校验数据分布式存储,数据条带存储单位为块。RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
RAID6 奇偶校验(XOR)条带存储,两个分布式存储的校验数据,数据条带存储单位为块。与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。
由上可见,RAID技术的一个主要缺点是系统的写性能不够高,特别是随机写性能。第一,旋转机械硬盘固然容量大,但其单个IO的时延大,在10毫米级,远高于CPU和DRAM内存的时延。第二,旋转机械硬盘的IOPS性能有限,通常单个磁盘只支持100到200个随机的读写操作。RAID内含的数据冗余功能会成倍地消耗磁盘的IOPS。因此传统磁盘阵列通常使用DRAM作为系统的读写缓存。使用DRAM作为写缓存可以有效地提高系统的时延,同时,由于保存在DRAM中的数据在数据更新时不需要将过时的数据写入后端存储,可有效减少写入后端存储的写操作次数,从而提高系统的写性能。
使用DRAM作为磁盘阵列的写缓存有以下几个缺点:第一,容量受到功耗和电池保护的限制。单位DRAM的功耗较大,在使用大容量DRAM时系统散热是一个严重的限制,越来越大的内存也逐渐成为高
能耗的主要原因之一。使用DRAM作为写缓存时,通常要求使用电池保证系统掉电是不丢失数据。大容量电池不仅体积庞大,易坏,维护困难,且成本高;第二,价格昂贵,DRAM本身单位价格高;第三,DRAM可靠性差, 通常DRAM只能检测误码,没有办法纠错。因此很有必要使用新的技术来替代DRAM作为磁盘阵列的大容量高性能高可靠性写缓存。
以NAND型为存储介质的固态闪存硬盘最近几年取得长足进展。NAND 型闪存是一种全电设备,通过电子电路来读取数据,具有非易失、极高的读写速度、抗震、低功耗、体积小等特性,已经广泛应用于嵌入式系统、航空航天、消费电子等领域。闪存的读写速度超过磁盘百倍以上,随着闪存制作工艺的发展,闪存的容量不断增大,应用领域开始逐步扩展到高吞吐、数据密集访问的企业级应用环境。一个 NAND 型闪存芯片通常由若干个块(Block)组成,每个块又由若干页(Page)组成。例如,容量为 1GB 的三星 K9WAG08U1A闪存芯片包含8192 个块(Block),每个 Block 由 64 个页(Page)组成,每一个 Page 由数据区(dataarea)和备用区(spare area)组成,2KB 的数据区用于存储用户数据,64B 的备用区用来存储校验信息、逻辑页地址等信息。闪存有读、写和擦除三种操作,页是闪存的基本读写单元,写数据前必须执行擦除操作,擦除比写操作需要花费更多的时间并且以块为单位。
固态硬盘(Solid State Drive,SSD)的存储性能远超过磁盘,它由闪存芯片、控制器和闪存转换层(Flash Translation Layer,FTL)组成,对外提供和磁盘相同的 I/O 接口。为了屏蔽闪存与磁盘不同的操作特性,固态硬盘一般都会引入闪存转换层为上层文件系统提供通用的读写接口,系统应用不需要任何修改便可直接在固态硬盘上运行。固态硬盘的工作原理如下:闪存操作以闪存页(page)为读写单元,以闪存块(block)为擦除单元,设备内部的介质访问提供了通道(channel)、颗粒封装(package)、颗粒(die)、闪存片(plane)等多个级别的并行。设备内部以多通道方式组织闪存颗粒封装,每个通道上可连接多个颗粒封装,多颗粒封装之间共享传输通道,但可独立执行指令.每个颗粒封装内部包含两个或多个闪存颗粒,每个颗粒可被独立选中执行指令.颗粒内部可分为多个闪存片,每个闪存片含有一个闪存页大小的寄存器缓存,用于暂存读写数据.通过多个级别的指令并行执行,闪存设备充分利用介质的存取性能.闪存控制器主要负责地址映射、垃圾回收和磨损均衡。闪存通过异地更新的方式缓解闪存单元写前擦除的延迟.由于闪存单元的擦除次数有限,闪存控制器通过磨损均衡算法平衡设备内部闪存块之间的擦除次数,同时垃圾回收算法尽量选取擦除 效 率 较 高 的 块 回 收 以 控 制 写 放 大 (write amplification)。闪存控制器既要维护高效的数据地址映射查询,也要均衡设备内部磨损,控制写放大,以提高固态闪存硬盘的整体寿命。
使用单个固态闪存硬盘作为磁盘阵列的写缓存在容量和可靠性仍然受到局限。因此有必要考虑使用类似于RAID的技术来集成多个固态闪存硬盘来作为写缓存,一方面提高写缓存容量,另一方面利用并行IO提高系统IO性能。比较常见的做法是利用硬件RAID控制器来实现固态硬盘RAID功能。这种做法的缺点有三点:第一,硬件RAID卡的IOPS性能不能完全匹配多个固态闪存硬盘,成为新的性能瓶颈。第二,硬件RAID因维护Parity会带来额外数据读写,例如对RAID5而言,一个小数据块的写会产生2次读和2次写操作。第三,硬件RAID需使用电池保护模块,带来可靠性隐患。
发明内容
发明目的:本发明提出的一种固态闪存写缓存系统及写缓存实现方法,使用动态非覆盖RAID技术,解决应用RAID控制器来控制固态闪存硬盘带来的性能瓶颈和可靠性问题。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
基于动态非覆盖RAID技术的固态闪存写缓存系统,所述系统由多个固态闪存硬盘组成RAID,作为写缓存的数据存储空间,所述多个固态闪存硬盘分别与写缓存控制器数据连接;
所述控制器分别与前端IO请求设备以及后端存储设备数据连接,包括CPU和非易失性内存模块,用于接收前端读请求,从固态闪存硬盘或后端存储设备读取数据,以及接收前端写请求,将数据在非易失性内存模块中组装成RAID条带后以非覆盖方式写入固态闪存硬盘中新分配的条带,以及将固态闪存条带中的活动数据写入后端存储设备,实现固态闪存条带的回收。
进一步地,所述非易失性内存模块中至少保存如下数据结构:
条带缓存,用于存储至少一个RAID条带;
闪存地址映射表,包括多个条目,每个条目记录用户空间逻辑地址到闪存空间逻辑地址的映射;
以及,条带信息表,包括多个条目,每个条目记录保存有活动数据的固态闪存条带到该条带上数据对应的用户空间逻辑地址序列的映射。
上述基于动态非覆盖RAID技术的固态闪存写缓存系统的写缓存方法,包括:
读请求的处理,结合非易失性内存中的闪存地址映射表进行地址判断和数据读取;
写请求的处理,通过在非易失性内存中进行RAID条带组装,更新闪存地址映射表,将组装好的条带写入固态闪存硬盘的一个新的条带,并更新非易失性内存中的条带信息表;
以及,固态闪存条带垃圾回收处理,在空闲固态闪存条带数量少于设定阈值时,将固态闪存条带中的活动数据写入后端存储,回收固态闪存条带。
进一步地,所述读请求的处理步骤中,具体包括:
(11)控制器根据读请求中的用户空间逻辑地址,查找非易失性内存模块中的闪存地址映射表来确定写缓存中是否有所读数据,若有至步骤(12),否则至步骤(13);
(12)通过闪存地址映射表中用户空间逻辑地址对应的闪存空间逻辑地址,从固态闪存硬盘中读出数据返回给请求方,读请求处理结束;
(13)从后端存储中读取数据返回给请求方。
进一步地,所述写请求的处理步骤中,具体包括:
(21)控制器首先将数据写到非易失性内存中的条带缓存单元的RAID条带,条带缓存单元中的一个RAID条带对应于固态闪存硬盘中的一个条带;
(22)控制器根据写请求中的用户空间逻辑地址,查找非易失性内存模块中的闪存地址映射表,若该用户空间逻辑地址存在,则更新该用户空间逻辑地址对应的所分配闪存空间逻辑地址,若不存在,则向表中增加新的映射条目;
(23)控制器向请求方发出写操作完成信号;
(24)控制器将组装好的RAID条带按闪存地址映射表的方式写入固态闪存硬盘;
(25)一个RAID条带写入固态闪存硬盘后,控制器更新条带信息表,并清除条带缓存单元中对应的条带内容。
进一步地,所述固态闪存条带垃圾回收处理步骤中,具体包括:
(31)控制器判断空闲固态闪存条带数量是否小于预先指定的门限值,若小于则进入步骤(32);
(32)控制器按照条带写入的先后顺序,选择最早写入的一个条带作为回收对象;
(33)根据条带信息表,找出所回收条带上所有数据块对应的用户空间逻辑地址,根据用户空间逻辑地址查找闪存地址映射表,判断得到各个数据块是活动数据或者非活动数据;
(34)从所回收条带中读出所有活动数据,将其写入后端存储,写入完成后在闪存地址映射表中清除活动数据的数据块对应的用户空间逻辑地址条目;
(35)将所回收条带加入空闲条带池,进入步骤(32)执行下一个条带的回收。
有益效果:本发明提供了一种新的使用固态闪存作为磁盘阵列或大型存储系统写缓存及实现方法,即基于动态非覆盖RAID技术。与传统使用DRAM加电池保护作为写缓存相比,使用固态闪存作为写缓存具有容量大,耗电量低,可靠性高,成本低等优点。与使用传统硬件RAID控制器来管理固态闪存相比,动态非覆盖RAID技术通过动态组装条带,避免了条带频繁更新的问题,不仅有效提高系统写入带宽,也同时减少了Flash芯片的磨损,提高了使用寿命和数据安全性。此外,动态非覆盖RAID技术也具有此前不具备的横向扩展能力。
附图说明
图1为本发明实施例的写缓存系统的总体结构示意图。
图2为本发明实施例的写缓存系统中多个固态闪存硬盘组成的闪存逻辑地址空间计算方式示意图。
图3为本发明实施例中的闪存地址映射表示意图。
图4为本发明实施例中的条带信息表示意图。
图5为本发明实施例中读请求的处理流程图。
图6为本发明实施例中写请求的处理流程图。
图7为本发明实施例中固态闪存条带回收处理流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本发明实施例公开的固态闪存写缓存系统的核心思路是采用非易失性内存(电池保护的DRAM或MRAM)作为固态闪存 RAID的缓存,前端写入的数据先写入缓存即非易失性内存,在缓存中重新组装成一个新的RAID条带, 然后将RAID条带作为一个整体同时写入控制器管理的多个固态闪存硬盘;控制器同时在后台运行一个管理进程,专门负责垃圾空间回收以及将部分数据写入后端存储。
本实施例的系统的典型用途是作为后端存储,例如磁盘阵列或存储系统,的写加速模块。其总体结构如图 1所示,主要部件有写缓存控制器,内含CPU和非易失性内存模块,以及多个固态闪存硬盘(本实施例中以6块盘为例,一般至少2块)作为写缓存的数据存储空间。其中控制器负责接收前端(主机端块请求或文件系统请求),管理非易失性内存的输入输出,管理固态闪存硬盘的地址映射、垃圾回收、将部分数据写入后端存储等;非易失性内存和固态闪存硬盘负责完成数据的存储。非易失性内存模块含有3个数据结构:条带缓存,闪存地址映射表和条带信息表。
写缓存的有效存储空间由若干块固态闪存硬盘构成。非易失性内存负责缓存来自前端或上层文件系统的数据,并将其组成一个完整的RAID条带,固态闪存负责保存这些条带(为了说明方便,本例中中的 RAID为 RAID5,但本发明不限于RAID5,也可以是RAID6、RAID3、RAID1等其他方式)。图2为本发明实施例中固态闪存硬盘组成的闪存逻辑地址空间计算方式。在图2中的例子中,共有6个固态闪存硬盘,采用RAID5来组装条带。每个条带的深度为3个单位的数据块(条带的深度可以根据数据存储的颗粒度由系统设定),条带宽度为6。每个条带可有15个有效数据块来保存用户数据,3个数据块用于保存校验数据(图中灰色)。闪存逻辑地址空间的组成方式是依条带的次序构成,而在每个条带中,数据块的次序是首先是每个盘按逻辑地址由上到下,直到条带深度,然后轮换到第二个盘。
非易失性内存中条带组装时,其相应的内存空间对应于一个指定的固态闪存条带,装配时数据填充的次序与闪存逻辑地址空间的组成顺序相同。条带缓存负责接受来自前端或上层文件系统的数据,并将这些数据装配成具有指定数据保护功能的RAID条带。数据一旦写入条带缓存,即可向前端发出确认信息,以缩短数据写操作相应时间。当一个条带完成时,系统将其按条带闪存地址映射表的方式写入闪存盘,当数据写入闪存盘后,非易失性内存中对应的条带被删除,其存储空间用于装配新的条带。为提高系统写入带宽,在非易失性内存当一个条带装配结束后可立刻装配下一个条带,而不必等到该条带完全写入闪存盘。
图3为本发明实施例的闪存地址映射表的示意图。这个表格的每个条目记录一个映射,即用户空间逻辑地址X到固态闪存条带空间地址Y的映射,表示用户空间逻辑地址X对应的用户数据块(简称用户数据块X)被系统保存在固态闪存地址空间Y。当用户数据块X重新写入时,该数据块将同其他数据一起组成并写入一个新的条带,举例说,写到固态闪存条带空间地址Z,当写入完成时,闪存地址映射表被更新,将X映射到Z。这样,Y地址的数据没有用户逻辑地址映射,变成了非活动数据。
图4为本发明实施例的条带信息表的示意图,包含所有保存有活动数据的RAID条带。每个条带指定一个编号(或地址),通过编号系统可以知道条带的具体地址。条带信息表由一系列条目组成。每个条目是条带编号到用户空间逻辑地址序列的一个映射,用户空间逻辑地址序列由一系列保存在该条带上的数据所对应的用户空间逻辑地址组成。条带信息表的功能是用于条带垃圾回收。当系统确定需要回收某个指定条带时,系统通过查询该条带对应的用户空间逻辑地址序列,从而确定该条带所有保存的数据,结合闪存地址映射表,系统便可找出所有需要拷贝到后端存储的活动数据。
本发明实施例公开的一种基于动态非覆盖RAID技术的固态闪存写缓存方法,包括:
(1)读请求的处理
如图5所示,当读请求从前端到达控制器时,控制器根据读请求的用户空间逻辑地址(Logical Address, LA),首先查询闪存地址映射表,如果找到,则表明在写缓存中存在该数据。通过该逻辑地址对应的闪存空间逻辑地址,从固态闪存中读取数据返还给前端请求方。
如果在闪存地址映射表没有对应于该LA的条目,即表明在写缓存中没有该数据。控制器则向后端存储发出读请求,从后端存储读取数据返还给请求方。
(2)写请求的处理
如图6所示,当写请求到达时,控制器首先将该数据写入非易失性内存的一个RAID条带中,该条带对应于固态闪存硬盘中的一个指定条带,即该条带在非易失性内存中组装完成后将写到对应的固态闪存硬盘条带。换言之,尽管该条带还在非易失性内存组装,它已经具有一个空闲的固态闪存硬盘条带的地址空间。完成数据写入非易失性内存的RAID条带后,控制器查询闪存地址映射表,如写请求的用户空间逻辑地址存在,则更新该逻辑地址所对应的新的固态闪存空间逻辑地址,如果不存在,则在闪存地址映射表新增该逻辑地址与闪存空间逻辑地址的映射条目。之后控制器向前端发出写操作完成信号。
当条带组装完成后,控制器将其写入固态闪存硬盘中。同时将新产生的条带信息添加到闪存条带信息表。然后控制器清除非易失性内存中该条带的内容,回收该条带所对应的内存空间。为提高控制器写入带宽,在非易失性内存当一个条带装配结束后可立刻装配下一个条带,而不必等到该条带完全写入闪存盘。
(3)固态闪存条带垃圾回收
注意到数据写入时,系统总是为该数据在一个新的条带中分配一个地址空间,通过更新闪存地址映射表使得前次写入该逻辑地址的数据失效,即从活动数据变为非活动数据。可通过一种固态闪存条带垃圾回收机制来回收固态闪存条带,如图7所示,具体操作如下:
(a) 当系统中空闲固态闪存条带数量随着写过程的进行减少到小于一个预先指定的门限值时,控制器启动固态闪存条带垃圾回收进程。
(b) 控制器首先按照写入的先后顺序确定一个最早写入的固态闪存条带作为回收对象。该过程可通过一个FIFO链表来实现。
(c) 根据条带信息表,找出该条带所有数据对应的用户空间逻辑地址;通过查找闪存地址映射表,取得各个数据块是活动数据或者非活动数据,若用户空间逻辑地址在闪存地址映射表中对应的闪存空间逻辑地址在该条带中,则数据块是活动的,否则是非活动的。
(d) 从该条带中读出活动数据,将其写入后端存储,完成后在闪存地址映射表中清除该数据块对应的逻辑地址条目。
(e)待所有活动数据写入后端存储完成后,该条带进入空闲条带池(可以是一个FIFO链表)供重复使用。一个条带回收完成后,进入步骤(b)执行下一个条带的回收。
本发明实施例的写缓存实现方法不同于传统 RAID机制中条带以数据为单位组织的构建形式,产生Read-Modify-Write操作,而是每次写数据时将数据重新组成一个新的带冗余的动态条带写入磁盘群,从而避免Read-Modify-Write操作,老的数据被标注成无效数据,并通过一个专门针对固态闪存写缓存应用而设计的垃圾回收算法进行空间回收,是一种大容量,高性能,高可靠性的写缓存实现方法,具有如下优点:(1)该方法利用非易失性内存缓存写入的数据并立即确认,缩短了写响应时间,提高读写性能;(2)该方法对缓存于非易失性内存中的写请求重新组织RAID条带,减少数据和校验码频繁更改给 Flash芯片带来的磨损,从而增加了 Flash的使用寿命;(3)该方法以全并行的方式写固态闪存硬盘,充分利用了 RAID的并行性,提高了性能。

Claims (7)

1.基于动态非覆盖RAID技术的固态闪存写缓存系统,其特征在于,
所述系统由多个固态闪存硬盘组成RAID,作为写缓存的数据存储空间,所述多个固态闪存硬盘分别与写缓存控制器数据连接;
所述控制器分别与前端IO请求设备以及后端存储设备数据连接,包括CPU和非易失性内存模块,用于接收前端读请求,从固态闪存硬盘或后端存储设备读取数据,以及接收前端写请求,将数据在非易失性内存模块中组装成RAID条带后以非覆盖方式写入固态闪存硬盘中新分配的条带,以及将固态闪存条带中的活动数据写入后端存储设备,实现固态闪存条带的回收;
所述非易失性内存模块中至少保存如下数据结构:
条带缓存,用于存储至少一个RAID条带;
闪存地址映射表,包括多个条目,每个条目记录用户空间逻辑地址到闪存空间逻辑地址的映射;
以及,条带信息表,包括多个条目,每个条目记录保存有活动数据的固态闪存条带到该条带上数据对应的用户空间逻辑地址序列的映射。
2.根据权利要求1所述的固态闪存写缓存系统,其特征在于,所述RAID为RAID5或RAID6。
3.一种如权利要求1或2所述的基于动态非覆盖RAID技术的固态闪存写缓存系统的写缓存方法,其特征在于,包括:
读请求的处理,结合非易失性内存中的闪存地址映射表进行地址判断和数据读取;
写请求的处理,通过在非易失性内存中进行RAID条带组装,更新闪存地址映射表,将组装好的条带写入固态闪存硬盘的一个新的条带,并更新非易失性内存中的条带信息表;
以及,固态闪存条带垃圾回收处理,在空闲固态闪存条带数量少于设定阈值时,将固态闪存条带中的活动数据写入后端存储,回收固态闪存条带。
4.根据权利要求3所述的基于动态非覆盖RAID技术的固态闪存写缓存系统的写缓存方法,其特征在于,所述读请求的处理步骤中,具体包括:
(11)控制器根据读请求中的用户空间逻辑地址,查找非易失性内存模块中的闪存地址映射表来确定写缓存中是否有所读数据,若有至步骤(12),否则至步骤(13);
(12)通过闪存地址映射表中用户空间逻辑地址对应的闪存空间逻辑地址,从固态闪存硬盘中读出数据返回给请求方,读请求处理结束;
(13)从后端存储中读取数据返回给请求方。
5.根据权利要求3所述的基于动态非覆盖RAID技术的固态闪存写缓存系统的写缓存方法,其特征在于,所述写请求的处理步骤中,具体包括:
(21)控制器首先将数据写到非易失性内存中的条带缓存单元的RAID条带,条带缓存单元中的一个RAID条带对应于固态闪存硬盘中的一个条带;
(22)控制器根据写请求中的用户空间逻辑地址,查找非易失性内存模块中的闪存地址映射表,若该用户空间逻辑地址存在,则更新该用户空间逻辑地址对应的所分配闪存空间逻辑地址,若不存在,则向表中增加新的映射条目;
(23)控制器向请求方发出写操作完成信号;
(24)控制器将组装好的RAID条带按闪存地址映射表的方式写入固态闪存硬盘;
(25)一个RAID条带写入固态闪存硬盘后,控制器更新条带信息表,并清除条带缓存单元中对应的条带内容。
6.根据权利要求3所述的基于动态非覆盖RAID技术的固态闪存写缓存系统的写缓存方法,其特征在于,所述固态闪存条带垃圾回收处理步骤中,具体包括:
(31)控制器判断空闲固态闪存条带数量是否小于预先指定的门限值,若小于则进入步骤(32);
(32)控制器按照条带写入的先后顺序,选择最早写入的一个条带作为回收对象;
(33)根据条带信息表,找出所回收条带上所有数据块对应的用户空间逻辑地址,根据用户空间逻辑地址查找闪存地址映射表,判断得到各个数据块是活动数据或者非活动数据;
(34)从所回收条带中读出所有活动数据,将其写入后端存储,写入完成后在闪存地址映射表中清除活动数据的数据块对应的用户空间逻辑地址条目;
(35)将所回收条带加入空闲条带池,进入步骤(32)执行下一个条带的回收。
7.根据权利要求6所述的基于动态非覆盖RAID技术的固态闪存写缓存系统的写缓存方法,其特征在于,分别通过FIFO链表实现已写入数据的固态闪存条带以及空闲固态闪存条带的管理。
CN201510197951.7A 2015-04-23 2015-04-23 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 Active CN104794070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510197951.7A CN104794070B (zh) 2015-04-23 2015-04-23 基于动态非覆盖raid技术的固态闪存写缓存系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510197951.7A CN104794070B (zh) 2015-04-23 2015-04-23 基于动态非覆盖raid技术的固态闪存写缓存系统及方法

Publications (2)

Publication Number Publication Date
CN104794070A CN104794070A (zh) 2015-07-22
CN104794070B true CN104794070B (zh) 2017-10-31

Family

ID=53558876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510197951.7A Active CN104794070B (zh) 2015-04-23 2015-04-23 基于动态非覆盖raid技术的固态闪存写缓存系统及方法

Country Status (1)

Country Link
CN (1) CN104794070B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469119B (zh) * 2015-08-10 2020-07-07 北京忆恒创源科技有限公司 一种基于nvdimm的数据写缓存方法及其装置
CN105630415B (zh) * 2015-12-24 2019-04-30 创新科软件技术(深圳)有限公司 一种raid5系统及在raid5系统失效后继续写数据的方法
US10185658B2 (en) * 2016-02-23 2019-01-22 Sandisk Technologies Llc Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes
CN107484427B (zh) 2016-04-07 2020-11-06 华为技术有限公司 用于处理存储设备中分条的方法和存储设备
CN113515471B (zh) 2016-06-14 2024-06-18 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和装置
US10289544B2 (en) * 2016-07-19 2019-05-14 Western Digital Technologies, Inc. Mapping tables for storage devices
CN106970765B (zh) * 2017-04-25 2020-07-17 杭州宏杉科技股份有限公司 数据存储方法及装置
CN109558333B (zh) * 2017-09-27 2024-04-05 北京忆恒创源科技股份有限公司 具有可变额外存储空间的固态存储设备命名空间
CN107807790B (zh) * 2017-10-13 2020-09-01 记忆科技(深圳)有限公司 一种固态硬盘数据写入的方法
US10877898B2 (en) * 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
WO2019127212A1 (zh) 2017-12-28 2019-07-04 华为技术有限公司 一种数据写入的方法及固态硬盘阵列
CN110209340B (zh) * 2018-02-28 2022-08-02 杭州宏杉科技股份有限公司 一种全闪存存储系统的访问方法及装置
CN108762668B (zh) * 2018-05-07 2021-03-09 杭州宏杉科技股份有限公司 一种处理写入冲突的方法及装置
WO2019222958A1 (en) * 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
CN108958656B (zh) * 2018-06-27 2021-01-08 北京计算机技术及应用研究所 基于raid5固态硬盘阵列的动态条带系统设计方法
CN109144896B (zh) * 2018-08-10 2022-09-27 暨南大学 一种基于mlc奇偶对称性的可感知型数据缓存管理方法
WO2020052216A1 (zh) * 2018-09-12 2020-03-19 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
CN110895513A (zh) 2018-09-12 2020-03-20 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
CN109857337B (zh) * 2018-12-10 2022-04-22 浪潮(北京)电子信息产业有限公司 一种写入速度控制方法、系统、装置及可读存储介质
CN113490922B (zh) * 2019-02-27 2023-07-18 华为技术有限公司 固态硬盘写放大优化方法
TWI710905B (zh) * 2019-05-06 2020-11-21 慧榮科技股份有限公司 資料儲存裝置及邏輯至物理位址映射表之載入方法
CN110413232A (zh) * 2019-07-22 2019-11-05 苏州浪潮智能科技有限公司 一种磁盘io加速的方法和装置
CN110968271B (zh) * 2019-11-25 2024-02-20 北京劲群科技有限公司 一种高性能数据存储方法、系统与装置
CN111399765B (zh) * 2019-12-31 2022-11-01 杭州海康威视系统技术有限公司 数据处理方法、装置、电子设备及可读存储介质
CN111273868A (zh) * 2020-01-19 2020-06-12 西安奥卡云数据科技有限公司 一种全闪存阵列垃圾回收减少写放大的方法
CN111562883B (zh) * 2020-04-26 2021-09-07 北京泽石科技有限公司 固态硬盘的缓存管理系统、方法、装置
CN111782146B (zh) * 2020-06-30 2023-10-13 深圳忆联信息系统有限公司 实现写缓存的方法、装置、计算机设备及存储介质
CN111897495B (zh) * 2020-07-28 2023-07-04 深圳忆联信息系统有限公司 提高ssd写性能的实现方法、装置、计算机设备及存储介质
CN112558876B (zh) * 2020-12-14 2022-03-18 杭州宏杉科技股份有限公司 Lun销毁方法及存储设备
CN112835520A (zh) * 2021-01-29 2021-05-25 深圳忆联信息系统有限公司 基于映射表动态加载的读请求处理方法及装置
CN117075824B (zh) * 2023-10-17 2024-02-02 苏州元脑智能科技有限公司 存储设备的控制方法、装置以及存储设备和硬盘阵列卡

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682012A (zh) * 2011-03-14 2012-09-19 成都市华为赛门铁克科技有限公司 一种文件系统内读写数据的方法及装置
CN104407813A (zh) * 2014-11-20 2015-03-11 上海宝存信息科技有限公司 一种基于固态存储介质的raid系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098445B2 (en) * 2013-03-14 2015-08-04 Apple Inc. Selection of redundant storage configuration based on available memory space

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682012A (zh) * 2011-03-14 2012-09-19 成都市华为赛门铁克科技有限公司 一种文件系统内读写数据的方法及装置
CN104407813A (zh) * 2014-11-20 2015-03-11 上海宝存信息科技有限公司 一种基于固态存储介质的raid系统及方法

Also Published As

Publication number Publication date
CN104794070A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
CN104794070B (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
US10126964B2 (en) Hardware based map acceleration using forward and reverse cache tables
US9304904B2 (en) Hierarchical flash translation layer
US8566505B2 (en) Flash management using sequential techniques
US9239781B2 (en) Storage control system with erase block mechanism and method of operation thereof
US10216578B2 (en) Data storage device for increasing lifetime and RAID system including the same
US7554855B2 (en) Hybrid solid-state memory system having volatile and non-volatile memory
US8417882B2 (en) Storage device and deduplication method
US8402205B2 (en) Multi-tiered metadata scheme for a data storage array
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
TW201923575A (zh) 運作中磁碟冗餘陣列同位計算
US20050015557A1 (en) Nonvolatile memory unit with specific cache
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
CN108121503A (zh) 一种NandFlash地址映射及块管理算法
CN107924291B (zh) 存储系统
US11520696B2 (en) Segregating map data among different die sets in a non-volatile memory
CN110442529B (zh) 可配置的存储器系统及配置和使用该存储器系统的方法
CN103226519A (zh) 冗余缓存数据的弹性缓存
US20100064095A1 (en) Flash memory system and operation method
US11714752B2 (en) Nonvolatile physical memory with DRAM cache
US11782788B2 (en) Error-correction-detection coding for hybrid memory module
JP5338859B2 (ja) 記憶装置および情報処理システム
US11726921B2 (en) Combined page footer for parallel metadata storage
US11334266B2 (en) Memory system and method for controlling nonvolatile memory
US11132140B1 (en) Processing map metadata updates to reduce client I/O variability and device time to ready (TTR)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant