在基于闪存的存储系统中构建RAID的方法及系统技术方案

技术编号:13252437 阅读:108 留言:0更新日期:2016-05-15 15:43
一种构建有RAID的基于闪存的存储系统,包括:一个或多个RAID处理器和多个闪存,其中,RAID处理器包括多个读写处理单元、数据块指针单元、数据块计数器、奇偶校验码缓存器,一个读写处理单元可以控制一个或多个闪存单元。一种在基于闪存的存储系统中构建RAID的方法,能够在非常小的逻辑面积和近似忽略不计的时间内实现RAID功能,使得如企业级SSD的存储系统的功能和性能实现统一。

【技术实现步骤摘要】
【国外来华专利技术】在基于闪存的存储系统中构建RAID的方法及系统
本专利技术涉及一种在基于闪存的存储系统中构建RAID的方法,以及应用该方法的系统。
技术介绍
基于闪存(NANDFlash)的数据存储技术在过去十几年发展迅速,在很多应用中逐渐取代了传统的磁记录硬盘(harddiskdrive,HDD)。主要原因有:速度快:基于闪存的数据存储不象传统HDD依靠磁头机械寻址,从而在数据读写速度上有本质性的提高,满足了应用对数据存储吞吐速度的日趋严格的需求。价格下降:随着半导体技术的进步,闪存的容量也随着摩尔定律每不到两年增加一倍,单位容量价格也随着下降。目前MLC的闪存每GB的价格已从5年前的$10USD/GB降至现在的低于$1USD/GB。控制器技术进步:闪存需要匹配的控制器(controller)才能与主机(host)通信实现数据存储读写。控制器技术的成熟促进了基于闪存的固态存储技术在越来越多的领域找到相应的应用,包括在高端的数据中心及移动智能电话中的应用。闪存控制器是固态硬盘(SSD)系统中最核心的部分,它的性能及功能直接决定了该SSD的性能和功能,也是消费类SSD与企业级SSD最本质的区别。由于数据保护的要求,冗余校验码(RAID)的计算和写入是企业级应用所必备的。由于闪存的价格较高,镜像等RAID方法(即RAID-1)在通常应用环境下不可接受。通常在SSD中使用的方法是RAID5,即n个数据块产生1个校验块(n>>2)。如果数据为D0,D1,…,Dn的话,奇偶校验码即为D0,D1,…,Dn的异或P=D0^D1^...^Dn。本专利技术将以RAID5的数据结构为例子。需要指出的是该方法与系统也可以应用于其它RAID的结构,如RAID6。闪存的一大特性是其不可重写性:保存在闪存中的一页(page)数据必需要经过其页面所在的整个块(block)擦除之后才可以写入新的数据。这对闪存转换层(FTL)带来了挑战,但对RAID带来了机遇,RAID的附加写放大不再存在。在SSD中实现动态RAID的方法在中国专利申请201210256754.4“基于非易失性存储器的动态独立冗余阵列存储系统及方法”中有详尽描述。SSD下的RAID5数据结构如图1所示,数据块D0,D1,D2,D3组成一个RAID数据带,D0,D1,D2,D3异或后产生奇偶校验码D4。在通常情况下,D0,D1,D2,D3和D4分别存储在不同的闪存单元,既LUN(logicUnitNumber)中,以确保在任何一个闪存LUN失效的情况下数据能通过异或操作进行恢复。当前,市场上的SSD主要分为两种,一种是通常不带RAID5功能的消费类的SSD;另一种是包含RAID5功能的企业级SSD,但其在读写混合下性能不尽如人意。为了达到高性能,需要使用完全为闪存控制量身定做的大规模并行多核多线程控制器,对每一块闪存芯片(LUN)做独立并行操作。RAID5计算和写入要考虑如下因素:从主机传来的数据是乱序的,后发的指令可能先执行;从主机传来的数据是交织的,一个数据块没有传完,另一个数据块已开始传送,并部分先期到达;奇偶校验码的写入是异步的:充任校验设备的闪存需要写入的时候校验码未必准备好,校验码准备好时控制此闪存的读写处理单元未必准备就绪;不同应用下对RAID5的宽度(既组成一个RAID数据带的数据块的数量,或者闪存LUN的数量)不同;一个读写处理单元可能控制多个闪存芯片,带来更多死锁的可能,从而加大了调度的难度。本专利技术所要解决的技术问题包括:如何降低RAID5计算所造成的性能代价,以达到如SSD的存储系统的高性能要求;如何减少RAID5的逻辑面积,以适应如SSD的存储系统的控制单元的小型化。技术方案本专利技术提供一种在基于闪存的存储系统中构建RAID5的方法,能够在非常小的逻辑面积和近似忽略不计的时间内实现RAID5功能,使得如企业级SSD的存储系统的功能和性能实现统一,所述方法包括:将校验码编程指令提交给RAID处理器,由RAID处理器的读写处理单元读取当前数据带中的部分数据块,设置数据块指针,分别对应于每个闪存单元,记录当前数据块的输入位置,将读写处理单元读取的数据块部分根据当前数据块指针的位置计算奇偶校验码,并将结果写回奇偶校验码缓存器,数据块指针增加输入部分数据块的长度值,在对应于一个闪存单元的所有数据块处理完成之后,即数据块指针回绕归零时,数据块处理完成数量加一,当所记录的数据块处理完成数量达到RAID数据带所包含的数据块数量之和时,奇偶校验码缓存器内的数据被写入相应的闪存单元,当所有校验码被取走后,校验码缓存器清零,开始下一个RAID数据带的计算,直到数据处理完毕。此外,校验码的编程指令必须在当前RAID数据带的所有数据编程指令提交之后,下一RAID数据带的数据编程指令之前发出。进一步,在每一输入的部分数据块内加入了一个标签,标明处理该数据块的读写处理单元、该数据块所面向的RAID处理器、该数据块所属的RAID数据带。还有,RAID处理器向所有的读写处理单元广播一个短消息,用来防止读写处理单元跨越RAID数据带,短消息包含如下信息:当前此RAID处理器所允许读写处理单元读的数据带号;当前此RAID处理器的校验码是否可以被读出。一个读写处理单元可以控制多个闪存单元,当读写处理单元发现下一个操作暂时为非法操作时,切换到其他线程,对另一闪存单元芯片操作。本专利技术还提供一种构建有RAID5的基于闪存的存储系统,所述系统包括:一个或多个RAID处理器和多个闪存单元,其中,RAID处理器包括多个读写处理单元、数据块指针单元、数据块计数器、奇偶校验码缓存器,一个读写处理单元控制一个或多个闪存单元,将校验码的编程指令提交给RAID处理器,指令提交由源至于主机的驱动发起,或是由固件发起,读写处理单元读取当前数据带中的数据块,数据块指针单元用于分别对每个闪存记录当前数据块的输入位置,数据块计数器用于对所处理的数据块数量进行记数,奇偶校验码缓存器用于缓存奇偶校验码,读写处理单元读取相应部分数据块,根据当前数据指针的位置与奇偶校验码缓存器内的数据进行奇偶校验码的计算操作,并将结果写回奇偶校验码缓存器,当计算操作完成后,数据块指针单元为数据块指针增加输入数据的长度值,移动对应的数据块指针,数据块计数器在对应于一个闪存单元的数据块处理完成之后,即数据块指针回绕归零时,加一,当数据块计数器所记录的数据块数量达到RAID数据带所包含的数据块数量时,奇偶校验码缓存器内的数据被写入相应的闪存单元,当所有校验码被取走后,缓存器清零,开始下一个RAID数据带的计算,直到数据处理完毕。此外,所述RAID处理器还包括RAID短消息单元,用于向所有的读写处理单元广播一个短消息,用来防止读写处理单元跨越RAID数据带,短消息包含如下信息:当前此RAID处理器所允许读写处理单元读的数据带号;当前此RAID处理器的校验码是否可以被读出。一个读写处理单元可以控制多个闪存单元,当读写处理单元发现下一个操作暂时为非法操作时,切换到其他线程,对另一闪存单元芯片操作。还有,校验码的编程指令必须在当前RAID数据带的所有数据编程指令提交之后,下一RAID数据带的数据编程指令之前发出。本专利技术通过锁和消息传递对线程之间和读写本文档来自技高网...
在基于闪存的存储系统中构建RAID的方法及系统

【技术保护点】
PCT国内申请,权利要求书已公开。

【技术特征摘要】
【国外来华专利技术】1.一种在基于闪存的存储系统中构建RAID的方法,包括:将校验码编程指令提交给RAID处理器,由RAID处理器的读写处理单元读取当前数据带中的部分数据块,设置数据块指针,分别对应于每个闪存单元,记录当前数据块的输入位置,将读写处理单元读取的部分数据块根据当前数据块指针的位置计算奇偶校验码,并将结果写回奇偶校验码缓存器相应的位置,数据块指针增加输入部分数据块的长度值,在对应于一个闪存单元的所有数据块处理完成之后,即数据块指针回绕归零时,数据块处理完成数量加一,当所记录的数据块处理完成数量达到RAID数据带所包含的数据块数量之和时,奇偶校验码缓存器内的数据被写入相应的闪存单元,当所有校验码被取走后,校验码缓存器清零,开始下一个RAID数据带的计算,直到数据处理完毕。2.如权利要求1所述的方法,其特征在于:校验码的编程指令必须在当前RAID数据带的所有数据编程指令提交之后,下一RAID数据带的数据编程指令之前发出。3.如权利要求1所述的方法,其特征在于:在每一输入的部分数据块内加入了一个标签,标明处理该数据块的读写处理单元、该数据块所面向的RAID处理器、该数据块所属的RAID数据带。4.如权利要求1所述的方法,其特征在于:RAID处理器向所有的读写处理单元广播一个短消息,用来防止读写处理单元跨越RAID数据带,短消息包含如下信息:当前此RAID处理器所允许读写处理单元读的数据带号;当前此RAID处理器的校验码是否可以被读出。5.如权利要求4所述的方法,其特征在于:一个读写处理单元可以控制多个闪存单元,当读写处理单元发现下一个操作暂时为非法操作时,切换到其他线程,对另一闪存单元芯片操作。6.一种构建有RAID的基于闪存的存储系统,所述系统包括:一个或多个RAID处理器和多个闪存单元,其中,RAI...

【专利技术属性】
技术研发人员:周溱阳学仕
申请(专利权)人:上海宝存信息科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1