如何配置磁盘阵列 mdadm管理RAID

首先安装并配置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

配置磁盘阵列并使用

mdadm

管理 RAID 是 linux 系统中实现数据冗余和性能提升的常用方式。下面以常见的 RAID 1 和 RAID 5 为例,介绍如何使用

mdadm

工具创建、管理 RAID 阵列。


一、准备工作

  1. 确认系统支持 mdadm
    大多数现代 Linux 发行版默认安装

    mdadm

    ,若未安装可使用以下命令安装:

    # ubuntu/debian sudo apt update sudo apt install mdadm  # centos/RHEL/Rocky Linux sudo yum install mdadm # 或使用 dnf sudo dnf install mdadm
  2. 准备磁盘
    使用额外的硬盘或分区(不包含重要数据),例如:

    • /dev/sdb
    • /dev/sdc
    • /dev/sdd

    可用

    lsblk

    fdisk -l

    查看磁盘信息。

  3. 备份数据
    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 状态

  1. 查看阵列详细信息

    sudo mdadm --detail /dev/md0

    输出包括:

    • RAID 级别
    • 成员磁盘状态(如
      active sync

      表示正常)

    • 是否降级(
      degraded

    • 同步进度
  2. 查看所有阵列

    cat /proc/mdstat

    示例输出:

    Personalities : [raid1] [raid5] md0 : active raid1 sdc[1] sdb[0]       1048576 blocks super 1.2 [2/2] [UU]
    [UU]

    表示两个磁盘都正常,

    [_U]

    表示有磁盘缺失。

  3. 监控 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

虽然命令行操作稍显复杂,但稳定可靠,适合在服务器环境中长期使用。关键是配置后保存设置并定期检查状态,避免在磁盘真正故障时措手不及。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享