一种SSD中RAID的实现方法与流程

文档序号:16246137发布日期:2018-12-11 23:36阅读:1121来源:国知局
一种SSD中RAID的实现方法与流程

本发明涉及ssd相关技术领域,尤其是指一种ssd中raid的实现方法。

背景技术

ssd(solidstatedisk)固态硬盘是一种主要以闪存作为非易失性存储器的数据存储设备。随着nand技术发展,固态硬盘每gb的成本正在下降,在数据中心以及个人电脑上都开始大批替代hdd。

nandflash有单层式存储(slc)、多层式存储(mlc)、三层式存储(tlc)以及四层式存储(qlc)。3dnand技术使得ssd的存储密度得到快速的提高。tlc/qlc的错误率很高,需要使用先进的ecc算法来进行纠错。

raid(redundantarrayofindependentdisks),独立冗余磁盘阵列是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。

ssd系统由一个或多个通道组成,每个通道可以连接多个闪存颗粒,每个颗粒内部又可以按照target、lun、plane等来进行划分,因此可以在ssd系统内部创建raid来保护数据,提高可靠性。已有的专利使用固定的物理地址来创建raid,有以下问题:

读写性能和延迟,当固定物理地址中出现坏块时,raid组需要跳过坏块,导致读写性能出现降低,性能不够稳定,以及延迟增加。

系统隔离性,如果将ssd划分为多个nvm集和,固定物理地址创建raid,导致nvm组之间会相互影响,失去隔离性的特性。



技术实现要素:

本发明是为了克服现有技术中存在上述的不足,提供了一种性能稳定高的ssd中raid的实现方法。

为了实现上述目的,本发明采用以下技术方案:

一种ssd中raid的实现方法,每片nandflash颗粒包含一个或多个target,每个target中包含一个或多个die,每个die中包含一定数量的块,每个块中包含一定数量的页,其中块为nandflash擦除操作的最小单元,页为nandflash读写操作的最小单元,实现方法包括如下两个方面:

(1)logicblock重映射:将当前使用的block编号和实际的物理block隔离,在二者加之间建立一个映射表,当实际物理块发生错误的时候,用nand的冗余保护空间获取新的block,用以替换出错的block,替换之后的新的block的逻辑编号没有发生变化;

(2)raid组的选择:在选择raid组的时候,将没有强相关性的block做raid处理;在nvmset内部做raid处理,以实现不同nvmset之间的i/o隔离。

ssd中nvm的erase单位为block,读写的单位为page/sub-page,一个block包括多个page,将nvm颗粒(ce),target,lun统一用lun来处理。把block抽象为logicblock,将物理block中的badblock剔除后重新编号,或使用好的block进行重新映射,形成logicblock。把nvm集合中的多个logicblock组合在一起,形成raidlogicblock,raidlogicblock中的logicblock可以来自一个或多个通道,一个或多个lun,一个或多个plane。也可以从一个通道/lun/plane下面选择多个logicblock。raidlogicblock中相同位置的page为raidpage,一个或多个raidpage组合在一起,形成raidlogicpage。其中raidlogicpage中包含的多个raidpage可以是物理上连续的page,也可以是非连续的page。raidlogicpage做为raid的基本单元,即raid条带(stripe)。利用badblock映射关系表降低raid复杂度,提供稳定的读写性能;使用灵活的raid关系组实现i/o隔离。

作为优选,在步骤(2)中,raid处理为:在ssd磁盘的不同通道之间做raid保护,增加单通道失效的保护能力。

作为优选,在步骤(2)中,raid处理为:引入一种灵活配置raid关系的运算部件,通过软件灵活控制参与raid的原始数据和raid的parity所在的位置,从而可以实现不同维度、不同冗余比的raid。

作为优选,在步骤(2)中,raid处理为:在同一个die内部,nand芯片有多个plane,他们之间用raid保护起来。

作为优选,在步骤(2)中,raid处理为:在ssd磁盘的不同nvmset内部独立做raid保护,实现nvmset之间的i/o隔离。

本发明的有益效果是:利用badblock映射关系表降低raid复杂度,提供稳定的读写性能;使用灵活的raid关系组实现i/o隔离。

附图说明

图1是本发明logicblock重映射的示意图;

图2、图3、图4、图5是本发明raid组选择的示意图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步的描述。

一种ssd中raid的实现方法,在以nandflash为存储介质的ssd盘片中,为了提高对存储介质的访问带宽都会将nandflash访问控制器设计为支持一定数量的nandflash通道,并在每个通道上挂接一定数量的nandflash颗粒,从而提高盘片对nandflash的访问并发度;由nandflash颗粒物理组织结构可知:每片nandflash颗粒包含一个或多个target(nandflash颗粒中可通过一个芯片使能(chipenable)信号进行访问的单元),每个target中包含一个或多个die(logicalunit,nandflash颗粒中可独立执行命令并上报命令执行状态的最小单元),每个die中包含一定数量的块,每个块中包含一定数量的页,其中块为nandflash擦除操作的最小单元,页为nandflash读写操作的最小单元;此外,对每个die中的块按照序号划分为不同的plane,plane为nandflash颗粒可执行相同命令的最细粒度并发单元,实现方法包括如下两个方面:

(1)logicblock重映射:将当前使用的block编号和实际的物理block隔离,在二者加之间建立一个映射表,如下表所示:

当实际物理块发生错误的时候,用nand的冗余保护空间获取新的block,用以替换出错的block,替换之后的新的block的逻辑编号没有发生变化,所以raid操作并不感知这种变化,从而降低了raid操作的难度;

如图1所示,在原有raid关系中如果没有块替换,那么需要将原raid关系中出错的block全部剔除,从而导致raid关系不确定。而替换之后,所有的block都是有效的block,所以可以保持原有的raid关系,这样在处理raid的时候不同再考虑block出错的影响。

(2)raid组的选择:在选择raid组的时候,将没有强相关性的block做raid处理;在nvmset内部做raid处理,以实现不同nvmset之间的i/o隔离。

如图2所示,raid处理为:在ssd磁盘的不同通道之间做raid保护,增加单通道失效的保护能力。

如图3所示,raid处理为:引入一种灵活配置raid关系的运算部件,通过软件灵活控制参与raid的原始数据和raid的parity所在的位置,从而可以实现不同维度、不同冗余比的raid。在不同的die(lun)之间做raid保护,同一通道下的多个die之间也可以保护,相比于第一种可以用更少的raid开销。

如图4所示,raid处理为:在同一个die内部,nand芯片有多个plane,他们之间用raid保护起来。

如图5所示,raid处理为:在ssd磁盘的不同nvmset内部独立做raid保护,实现nvmset之间的i/o隔离。

ssd中nvm的erase单位为block,读写的单位为page/sub-page,一个block包括多个page,将nvm颗粒(ce),target,lun统一用lun来处理。把block抽象为logicblock,将物理block中的badblock剔除后重新编号,或使用好的block进行重新映射,形成logicblock。把nvm集合中的多个logicblock组合在一起,形成raidlogicblock,raidlogicblock中的logicblock可以来自一个或多个通道,一个或多个lun,一个或多个plane。也可以从一个通道/lun/plane下面选择多个logicblock。raidlogicblock中相同位置的page为raidpage,一个或多个raidpage组合在一起,形成raidlogicpage。其中raidlogicpage中包含的多个raidpage可以是物理上连续的page,也可以是非连续的page。raidlogicpage做为raid的基本单元,即raid条带(stripe)。利用badblock映射关系表降低raid复杂度,提供稳定的读写性能;使用灵活的raid关系组实现i/o隔离。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1