一、RAID
(1)RAID概述
- RAID全称: Redundant Array of Independent Disk独立冗余磁盘阵列
- RAID就是一种由多块廉价磁盘构成的冗余、高并发、高性能阵列
- RAID类似于GFS分布式磁盘管理
RAID就是一种有多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分的发挥除多块硬盘的优势,可以提升硬盘读写速度、加快容量、提供冗余,提供容错增强数据的安全性,并且易于管理。
(2)RAID分类
- 软RAID: 软RAID的所有功能全部都由操作系统和CPU来完成,因为没有独立的RAID “控制/处理”芯片和“I/O”处理芯片,所以效率是三个RAID中最低的
- 硬RAID: 硬RAID配备了专门的RAID“控制/处理”芯片和“I/O”处理芯片以及阵列缓冲,不需要占用CPU资源,但是成本很高
- 软硬混合RAID: 软硬混合RAID具备RAID“控制/处理”芯片但是没有“I/O”处理芯片,需要CPU和驱动程序来完成,性能和成本在软RAID和硬RAID之间
(3)RAID的工作模式区别
RAID常用的工作模式有: RAID0、RAID1、RAID5、RAID1+0
-RAID0
- RAID0至少需要两块硬盘或者两个分区,两块硬盘同时读写,从而提高性能。
- 容量为所有硬盘加在一起的大小。
- 没有冗余,所以一旦其中一块分区或者硬盘损坏,那么数据就会丢失。
-RAID1
- RAID1就是镜像卷,至少需要两块硬盘或分区,一块用来读写,另一块用来备份。
- 提供冗余。
- 容量为所有硬盘空间大小的一半
-RAID5
- RAID5提供了冗余,也提高了读写性能,但是没有RAID0的读写性能强,至少需要3块硬盘,两块用来读写,一块用来备份。
- RAID5最多只能坏一块硬盘,因为有一块是用来备份的,一旦坏的超过备份硬盘的数量,那么数据就会丢失,所以一般在创建RAID5级别的时候,会多加一块空闲硬盘。
- 容量为n分之n-1,比如有三块,那么实际容量就是3-1,也就是2块的容量,一块用来备份
-RAID1+0
- RAID10即提供了冗余,也提高了读写性能,但是也没有RAID0的读写强。
- 至少需要4块硬盘,可以看作RAID10扩大了RAID1,把读写和备份都分成了多台,并且可以把多台备份和读写看作一个整体,可以共同工作从而提高读写性能
- 容量为所有硬盘空间大小的一半。
-总结
性能最高 | RAID0 |
有冗余 | RAID1 、 RAID5 、RAID1+0 |
提高了性能 | RAID0 、 RAID5 、RAID1+0 |
(4)RAID关键概念和技术
- 镜像(Mirroring): (RAID1)
镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。镜像具有高安全性、高读性能,但是冗余开销太贵。
- 数据条带(Data Stripping): (RAID0)
RAID由多块磁盘组成,数据条带技术将数据以块的方式存储在多个磁盘中,从而可以对数据进行并发处理,从而提高性能,提高读写,提供高并发。而数据条带通过并发性开提高性能,然而没有对数据安全性、可靠性进行考虑。
- 数据校验(Data parity): (RAID5)
数据校验是一种冗余技术,它用校验数据来保证数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。相比于镜像,数据校验大幅缩减了冗余开销,用较小的代价取得了极佳的数据完整性和可靠性,数据条带技术提供高性能,数据校验提供数据安全性。在使用RAID时往往同时结合使用这两种技术
RAID1+0使用条带和镜像
二、案例
(1)实验环境
- 一台Centos7虚拟机,添加3个20G的硬盘,每个硬盘分四个区
(2)实验步骤
-给虚拟机添加硬盘,并且进行分区
[root@rzy ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x72723c40 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G 分区 1 已设置为 Linux 类型,大小设为 5 GiB ————————————————————像这样把每个分区分成四个5G的分区,每分完一个输入w保存退出—————————————— 。。。。。。 命令(输入 m 获取帮助):p (输入p查看所有分区是否分区完成) 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x72723c40 设备 Boot Start End Blocks Id System /dev/sdb1 2048 10487807 5242880 83 Linux /dev/sdb2 10487808 20973567 5242880 83 Linux /dev/sdb3 20973568 31459327 5242880 83 Linux /dev/sdb4 31459328 41943039 5241856 83 Linux 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 ————————————重复几次,把三个硬盘都分完区——————————————
-准备好yum源文件,挂载光盘,使用yum安装mdadm
- mdadm命令:
mdadm在linux中支持将任何块设备做成RAID,在位同一块磁盘的不同分区做RAID,只是为RAID而存在的
- mdadm的-C选项: mdadm -C RAID名 选项 磁盘名
-C | 只有加了这个选项才可以创建RAID |
-a{yes/no} | 选择是否自动创建设备文件,yes或者no,如:-ayes |
-l 级别 | 指定RAID的级别,如:-l 0 |
-n 数量 | 指定设备的个数,如:-n 2 |
-x 数量 | 指定空闲盘的个数,如:-x 1 |
- 以下选项格式为: mdadm RAID名称 选项 要移动的磁盘
-r | 移动已经损坏的磁盘,如:mdadm /dev/md1 -r /dev/sdb1 |
-f | 模拟磁盘损坏,如:mdadm /dev/md1 -f /dev/sdb1 |
-D | 查看RAID阵列的详细信息,如:mdadm -D /dev/md0 |
-a | 增加空闲磁盘,如:mdadm /dev/md5 -a /dev/sdb1 |
- mdadm选项:
-S | 停止RAID阵列,如:mdadm -S /dev/md1 |
-A | 把阵列重新装配启动,如:mdadm -A /dev/md1 /dev/sdb1 /dev/sdc1 |
使用mdadm -D RAID名 或者cat /proc/mdstat 都可以查看指定RAID
[root@rzy ~]# cat /etc/yum.repos.d/centos.repo [aaa] name=aaa baseurl=file:///mnt enabled=1 gpgcheck=0 [root@rzy ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 mount: /dev/sr0 已经挂载或 /mnt 忙 /dev/sr0 已经挂载到 /mnt 上 [root@rzy ~]# yum -y install mdadm 。。。。。。 完毕!
-使用mdadm创建RAID0
[root@rzy ~]# mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sdb1 /dev/sdc1 mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@rzy ~]# cat /proc/mdstat Personalities : [raid0] md0 : active raid0 sdc1[1] sdb1[0] 10477568 blocks super 1.2 512k chunks unused devices: <none> [root@rzy ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri Apr 9 01:52:17 2021 Raid Level : raid0 Array Size : 10477568 (9.99 GiB 10.73 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Apr 9 01:52:17 2021 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K Consistency Policy : none Name : rzy:0 (local to host rzy) UUID : cee156dc:67fff032:9e350702:80407c3d Events : 0 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 [root@rzy ~]# vim /etc/mdadm.conf (创建一个新的mdadm配置文件,因为RAID在每次重启系统时,UUID都会变,所以写一个配置文件指定RAID的UUID号) DEVICE /dev/sdb1 /dev/sdc1 (写入RAID0使用的分区) [root@rzy ~]# mdadm -Ds /dev/md0 >> /etc/mdadm.conf [root@rzy ~]# cat /etc/mdadm.conf DEVICE /dev/sdb1 /dev/sdc1 ARRAY /dev/md0 metadata=1.2 name=rzy:0 UUID=cee156dc:67fff032:9e350702:80407c3d [root@rzy ~]# mkfs.xfs /dev/md0 (格式化RAID0) meta-data=/dev/md0 isize=512 agcount=16, agsize=163712 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2619392, imaxpct=25 = sunit=128 swidth=256 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@rzy ~]# mkdir /raid0 (创建挂载目录) [root@rzy ~]# mount /dev/md0 /raid0/ (进行挂载) [root@rzy ~]# vim /etc/fstab [root@rzy ~]# tail -1 /etc/fstab (编写自动挂载) /dev/md0 /raid0 xfs defaults 0 0 [root@rzy ~]# df -hT | grep '/dev/md0' (查看挂载情况) /dev/md0 xfs 10G 33M 10G 1% /raid0 [root@rzy ~]# init 6 (重启系统,查看有没有报错) [root@rzy ~]# df -hT | grep "/dev/md0" (重启后查看挂载) /dev/md0 xfs 10G 33M 10G 1% /raid0 ******查看挂载信息,发现两个5G的分区组成RAID0容量为10G******
∗∗之后的步骤和创建RAID0相同∗∗
-使用mdadm创建RAID1
带有镜像功能的RAID创建后在操作之前需要查看mdadm -D RAID名称 输出信息的 Resync Status : 34% complete是否加载完毕,没有这个Resync Status就表示已经加载完成
[root@rzy ~]# mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sdb2 /dev/sdc2 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? yes mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started. [root@rzy ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Fri Apr 9 02:38:41 2021 Raid Level : raid1 Array Size : 5238784 (5.00 GiB 5.36 GB) Used Dev Size : 5238784 (5.00 GiB 5.36 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Apr 9 02:38:50 2021 State : clean, resyncing Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : resync Resync Status : 34% complete #带有镜像功能的在做操作之前需要查看这个选项是否加载完成 Name : rzy:1 (local to host rzy) UUID : 05908819:03c013c9:b66e1e83:1ea77154 Events : 5 Number Major Minor RaidDevice State 0 8 18 0 active sync /dev/sdb2 1 8 34 1 active sync /dev/sdc2 [root@rzy ~]# echo “DEVICE /dev/sdb2 /dev/sdc2” >> /etc/mdadm.conf [root@rzy ~]# mdadm -Ds /dev/md1 >> /etc/mdadm.conf [root@rzy ~]# cat /etc/mdadm.conf DEVICE /dev/sdb1 /dev/sdc1 ARRAY /dev/md0 metadata=1.2 name=rzy:0 UUID=cee156dc:67fff032:9e350702:80407c3d DEVICE /dev/sdb2 /dev/sdc2 ARRAY /dev/md1 metadata=1.2 name=rzy:1 UUID=05908819:03c013c9:b66e1e83:1ea77154 [root@rzy ~]# mkfs.xfs /dev/md1 meta-data=/dev/md1 isize=512 agcount=4, agsize=327424 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=1309696, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@rzy ~]# mkdir /raid1 [root@rzy ~]# mount /dev/md1 /raid1/ [root@rzy ~]# vim /etc/fstab [root@rzy ~]# tail -1 /etc/fstab /dev/md1 /raid1 xfs defaults 0 [root@rzy ~]# init 6 [root@rzy ~]# df -hT | grep "/dev/md1" /dev/md1 xfs 5.0G 33M 5.0G 1% /raid1 ******查看挂载信息,发现两块5G的分区组成的RAID1容量为5G******0
-使用mdadm创建RAID5
[root@rzy ~]# mdadm -C /dev/md5 -ayes -l5 -n3 -x1 /dev/sdb3 /dev/sdc3 /dev/sdd1 /dev/sdd2 #因为RAID5坏了超过1块就会导致数据丢失,所以一般都加几块空闲分区或者硬盘,去增加可靠性 mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md5 started. [root@rzy ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Apr 9 02:57:03 2021 Raid Level : raid5 Array Size : 10477568 (9.99 GiB 10.73 GB) Used Dev Size : 5238784 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Apr 9 02:57:25 2021 State : clean, degraded, recovering Active Devices : 2 Working Devices : 4 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Rebuild Status : 87% complete #等待完成 Name : rzy:5 (local to host rzy) UUID : c955b6f0:ac4edf21:0adb1409:f9142098 Events : 15 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 1 8 35 1 active sync /dev/sdc3 4 8 49 2 spare rebuilding /dev/sdd1 3 8 50 - spare /dev/sdd2 #可以发现有一个分区是spare空闲状态,这个分区是当三块活跃的分区出现故障时去顶替的 [root@rzy ~]# echo "DEVICE /dev/sdb3 /dev/sdb3 /dev/sdd1 /dev/sdd2" >> /etc/mdadm.conf [root@rzy ~]# mdadm -Ds /dev/md5 >> /etc/mdadm.conf [root@rzy ~]# cat /etc/mdadm.conf DEVICE /dev/sdb1 /dev/sdc1 ARRAY /dev/md0 metadata=1.2 name=rzy:0 UUID=cee156dc:67fff032:9e350702:80407c3d DEVICE /dev/sdb2 /dev/sdc2 ARRAY /dev/md1 metadata=1.2 name=rzy:1 UUID=05908819:03c013c9:b66e1e83:1ea77154 DEVICE /dev/sdb3 /dev/sdb3 /dev/sdd1 /dev/sdd2 ARRAY /dev/md5 metadata=1.2 spares=1 name=rzy:5 UUID=c955b6f0:ac4edf21:0adb1409:f9142098 [root@rzy ~]# mkfs.xfs /dev/md5 meta-data=/dev/md5 isize=512 agcount=16, agsize=163712 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2619392, imaxpct=25 = sunit=128 swidth=256 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@rzy ~]# mkdir /raid5 [root@rzy ~]# mount /dev/md5 /raid5 [root@rzy ~]# tail -1 /etc/fstab /dev/md5 /raid5 xfs defaults 0 0 [root@rzy ~]# init 6 [root@rzy ~]# df -hT | grep "/dev/md5" /dev/md5 xfs 10G 33M 10G 1% /raid5 ******从挂载信息可以看出四块5个G的分区组成一个RAID5容量为10G,这是因为备份、空闲的两个分区是不进行容量计算的******
-使用mdadm创建RAID10
[root@rzy ~]# mdadm -C /dev/md10 -ayes -l10 -n4 /dev/sdb4 /dev/sdc4 /dev/sdd3 /dev/sdd4 mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md10 started. [root@rzy ~]# mdadm -D /dev/md10 /dev/md10: Version : 1.2 Creation Time : Fri Apr 9 03:09:03 2021 Raid Level : raid10 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 5237760 (5.00 GiB 5.36 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Apr 9 03:09:10 2021 State : clean, resyncing Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Consistency Policy : resync Resync Status : 17% complete Name : rzy:10 (local to host rzy) UUID : 810bce16:846daa37:edb762a7:58e4f420 Events : 2 Number Major Minor RaidDevice State 0 8 20 0 active sync set-A /dev/sdb4 1 8 36 1 active sync set-B /dev/sdc4 2 8 51 2 active sync set-A /dev/sdd3 3 8 52 3 active sync set-B /dev/sdd4 #可以看到分为了set-A和set-B,分为一组的可以看作一个整体,共同读写或者备份 [root@rzy ~]# echo “DEVICE /dev/sdb4 /dev/sdb4 /dev/sdd3 /dev/sdd4” >> /etc/mdadm.conf [root@rzy ~]# mdadm -Ds /dev/md10 >> /etc/mdadm.conf [root@rzy ~]# cat /etc/mdadm.conf DEVICE /dev/sdb1 /dev/sdc1 ARRAY /dev/md0 metadata=1.2 name=rzy:0 UUID=cee156dc:67fff032:9e350702:80407c3d DEVICE /dev/sdb2 /dev/sdc2 ARRAY /dev/md1 metadata=1.2 name=rzy:1 UUID=05908819:03c013c9:b66e1e83:1ea77154 DEVICE /dev/sdb3 /dev/sdb3 /dev/sdd1 /dev/sdd2 ARRAY /dev/md5 metadata=1.2 spares=1 name=rzy:5 UUID=c955b6f0:ac4edf21:0adb1409:f9142098 DEVICE /dev/sdb4 /dev/sdb4 /dev/sdd3 /dev/sdd4 ARRAY /dev/md10 metadata=1.2 name=rzy:10 UUID=810bce16:846daa37:edb762a7:58e4f420 [root@rzy ~]# mkfs.xfs /dev/md10 meta-data=/dev/md10 isize=512 agcount=16, agsize=163712 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2618880, imaxpct=25 = sunit=128 swidth=256 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@rzy ~]# mkdir /raid10 [root@rzy ~]# mount /dev/md10 /raid10/ [root@rzy ~]# tail -1 /etc/fstab /dev/md10 /raid10 xfs defaults 0 0 [root@rzy ~]# init 6 [root@rzy ~]# df -hT | grep "/dev/md10" /dev/md10 xfs 10G 33M 10G 1% /raid10 ******从挂载信息可以看出四个5G的分区组成的RAID10容量为10G,2个分区用于读写,2个分区用于备份******
(3)模拟故障环境
这里主要是测试RAID5的空闲分区会不会进行切换
[root@rzy ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Apr 9 02:57:03 2021 Raid Level : raid5 Array Size : 10477568 (9.99 GiB 10.73 GB) Used Dev Size : 5238784 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Apr 9 03:32:14 2021 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : rzy:5 (local to host rzy) UUID : c955b6f0:ac4edf21:0adb1409:f9142098 Events : 43 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 3 8 50 1 active sync /dev/sdd2 4 8 49 2 active sync /dev/sdd1 5 8 35 - spare /dev/sdc3 #先确认spare空闲分区是那个 [root@rzy ~]# mdadm /dev/md5 -f /dev/sdd1 (模拟/dev/sdd故障) mdadm: set /dev/sdd1 faulty in /dev/md5 [root@rzy ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Apr 9 02:57:03 2021 Raid Level : raid5 Array Size : 10477568 (9.99 GiB 10.73 GB) Used Dev Size : 5238784 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Apr 9 03:34:14 2021 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : rzy:5 (local to host rzy) UUID : c955b6f0:ac4edf21:0adb1409:f9142098 Events : 62 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 3 8 50 1 active sync /dev/sdd2 5 8 35 2 active sync /dev/sdc3 4 8 49 - faulty /dev/sdd1 #再次查看发现/dev/sdd1变成了faulty故障状态,原来的空闲分区/dev/sdc3变成了活跃状态 [root@rzy ~]# mdadm /dev/md5 -r /dev/sdd1 (移除故障分区/dev/sdd1) mdadm: hot removed /dev/sdd1 from /dev/md5 [root@rzy ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Apr 9 02:57:03 2021 Raid Level : raid5 Array Size : 10477568 (9.99 GiB 10.73 GB) Used Dev Size : 5238784 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Apr 9 03:35:49 2021 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : rzy:5 (local to host rzy) UUID : c955b6f0:ac4edf21:0adb1409:f9142098 Events : 63 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 3 8 50 1 active sync /dev/sdd2 5 8 35 2 active sync /dev/sdc3 #再次查看发现成功移除 [root@rzy ~]# mdadm /dev/md5 -a /dev/sdd1 (重新将/dev/sdd1加入RAID5) mdadm: added /dev/sdd1 [root@rzy ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Apr 9 02:57:03 2021 Raid Level : raid5 Array Size : 10477568 (9.99 GiB 10.73 GB) Used Dev Size : 5238784 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Apr 9 03:36:40 2021 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : rzy:5 (local to host rzy) UUID : c955b6f0:ac4edf21:0adb1409:f9142098 Events : 64 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 3 8 50 1 active sync /dev/sdd2 5 8 35 2 active sync /dev/sdc3 4 8 49 - spare /dev/sdd1 #再次查看发现成功加入/dev/sdd1,并且为spare空闲状态