目录
5.初始化时间和硬盘阵列的读写的应用相关,使用cat /proc/mdstat信息查询RAID阵列当前构建的速度和预期的完成时间
9. 从上一步骤看,/dev/sde为热备盘,模拟损坏一个硬盘(/dev/sdc)
10.查看RAID详细信息,发现/dev/sde自动替换损坏的硬盘
12.重新添加1块硬盘至虚拟机并重启挂载,然后将这块硬盘加入RAID作为热备份盘
13.设置开机自动挂载,编辑etc/fstab文件,加入以下内容
1.添加4块硬盘
2.下载mdadm
[root@libvirt ~]# yum install -y mdadm
3. 查看是否支持MD驱动
[root@libvirt ~]# cat /proc/mdstat
Personalities :
unused devices: <none>
[root@libvirt ~]# cat /proc/devices | grep md
9 md
254 mdp[root@libvirt ~]# mdadm --version
mdadm - v4.1 - 2018-10-01
4. 创建RAID 5及其热备份盘
[root@libvirt ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 9.5G 0 rom /run/media/root/CentOS 7 x86_64
[root@libvirt ~]# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
5.初始化时间和硬盘阵列的读写的应用相关,使用cat /proc/mdstat信息查询RAID阵列当前构建的速度和预期的完成时间
[root@libvirt ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[4] sde[3](S) sdc[1] sdb[0]
41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[====>................] recovery = 21.1% (4436352/20954112) finish=1.8min speed=147878K/sec
unused devices: <none>
[root@libvirt ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[4] sde[3](S) sdc[1] sdb[0]
41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
6.为新建的RAID设备建立Ext3的文件系统
[root@libvirt ~]# mkfs -t ext3 -c /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10477056 blocks
523852 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624Checking for bad blocks (read-only test): done
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
7.将RAID挂载至/mnt,并检查是否正常
[root@libvirt ~]# mount /dev/md0 /mnt/
[root@libvirt ~]# ls /mnt/
lost+found
8.查看RAID阵列详细信息
[root@libvirt ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 5 16:35:12 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistentUpdate Time : Wed Oct 5 16:48:29 2022
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1Layout : left-symmetric
Chunk Size : 512KConsistency Policy : resync
Name : libvirt:0 (local to host libvirt)
UUID : c810428b:bc389001:b45cd08f:2466bb52
Events : 18Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd3 8 64 - spare /dev/sde
9. 从上一步骤看,/dev/sde为热备盘,模拟损坏一个硬盘(/dev/sdc)
[root@libvirt ~]# mdadm /dev/md0 --fail /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md0
10.查看RAID详细信息,发现/dev/sde自动替换损坏的硬盘
[root@libvirt ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 5 16:35:12 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistentUpdate Time : Wed Oct 5 16:53:32 2022
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1Layout : left-symmetric
Chunk Size : 512KConsistency Policy : resync
Rebuild Status : 74% complete
Name : libvirt:0 (local to host libvirt)
UUID : c810428b:bc389001:b45cd08f:2466bb52
Events : 31Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
3 8 64 1 spare rebuilding /dev/sde
4 8 48 2 active sync /dev/sdd1 8 32 - faulty /dev/sdc
//正常情况下是[UUU],若有某个硬盘损坏会显示_(第几个硬盘损坏则把第几个U变成下划线)
[root@libvirt ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[4] sde[3] sdc[1](F) sdb[0]
41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
11.移除损坏硬盘
[root@libvirt ~]# mdadm /dev/md0 -r /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md0[root@libvirt ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 5 16:35:12 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistentUpdate Time : Wed Oct 5 16:56:48 2022
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0Layout : left-symmetric
Chunk Size : 512KConsistency Policy : resync
Name : libvirt:0 (local to host libvirt)
UUID : c810428b:bc389001:b45cd08f:2466bb52
Events : 38Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
3 8 64 1 active sync /dev/sde
4 8 48 2 active sync /dev/sdd
12.重新添加1块硬盘至虚拟机并重启挂载,然后将这块硬盘加入RAID作为热备份盘
[root@libvirt ~]# mount /dev/md0 /mnt
[root@libvirt ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─md0 9:0 0 40G 0 raid5 /mnt
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
└─md0 9:0 0 40G 0 raid5 /mnt
sde 8:64 0 20G 0 disk
└─md0 9:0 0 40G 0 raid5 /mnt
sdf 8:80 0 20G 0 disk
sr0 11:0 1 9.5G 0 rom /run/media/root/CentOS 7 x86_64
[root@libvirt ~]# mdadm /dev/md0 --add /dev/sdf
mdadm: added /dev/sdf
[root@libvirt ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 5 16:35:12 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistentUpdate Time : Wed Oct 5 17:01:24 2022
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1Layout : left-symmetric
Chunk Size : 512KConsistency Policy : resync
Name : libvirt:0 (local to host libvirt)
UUID : c810428b:bc389001:b45cd08f:2466bb52
Events : 41Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
3 8 64 1 active sync /dev/sde
4 8 48 2 active sync /dev/sdd5 8 80 - spare /dev/sdf
13.设置开机自动挂载,编辑etc/fstab文件,加入以下内容
/dev/md0 /mnt ext3 defaults 0 0
使用命令将/etc/fstab的内容重新加载
[root@libvirt ~]# mount -a
14.扫描并显示RAID的详细信息
[root@libvirt ~]# mdadm -D --scan
ARRAY /dev/md/0 metadata=1.2 spares=1 name=libvirt:0 UUID=c810428b:bc389001:b45cd08f:2466bb52
15.创建软件RAID的配置文件,用于快速启动RAID
[root@libvirt ~]# mdadm -D --scan >> /etc/mdadm.conf
[root@libvirt ~]# cat /etc/mdadm.conf
ARRAY /dev/md/0 metadata=1.2 spares=1 name=libvirt:0 UUID=c810428b:bc389001:b45cd08f:2466bb52
16.停止运行RAID
[root@libvirt ~]# umount /mnt
[root@libvirt ~]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
17.在已创配置文件下,启动RAID
[root@libvirt ~]# mdadm --assemble /dev/md0
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
18.删除RAID
//解除挂载
[root@libvirt ~]# umount /mnt
//损坏所有硬盘
[root@libvirt ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@libvirt ~]# mdadm /dev/md0 -f /dev/sde
mdadm: set /dev/sde faulty in /dev/md0
[root@libvirt ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0
[root@libvirt ~]# mdadm /dev/md0 -f /dev/sdf
mdadm: set /dev/sdf faulty in /dev/md0//移除所有硬盘
[root@libvirt ~]# mdadm /dev/md0 --remove /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
[root@libvirt ~]# mdadm /dev/md0 --remove /dev/sde
mdadm: hot removed /dev/sde from /dev/md0
[root@libvirt ~]# mdadm /dev/md0 --remove /dev/sdd
mdadm: hot removed /dev/sdd from /dev/md0
[root@libvirt ~]# mdadm /dev/md0 --remove /dev/sdf
mdadm: hot removed /dev/sdf from /dev/md0
//停止RAID[root@libvirt ~]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0//把/etc/fstab开机自挂载配置信息/dev/md0 /mnt ext3 defaults 0 0去掉
//擦除元数据[root@libvirt ~]# mdadm --misc --zero-superblock /dev/sdb
[root@libvirt ~]# mdadm --misc --zero-superblock /dev/sde
[root@libvirt ~]# mdadm --misc --zero-superblock /dev/sdd
[root@libvirt ~]# mdadm --misc --zero-superblock /dev/sdf
//删除配置文件[root@libvirt ~]# rm -rf /etc/mdadm.conf
//重启
[root@libvirt ~]# reboot
---最后关机移除不用的硬盘
注:
若是/etc/fstab开机自挂载配置信息未去掉 ,重启后,如图
不要慌,先输入密码, vim打开/etc/fstab,把配置信息/dev/md0 /mnt ext3 defaults 0 0去掉,重启即可