磁盘阵列和容错方法

B.1  磁盘阵列简介

B.1.1  物理磁盘

单个物理磁盘的容量和性能足够家庭用户使用。但是企业用户需要更大的存储容量、更高的数据传输速率以及在磁盘发生故障时更有效地进行数据保护。

如图B-1所示,将额外的物理磁盘(图中用Pn表示)连接到系统可增加总存储容量,但对读取/写入(R/W)操作的效率不会产生影响,仍然只能将数据一次传输到一个物理磁盘。

图B-1 数据一次只能传输到一个物理磁盘

B.1.2  逻辑磁盘

如图B-2所示,安装存储控制卡后,可将若干物理磁盘的容量组成一个或多个称为逻辑磁盘(也称为逻辑卷,图中用Ln表示)的虚拟单位。所有物理磁盘的读/写磁头同时活动,减少了数据传输所需的总时间。

图B-2 所有物理磁盘的读/写磁头同时活动

B.1.3  数据条带化

数据条带化是指把连续的数据分割成多个大小相同的块并将其写入到不同磁盘上的方法。如图B-3所示,每个数据单位称为一个数据块图中用Bn表示),而相邻的若干个数据块形成一个条带(图中用Sn表示),分布在构成逻辑磁盘的所有物理磁盘上。

由于多个磁盘的读/写磁头同时活动,可在任意给定时间间隔内向每个磁盘写入相同的数据量。

图B-3 数据块和条带

为确保逻辑磁盘中的数据可读,每个数据条带中的数据块顺序必须相同。由存储控制卡执行此排序过程,将数据块以正确顺序发送到磁盘写磁头。

条带化过程使逻辑磁盘中的每个物理磁盘均包含等量数据。如果一个物理磁盘的容量大于同一逻辑磁盘中的其它物理磁盘,将浪费该磁盘多出来的容量,因为逻辑磁盘无法使用这些容量。

B.1.4  磁盘阵列

如图B-4所示,包含逻辑磁盘(图中用Ln表示)的物理磁盘组称为磁盘阵列,简称为阵列(图中用An表示)。由于通常将阵列中的所有物理磁盘仅配置为一个逻辑磁盘,因此一般情况下,阵列和逻辑磁盘是同义词。但是,阵列可包含多个逻辑磁盘,其中每个逻辑磁盘的大小可以不同。

需要注意的是,阵列中的每个逻辑磁盘分散在阵列中的所有物理磁盘上。逻辑磁盘可以扩展到同一阵列控制卡的多个端口上,但不能扩展到多个阵列控制卡上。

图B-4 磁盘阵列

·     尽管磁盘很少会发生故障,但一旦发生就是灾难性的。对于按图B-4所示方式配置的阵列,任意物理磁盘发生故障都会导致对应阵列中非冗余逻辑盘的数据丢失,且无法恢复。为了防止由于物理磁盘发生故障而丢失数据,逻辑磁盘配置了容错功能。

·     对于除RAID 0以外的任何配置,可通过分配一个磁盘作为联机备用(或热备用)磁盘,进一步防止丢失数据。此磁盘不含任何数据,连接到与阵列相同的阵列控制卡。当阵列中的任意一个物理磁盘发生故障时,阵列控制卡自动将最初位于故障磁盘上的数据重建到联机备用磁盘,恢复逻辑盘数据,达到数据保护的效果,即使其不再具有联机备用磁盘(但是,极少数情况下,如果将数据重新写入备用磁盘时阵列中的另一个磁盘发生故障,则逻辑磁盘仍将发生故障)。

·     配置专属热备磁盘后,系统会自动将其分配给同一阵列中的所有逻辑磁盘。若配置全局热备磁盘,当所有阵列都在同一阵列控制卡上时,不需要向每个阵列分配一个单独的备用磁盘,而是配置一个磁盘作为所有阵列的备用磁盘。

B.2  磁盘故障对逻辑盘的影响

磁盘发生故障时,将影响同一阵列中的所有逻辑磁盘。阵列中每个逻辑磁盘可能使用了不同的容错方法,因此每个逻辑磁盘会受到不同的影响。

·     RAID 0配置无法承受任何磁盘发生故障。如果阵列中的任意物理磁盘发生故障,则同一阵列中的所有RAID 0逻辑磁盘也会发生故障。

·     RAID 1一般使用两块物理磁盘组建逻辑磁盘,此时可以承受一个物理磁盘发生故障。

·     RAID 1E和RAID 10配置可以承受一个或多个物理磁盘发生故障,只要发生故障的磁盘不互为镜像即可。

·     RAID 5配置可以承受一个物理磁盘发生故障。

·     RAID 50配置可以承受每个RAID 5中有一个物理磁盘发生故障。

·     RAID 6配置可以承受两个物理磁盘发生故障。

·     RAID 60配置可以承受每个RAID 6中有两个物理磁盘发生故障。

B.3  容错方法

B.3.1  RAID 0

图B-5所示,RAID 0配置可使数据条带化,但在磁盘发生故障时无法防止数据丢失,RAID 0无容错功能。

图B-5 RAID 0

1. 适用场景

RAID 0适用于快速存储大量非重要数据(例如,打印或编辑图像)或考虑成本的应用。

2. RAID 0的优点

·     在所有RAID中,写入性能最高。

·     在所有RAID中,存储数据的单位成本最低。

·     磁盘的全部容量均用于存储数据(不需要磁盘用于容错)。

3. RAID 0的缺点

·     如果物理磁盘发生故障,将丢失逻辑磁盘上的所有数据。

·     无法使用联机备用磁盘。

·     如果需要备份数据,只能将数据备份到外部磁盘。

B.3.2  RAID 1

RAID 1又称为镜像,逻辑磁盘中对应的每个数据块,在物理磁盘上都有一份镜像备份,也就是说数据保存了两份。如图B-6所示。

图B-6 RAID 1

图B-6中,P1、P2代表物理磁盘,二者组成一个逻辑磁盘,每一份数据保存了两份。

1. 适用场景

RAID 1适用于数据安全性比物理磁盘的成本更重要的场景。

2. RAID 1的优点

·     在所有RAID中,此方法的安全性最高。

·     只要镜像对中的磁盘没有全部故障,数据就不会丢失。

·     阵列中有一块物理磁盘发生故障也仍可运转。

3. RAID 1的缺点

·     此方法成本较高,需要一块磁盘用于容错。

·     磁盘总容量中只有一半可用于存储数据。

B.3.3  RAID 1E

RAID 1E是RAID 1的升级版,它不仅对数据进行镜像还对数据进行条带化处理,能实现对奇数数量的磁盘进行镜像。如图B-7所示。

图B-7 RAID 1E

1. 适用场景

RAID 1E适用于高性能和数据保护比物理磁盘的成本更重要的场景。

2. RAID 1E的优点

·     读取性能比RAID 1高,并可以对奇数数量的磁盘进行镜像。

·     只要镜像对中的磁盘没有全部故障,数据就不会丢失。

·     阵列中最多有一半的物理磁盘发生故障也仍可运转。

3. RAID 1E的缺点

·     此方法成本较高,需要一半数量的磁盘用于容错。

·     磁盘总容量中只有一半可用于存储数据。

·     相同偶数个磁盘创建的RAID 1E安全性能低于RAID 10。

B.3.4  RAID 5

如图B-8所示,在RAID 5配置中,通过奇偶校验数据(图中用Px,y表示)提供数据保护。根据写入该条带中所有其它数据块的用户数据,逐个条带地计算此奇偶校验数据。奇偶校验数据块均匀地分布在逻辑磁盘中的每个物理磁盘上。

图B-8 RAID 5

当某个物理磁盘发生故障时,可根据阵列中其它磁盘上剩余的奇偶校验数据和用户数据计算出故障磁盘上原有的数据。通常在RAID重建过程中将恢复的这些数据写入联机备用磁盘中。

1. 适用场景

RAID 5适用于成本、性能和数据可用性同等重要的场景。

2. RAID 5的优点

·     读取性能较高。

·     如果一个物理磁盘发生故障,不会丢失数据。

·     可使用的磁盘容量多于RAID 10,因为奇偶校验信息只需要与一个物理磁盘相等的存储空间。

3. RAID 5的缺点

·     写入性能相对较低。

·     如果在重建第一个故障磁盘之前又有第二个磁盘发生故障,则会丢失数据。

B.3.5  RAID 6

如图B-9所示,在RAID 6配置中,通过存储奇偶校验信息提供数据保护,这一点与RAID 5类似。与RAID 5不同的是,RAID 6中使用两组不同的奇偶校验数据(图中用Px,y和Qx,y表示),确保在有两个磁盘发生故障时仍可保留数据。每组奇偶校验数据需要的存储空间与一个物理磁盘容量相等。

图B-9 RAID 6

1. 适用场景

RAID 6适用于不能接受数据丢失、但成本同样重要的场景。配置RAID 6丢失数据的可能性比RAID 5小。

2. RAID 6的优点

·     此方法的读取性能较高。

·     此方法可提高数据可用性,因为任意两个磁盘发生故障也不会丢失关键数据。

·     可使用的磁盘容量多于RAID 10,因为奇偶校验信息只需要与两个物理磁盘相等的存储空间。

3. RAID 6的缺点

因为需要两组奇偶校验数据,所以写入性能较低(低于RAID 5)。

B.3.6  RAID 10

如图B-10所示,RAID 10是一种嵌套RAID方法(RAID 1与RAID 0相结合),先配置RAID 1再配置RAID 0。

图B-10 RAID 10

在每个镜像对中,不忙于应答其它请求的物理磁盘应答发送到该阵列的任何读请求,这种行为称为负载均衡。如果某个物理磁盘发生故障,镜像对中的另一个磁盘仍可提供所有必要的数据。只要每个镜像对中的磁盘没有全部故障,即使整个阵列中发生多个磁盘故障,也不会导致数据丢失。

2. 适用场景

RAID 10适用于高性能和数据保护比物理磁盘的成本更重要的场景。

3. RAID 10的优点

·     在所有RAID中,此方法的读取性能居于第二。

·     只要镜像对中的磁盘没有全部故障,数据就不会丢失。

·     阵列中最多有一半的物理磁盘发生故障也仍可运转。

4. RAID 1和RAID 10的缺点

·     此方法成本较高,需要一半数量的磁盘用于容错。

·     磁盘总容量中只有一半可用于存储数据。

B.3.7  RAID 50

如图B-11所示,RAID 50是一种嵌套RAID方法(RAID 5与RAID 0相结合),将作为组成部分的磁盘划分为若干完全相同的RAID 5逻辑磁盘组(奇偶校验组)。配置RAID 50至少需要六个磁盘,划分为两个奇偶校验组,每组有三个磁盘。

图B-11 RAID 50

此图像的alt属性为空;文件名为20201017_5318343_x_Img_x_png_11_1348958_30005_0.png

对于任意给定数量的磁盘,将磁盘的奇偶校验组配置为最多时,最不容易丢失数据。例如十二个磁盘,配置为四个奇偶校验组、每组三个磁盘比配置为三个奇偶校验组、每组四个磁盘更安全。不过,奇偶校验组越多,阵列上存储的数据越少。

2. 适用场景

RAID 50适用于大型数据库、文件服务器和应用程序服务器。

3. RAID 50的优点

·     性能高于RAID 5,特别是写入时。

·     容错优于RAID 0和RAID 5。

·     只要发生故障的磁盘在不同的奇偶校验组中,最多可有n个物理磁盘发生故障(其中n是奇偶校验组的数量)而不丢失数据。

4. RAID 50的缺点

·     如果在第一个故障磁盘完成重建之前同一奇偶校验组中又有第二个磁盘发生故障,则会丢失所有数据。

·     与非嵌套RAID方法相比,阵列容量中用于存储冗余或奇偶校验数据的百分比更大。

B.3.8  RAID 60

图B-12所示,RAID 60是一种嵌套RAID方法(RAID 6与RAID 0相结合),将作为组成部分的磁盘划分为若干完全相同的RAID 6逻辑磁盘组(奇偶校验组)。配置RAID 60至少需要八个磁盘,划分为两个奇偶校验组,每组有四个磁盘。

图B-12 RAID 60

对于任意给定数量的磁盘,将磁盘的奇偶校验组配置为最多时,最不容易丢失数据。例如二十个磁盘,配置为五个奇偶校验组、每组四个磁盘,比配置为四个奇偶校验组、每组五个磁盘更安全。不过,奇偶校验组越多,阵列上存储的数据越少。

2. 适用场景

RAID 60适用于数据库存档和高可用性解决方案。

3. RAID 60的优点

·     性能高于RAID 6,特别是写入时。

·     容错优于RAID 0和RAID 6。

·     只要同一奇偶校验组中发生故障的磁盘不超过两个,最多可有2n个物理磁盘发生故障(其中n是奇偶校验组的数量)而不丢失数据。

4. RAID 60的缺点

·     如果在奇偶校验组中其它两个故障磁盘中的某一个完成重建之前奇偶校验组中又有第三个磁盘发生故障,则会丢失所有数据。

·     与非嵌套RAID方法相比,阵列容量中用于存储冗余或奇偶校验数据的百分比更大。

B.3.9  选择RAID级别

建议根据表B-1所示原则选择RAID级别。

表B-1 选择RAID级别的原则

最重要的判断标准较重要的判断标准建议使用的RAID级别
容错成本RAID 6
容错 I/O性能
RAID 1、RAID 1E、RAID 10、RAID 50、RAID 60
成本容错RAID 6
成本 I/O性能 RAID 5(如果不需要容错,则建议使用RAID 0)
I/O性能成本RAID 5(如果不需要容错,则建议使用RAID 0)
I/O性能 容错 RAID 1、RAID 1E、RAID 10、RAID 50、RAID 60

原创文章,作者:Safeidc,如若转载,请注明出处:https://www.safeidc.cn/2021/01/raid-rc.html

发表评论

邮箱地址不会被公开。