CentOS 7 创建 RAID1
原创
©著作权归作者所有:来自51CTO博客作者Tom马的原创作品,请联系作者获取转载授权,否则将追究法律责任
RAID 1的主要优点是RAID中的一个磁盘出现故障,另一个磁盘将继续工作。更换故障磁盘时,新磁盘将自动同步数据。RAID 1可以添加热备盘,其中一个磁盘出现故障,自动替换。
RAID1 至少需要2块硬盘:
硬盘
| 分区
| 分区格式
| 大小
|
sdb
| sdb1
| fd
| 5G
|
sdc
| sdc1
| fd
| 5G
|
sdd
| sdd1
| fd
| 5G
|
一、创建 RAID1
1、安装
2、创建 RAID1
mdadm -C /dev/md1 -l1 -n2 /dev/sdb1 /dev/sdc1
# 显示
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? Y # 输入Y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
注解:
选项
| 全称
| 功能
|
C
| --create
| 创建阵列
|
-l
| --level
| 阵列模式
|
-n
| --reid-devices
| 阵列中活动磁盘的数目
|
-x
| -spare-devices=N
| 表示当前阵列中热备盘有 N 块(自定义 N 数量即可)
|
3、配置信息
# 配置磁盘设备文件名
echo "DEVICE /dev/sdb1 /dev/sdc1" >> /etc/mdadm.conf
# 配置软RAID信息
mdadm -Ds /dev/md1 >> /etc/mdadm.conf
4、查看阵列状态
cat /proc/mdstat
# 显示
Personalities : [raid1]
md1 : active raid1 sdc1[1] sdb1[0]
5236736 blocks super 1.2 [2/2] [UU]
unused devices: <none>
5、查看阵列详细
mdadm -D /dev/md1
# 显示
/dev/md1:
Version : 1.2
Creation Time : Sun Feb 19 13:51:13 2023
Raid Level : raid1
Array Size : 5236736 (4.99 GiB 5.36 GB)
Used Dev Size : 5236736 (4.99 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Feb 19 13:51:22 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : kvm110:1 (local to host kvm110)
UUID : ecc4e35d:ca9dd488:343af2c6:dc664d5f
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
注解:
名称
| 功能
|
Raid Level
| 阵列级别
|
Array Size
| 阵列容量大小
|
Raid Devices
| RAID 成员的个数
|
Total Devices
| RAID 中下属成员的总计个数,因为还有冗余硬盘或分区,也就是 spare
|
State
| 包含三个状态(clean 表示正常,degraded 表示有问题,recovering 表示正在恢复或构建)
|
Active Devices
| 被激活的 RAID 成员个数
|
Working Devices
| 正常工作的 RAID 成员个数
|
Failed Devices
| 出问题的 RAID 成员
|
Spare Devices
| 备用 RAID 成员个数(会自动替换出现问题的成员)
|
UUID
| RAID 的 UUID 值,在系统中是唯一的
|
6、挂载系统
# 格式化
mkfs.xfs /dev/md1
# 创建挂载点
mkdir /raid1
# 挂载
mount /dev/md1 /raid1/
# 开机永久挂载
echo "/dev/md1 /raid1 xfs defaults 0 0" >> /etc/fstab
7、查看系统,成功挂载,raid1大小为5G
[root@kvm110 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 17G 1.6G 16G 9% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/md1 xfs 5.0G 93M 4.9G 2% /raid1
8、查看分区
[root@kvm110 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 5G 0 part
└─md1 9:1 0 5G 0 raid1 /raid1
sdc 8:32 0 5G 0 disk
└─sdc1 8:33 0 5G 0 part
└─md1 9:1 0 5G 0 raid1 /raid1
sdd 8:48 0 5G 0 disk
└─sdd1 8:49 0 5G 0 part
sde 8:64 0 5G 0 disk
└─sde1 8:65 0 5G 0 part
9、我们往 raid1 写入一点数据
dd if=/dev/zero of=/raid1/test.img bs=1M count=60
10、重启系统
二、模拟硬盘坏了
场景1:阵列中没有热备盘
1、我们假设 sdb 硬盘坏了
mdadm /dev/md1 -f /dev/sdb1
# 显示
mdadm: set /dev/sdb1 faulty in /dev/md1
2、查看阵列
mdadm -D /dev/md1
# 显示
/dev/md1:
Version : 1.2
Creation Time : Sun Feb 19 13:51:13 2023
Raid Level : raid1
Array Size : 5236736 (4.99 GiB 5.36 GB)
Used Dev Size : 5236736 (4.99 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Feb 19 14:03:58 2023
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Consistency Policy : resync
Name : kvm110:1 (local to host kvm110)
UUID : ecc4e35d:ca9dd488:343af2c6:dc664d5f
Events : 21
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 33 1 active sync /dev/sdc1
0 8 17 - faulty /dev/sdb1 # 显示sdb1坏了
3、添加一块新的硬盘 sdd
mdadm /dev/md1 -a /dev/sdd1
# 显示
mdadm: added /dev/sdd1
# 再次查看阵列
mdadm -D /dev/md1
# 显示
/dev/md1:
......
Number Major Minor RaidDevice State
2 8 49 0 active sync /dev/sdd1 # sdd 加入成功
1 8 33 1 active sync /dev/sdc1
0 8 17 - faulty /dev/sdb1
4、手动移除坏的硬盘,这里如果重启系统,也会把坏的硬盘自动移除的
mdadm /dev/md1 -r /dev/sdb1
# 显示
mdadm: hot removed /dev/sdb1 from /dev/md1
# 再次查看阵列
mdadm -D /dev/md1
# 显示
/dev/md1:
......
Number Major Minor RaidDevice State
2 8 49 0 active sync /dev/sdd1
1 8 33 1 active sync /dev/sdc1
场景2:阵列中存在热备盘
1、我们再次把 sdb 加入阵列中来
mdadm /dev/md1 -a /dev/sdb1
# 查看阵列
mdadm -D /dev/md1
# 显示
/dev/md1:
......
Number Major Minor RaidDevice State
2 8 49 0 active sync /dev/sdd1
1 8 33 1 active sync /dev/sdc1
3 8 17 - spare /dev/sdb1 # 状态变成了备用
2、当存在热备硬盘的情况下:假设这次 sdd 坏了
# 模拟 sdd 硬盘坏了
mdadm /dev/md1 -f /dev/sdd1
# 查看,发现 sdb 的状态马上变成 spare rebuilding
mdadm -D /dev/md1
# 显示
/dev/md1:
......
Number Major Minor RaidDevice State
3 8 17 0 spare rebuilding /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 - faulty /dev/sdd1
3、等一会再次查看,sdb变成活动盘, 热备盘会自动替换坏掉的 sdd
mdadm -D /dev/md1
# 显示
/dev/md1:
......
Number Major Minor RaidDevice State
3 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 - faulty /dev/sdd1
三、如何删除 RAID1
1、取消挂载
2、停止阵列
mdadm --stop /dev/md1
# 如何启用一个阵列
mdadm --assemble /dev/md1
3、清除阵列超级块信息
mdadm --zero-superblock /dev/sd[b-c]1
4、删除永久挂载信息,不然系统就起不来了
# 注释掉
# /dev/md1 /raid1 xfs defaults 0 0"