随着电子元器件集成度的不断提高,基于NAND Flash的SSD的容量也不断增大,fusionIO公司最新产品ioDrive Octal单盘容量已达5.12 GB,提供6GBps的I/O带宽,当前的SSD已不仅仅局限在嵌入式领域,在大型存储服务器和数据中心中也得到逐步应用,Google、百度等相继宣布在他们的数据中心中使用了SSD作为外部存储设备,圣地亚哥的超级计算中心(SDSC)在其“Gordon”系统中使用的SSD阵列的容量已经达到256TB。
SSD内部的组织结构如图1所示,为了提高固态盘的性能和可靠性,通常基于闪存芯片构建RAID系统来达到这个目的,在一般的SSD中,由于成本所限,通常采用RAIDO结构以增大SSD内部闪存芯片之间的并行度;而对于可靠性要求较高的场合,通常采用RAID5结构,比如IBM的DS6700,在单盘SSD中采用RAID5以增强单个SSD的可靠性,同时,它还采用比一般Flash MLC颗粒有更高可靠性的增强型NAND Flash;在硬件上采用能纠错较多位的ECC芯片;盘与盘之间也采用类似RAID5的结构等一系列技术来增强系统的可靠性。
图1 SSD的组织结构图
从图1可以看出,闪存控制器与每块闪存芯片之间都有数据通路,直接控制对每块芯片的访问,这种方式能最大程度地发挥闪存芯片间的并行性,但是由于所有的访问都要通过控制器,所以控制器会成为整个系统的瓶颈,针对这个问题,我们提出了一种面向大容量高性能SSD的多层RAID结构,称为MuLe—RAID(Multiple Level RAID),将闪存芯片分成若干个组(Part),设置多个控制器,组内由底层闪存控制器管理,该控制器对组内所有的闪存单元进行控制,除了实现RAIDo以外,主要还要实现FTL功能,包括地址映射、垃圾回收、损耗均衡等,由于每组中的闪存芯片数有限,所以该控制器的管理不会太复杂,组与组之间由上层控制器管理,我们在该控制器中设计并实现了RAID-Wear算法,RAInWear是一种可以容忍一个组失效的RAID算法,类似RAID5,但是又与传统的RAID5不同,因为闪存有使用寿命限制,在组内已经有损耗均衡算法来保证组内块与块之间的损耗均衡,而组之问的损耗均衡无法保证,RAID-Wear对校验数据(parity)分配时既不像RAID4分配到一个盘上也不像RAID5均匀地分配到各个盘上,而是根据损耗程度采用动态的校验数据分配策略,盘的损耗程度由该盘上所有块的平均擦除次数来衡量,因为每次对数据的更新都会导致相对的检验信息的重写,校验数据比一般的数据信息要承受更多的写操作,基于此,将损耗越重的组分配越少的校验数据,损耗越轻的组分配越多的校验数据可以达到损耗均衡的目的,由于各组的损耗状况从一定程度上反映了该组写负载的情况,RAID-Wear这种基于损耗程度分配检验信息的方式也起到了一定的负载均衡效果。
1 相关工作
基于闪存的RAID系统的构建模式有两种:一种是基于SSD的RAID系统;另一种是基于闪存芯片的RAID系统。
Mao等人提出的HPDA结构是一种SSD与HDD混合的异构RAID结构,并增加日志机构的磁盘来缓存写请求的Work Out技术,相比完全采用SSD的RAID系统,HPDA不仅节约了成本,还改善了整个RAID系统的性能,但是这种结构仍然无法克服RAID4检验盘容易成为系统瓶颈的缺点,Kadav等人提出了基于SSD的一种新的RAID算法:DifbRAID,它根据各块SSD的损耗程度决定校验数据分配,避免所有盘达到较高损耗程度时而导致较高关联错误发生的概率,但是会导致校验数据分配变化时造成大量的数据迁移,并且这种加剧损耗差异的方法并不适用SSD内部基于闪存芯片构建RAID系统,因为SSD损坏后还可以替换,而闪存芯片一旦损坏后只能进行标记而无法替换。
基于闪存芯片的RAID系统也有很多研究。Lee等人提出了FRA(Flash-aware RedundancyArray)方法,由于校验码的更新延迟是写请求延迟中的主要部分,所以FRA方法将数据写和校验码写两部分分开,当写请求到达时,先将要写入的数据写入到要写入的位置,等到系统空闲时再将校验码写入,Chang等人提出了一种自平衡的条带化策略SBSS,该策略利用冗余分配和请求调度算法来实现各个Bank之间的负载平衡,可以大大减少读延迟,Soojun等人提出了一种基于闪存芯片的RAID策略以构造高性能高可靠的SSD,它每次更新数据时延迟更新检验信息,这样多次数据更新只用一次校验数据的更新,减少了校验数据频繁更新的开销,但是这种策略只是在数据更新的I/O过程中进行优化,并没有对算法本身进行改进。
2 MuLe-RAID设计
基于磁盘系统的传统RAID策略可以直接用来构建基于闪存芯片的RAID存储系统,但是无论采用哪种方式,闪存控制器需要管理所有的闪存芯片,一旦芯片数目增多后会导致闪存控制器成为瓶颈,而且闪存转换层管理的芯片数目变多后,各个模块包括地址映射、垃圾回收、损耗均衡等的复杂性都变高,针对这个问题,我们提出了基于闪存芯片的层次化RAID系统——MuLe_RAID。
2.1体系结构设计
MuLe-RAID的体系结构如图2所示,将控制器分布式地从上至下划分为第1层和第2层,闪存芯片分成若干个组,称为Part,Part内部的闪存芯片由底层闪存控制器管理,连接并控制各个Part的控制器为上层RAID控制器,该层控制器的管理单元是Part,各Part类似于传统磁盘阵列系统中独立的磁盘,分布式的控制器结构减轻了单一RAID控制器的瓶颈作用,增宽了数据通路,有效提高了整个系统的性能。
图2 MuLe-RAID的体系结构
底层的控制器与一个普通SSD中的闪存控制器几乎没什么区别,需要实现完整的闪存转换层(FTL),包括地址映射、垃圾回收、损耗均衡等重要模块,为了支持并行,该控制器还需要实现RAID功能,为降低管理的复杂度,一般不用有冗余的RAID策略,通常采用RAID0即可,在上层的RAID控制器中,为了增强可靠性,采用带有冗余的RAID策略,最先想到的自然是RAID5,RAID5检验数据完全均匀地分配在各个盘上,是否可以让各个盘之间损耗均衡呢,我们在SSD模拟器上““实现了软RAID5,运行不同的trace,然后查看各个SSD上的损耗状况,如图3所示,从图3我们可以看出,在某些trace下,由于访问某些数据过于集中,RAID5也不能保证各个设备之间的损耗均衡,甚至有时还会有较大差异。
图3采用RAlD5机制的块擦除次数
为了使各个Part之间损耗均衡,我们在上层RAID控制器中采用基于损耗进行检验信息分配的RAID算法,称为RAID-Wear,它与RAID-5的区别是,它的校验数据不是在各个Part之间完全平均地分配,而是由各个Part的损耗程度来决定分配比例,具体如何计算分配比例会在2,2节介绍。
2.2 RAID-Wear数据布局
RAID-Wear如果采用Round robin的布局方式,其布局方式如图4所示,将SSD中的所有闪存芯片分成N组,用组中所有芯片的平均擦除次数an代表该组的损耗程度,用一个互质N元组(a1,a2,...,an)来代表各组损耗程度的比例关系,用该N元组的方差s来衡量组与组之间的损耗差异,我们为差异设定一个临界值CA,当S>CA时,调用校验数据重分配策略,根据损耗情况制定新的校验数据
图4 RAID-Wear的Round—robin布局
分配比例,各个盘上分配的检验信息比例关系同样用一个N元组(P1,P2,...,Pn)来表示,计算(P1,P2,...,Pn)的过程如下:1)将a1,a2,...,an。按照降序排列;2)Pk(0<k≤n)等于前一步排序好的第k个年龄值的倒数。
我们通过图4的演变过程来简单说明RAIDWear动态检验数据分配策略,最开始所有设备都是新的,所以损耗程度比为(1,1,1,1),如图4(a)所示,根据上一段所说的检验信息分配比例的计算方法,可以得到校验数据分配的比例也为(1,1,1,1),运行一段时间后,各个Part之间的损耗程度已经出现差异,假设各个Part之问的年龄比为(3,3,3,1),计算其方差为3,假设该值已经超出了我们设定的临界值,那么检验信息需要重分布,图3(b)给出了根据(3,3,3,1)计算出的新的检验信息分配比例为(1,1,1,3),又经过一段时间的运行,各个Part之间的年龄比为(2,2,1,1),计算其方差为1,与上一次相比,年龄差异已经缩小,假设该值仍然超过我们设定的临界值,图4(c)给出了根据该年龄比计算出的新的检验信息比的数据布局。
图4的数据布局采用的是传统RAID的Roundrobin布局,这种数据布局方式的好处是寻址容易,但是一旦校验数据的比例发生变化,需要大量的数据迁移,会严重影响系统的性能,图5给出了改进的数据布局方式,采用这种新的数据布局方式后,每次检验信息重分布时,只用交换部分数据与校验数据所在盘的位置即可,迁移数据量大大减少,采用这种布局方式的校验数据分布过程如下所示:
图5 RAIDWear的改进型数据布局
1)计算区域值,区域值是指上一次计算的区域值与本次制定的检验信息分配比例N元组中各个元素之和的最小公倍数,第1个区域值等于最开始给出的检验信息分配比例N元组中各个元素的和,从图4(a)到图4(b),我们可以计算出区域值为12,它等于(1,1,1,1)之和与(1,1,1,3)之和的最小公倍数。
2)按照区域值放大检验信息分配比例N元组中各元素的值使得个元素之和等于区域值,所以图4(a)中(1,1,1,1)变为图5(a)中的(3,3,3,3),图4(b)中的(1,l,1,3)变为图5(b)中的(2,2,2,6)。
3)按照新的检验信息分配比例在每个区域中交换普通数据与校验数据。
2.3寻址方式管理
实现MuLe—RAID的关键在于在上层RAID控制器中实现RAInwear的逻辑地址到物理地址的映射,由于RAID-Wear算法采用的是动态检验信息分布,在不同的时间段有不同的校验数据比例,如果采用图3的数据布局方式,寻址函数(这里的寻址都是指检验数据重分布完成以后对访问数据的寻址)如下所示:
3 实验评测
在实验部分,我们比较并分析了MuLe—RAID和其他RAID系统的性能和损耗均衡,我们构建了一个SSD的模拟器,在软件层实现了MuLe—RAID和其他RAID策略,并且通过调整参数可以调整RAID的组织结构,比如MuLe-RAID中的Part数,每个Part中的芯片数等,我们的trace来源于这些trace是从PC机和商用服务器的真实应用环境中搜集得到的,将trace运行在不同RAID策略下的模拟器上,得到不同RAID策略的吞吐率,运行完trace后,通过查看SSD模拟器上各块的擦除次数可以计算出损耗差异水平以此衡量不同RAID策略的损耗均衡效果。
3.1性能评测
通过运行不同的trace,测试各种RAID策略下的吞吐率,我们比较了不同RAID策略的性能,如图6所示,图6中的RAID0和RAID5是传统的RAID策略,RAID0+RAID5表示的是层次化RAlD策略,与MuLe—RAID的区别是上层RAID控制器采用RAID5,而不是RAID-Wear算法。
图6 不同RAID策略的性能比较
通过图6可以看出,在闪存系统的规模比较小时,单层RAID结构——RAIDo和RAID5——的性能有较大优势,吞吐量几乎可以比层次化结构高出一倍,但是随着存储规模的增大,单层的RAID系统由于需要管理的闪存数目太多,单一的控制器很容易成为瓶颈,所以采用了层次化RAID的策略一RAID0+RAID5和MuLe—RAID的性能逐步超过单层RAID,特别是当闪存块数达到64时,单层RAID的性能几乎已经不再提升,而层次化RAID策略的性能却还是能有显著增高,图6还可以反映出RAID5的性能通常要比RAID0要差,这是由于RAID5有冗余来提高可靠性,而RAID0的所有闪存都用作数据盘来并行提高性能,MuLe-RAID由于在RAID-Wear需要进行检验数据的重分布,会产生额外开销,所以性能相比RAID0+RAI口5要低一些,但是其在一定程度上,起到了负载均衡的效果,所以在某些trace下,低的并不多。
3.2损耗均衡评测
在运行完不同的trace后,我们查看了各个块的损耗情况,计算出不同策略在不同闪存系统规模下的损耗程度标准差,如图7所示,图7中的纵坐标表示所有闪存块数损耗值的标准差,用该标准差的值可以衡量损耗是否均衡,标准差越大说明损耗越不均衡,越小说明损耗越均衡。
图7 不同RAID策略的损耗均衡效果比
通过图7可以看出单层RAID策略,即RAID-0和RAID-5的损耗效果最好,因为它们带有块级别的损耗均衡机制,对所有闪存芯片上的块进行损耗均衡,层次化RAID策略,即RAIDo+RAID-5和MuLe—RAID底层闪存控制器都采用了块级别的损耗均衡,而RAID-0+RAID-5的Part级别没有损耗均衡机制,只是简单地对检验信息进行平均分配,在某些应用下,由于某些Part的检验信息频繁更新,所以损耗均衡的效果较差,特别当闪存规模增大时,这种不均衡的情况会更加明显,如图6(c)(d)所示,但是MuLe—RAID在上层RAlD控制器中采用了基于损耗进行检验信息分配的RAID-Wear策略,所以损耗均衡的效果即使随着存储规模的增大也不会有太大的变化,基本可以达到单层RAlD策略的块级别损耗均衡效果。
综合图6、图7以及上面的分析可以看出,在大容量SSD中,层次化RAID策略的性能比单层RAID策略高很多,但是如果单纯的只是将RAID-0和RAID-5综合起来,损耗均衡的效果在一些应用中表现得不够理想,而将RAID-0和RAID-Wear综合起来的MuLe—RAID策略几乎能达到采用单层RAID策略的损耗均衡效果,但是性能却是多层RAID策略的性能——几乎与RAID-0+RAID-5策略持平,比典型单层RAID策略高出30%左右。
4 结束语
本文面向高容量SSD,提出了一种基于闪存芯片的层次化RAID——MuLe—RAID,采用多控制器设置,并在控制器中实现了不同的RAID算法和损耗均衡策略,减轻了单层RAID结构的控制器瓶颈,使性能有了显著提高。
我们已经有了大容量SSD的原型系统——P3Stor,下阶段的工作有两个方向:一是将MuLe-RAID添加并实现到现有的SSD原型系统中;另一个方向是研究基于SSD的RAID算法,并直接通过原型系统进行验证。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/