RAID概念:
RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说,RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而 提供比单个磁盘更高的存储性能和数据冗余的技术。
RAID关键技术:
RAID 中主要有三个关键概念和技术:镜像(Mirroring)、数据条带(Data Stripping) 和数据校验(Data parity)。
- 镜像(Mirroring):
将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。但为了确保数据正确的写到多个磁盘需要更多的时间消耗,因此镜像的写性能要稍低。
- 数据条带(Data Stripping):
将数据分片保存在多个磁盘,多个数据分片共同组成一个完整的数据副本。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上的数据进行读写操作,从而获得非常可观的I/O性能提升。
- 数据校验(Data parity):
利用冗余数据进行数据错误检验和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性和容错能力。不过,数据校验需要从多个地方读取数据进行计算和对比,会影响系统性能。
上述技术的特点:
- 提高数据访问速度:
硬盘数据条带化、多硬盘同时读取,减少了硬盘的机械寻道时间。
- 提供数据冗余保护:
硬盘镜像、奇偶校验
常用RAID:
围绕RAID的三个关键技术,常用的RAID可分为RAID0-RAID6七类。
- RAID0: 数据条带,代表了所有RAID中最高的存储性能
- RAID1:镜像,最大限度保证用户数据的可用性和可修复性
- RAID5:一组检验,检验码均匀分布,最多坏一块磁盘
RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,可以理解为RAID0和RAID1的折中。RAID5可以为系统提供数据安全保障,但保障程度要比Mirror低,而磁盘利用率要比Mirror高。RAID5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比单个磁盘写入数据速度稍慢。同时由于多个数据对应一个奇偶校验信息,RAID5的磁盘利用率要比RAID1高,存储成本相对较低。
- RAID6: 两组校验,检验码均匀分布,最多坏两块磁盘
RAID6相对于RAID5需要分配给奇偶校验信息的磁盘空间更大,相对于RAID5有更大的“写损失”。RAID6写性能非常差,较差的性能和复杂的实施使得RAID6很少使用。
- RAID10:先镜像再条带
- RAID01: 先条带再镜像
安全性方面的差别:
- RAID10的情况:假设当DISK0损坏时,在剩下的3块磁盘中,只有当DISK1也发生故障时,才会导致整个RAID失效,我们可以简单计算故障率为1/3。
- RAID01的情况:假设DISK0损坏,这是左边的条带无法读取,在剩下的磁盘中,只要DISK2和DISK3中任何一块磁盘损坏,都会导致整个RAID失效,我们可以计算故障率为2/3。
因此,RAID10在安全性方面要比RAID01强。
性能方面差别:
从数据存储的逻辑位置来看,在正常情况下,RAID10和RAID01是完全一样的,而且每一个读写操作所产生的I/O数量也是一样的,所以在读写性能上,两者没有什么区别。而当磁盘出现故障时,比如DISK0损坏,可以发现,在读写性能上将有所差异,RAID10性能要优于RAID01。
结论:
RAID10优于RAID01
RAID的不同级别,本质上是在平衡成本、性能以及可用性。
通常情况下,建议系统盘为RAID1,数据盘为RAID10或RAID5。