RAID--独立冗余磁盘阵列

磁盘故障分为很多种情况,最普通的形式是一种间歇性故障,就是有时候读写不成功但是反复读写的时候又可以成功,另一种更严重的故障则是介质故障就是这一片磁盘区域被损坏;最严重的形式是磁盘崩溃,这会导致磁盘突然地变为永久不可读。应对磁盘崩溃的技术就是-----RAID.


1.校验和

在磁盘扇区分配若干位个附加位称为校验和。校验和的一种简单的形式是基于扇区内所有位的奇偶性。即在二进制集合中有奇数个1,我们称数据有奇数奇偶性并增加值为1的奇偶位。同样的原理,二进制集合中有偶数个1,我们称数据有奇数奇偶性并增加值为0的奇偶位。从而:二进制位的集合与它们的奇偶位中,1的个数总是偶数。举个例子:假如在扇区中有二进制序列00011111,有奇数个1,所以奇偶位是1。在这个序列后加上它的奇偶位得到000111111;如果我们有序列00001111,有偶数个1,所以奇偶位是0.在序列后面加上它的奇偶位得到000011110.当只有1个奇偶位时,检测出错误的概率为50%,如果持续增加奇偶位检测出错的概率会减小,服从下面这个公式:如果有n个独立为作为校验码,漏掉一个错误的概率仅为1/(2^n)。


2.RAID1

为了防止磁盘崩溃导致的数据丢失或者不可读最简单的方法就是镜像各种磁盘。我们将一个磁盘称为一个数据盘,另一个称为冗余盘。作为防止数据丢失的镜像,就是RAID1级。在这种情况下数据丢失的唯一方式是,在第一个磁盘损坏正在修复时,第二个磁盘也被损坏。RAID1方案下图所示,灰色为冗余盘。RAID--独立冗余磁盘阵列_第1张图片


3.RAID4

尽管镜像磁盘很有效但是,它的冗余盘的数量与数据盘一样多,为了减少冗余盘的数量提出了RAID4级的方法,即不管有多少个数据盘,只有一个冗余盘。我们首先给数据盘编号1~n(这里假设数据盘都是相同的),在冗余盘中,第i个块由所有数据盘的第i块奇偶校验和组成,计算方法为模2和 1100与1010的模2和为0110。举个例子,取三个数据盘的第一块有:

盘1 : 11110000

盘2:  10101010

盘3:   00111100

那么作为冗余盘的第一块将有奇偶校验位:盘4:01100010。RAID4方案下图所示,灰色为冗余盘。

RAID--独立冗余磁盘阵列_第2张图片

4.RAID5

除非几个磁盘同时发生磁盘崩溃,否则RAID4就能很好的有效保护数据。但是它对于冗余盘的读写明显多于数据盘,为了改进这个问题提出了RAID5级方法。这种方法在于讲冗余块分散在各个数据盘的某些块中,而不必要单独设立一个冗余盘。RAID5方案下图所示,灰色为冗余盘。

RAID--独立冗余磁盘阵列_第3张图片

5.RAID6

为了恢复多个磁盘同时崩溃的数据,基于纠错码的原理提出了RA1D6级方法。下面给出一个简单的例子,使用最简单的纠错码海明码

RAID--独立冗余磁盘阵列_第4张图片

盘5的位是盘1、2、3的模2和

盘6的位是盘1、2、4的模2和

盘7的位是盘1、3、4的模2和


你可能感兴趣的:(基础知识)