Linux 硬盘配置软 RAID

Linux 内核中有一个 md(multiple devices)模块在底层管理 RAID 设备,它提供一个命令 mdadm ,用于管理软件 RAID

mdadm 命令常用参数:

-a/--auto  # {yes|no} 自动为其创建设备文件

-A/--assemble  # 组装已存在的阵列

-c/--chunk  # 设置块大小(KB)

-C/--create  # 创建

-D/--detail  # 查看阵列详细信息

-e/--metadata  # 设置元数据版本

-E/--examine  # 检查硬盘 RAID 元数据

-f/--fail  # 模拟设备损坏

-F/--monitor  # 后台监控阵列状态,确保 mdmonitor 服务启动正常才可以使用该参数

-G/--grow  # 调整阵列参数,如阵列扩容

-l/--level  # 指定 RAID 级别

-n/--raid-devices  # 指定设备数量

-Q/--query  # 查看摘要信息

-r/--remove  # 移除设备

-s/--scan  # 扫描并列出所有阵列

-S/--stop  # 停止 RAID 磁盘阵列

-v/--verbose  # 显示过程

-w/--wait  # 等待操作完成(重建时使用)

-x/--spare-devices  # 指定空闲盘(热备盘)个数,空闲盘(热备盘)能在工作盘损坏后自动顶替

--add  # 添加硬盘到阵列

--manage  # 管理已存在的硬盘阵列

--replace  # 替换故障盘,用法 --replace 旧盘=新盘,旧盘和新盘顺序写反会导致命令报错

--zero-superblock  # 清除硬盘上的 RAID 元数据

# 创建 RAID1 阵列

mdadm --create /dev/md0 -a yes -l 1 -n 2 /dev/sdc /dev/sdd 

# 创建 RAID5 阵列

mdadm --create /dev/md1 -l 5 -n 4 -v /dev/nvme{0..3}n1

# 查看 RAID 阵列信息

mdadm --detail /dev/md0

cat /proc/mdstat

# 停止 RAID 

mdadm --misc --stop /dev/md0

# 清除硬盘 RAID 信息

mdadm --misc --zero-superblock /dev/sd{c,d}

# 模拟 RAID 故障

mdadm /dev/md1 -f /dev/nvme0n1

# 移除 RAID 阵列中的硬盘

mdadm --manage /dev/md1 --remove /dev/nvme0n1

# 更换新硬盘

mdadm --manage /dev/md1 --add /dev/nvme4n1

# 替换故障盘

mdadm --manage /dev/md1 --replace /dev/nvme0n1=/dev/nvme4n1

# 格式化硬盘阵列

mkfs.ext4 /dev/md1 或 mkfs.xfs /dev/md1

# 挂载硬盘阵列

mount /dev/md1 /data

# 写入 mdadm 配置到文件

mdadm --detail --scan > /etc/mdadm.conf

# 配置 mdmonitor(确保 ConditionPathExists 参数和配置文件名保持一致)

vim /usr/lib/systemd/system/mdmonitor.service

systemctl daemon-reload

systemctl restart mdmonitor

systemctl enable mdmonitor

# 更新当前内核的 initramf

dracut -f # RHEL/CentOS

update-initramfs -u # Debian/Ubuntu

posted @ 2025-06-04 10:16  demoduan  阅读(142)  评论(0)    收藏  举报