【IT168 技术】RAID磁盘冗余还是比较常用的,于是我研究了一下RAID磁盘冗余,在这里拿出来和大家分享一下,希望对大家有用。磁盘阵列(disk array)可以有效的提高存储系统的可靠性和性能,同时也存在显著的缺点,那就是由于多个设备(磁盘)同时使用,导致了可靠性降低(从概率的角度来讲:N个设备的可靠性是一个设备的1/N)。
RAID(Redundant array of inexpensive disk)就是为了解决这个问题而产生的,RAID通过给磁盘阵列增加冗余磁盘提高了磁盘阵列的可靠性。所谓冗余磁盘,即该磁盘不用于存放实际数据,而用来存放一些冗余信息,而这些冗余信息可用来在必要的时候进行有效数据恢复,从而增加磁盘阵列的可靠性,翻译成中文应该叫廉价RAID磁盘冗余阵列。
在RAID6出现之前,RAID已经有了从RAID0~RAID5六个版本。那么我们已经有了这么多的RAID方式,提供了相当级别的可靠性保护,为什么我们还需要RAID6?在这里,我们这里先比较研究一下几种比较有代表性的RAID方式:
RAID磁盘冗余家族概览
目前应用最广泛,支持设备最多的RAID方式主要是RAID0,RAID1和RAID5
(1)无冗余(RAID0):RAID0实际上不能算做真正的RAID技术,它只是实现了磁盘阵列存放数据的带状分布。虽然提高了大规模数据访问的性能,但是RAID0并没有冗余容错的功能,因为它本身并无冗余,所以可以说这里的RAID0是个误称
(2)镜像(RAID1):RAID1同样实现了数据的带状分布,与RAID0所不同的是,在数据写入一个磁盘的时候,同时在另一个磁盘做相应的镜象。因此,RAID1虽然有数据容错功能,但是其对磁盘的利用率实在比较底,仅为50%。
(3)奇偶校验(RAID5):相对于RAID1比较,RAID5也是仅仅实现了单个磁盘的冗余纠错功能,但是却大大提高了磁盘的有效利用率。以 RAID5(4D+P)为例子来讲,使用4块磁盘存放数据位,使用1块磁盘存放校验位。其基本原理是这样的:根据条带化的数据4D(使用四位数据)生成一位的校验信息,存放在第五块磁盘中。
其中,P1为数据位d0,d1,d2,d3的校验信息,P2为数据位d4,d5,d6,d7的校验信息等等。可以看到,校验信息并非存放在一块固定的磁盘上的,而是存放在不同的磁盘的,这样可以平衡各个磁盘的读写次数,从而平衡各个磁盘的使用频率(因为校验位的读写要相对频繁一点)。
突破RAID磁盘冗余局限
RAID5已经提供了一定程度的可靠性,然而也牺牲了一定的读取速度。特别是在RAID重构作业中,大量的数据读写操作增加硬盘的负担,旧的硬盘更容易发生故障。RAID5的局限性还表现在RAID5仅能在一块硬盘发生故障的情况下修复数据,如果2块硬盘同时发生故障,RAID5则无能为力。
以前,两块盘同时坏的情况是小概率事件,几乎不可能发生。但是近来随着光纤(FC)盘和SATA盘的容量和密度不断增加,使得RAID 5的重建时间也不断增加。两块硬盘同时损坏的概率也大幅增加,在企业级存储上,这种风险必须得到重视。所以RAID6应需诞生了。
RAID6同RAID5最大的区别就是在RAID5的基础上除了具有P校验位以外,还加入了第2个校验位Q位。以RAID6(6D+1P+1Q)为例子,这个系统需要8块硬盘,其中6块用于存放数据,1块用于存放P校验位,1块用于存放Q校验位。当然,我得又一次强调,并非某个具体的独立的盘全部用来存放P校验信息,另外一个Q校验信息。而是对于某个位组(6个数据位+P位+Q位)来说,采用某种原则,6块盘上存放数据位,1块盘存放P位,1块盘用来存放Q位。