Linux中RAID5的搭建、管理与维护详解

Linux中RAID5的搭建、管理与维护详解

Linux中RAID5 的搭建、管理与维护详解在生产环境中,RAID(独立磁盘冗余阵列)被广泛用于提升存储的性能与可靠性。本文将通过一个完整的案例,详细讲解如何在 Linux 上配置、管理、扩容、模拟故障以及删除 RAID5 阵列,内容涵盖命令、输出解释与常见场景。

什么是 RAID5RAID5 是一种带奇偶校验信息的条带化(striping)存储方案。它至少需要 3 块硬盘,能够在 1 块硬盘故障的情况下继续工作。RAID5 的优点是容量利用率高(N 块盘中可用 N-1 块盘容量)、读性能较好、能容错 1 块盘。

环境准备与前提在正式创建 RAID5 之前,先确保以下环境:

Linux 系统(带 mdadm 工具)

至少 3 块(推荐 4 块)空闲硬盘

有 root 权限

如果之前这些磁盘上已经有 LVM 卷组,需要先清理干净

一、清理已有 LVM 卷组(如有)如果之前这些磁盘用于 LVM,需要先卸载并删除:

umount /dev/vgmubak/lvmubase

umount /dev/vgmubak/lvmuother

lvchange -an /dev/vgmubak

vgchange -an /dev/vgmubak

lvremove /dev/vgmubak/lvmuother

lvremove /dev/vgmubak/lvmubase

vgremove /dev/vgmubak二、硬盘分区RAID 的推荐做法是给每块盘创建 RAID 分区类型(fd 类型)。

以四块盘为例:/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde。

对每一块盘都要执行以下 fdisk 步骤:

fdisk /dev/sdb fdisk /dev/sdc fdisk /dev/sdd fdisk /dev/sde在 fdisk 中的步骤:

输入 m 查看帮助

输入 d 删除已有分区

输入 n 新建分区,选择主分区(p),输入容量(一般填全部)

输入 t 修改分区类型,输入 fd(Linux raid autodetect)

输入 w 保存退出

# 清理分区表

sgdisk --zap-all /dev/sdX

# 清理 RAID superblock(常见)

mdadm --zero-superblock /dev/sdX对四块盘都重复以上步骤。

分区表更新后,执行:

partprobe让内核重新读取分区表。

三、创建 RAID5 设备基本创建命令创建一个 RAID5 卷(4 块盘):

mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1进阶示例(含热备盘)例如,3 块活动盘 + 1 块热备盘:

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd[b-d]1参数解释-C / --create :创建阵列

-a yes / --auto :自动创建设备

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

-n / --raid-devices :活动盘数量

-x :热备盘数量

四、常用管理命令查看详细信息:

mdadm --detail /dev/md0 查看状态:

cat /proc/mdstat 标记硬盘故障:

mdadm /dev/md0 -f /dev/sdb1 移除硬盘:

mdadm /dev/md0 -r /dev/sdb1 添加新硬盘:

mdadm /dev/md0 -a /dev/sdb1停止阵列:

mdadm --stop /dev/md0删除 superblock(清理 RAID 签名):

mdadm --zero-superblock /dev/sdX 五、格式化与挂载 RAID5成功创建阵列后,格式化文件系统:

mkfs.ext4 /dev/md0 创建挂载目录并挂载:

mkdir /data mount /dev/md0 /data 开机自动挂载:

echo 'UUID=xxx /data ext4 defaults 0 0' >> /etc/fstab 六、模拟 RAID5 硬盘损坏为了测试容错能力,可以“手动”模拟一块盘故障:

mdadm /dev/md0 -f /dev/sdb1 查看状态:

cat /proc/mdstat mdadm --detail /dev/md0 现象:

/dev/sdb1 后出现 (F) 标记,表示已被标记为故障

阵列状态行中如 [_U] 表示有一块盘失效但还能正常工作

移除故障盘:

mdadm /dev/md0 -r /dev/sdb1 添加替换的新盘:

mdadm /dev/md0 -a /dev/sdb1 观察重建进度:

cat /proc/mdstat 七、RAID5 阵列扩容当需要增加容量时,可以添加硬盘到阵列:

1️⃣ 新硬盘分区对新硬盘执行前面相同的 fdisk 流程,创建 fd 类型分区。

2️⃣ 加入阵列添加到 RAID 中:

mdadm /dev/md0 -a /dev/sdf1 查看状态:

mdadm -D /dev/md0 默认情况下,新盘会被当作 热备盘。

3️⃣ 转为活动盘并重构将热备盘转成活动盘(-n 指定新总活动盘数,触发重建):

mdadm -G /dev/md0 -n 3 4️⃣ 扩容文件系统重建完成后,阵列容量增大,但文件系统尚未扩展:

resize2fs /dev/md05️⃣ 更新配置文件建议在 /etc/mdadm.conf 中记录新配置,例如:

DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1

ARRAY /dev/md0 level=raid5 num-devices=4 UUID= 八、删除 RAID 阵列卸载挂载点umount /dev/md0 停止阵列mdadm --stop /dev/md0移除设备mdadm --remove /dev/md0 清除 superblock对所有涉及的分区清理 RAID 签名:

mdadm --zero-superblock /dev/sd[bcdef] 九、RAID5 双盘故障情况下的修复尝试RAID5 只能容忍 1 块盘坏,若坏 2 块就非常危险。以下命令仅用于尝试在紧急情况下“强行组装”尽可能读取数据:

mdadm --stop /dev/md0 mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 missing /dev/sde1 这里:

/dev/sda1、/dev/sdb1 是剩余可用的盘

missing 占位用于声明有一块丢失

/dev/sde1 是你想替换的新硬盘

这种方式能否成功取决于坏块数量和阵列的具体状况。

十、mdadm 其他常用选项小抄-D / --detail :查看阵列详细信息

-f :标记硬盘为故障

-a :添加新硬盘

-r :移除硬盘

-s / --scan :扫描系统信息

-S :停止阵列

--zero-superblock :抹掉 RAID 签名

--assemble --scan :自动扫描并重组可用 RAID

总结RAID5 在生产环境中非常常见,但一定要注意:

严格检查硬盘分区类型

按规范添加/移除磁盘

定期查看 /proc/mdstat 监控状态

关键数据仍要异地/异构备份

相关数据

HUANO环诺大地轴简评:线性轴体新选择
下载365App

HUANO环诺大地轴简评:线性轴体新选择

⌛ 08-28 👁️ 6354
Moodle介绍篇
下载365App

Moodle介绍篇

⌛ 07-09 👁️ 542
解酒食物
下载365App

解酒食物

⌛ 10-01 👁️ 846