RAID维护新方式-CRAID

根据前面的统计分析,存储系统的硬件故障90%以上是磁盘故障,而故障磁盘中,只有12%是完全的物理损坏,88%属于部分/完全可用。如果磁盘发生错误后立即被踢出阵列,一方面客户需要为100%的故障磁盘买单,另外一方面客户还需要承担故障磁盘被踢出阵列到被更换过程中其他磁盘再次故障所导致的数据丢失风险。ODSP存储软件平台在分层次、模块化设计的基础上,对多个层次上进行了磁盘错误处理,其目标是:“尽量尝试修复,尽可能减少踢盘”,以提高用户的投资回报率,提出基于Cell RAID同步和重建技术。


Cell,形象称之为“细胞”,指带“活性”的数据单元,是存储资源管理的基本单位。引入Cell的概念后,资源管理层次如下图所示,在具体的实现上,首先用物理磁盘创建RAID,然后把RAID的可用空间根据指定长度(默认1GB)划分为多个Cell,创建LUN时,系统自动分配空闲Cell,破除了LUNRAIDDisk之间的捆绑关系,使RAID的最小维护单位由原来的磁盘变成了更小更灵活的Cell,实现了完全的虚拟化存储架构。

CRAID基于Cell的重建功能


按照Cell维护健康状态,突破了传统RAID对可容忍的磁盘数目的限制。比如,传统的RAID5支持1块磁盘故障,第2块磁盘故障时,RAID失效,不能继续使用。在ODSP存储软件平台的实现中,只要磁盘出错区域不在同一个Cell内,RAID中的数据仍然可以访问,即RAID可容忍非同一个Cell内多个磁盘发生介质错误,在极端的情况下,可能出现RAID中所有的成员磁盘上都存在介质错误,但是数据仍然可以访问,提高了存储产品对硬盘的容错性以及业务连续性。同时,针对多个磁盘出错区域在同一个Cell内的情况,ODSP存储软件平台继承了物理的处理方式,即这些磁盘错误仅影响当前的Cell,其他Cell仍然可以继续访问,使得错误的影响范围降到最小。

快速重建

别于传统RAID先踢盘再重建的方式,CRAID的快速重建可只重建错误磁盘上的损坏数据块,未发生错误的区域直接使用拷贝方式将数据块复制到热备盘,重建完成后,再将错误磁盘转移至IDDC磁盘诊断中心处理,该方式可明显降低重建过程对RAID组性能造成的影响。

传统RAID组重建时,最消耗性能和时间的原因是需要调用所有磁盘进行异或校验。快速重建由于将全盘校验改成了按Cell校验+磁盘复制,其校验任务只有传统全盘重建的几百分一或千分之一,校验时间几乎可以忽略不记,而磁盘复制的速度可以达到磁盘读写的最大值。以1TBSATA磁盘为例,在15块盘的RAID中,全盘重建时间约30小时,而快速重建的时间差最快可以达到6小时。

局部重建

类似于快速重建,但不是重建热备盘,而是只对原盘的变化部分进行重建,使其同步。适用于磁盘未损坏,但发生过闪断或人为误操作,短时间内拔出又插回的情况。该方法可重建5分钟内磁盘不在位过程中所丢失的数据,重建时间短,极大降低RAID组受影响程度。

优化重建

仅重建被LUN使用的Cell,未使用的Cell不重建,如下图,仅重建Cell1234Cell56不需重建;


重建调度时,优先重建存在介质错误的Cell,然后再使用拷贝的方式重建其他Cell,以尽可能的避免该Cell所处的其它磁盘发生故障导致的Cell损坏;


支持多重重建,可同时重建多个故障磁盘,如一个RAID组中的两块磁盘所处的不同Cell存在坏块,可以两个Cell并发重建,提高重建总体效率。

全盘重建

与传统RAID组一样,适用于磁盘被拔走或者磁盘严重故障不能继续使用的情况使用。