前面已经介绍了基本的概念,本节将分析高阶RAID(RAID5及以上)技术的隐含的数学原理。
RAID5 基于条带将数据均分成多个数据块di,然后尝试建立这些数据块之间的联系,例如使用普通的加法:
为基于加法生成的校验块,这样,如果任意一个数据库损坏,都可以通过求解上述式子进行恢复。但在生产中,并不会采用此种方法。原因在于普通加法会产生进位,也就是说,校验块占用的存储空间一般会大于任意数据块所占用的存储空间。
所以,对于计算机而言,一般采用异或运算:
假设一块磁盘坏了(红色,原先正确数据为1,现在错误数据变为0),那么我们可以通过剩下的磁盘中的数据经过异或运算得到故障磁盘的原始数据
image.pngRAID6 或者更高阶的RAID原理上和RAID5类似,实际上是利用条带中 个数据块通过编码得到 个校验块(为允许同时故障的最大磁盘数目)。如果出现磁盘故障,通过编码的逆过程可以还原得到所有缺失的数据块,从而实现数据恢复。
image.png从数学上说,上述问题可以转换为更一般的描述形式,即:如何基于个可变输入,构造个等式,使得对应的元一次方程组有唯一解。1997 年,James S.Plank 将 引入存储系统,用于实现高阶RAID,对应的RAID技术也称为RS-RAID。简而言之,RS-RAID具体实现包括如下3个方面:
- 基于范德蒙德矩阵计算校验和
- 基于高斯消元法进行数据恢复
- 基于伽罗华域执行编解码过程中所要求的算数运算
TODO
参考资料
1、https://blog.csdn.net/shelldon/article/details/54144730
网友评论