在Linux中配置软件RAID 4
除了软件RAID 4使用块级剥离而不是字节级的功能外,该级别与软件RAID 3非常相似,因此软件RAID 4的工作方式类似于条带化。
但是,专用驱动器用于存储奇偶校验信息。
每次将数据写入阵列磁盘时,算法都会生成恢复信息,该信息将写入经过特殊标记的奇偶校验驱动器。
如果出现单个磁盘故障,则可以根据剩余数据和奇偶校验信息逆转该算法,并自动生成丢失的数据。
什么是RAID 4?
RAID-4在标记为数据驱动器的阵列中的每个驱动器上条带化块大小的数据块。
另外,一个驱动器被指定为专用奇偶校验驱动器。
RAID-4使用异或者(XOR)操作来生成可用于灾难恢复的校验和信息。
校验和信息是在每次写操作期间在块级别生成的。
XOR操作使用专用的奇偶校验驱动器来存储一个块,该块包含从其他磁盘上的块导出的校验和信息。
说明:
将专用驱动器用于奇偶校验信息意味着,在使用RAID 4时,我们将失去一个驱动器的潜在数据存储价值。
当使用N
磁盘驱动器(每个磁盘都具有空间'S')并将一个驱动器专用于奇偶校验存储时,剩下的是(N-1)* RAID-4下的S
空间。
当使用多个奇偶校验驱动器时,剩下的空间为((N-P)* S,其中" P"代表阵列中专用奇偶校验驱动器的总数。
配置软件RAID 4
在Linux节点上创建软件RAID 4之前,必须遵循以下某些步骤。
由于我已经在较早的文章中执行了这些步骤,因此我将在此处共享超链接
重要的分区规则
用fdisk分区
创建软件RAID 4阵列
提示:
与软件RAID 4相比,软件RAID 5提供了更好的性能。
几乎每个人都应该选择前者。
现在,由于我们拥有所有分区,因此我们将在这些分区上创建软件RAID 4阵列
[root@node1 ~]# mdadm -Cv -l4 -c64 -n3 /dev/md0 /dev/sd{b,c,d}1 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
初始化此阵列后,命令行中使用mdadm
列出的最后一个成员磁盘将成为奇偶校验磁盘,此处为/dev/sdd1
。
RAID 4还支持备用磁盘。
其中
-C, --create Create a new array. -v, --verbose Be more verbose about what is happening. -l, --level= Set RAID level. When used with --create, options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6, raid10, 10, multipath, mp, faulty, container. Obviously some of these are synonymous. -c, --chunk= Specify chunk size of kilobytes. -n, --raid-devices= Specify the number of active devices in the array.
验证软件RAID 4的更改
像其他具有冗余的阵列一样,/proc/mdstat
将指示初始的重新同步阶段正在进行中。
奇偶校验RAID重新同步可确保所有条带均包含正确的奇偶校验块。
[root@node1 ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid4 sdd1[3] sdc1[1] sdb1[0] 4188160 blocks super 1.2 level 4, 64k chunk, algorithm 0 [3/2] [UU_] [========>............] recovery = 40.9% (858880/2094080) finish=8.1min speed=214720K/sec unused devices: <none>
与软件RAID 1一样,创建文件系统之前,不必等到初始重新同步完成。
但是请记住,在该过程完成之前,我们将没有数据冗余。
请注意,这次,重新同步的速度比我们之前创建的" RAID 1"慢。
那是因为必须为每个条带生成奇偶校验信息。
同样,软件RAID 4也有其专用奇偶校验磁盘引起的写瓶颈。
我们还将注意到,软件RAID 4的重新同步需要更多的CPU开销。
在我的测试系统上,这些进程在重新同步期间占用了大约60%的CPU。
相比之下," RAID 1"初始同步约为2%。
重新同步完成后,重新检查mdstat
输出
[root@node1 ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid4 sdd1[3] sdc1[1] sdb1[0] 4188160 blocks super 1.2 level 4, 64k chunk, algorithm 0 [3/3] [UUU] unused devices: <none>
创建文件系统和挂载点
一旦激活了所有三个阵列,在这种情况下,只需在条带/dev/md0
上构建一个文件系统,然后将/dev/md0
安装在安装点上即可。