首先安装并配置mdadm工具,使用sudo mdadm –create创建raid 1、raid 5或raid 10阵列,1. 创建后用mkfs.ext4格式化/dev/md0,2. 挂载到/mnt/raid并添加到/etc/fstab实现开机自动挂载,3. 通过mdadm –detail –scan保存配置至/etc/mdadm/mdadm.conf并更新initramfs,4. 使用mdadm –detail和cat /proc/mdstat查看阵列状态,5. 可设置mailaddr实现邮件告警,6. 故障时可使用–fail、–remove、–add命令更换磁盘,7. 删除阵列时需先umount、stop并zero-superblock清除元数据,所有操作均需提前备份数据并确认磁盘无重要信息,配置完成后应定期检查状态以确保数据安全。
配置磁盘阵列并使用
mdadm
管理 RAID 是 linux 系统中实现数据冗余和性能提升的常用方式。下面以常见的 RAID 1 和 RAID 5 为例,介绍如何使用
mdadm
工具创建、管理 RAID 阵列。
一、准备工作
-
确认系统支持 mdadm
大多数现代 Linux 发行版默认安装mdadm
,若未安装可使用以下命令安装:
-
准备磁盘
使用额外的硬盘或分区(不包含重要数据),例如:-
/dev/sdb
-
/dev/sdc
-
/dev/sdd
可用
lsblk
或
fdisk -l
查看磁盘信息。
-
-
备份数据
RAID 创建过程会清除磁盘数据,操作前请确保数据已备份。
二、创建 RAID 阵列
1. 创建 RAID 1(镜像)
适用于两块磁盘,数据完全镜像,提高安全性。
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
参数说明:
-
--create /dev/md0
:创建名为 md0 的阵列设备
-
--level=1
:RAID 级别为 1
-
--raid-devices=2
:使用 2 块设备
-
/dev/sdb /dev/sdc
:参与阵列的磁盘
2. 创建 RAID 5(带奇偶校验条带化)
至少需要三块磁盘,兼顾性能和冗余。
sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
注意:RAID 5 在一块磁盘故障时仍可运行,但重建过程较慢,建议在重要场景使用 RAID 6 或 RAID 10。
3. 创建 RAID 10(嵌套 RAID)
需至少四块磁盘,结合 RAID 1 和 RAID 0 的优势。
sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
三、格式化并挂载 RAID 设备
创建完成后,对
/dev/md0
进行格式化并挂载:
# 格式化为 ext4 文件系统 sudo mkfs.ext4 /dev/md0 # 创建挂载点并挂载 sudo mkdir /mnt/raid sudo mount /dev/md0 /mnt/raid # 设置开机自动挂载(可选) echo '/dev/md0 /mnt/raid ext4 defaults 0 0' | sudo tee -a /etc/fstab
四、保存 RAID 配置
mdadm
配置需保存到配置文件,以便系统重启后能自动识别阵列。
# 保存当前阵列配置 sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf # 更新 initramfs(重要,否则可能无法在启动时识别阵列) sudo update-initramfs -u
Debian/Ubuntu 使用
update-initramfs,CentOS/RHEL 使用
dracut -f
五、查看与监控 RAID 状态
-
查看阵列详细信息
sudo mdadm --detail /dev/md0
输出包括:
- RAID 级别
- 成员磁盘状态(如
active sync
表示正常)
- 是否降级(
degraded
)
- 同步进度
-
查看所有阵列
cat /proc/mdstat
示例输出:
Personalities : [raid1] [raid5] md0 : active raid1 sdc[1] sdb[0] 1048576 blocks super 1.2 [2/2] [UU]
[UU]
表示两个磁盘都正常,
[_U]
表示有磁盘缺失。
-
监控 RAID 状态(可配置邮件告警)
编辑
/etc/mdadm/mdadm.conf
,添加邮件通知:
MAILADDR your-email@example.com
系统会在磁盘故障等事件发生时发送邮件。
六、管理与维护
1. 模拟磁盘故障测试
# 标记某磁盘为故障(测试用) sudo mdadm --fail /dev/md0 /dev/sdb # 查看状态,应显示磁盘已失效 sudo mdadm --detail /dev/md0
2. 移除故障磁盘
sudo mdadm --remove /dev/md0 /dev/sdb
3. 添加新磁盘替换
# 添加新磁盘(如 /dev/sdb 已更换) sudo mdadm --add /dev/md0 /dev/sdb
阵列将自动开始重建。
4. 停止并删除 RAID
# 卸载文件系统 sudo umount /mnt/raid # 停止阵列 sudo mdadm --stop /dev/md0 # 清除超级块(每个成员磁盘执行) sudo mdadm --zero-superblock /dev/sdb sudo mdadm --zero-superblock /dev/sdc
注意:
zero-superblock会清除磁盘上的 RAID 元数据,务必确认磁盘无其他用途。
七、常见问题
-
RAID 同步很慢?
可通过调整内核参数加快同步速度:echo 100000 > /proc/sys/dev/raid/speed_limit_min
-
启动时无法识别阵列?
确保已运行update-initramfs -u
并检查
/etc/mdadm/mdadm.conf
是否包含阵列信息。
-
磁盘顺序变化导致识别失败?
使用 UUID 或/dev/disk/by-id/
路径更稳定。
基本上就这些。
mdadm
虽然命令行操作稍显复杂,但稳定可靠,适合在服务器环境中长期使用。关键是配置后保存设置并定期检查状态,避免在磁盘真正故障时措手不及。