温馨提示×

ubuntu文件系统如何配置RAID

小樊
33
2026-01-02 23:49:52
栏目: 智能运维

Ubuntu 文件系统下配置软 RAID 实操指南

一 准备与规划

  • 适用场景:使用 mdadm 在 Ubuntu 上构建和管理软件 RAID,常见级别有 RAID 0/1/5/6/10。准备若干块无重要数据的磁盘(如 /dev/sd[b-e]),并确认设备名稳定(避免重启后变化)。
  • 安装工具:
    • 更新索引并安装 mdadm:sudo apt update && sudo apt install -y mdadm
    • 可选:分区工具 parted、逻辑卷管理 lvm2(如需在 RAID 上再建 LVM)
  • 磁盘初始化(全新盘):
    • 查看磁盘:lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
    • 擦除分区表/签名:sudo wipefs -a /dev/sdX(对每个用于 RAID 的盘执行)
    • 分区建议:使用 GPT,将整盘或分区类型设为 Linux RAID(fd)。也可直接使用整盘(不分区)。

二 创建阵列与文件系统

  • 创建示例(按需求选择级别与成员盘):
    • RAID 1(镜像,2 盘):sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
    • RAID 5(至少 3 盘):sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
    • RAID 10(至少 4 盘):sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
  • 观察进度:cat /proc/mdstatwatch -n 1 cat /proc/mdstat
  • 在阵列上创建文件系统(以 ext4 为例):
    • 若阵列设备为 /dev/md0sudo mkfs.ext4 /dev/md0
    • 若你在阵列上先做了分区(如 /dev/md0p1):sudo mkfs.ext4 /dev/md0p1

三 挂载与开机自动装配

  • 创建挂载点并挂载:
    • sudo mkdir -p /mnt/raid
    • sudo mount /dev/md0 /mnt/raid(或 sudo mount /dev/md0p1 /mnt/raid
  • 获取 UUID(推荐用 UUID,避免设备名漂移):sudo blkid /dev/md0
  • 配置自动装配:
    • 写入 mdadm 配置:sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
    • 更新 initramfs:sudo update-initramfs -u
    • 编辑 /etc/fstab,使用 UUID 添加一行(示例):
      • UUID=<your-uuid> /mnt/raid ext4 defaults,nofail 0 2
      • 说明:nofail 允许系统在没有该盘时仍可启动;0 2 为 dump 与 fsck 顺序。

四 监控维护与故障处理

  • 查看状态:sudo mdadm --detail /dev/md0cat /proc/mdstat
  • 一致性检查(建议定期):echo check > /sys/block/md0/md/sync_action
  • 故障盘替换流程:
    • 标记故障:sudo mdadm --manage /dev/md0 --fail /dev/sdb
    • 移除故障盘:sudo mdadm --manage /dev/md0 --remove /dev/sdb
    • 插入新盘并加入:sudo mdadm --manage /dev/md0 --add /dev/sdb(阵列将自动重建)
  • 邮件告警(可选):在 /etc/mdadm/mdadm.conf 中添加 MAILADDR your-email@example.com,并重启 mdadm 服务或确保监控已启用。

五 常见问题与进阶

  • 盘符漂移导致无法挂载:优先使用 UUID 挂载;确保 /etc/mdadm/mdadm.confupdate-initramfs -u 已正确执行,使阵列在 initramfs 阶段可用。
  • 性能优化(可选):
    • 创建阵列时指定条带大小:--chunk=64(或 128/256,视负载而定)
    • 为 ext4 设置条带参数(示例):sudo mkfs.ext4 -E stride=16,stripe-width=32 /dev/md0
    • 调整 I/O 调度器(示例):echo deadline | sudo tee /sys/block/md0/queue/scheduler
  • 扩容思路(示例:RAID5 从 3 盘扩到 4 盘)
    • 先加盘:sudo mdadm --manage /dev/md0 --add /dev/sde
    • 增长阵列:sudo mdadm --grow /dev/md0 --raid-devices=4
    • 等待重建完成后,扩展文件系统:sudo resize2fs /dev/md0
  • 删除阵列(谨慎):
    • 卸载:sudo umount /mnt/raid
    • 停止阵列:sudo mdadm --stop /dev/md0
    • 清除超级块:sudo mdadm --misc --zero-superblock /dev/sd[b-e]
    • 清理配置:sudo sed -i '/^ARRAY \/dev\/md0/d' /etc/mdadm/mdadm.conf 并更新 initramfs;同时从 /etc/fstab 删除对应行。

0