RAID 磁盘阵列
# 服务器制作RAID磁盘阵列并管理
# RAID磁盘阵列要点
(1)掌握 RAID 的构建,挂载和使用。
(2)掌握 RAID 的基础运维
# 规划节点
基础环境CentOS7,准备5个硬盘,大小是20GB
IP | 主机名 | 节点 |
---|---|---|
192.168.100.10 | Localhost | 控制节点 |
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
vdb 253:16 0 20G 0 disk
vdc 253:32 0 20G 0 disk
vdd 253:48 0 20G 0 disk
vde 253:64 0 20G 0 disk
vdf 253:80 0 20G 0 disk
# 创建RAID 0
# 1、创建 RAID 0
⚫利用lsblk查看磁盘分区,每个大小为 20 GB。用这 2 个 20 GB 的分区来模拟 1 个 40 GB 的硬盘。
⚫安装工具 mdadm,使用已有 YUM 源进行安装。
[root@localhost ~]# yum install -y mdadm
创建一个 RAID 0 设备:这里使用/dev/vdb 和/dev/vdc 做实验。 将/dev/vdb 和/dev/vdc 建立RAID等级为RAID 0的md0(设备名)。
[root@localhost ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/vdb /dev/vdc
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
命令解析:
⚫ -C v:创建设备,并显示信息。
⚫ -l 0:RAID 的等级为 RAID 0。
⚫ -n 2:创建 RAID 的设备为 2 块。
查看系统上的 RAID,命令及返回结果如下。
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 vdc[1] vdb[0]
41908224 blocks super 1.2 512k chunks
unused devices: <none>
# 2、查看当前RAID信息
查看 RAID 详细信息,命令及返回结果如下。
[root@localhost ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=localhost:0 UUID=841c4f62:269f1d1e:5a990fb3:86a938e7
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Feb 9 14:49:34 2022
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Feb 9 14:49:34 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost:0 (local to host localhost)
UUID : 841c4f62:269f1d1e:5a990fb3:86a938e7
Events : 0
Number Major Minor RaidDevice State
0 253 16 0 active sync /dev/vdb
1 253 32 1 active sync /dev/vdc
生成配置文件 mdadm.conf,命令如下。
[root@localhost ~]# mdadm -Ds >/etc/mdaadm.conf
[root@localhost ~]# cat /etc/mdaadm.conf
ARRAY /dev/md0 metadata=1.2 name=localhost:0 UUID=841c4f62:269f1d1e:5a990fb3:86a938e7
# 3、对RAID格式化挂载
对创建的 RAID 进行文件系统创建并挂载,命令如下。
[root@localhost ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkdir md0
[root@localhost ~]# mount /dev/md0 md0/
[root@localhost ~]# df -Th md0/
Filesystem Type Size Used Avail Use% Mounted on
/dev/md0 xfs 40G 33M 40G 1% /root/md0
设置成开机自动挂载,以至于每次开机不需要再次重新挂载磁盘。
[root@localhost ~]# blkid /dev/md0
/dev/md0: UUID="d7680766-fd86-434f-951e-9280334bc64a" TYPE="xfs"
[root@localhost ~]# echo "UUID=d7680766-fd86-434f-951e-9280334bc64a /md0 xfs defaults 0 0 " >> /etc/fstab
# 4、删除RAID 0
[root@localhost ~]# umount md0/
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# rm -rf /etc/mdaadm.conf
[root@localhost ~]# rm -rf md0/
[root@localhost ~]# mdadm --zero-superblock /dev/vdb
[root@localhost ~]# mdadm --zero-superblock /dev/vdc
[root@localhost ~]# vi /etc/fstab
UUID=d7680766-fd86-434f-951e-9280334bc64a /md0 xfs defaults 0 0 "删除这一行"
# 创建RAID 5
# 1、创建RAID 5
⚫raid 5 运维操作使用当前的空磁盘,每个大小为 20 GB。用 3 个 20 GB 的分区来模拟 raid 5,加一个热备盘。
⚫添加热备盘的作用就是可以模拟故障,然后临时替换热备盘。
[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/vdb /dev/vdc /dev/vdd --spare-devices=1 /dev/vde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Fail to create md5 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
# 2、查看当前RAID的信息
使用-D选项
,查看 RAID 的详细信息。
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Feb 9 15:15:54 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 persistent
Update Time : Wed Feb 9 15:17:24 2022
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 : 34% complete
Name : localhost:5 (local to host localhost)
UUID : dd49c7bc:5fcadcb4:36f0a7f8:d36671e6
Events : 6
Number Major Minor RaidDevice State
0 253 16 0 active sync /dev/vdb
1 253 32 1 active sync /dev/vdc
4 253 48 2 spare rebuilding /dev/vdd
3 253 64 - spare /dev/vde
# 3、模拟硬盘故障
使用-f选项
模拟设备损坏
从以下结果可以发现原来的热备盘/dev/sde 正在参与 RAID 5 的重建,而原来的/dev/sdb 变成了坏盘。
[root@localhost ~]# mdadm -f /dev/md5 /dev/vdb
mdadm: set /dev/vdb faulty in /dev/md5
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Feb 9 15:15:54 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 persistent
Update Time : Wed Feb 9 15:18:30 2022
State : clean, FAILED
Active Devices : 1
Working Devices : 3
Failed Devices : 1
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost:5 (local to host localhost)
UUID : dd49c7bc:5fcadcb4:36f0a7f8:d36671e6
Events : 44
Number Major Minor RaidDevice State
- 0 0 0 removed
1 253 32 1 active sync /dev/vdc
- 0 0 2 removed
0 253 16 - faulty /dev/vdb
3 253 64 - spare /dev/vde
4 253 48 - spare /dev/vdd
使用-r选项
,热移除故障硬盘,查看 RAID 的详细信息,命令如下
[root@localhost ~]# mdadm -r /dev/md5 /dev/vdb
mdadm: hot removed /dev/vdb from /dev/md5
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Feb 9 15:15:54 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 persistent
Update Time : Wed Feb 9 15:21:25 2022
State : clean, FAILED
Active Devices : 1
Working Devices : 3
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost:5 (local to host localhost)
UUID : dd49c7bc:5fcadcb4:36f0a7f8:d36671e6
Events : 45
Number Major Minor RaidDevice State
- 0 0 0 removed
1 253 32 1 active sync /dev/vdc
- 0 0 2 removed
3 253 64 - spare /dev/vde
4 253 48 - spare /dev/vdd
# 4、对RAID格式化挂载
格式化 RAID 为xfs的文件格式,并进行挂载
[root@localhost ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Localhost ~]# mount /dev/md5 /mnt/
[root@localhost ~]# df -Th /mnt
Filesystem Type Size Used Avail Use% Mounted on
/dev/md5 xfs 40G 33M 40G 1% /mnt
上次更新: 2023/11/28, 22:03:59