Linux中的RAID磁盘详解

RAID磁盘冗余阵列

硬盘设备是计算机中较容易故障的元器件之一,加之由于其需要存储数据的特殊性质,不能像CPU、内存、电源甚至主板故障后更换新的就好,所以生产环境中一定要未雨绸缪,提前做好数据的冗余及异地备份等工作。
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
出于成本和技术方面的考虑,需要针对不同的需求在数据可靠性及读写性能上作出权衡,制定出满足各自需求的不同方案。目前已有的RAID磁盘阵列的方案至少有十几种,接下来会详细讲解RAID 0、RAID 1、RAID 5与RAID 10这4种最常见的方案,这四种方案的对比如下所示,其中n代表硬盘总数。
RAID 0、1、5、10方案技术对比

RAID 级别 最少硬盘 可用容量 读写性能 安全性 特点
0 2 n n 追求最大容量和速度,任何一块盘损坏,数据全部异常。
1 2 n/2 n 追求最大安全性,只要阵列组中有一块硬盘可用,数据不受影响。
5 3 n-1 n-1 在控制成本的前提下,追求硬盘的最大容量、速度及安全性,允许有一块硬盘异常,数据不受影响。
10 4 n/2 n/2 综合RAID1和RAID0的优点,追求硬盘的速度和安全性,允许有一半硬盘异常(不可同组),数据不受影响

RAID 0

RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。通俗来说,RAID 0技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。如下图所示,数据被分别写入到不同的硬盘设备中,即硬盘A和硬盘B设备会分别保存数据资料,最终实现提升读取、写入速度的效果。
RAID 0技术示意图

RAID 1

尽管RAID 0技术提升了硬盘设备的读写速度,但是它是将数据依次写入到各个物理硬盘中,也就是说,它的数据是分开存放的,其中任何一块硬盘发生故障都会损坏整个系统的数据。因此,如果生产环境对硬盘设备的读写速度没有要求,而是希望增加数据的安全性时,就需要用到RAID 1技术了。
如下图所示的RAID 1技术示意图中可以看到,它是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。
RAID 1技术示意图

考虑到写入操作时CPU切换硬盘的开销,速度会比RAID 0有微弱的降低,但在读取数据的时候,操作系统可以分别从两块硬盘中读取信息,理论读取速度的峰值可以是硬盘数量的倍数。另外平时只要保证有一块硬盘稳定运行,数据就不会出现损坏的情况,可靠性较高。
另外RAID 1技术虽然十分注重数据的安全性,但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降,从理论上来说,示意图所示的硬盘空间的真实可用率只有50%,由三块硬盘设备组成的RAID 1磁盘阵列的可用率只有33%左右,以此类推。而且,由于需要把数据同时写入到两块以上的硬盘设备,这无疑也在一定程度上增大了系统计算功能的负载。

RAID 5

如下图所示,RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;示意图中parity部分存放的就是数据的奇偶校验信息,换句话说,就是RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。RAID这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。
RAID5技术示意图

RAID 5最少由三块硬盘组成,使用的是Disk Striping硬盘切割技术。比RAID 1级别好处就在于保存的是奇偶校验信息而不是一模一样的文件内容,所以当重复写入某个文件时,RAID 5级别的磁盘阵列组只需要对应一个奇偶校验信息就可以,效率更高,存储成本也会随之降低。

RAID 10

在产环境中主要使用RAID 10技术;顾名思义,RAID 10技术是RAID 1+RAID 0技术的一个“组合体”。如下图所示,RAID 10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。由于RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性,在不考虑成本的情况下RAID 10的性能都超过了RAID 5,因此当前成为广泛使用的一种存储技术。
RAID 10技术示意图

注:由于RAID 10是由RAID 1和RAID 0组成的,因此正确叫法是“RAID 一零”,而不是“RAID 十”。仔细观看上图可以分析出,RAID 10是先对信息进行分割,然后再两两一组做的镜像。也就是将RAID 1作为最低级别的组合,再使用RAID 0技术组合到一起,将它们视为“一整块”硬盘。而RAID 01则是相反的,它回先将硬盘分为两组,使用RAID 0作为最低级别的组合,再将两组硬盘通过RAID 1技术组合到一起。
但区别非常明显,RAID 10级别中任何一块硬盘损坏都不会影响到数据安全性,其余硬盘均会正常运作。但RAID 01只要有任何一块盘损坏,最低级别的RAID 0硬盘组马上会停止运作,可能造成严重隐患。所以RAID 10远比RAID 01常见,很多主板甚至不支持RAID 01。

Guess you like

Origin blog.csdn.net/weixin_46329906/article/details/116919636