为了提高运行速率,CPU频率不断提高,但由于发热问题已达到瓶颈,从而导致开发产商转而研究多核处理器,从并行方面提高运行速率;
同样地,为了提高对磁盘的读取速率,磁盘阵列出现了。通过多个磁盘,多个独立的I/O请求可以并行地进行处理,只要他们所需的数据驻留在不同的磁盘中。此外,如果要访问的数据块分布在多个磁盘上,I/O请求也可以并行地执行。
但是磁盘阵列的安全性是一个问题:如果阵列中的某个磁盘损坏,则整个盘区的数据都将永久丢失,这样的损失是巨大的,对此,RAID7级方案(0-6)出现了。这里只介绍RAID0、RAID1、RAID4、RAID5、RAID6。对其他方案感兴趣的可以自己查阅有关资料。
RAID0(无冗余):把数据分块,一次放入多个磁盘中,没有冗余,存储速率高,磁盘利用率为100%,不允许出错。简单地说,RAID0就是磁盘的并行化。
RAID 0RAID1(镜像):磁盘并行化后对数据进行成对备份,有效数据只占50%。
RAID 1RAID4(块奇偶校验):对每个有效数据磁盘中相应的条带计算一个逐位奇偶校验,奇偶校验位保存在奇偶校验磁盘相应的条带中。也即前几个数据磁盘储存有效数据,最后一个磁盘储存前面的所有磁盘的异或值,利用异或运算的性质(参与运算的n个数字(包括结果值),知道任意n-1个可以计算出未知的哪一个),可以在某个磁盘数据丢失时恢复数据,磁盘利用率为(n-1)/n,只容许一个盘出错。但奇偶校验磁盘的存在对写入少量数据时会产生额外的开销:既要修改有效数据所在的磁盘,也要修改奇偶校验磁盘的数据。对此有一些技巧,但对小写数据的处理研究还在进行中:
如果有7个磁盘组成一个并行磁盘阵列,前6个1-6储存有效数据,第7个磁盘P(1-6)储存异或结果,则有:
1⊕2⊕3⊕4⊕5⊕6=P(1-6)
2⊕3⊕4⊕5⊕6=P(1-6)⊕1
1'⊕2⊕3⊕4⊕5⊕6=P(1-6)'
所以数据更新后的奇偶校验位P(1-6)'=1'⊕1⊕P(1-6)
RAID5(块分布奇偶校验):组织形式类似RAID4,但与RAID4相比,校验值随机分配在所有磁盘中,利用率为(n-1)/n,只容许一个盘出错,但能较好地做到负载均衡,避免RAID4中一个奇偶校验磁盘潜在的I/O瓶颈问题。
RAID 5RAID6(双重冗余):采用两种不同的奇偶校验计算并保存在不同磁盘的不同块中,利用率为(n-2)/n,容许2个盘出现错误,但是会有较严重的写性能损失,因为每次写操作除了影响相应的数据块外还会影响两个校验块。读性能与RAID5相当。
RAID 6最后附上数据布局的动画展示:www.acnc.com/raid
网友评论