服务器组RAID总结

RAID的英文全程是 Redundant Array of Independent Disks,从英文解释就可以看出,RAID主要是为了将独立磁盘组成冗余的阵列。
RAID的模式有很多,常见的一般是0,1,5,6,10,50
RAID 中主要有三个关键概念和技术:镜像(Mirroring)、数据条带(Data Stripping)和数据校验(Data parity)。
 
 
  • raid0

raid0的目的是将数块硬盘组成一个整体,例如2块500G的硬盘,通过raid0就可以组成逻辑意义上1T的硬盘。

raid0利用了data stripping技术,数据保存在一块逻辑磁盘中,但是实际上是分片保存在不同的物理磁盘中,这样无论是读和写,通过并发能获得比单块磁盘更高的IO性能。

raid0没有数据修复和备份的能力,在生产环境中较少应用。

  • raid1 
raid1的目的是将硬盘组成冗余的阵列,这样当一块物理盘损坏的时候,逻辑盘仍能依靠另一块正常的物理盘提供服务。
raid1利用了mirroring技术,提高了可靠性,同时也提高了并发读的性能,但是为了确保数据正确地写到多个磁盘则需要时间,因此写性能稍低。
raid1常用于生产环境的系统盘。
 
  • raid5
raid5相比较于raid0,添加了磁盘设备的奇偶校验信息,而且该数据分布式地存放于其他的数据盘上,提高了磁盘阵列的可靠性和容错能力。
校验通常采用海明码、异或操作等算法来计算获得。数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。
奇偶校验的数据总体为1块盘的大小。(raid3就是单独用一块盘专门做奇偶校验)
  • raid6

raid6在raid5的基础上又增加了一种校验码,与raid5只能坏一块相比,raid6允许同时坏2块。

  • raid10

raid10是raid1+raid0的方式组合而成,准确的说,是先做raid1再做raid0,而并不是raid1 over raid0。(仔细体会下区别)

相比较于raid10,raid01则是先做raid0再做raid1。

二者的联系在于:

  1. 都是基于raid1和raid0
  2. 都拥有冗余机制

二者的区别在于:

  1. 执行raid的步骤不一样
  2. raid10在一组array(如disk1)已损坏的情况下,仍能够允许另一组array(disk3 or disk4)损坏,
  3. raid01在一组array(如disk1)已损坏的情况下,此时不允许再损坏另一组array了。

因此raid10要优于raid01。

 

  • raid50

raid50是raid5+raid0的方式组合而成,先做raid5,再做raid0。

  • 小结 
raid类型 容错性 冗余盘 磁盘数 空间利用率 备注
raid0 0 n>=1 100%  
raid1 有   N/2 2n  50% N为磁盘总数
raid5 1 n>=3 n-1/n  
raid6   有 2 n>=4  n-2/n  
raid10 N/2 2n(n>=2) 50% N为磁盘总数
raid50 m*1

n>=3

m*(n-1)/n m为raid5的组数
  • tips

raid10是基于raid1和raid0的基础上的,raid0可以单盘做,raid1至少2块,那结合起来2块就够了,为什么raid01和raid01也需要至少4块?

单盘可以做raid0,2块盘可以做raid1,但是对于单块盘来说,只能有1个raid属性,如果只有2块盘,无论如何组合,相当于既做了raid1又做了raid0,在操作上是不支持的,因此raid10和raid01都需要至少4块盘。

 

原文地址:https://www.cnblogs.com/handsomehuo/p/13549806.html