Raid5磁盘阵列知识

来源:互联网 发布:知乎如何调整字的大小 编辑:程序博客网 时间:2024/04/29 07:33

磁盘阵列RAID5原理RAID5是利用奇偶校验算法对磁盘阵列数据进行冗余,允许在一块盘出现故障的情况下保证数据安全。即保证了阵列的读写效率,又可以节约企业成本。奇偶校验算法原理:A值 B值 Xor结果 0 0 0 1 0 1 0 1 1 1 1 0 通过观察可以看出,奇偶校验可以保证数据运算后位数不变,而且参加运算中的任何一个数都可以由其他数字异或产生,这是RAID5数据恢复基本原理。RAID5的奇偶校验信息是在磁盘上交叉存放的。

RAID5是带有分布式奇偶校验位的块级别条带卷,需要3块及以上个磁盘,RAID5具有很高的读性能,但是写性能则一般,因为在数据写入的过程中要进行奇偶校验运算并将校验码写到磁盘中。


有四种分布方式:

1、向左对称(backw parity或者backw321或者Left Synchronous (Standard))

2、向左非对称(backw dynamic或者backw dyn或者Left Asynchronous(continuous))

3、向右对称(forward parity或者forward 123或者Right Synchronous (Standard))

4、向右非对称(forward dynamic或者forwar dyn或者Left Asynchronous(continuous))

RAID5旋转方式1

RAID5校验和旋转方向

RAID5旋转方式2

RAID5校验和旋转方向

    基本上,左/右指的是校验信息如何分布,而对称/非对称指的是数据如何分布。"左"算法中,校验从最后一个磁盘开始,每一个条带将校验向靠近第一个磁盘的方向移动一个磁盘的位置(必要时重绕)。而"右"算法则相反,其校验从第一个磁盘开始,每一个条带将校验向靠近最后一个磁盘的方向移动一个磁盘的位置(必要时重绕)。"非对称"算法将给定条带的数据块按简单的顺序方式放置,必要时跳过条带,并且总是从第一个磁盘上的第一个条带的数据块开始。与之不同的是,"对称"算法并不是将条带的第一个块放在第一个磁盘上,而是连续将数据块按顺序磁盘序列的方式分布,只是在必要时重绕回第一个磁盘。因此对称算法对于大量顺序读操作有更好的性能,例如,因为实际读磁盘是均匀跨多个磁盘的。分析出RAID5的块大小,盘序,校验信息的旋转方向,就可以用数据恢复软件重组RAID5,进行数据恢复。


     在使用mdadm创建RAID阵列时,可以使用--layout=<type>来指定数据和奇偶校验信息在阵列如何分布存储,此处的<type>有如下4个参数:

     Left-asymmetric:对照上面的左非对称算法的数据分布实例,该算法描述的数据分布是,在阵列上从第一个阵列段到最后一个阵列段依次的存入数据块,与此同时,奇偶校验块P也从最后一个阵列段到第一个阵列段依次写入。

     Right-asymmetric:数据块在阵列上从第一个阵列段到最后一个阵列段依次的存入数据块,与此同时,奇偶校验块P也从第一个阵列段到最后一个阵列段依次写入。

     Left-symmetric:这个是RAID5默认的分布算法,也是对于读请求性能最佳的数据分布机制。奇偶校验信息P从最后一个阵列段到第一个阵列段依次写入。数据块从左向右写,且每行的数据块都先在校验块P后面开始写,直到写满。

     Right-symmetric:奇偶校验信息P从第一个阵列段到最后一个阵列段依次写入。数据块从左向右写,且每行的数据块都先在校验块P后面开始写,直到写满。


RAID5数据更新的开销

对于RAID5来说,每次数据更新需要如下4次I/O操作:

     -从磁盘上读出需要更新的某个数据;

     -更新该数据,但是此时奇偶校验信息还没更新过来;

     -读出其他块的数据并计算出校验信息;

     -写回更新后的信息和校验信息;

     RAID5的数据更新开销相对较大,以上4次I/O操作对于读写操作频繁的应用是致命,其性能的下降被操作系统层强大的cache所掩盖了,对于性能的下降感觉不明显。


原创粉丝点击