RAID6数据恢复与数据结构分析
为了防止两块磁盘故障而引起的数据丢失,HDS TagmaStore存储系统现在支持RAID 6(6D + 2P)。和RAID 5相似的是,RAID 6采用了校验数据,和RAID 5不同的是RAID 6有两份检验数据,可以保证同一RAID组中两块磁盘同时故障而不丢失数据。
RAID 6(6D + 2P)原理
和RAID 5相似,RAID 6(6D + 2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上。在图1中,D0,D1,D2,D3,D4和D5是条带化的数据,P代表校验数据,Q是第二份校验数据。
RAID 6(6D + 2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上
RAID 6校验数据生成公式(P和Q):
P的生成用了异或
P = D0 XOR D1 XOR D2 XOR D3 XOR D4 XOR D5
Q的生成用了系数和异或
Q = A0*D0 XOR A0*D1 XOR A0*D2 XOR A0*D3 XOR A0*D4 XOR A0*D5
D0~D5:条带化数据
A0~A5:系数
XOR:异或
*:乘
在RAID 6中,当有1块磁盘出故障的时候,利用公式1恢复数据,这个过程是和RAID 5一样的。而当有2块磁盘同时出故障的时候,就需要同时用公式1和公式2来恢复数据了。
在图1中,各系数A0~A5是线性无关的系数,在D0,D1,D2,D3,D4,D5,P,Q中有两个未知数的情况下,也可以联列求解两个方程得出两个未知数的值。这样在一个RAID组中有两块磁盘同时坏的情况下,也可以恢复数据。
上面描述的是校验数据生成的算法。其实RAID 6的核心就是有两份检验数据,以保证两块磁盘同时出故障的时候,也能保障数据的安全。
数据分布
如图2所示,通过条带化,把应用数据和校验数据打散到一个RAID组的8个磁盘中,可以充分保证读写性能和数据的安全性。
RAID 6的数据分布
RAID 6可以保证同一个RAID组中两块磁盘故障的情况下的数据安全。
RAID 6的数据恢复
从1块磁盘故障中恢复数据
当有1块磁盘出故障的时候,利用公式1恢复数据,这个过程不需要Q这部分校验数据,如图3所示,这个过程是和RAID 5一样的。
在RAID 6(6D + 2P)中恢复D3数据,展示了存放D3数据的盘出现故障的恢复过程
公式:D3 = D0 XOR D1 XOR D2 XOR P XOR D4 XOR D5
从2块磁盘故障中恢复数据
当同时有2块磁盘故障的时候,需要同时用到公式1和公式2来恢复数据,如图4所示。
在RAID 6(6D + 2P)中恢复D3和D4数据,展示了存放D3和D4数据的盘出现故障的恢复过程
公式1和公式2:
P = D0 XOR D1 XOR D2 XOR D3 XOR D4 XOR D5
Q = A0*D0 XOR A0*D1 XOR A0*D2 XOR A0*D3 XOR A0*D4 XOR A0*D5
D3和D4由解以上两个联立的方程得出结果,从而实现RAID6数据的重建工作。
总结
以上可以看出RAID6是较RAID5更加安全的一种磁盘阵列RAID类型级别,RAID5损坏一块盘的情况下可以正常工作,而RAID6在损坏2块盘的情况下还可以正常工作,因此,RAID6技术将来会取代RAID6,流行于磁盘存储的领域中。
北京服务器数据恢复工程师浅谈Raid 6级别的结构 www.jdcok.com/anli/5/1258.html