3.5.6 RAID与LVM/文件系统的组合实践

3.5.6 RAID与LVM/文件系统的组合实践#

RAID提供冗余与性能,LVM提供容量弹性,文件系统决定实际特性。推荐路径:磁盘 → RAID(/dev/mdX) → LVM(PV/VG/LV) → 文件系统 → 挂载点。本节给出完整落地流程、扩容、排错与练习。

原理草图(组合架构)#

文章图片

安装与准备(软件RAID + LVM + XFS)#

以下以三块空盘 /dev/sdb /dev/sdc /dev/sdd 组 RAID5 为例

# 1) 安装工具
# CentOS/RHEL
yum -y install mdadm lvm2 xfsprogs
# Ubuntu/Debian
# apt -y install mdadm lvm2 xfsprogs

# 2) 预清理(避免旧签名影响)
wipefs -a /dev/sdb /dev/sdc /dev/sdd

# 3) 创建RAID5阵列
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

# 4) 查看同步进度
cat /proc/mdstat
mdadm --detail /dev/md0

# 5) 保存RAID配置(开机识别)
mdadm --detail --scan >> /etc/mdadm.conf

创建LVM与文件系统并挂载(完整流程)#

# 1) LVM初始化
pvcreate /dev/md0
vgcreate vg_data /dev/md0
lvcreate -n lv_data -L 200G vg_data

# 2) 创建文件系统
mkfs.xfs -f /dev/vg_data/lv_data

# 3) 创建挂载点并挂载
mkdir -p /data
mount /dev/vg_data/lv_data /data

# 4) 持久化挂载
echo "/dev/vg_data/lv_data /data xfs defaults 0 0" >> /etc/fstab
mount -a
df -h /data

关键命令解释#

  • mdadm --create:创建软件RAID阵列。--level为RAID级别,--raid-devices为盘数。
  • pvcreate/vgcreate/lvcreate:将RAID设备抽象为PV/VG/LV,便于扩容与快照。
  • mkfs.xfs:创建XFS文件系统(大文件与高并发推荐)。
  • mount -a:验证/etc/fstab是否可正确挂载。

在线扩容实战(新增磁盘并扩展RAID5→LVM→XFS)#

# 假设新增 /dev/sde
wipefs -a /dev/sde

# 1) RAID扩容:添加新盘并扩展阵列
mdadm --add /dev/md0 /dev/sde
mdadm --grow /dev/md0 --raid-devices=4

# 2) 等待重建完成
watch -n 2 cat /proc/mdstat

# 3) LVM扩容
pvresize /dev/md0
lvextend -l +100%FREE /dev/vg_data/lv_data

# 4) 扩展文件系统(XFS)
xfs_growfs /data

# 5) 验证
df -h /data

快照与备份窗口示例(LVM快照)#

# 创建10G快照(短期一致性备份)
lvcreate -s -n lv_data_snap -L 10G /dev/vg_data/lv_data

# 挂载快照只读进行备份
mkdir -p /mnt/snap
mount -o ro /dev/vg_data/lv_data_snap /mnt/snap

# 备份示例
tar -czf /backup/data_$(date +%F).tar.gz -C /mnt/snap .

# 清理
umount /mnt/snap
lvremove -y /dev/vg_data/lv_data_snap

常见排错与恢复#

  1. 阵列重建慢/卡住
# 查看是否在重建
cat /proc/mdstat
# 调整重建速率(谨慎)
echo 200000 > /proc/sys/dev/raid/speed_limit_min
echo 500000 > /proc/sys/dev/raid/speed_limit_max
  1. 设备无法识别(开机后md0丢失)
# 重新组装
mdadm --assemble --scan
mdadm --detail --scan >> /etc/mdadm.conf
  1. LVM找不到PV/VG
pvscan
vgscan
vgchange -ay
  1. 文件系统无法挂载
# XFS修复(只读挂载失败时)
xfs_repair /dev/vg_data/lv_data
# EXT4修复示例
# fsck -y /dev/vg_data/lv_data

练习题(动手验证)#

  1. 用三块虚拟盘创建RAID1与RAID5各一套,比较可用容量与容错能力。
  2. 在RAID5上创建LVM,分别创建两个LV(100G/50G),挂载到 /data/logs
  3. 模拟单盘故障(mdadm --fail /dev/md0 /dev/sdc),观察 /proc/mdstat 变化并完成替换与重建。
  4. 扩展阵列后,完成LVM与XFS在线扩容,记录前后df -h变化。
  5. 使用LVM快照进行一次只读备份,并验证备份文件可解压。

选型建议(总结)#

  • 性能优先且容忍丢失:RAID0 + LVM + XFS(缓存/临时盘)。
  • 高可用读性能:RAID1 + LVM + EXT4/XFS(系统盘/关键业务)。
  • 容量与可用性平衡:RAID5/6 + LVM + XFS(大容量数据盘)。
  • 高性能高可用:RAID10 + LVM + XFS(核心业务/数据库)。