各种RAID详解
1.概述
RAID是什么?
- RAID是英文Redundant Array of Independent Disk的首字母缩写,中文意思是:独立磁盘冗余阵列。通俗的讲就是把多块硬盘组成一个独立的磁盘阵列进行管理。
- RAID白皮书上的解释:RAID(独立冗余磁盘阵列)是一项能提升外部存储解决方案性能的简单技术。它能让您根据自己的需要选择最佳的设备使用方式。简单地说,RAID技术可以将一个硬盘上的任务分散或复制到多个(少则两个)磁盘上,借此来提高性能或建立数据冗余以防驱动器发生故障。您可以通过设定设备的RAID模式来决定设备以何种方式处理数据。
使用RAID的好处是什么呢?
- 对于普通用户而言,使用RAID技术管理硬盘其实是没有多大必要,但是对于企业用户,尤其是要使用高可用、稳定等解决方案保证硬盘数据稳定、安全、可靠时,RAID就显得尤为重要。因为RAID技术可以为硬盘提供安全性和稳定性的保障,保证硬盘数据容错性或者读写性能的提升等。
RAID的实现方式分类
- 常见的有:RAID 0、RAID 1、RAID 5、RAID 6、RAID 01、RAID 10。
- 不常见的有:RAID 2、RAID 3、RAID 4、RAID 7、RAID 50、RAID 53.
- RAID可以按照硬盘数量和组织方式不同分为不同类型的RAID实现。
各种RAID详解
先介绍一下RAID实现中有时需要使用到Spare(备用硬盘),Spare是在RAID实现中需要额外添加的硬盘 ,当组成RAID的硬盘都正常工作的时候,Spare硬盘是出于空闲状态的,只有当组成RAID的硬盘有损坏的时候,Spare硬盘才会自动替换损坏的硬盘位置,加入到RAID阵列中,另外还需要了解一些RAID术语:
- 条带化:指将数据分到多个驱动器上。条带RAID阵列通常用于将最大的容量合并到单个卷中。
- 镜像:指将数据复制到多个磁盘上。镜像RAID阵列通常能在阵列中有磁盘(至少一个)发生故障时确保数据不丢失,具体取决于阵列的RAID级别。
- 容错:指可让RAID阵列在磁盘发生故障时继续工作(即用户仍然可以使用阵列中存储的数据)
RAID 0
原理:将数据条带化,最少需要两块硬盘(每块硬盘的容量一样,实际生产环境中建议使用同品牌同型号同批次同容量的硬盘组成RAID 0),即将所有组成RAID 0的硬盘可用容量组合在一起,形成计算机上的一个逻辑卷。通俗的讲就是至少使用两块硬盘来存储数据,但是我要存储的数据不是全部在某一块硬盘上,而是把我要存储的数据分成均等的多部分,然后平均分散存储在组成RAID 0的磁盘阵列上。
下图是用四块硬盘组成RAID 0的示意图,其中每块硬盘都被分成ABCD四个条带,然后我要存数据就先把数据均分成四部分,如果A1能存下其中一份,那就直接将四部分分别存入A1-A4,如果存不下就先存满A1-A4,剩下的按同样的方式存B1-B4,以此类推。
可用容量:组成RAID 0所有硬盘容量的总和。
优点:
1)提高读写速度,对硬盘的总容量没有损失。
2)处理大文件很快。
缺点:
1)一旦阵列中某块硬盘损坏了,所有数据将不可恢复。
RAID 1
原理:镜像存储,RAID 1至少需要两块硬盘组成,两块硬盘互为备份,存储的内容完全相同。建议硬盘容量大小也要一样,如果不一样,那实际可用容量不超过较小的那块硬盘的容量。
下图是RAID 1的示意图,左右两边存储的数据是完全相同的。
可用容量:不超过较小的那边硬盘的容量总和。
优点:
1)读取性能翻倍。
2)提供数据冗余,如果其中一块数据丢失,可以通过另一块还原。
缺点:
1)磁盘的利用率低,成本高。
RAID 2 (已淘汰)
原理:RAID 2本质上是RAID 0,只是加入了汉明码来做数据的纠错。以此来优化RAID 0。
汉明码:(Hamming Code)是广泛用于内存和磁盘纠错的编码。汉明码不仅可以用来检测转移数据时发生的错误,还可以用来修正错误。(要注意的是,汉明码只能发现和修正一位错误,对于两位或者两位以上的错误无法修正和发现)
优点:
1)加入了数据纠错机制。
缺点:
1)成本增高,需要额外的盘做汉明码纠错。
RAID 2的应用场景不多,目前已经被淘汰,所以没有必要去研究它。就不画图演示了。
RAID 3
原理:RAID 3使用字节级别的条带化技术,并采用专用的奇偶校验磁盘。RAID 3阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现 故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。本质上和RAID 0相同,与RAID 2相似,作为RAID 0的优化版本。
下图是RAID 3的实现架构图,图中Disk 4就是那块专用的奇偶校验磁盘。
优点:
1)加入了数据纠错机制
缺点:
1)做奇偶校验会消耗系统性能,容易导致系统出现性能瓶颈。
变种(RAID 3+Spare)
RAID 4
原理:和RAID 3一样,唯一的区别是在数据分割上RAID 3对数据的访问是按位进行的,RAID 4是以数据块为单位。
这里就不画图介绍了,图和RAID 3一样,这种RAID在生产环境中几乎不用。
RAID 5
原理:RAID 5综合了RAID 0的条带化技术以及阵列数据冗余技术(阵列最少包括三个磁盘)。RAID 3和RAID 5之间的区别在于,RAID 3配置提供的性能更高,但总容量略低。数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块(p)写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。单个磁盘出现故障时,数据不会丢失,但如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。
下面是实现的架构图,其中能够看到,Ap-Dp奇偶校验是放到和数据同一条带上的。
优点:
1)读写性能高。
2)有校验机制。
3)空间利用率高。
缺点:
1)组成RAID 5的磁盘越多,安全性能越差,容易丢失数据。连续两块硬盘损坏,数据就找不回来了。
变种(RAID 5+spare)
这种变种通过加入空闲的Spare盘,在系统将数据重建至备用驱动器时用户仍可以继续访问数据。它能提供良好的数据安全,但磁盘空间由于热备用磁盘的存在(在其他磁盘出现故障之后才使用)而受到限制。磁盘故障不需要立即处理,因为系统会使用热备用磁盘对自己进行重建,但故障磁盘还是应尽快更换。
RAID 6
原理:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块,双重奇偶校验,在RAID 6中,数据会在所有磁盘(最少四个)间进行分条,并且每个数据块的两个奇偶校验块(如下图中p和q)写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。这种RAID模式最多允许两个磁盘出故障而不丢失数据,而且它能更快地重建故障磁盘上的数据。
优点:
1)读取性能好。
2)有奇偶校验机制。
缺点:
1)成本高,写入性能差。
RAID 7
RAID 7并非公布的RAID标准,而是Storage Computer Corporation公司的专利硬体产品名称。我们今天不研究它。下图是官方的架构图。
RAID 01
原理:RAID 0+RAID 1,两边都是条带化的RAID 0存储数据,然后互为备份,组成镜像存储RAID 1.
下图是RAID 01的架构图,在RAID 01阵列中,最多允许两个磁盘出现故障而不会丢失数据,但故障磁盘必须属于同一RAID 0队列。在图中,也就是当磁盘1和磁盘2出现故障时,数据会保存到磁盘3和磁盘4。
优点:
1)有数据备份,出现单点故障时可以恢复数据。
缺点:
1)成本高。
RAID 10
原理:RAID 1+RAID 0,它合并了其他级别(尤其是RAID 1和RAID 0)特点的另一种RAID级别 。这是一种“镜像集条带”,意思是数据在两个镜像阵列间分布。“条带化”在阵列之间发生,而“镜像”是在相同的阵列中出现,两种技术的组合加快了重建的速度。RAID 10阵列包含的磁盘数应为四的倍数。
下图是RAID 10的架构图,在RAID 10阵列中,每个镜像对中,可以有一个磁盘出现故障而不丢失数据。不过,故障磁盘所在阵列的工作磁盘会成为整个阵列中的弱点。如果 镜像对中的另一个磁盘也发生故障,则会丢失整个阵列。