返回首页

Linux RAID 与 LVM 基础指南 — 磁盘组合与空间管理

📅 创建于 2026-05-29 🔄 更新于 2026-09-07 📝 811 字

来源:赵楠 | 发布日期:2026-05-15

Linux RAID 与 LVM 基础指南

RAID 解决「多块硬盘怎么组合才能更快、更安全」。LVM 解决「磁盘空间怎么管理才能更灵活、方便扩容」。文件系统管数据怎么存放,挂载点决定用户从哪里访问。

核心分工

职责 工具/技术
RAID 硬盘组合(性能+冗余) mdadm, 硬件 RAID 卡
LVM 空间分配(灵活扩缩) pvcreate, vgcreate, lvcreate
文件系统 数据组织存放 mkfs.xfs, mkfs.ext4
挂载点 访问入口 mount, /etc/fstab

RAID:独立磁盘冗余阵列

RAID 级别对比

级别 最少盘 容量利用率 冗余 特点 适合场景
RAID 0 2 100% 条带化,速度最快 临时数据、缓存
RAID 1 2 50% 1 盘 镜像,读性能好 系统盘、关键配置
RAID 5 3 (N-1)/N 1 盘 分布式奇偶校验 文件存储、读多写少
RAID 6 4 (N-2)/N 2 盘 双校验,更安全 大容量、数据安全要求高
RAID 10 4 50% 每组 1 盘 先镜像再条带 数据库、高并发业务

核心原则: RAID 防硬盘故障,备份防数据丢失。两者不可替代。

各级别详解

RAID 0(条带化)

  • 数据分散写到多块硬盘,同时读写 → 速度快
  • 但任意一块盘坏 → 数据全丢
  • ⚠️ 无冗余,不要用于重要数据

RAID 1(镜像)

  • 数据同时写到两块硬盘,一块坏了另一块完整可用
  • 读性能提升(可以并发读),写性能等于单盘
  • 容量减半(2 块盘只能用到 1 块的容量)

RAID 5(分布式奇偶校验)

  • 数据 + 校验信息分布在所有盘上
  • 坏 1 块盘可重建,但重建期间有风险
  • 写入性能较差:小写入要"读-改-写"(读旧数据+旧校验 → 算新校验 → 写新数据+新校验,实际 2 读 2 写),写密集场景明显变慢
  • 大盘时代另一重风险:重建需把剩余盘全盘读一遍,撞上 URE(不可恢复读取错误)即"二次雪崩"→ 详见 linux-raid5-rebuild-risk-guide

RAID 6(双校验)

  • 比 RAID 5 多一层校验,可坏 2 块盘
  • 写入性能更低,适合对安全要求极高的场景

RAID 10(镜像+条带)

  • 先做 RAID 1 镜像,再做 RAID 0 条带
  • 性能和冗余兼得,但成本较高(利用率 50%)
  • 数据库、高并发业务首选

LVM:逻辑卷管理

分层架构

┌─────────────────────────────┐
│  挂载点(/data)             │
├─────────────────────────────┤
│  文件系统(xfs / ext4)      │
├─────────────────────────────┤
│  LV(逻辑卷)                │
├─────────────────────────────┤
│  VG(卷组)                  │
├─────────────────────────────┤
│  PV /dev/sdb  /dev/sdc      │  ← 物理硬盘或分区
└─────────────────────────────┘

核心概念

组件 全称 说明
PV Physical Volume 物理卷,硬盘或分区的 LVM 抽象
VG Volume Group 卷组,多个 PV 组成一个存储池
LV Logical Volume 逻辑卷,从 VG 中划分出的可用空间
PE Physical Extent 物理扩展块,LVM 的最小存储单元

常用命令操作

# 一、PV 阶段
pvscan                              # 查看所有 PV
pvcreate /dev/sdb /dev/sdc          # 将硬盘初始化为 PV
pvdisplay                           # 查看 PV 详情

# 二、VG 阶段
vgcreate vg_data /dev/sdb /dev/sdc  # 创建 VG
vgs                                 # 查看 VG 摘要
vgdisplay vg_data                   # 查看 VG 详情
vgextend vg_data /dev/sdd           # 扩展 VG(加新盘)

# 三、LV 阶段
lvcreate -L 100G -n lv_data vg_data           # 创建 100G LV
lvcreate -l 100%FREE -n lv_data vg_data       # 使用全部剩余空间
lvs                                             # 查看 LV 摘要
lvdisplay                                       # 查看 LV 详情
lvextend -L +50G /dev/vg_data/lv_data           # LV 扩容 +50G
lvextend -l +100%FREE /dev/vg_data/lv_data      # LV 使用 VG 全部剩余空间

# 四、文件系统阶段
mkfs.xfs /dev/vg_data/lv_data                   # 格式化
mount /dev/vg_data/lv_data /data                # 挂载

# ⚠️ 扩容 LV 后必须扩展文件系统
xfs_growfs /data                                # XFS 扩容
resize2fs /dev/vg_data/lv_data                  # ext4 扩容

记住: lvextend → 仅扩 LV 层,必须再执行 xfs_growfs/resize2fs 扩文件系统层。

VG 丢失 / PV 损坏恢复(2026-09-07 磁盘故障 runbook 补充)

lvdisplay 无输出、vgchange -ayNo volume groups foundInput/output error 时的五步恢复:

pvscan                                                          # 1. 扫描所有 PV
vgcfgrestore -f /etc/lvm/backup/vg_centos -n vg_centos /dev/sda2  # 2. 从 /etc/lvm/backup|archive 还原 VG 元数据
vgck --updatemetadata vg_centos                                 # 3. 元数据区损坏时检查修复一致性
vgchange -ay                                                    # 4. 激活卷组
pvcreate --uuid --restorefile /etc/lvm/backup/vg_centos /dev/sda2 # 5. PV 丢失时按原 UUID 重建(不丢数据)

完整八场景故障手册见 linux-disk-fault-scenario-runbook

lsblk 查看全貌

lsblk
# NAME                 MAJ:MIN  SIZE  TYPE  MOUNTPOINT
# sda                    8:0     100G  disk
# ├─sda1                 8:1       1G  part  /boot
# └─sda2                 8:2      99G  part
#   └─centos-root      253:0      50G  lvm   /
# sdb                    8:16     1T   disk
# └─vg_data-lv_data    253:1     1T   lvm   /data

常见组合方案

场景 推荐方案 说明
系统盘(OS) RAID 1 2 块盘做镜像,系统稳定运行
数据盘(DB/VM) RAID 10 + LVM 性能+冗余兼备,LVM 方便扩容
文件存储 RAID 5/6 + LVM 容量优先,读多写少
测试环境 单盘或 RAID 0 追求速度,不关心数据安全

6 个常见陷阱

⚠️ RAID ≠ 备份 — RAID 防硬盘故障,备份防数据丢失。重要数据必须有独立备份。

⚠️ 扩容 LV 后忘扩文件系统lvextend 后必须 xfs_growfs/resize2fs,否则 df -h 看不到变化。

⚠️ 不同文件系统用错命令 — XFS 用 xfs_growfs,ext4 用 resize2fs,混用会报错。

⚠️ 操作前不确认设备名/dev/sda vs /dev/sdb 搞错后果严重。操作前三确认:设备名正确?数据已备份?有回滚方案?

⚠️ 不监控 RAID 状态 — RAID 降级后系统仍运行,再坏一块盘就出大事故。必须监控阵列状态。

⚠️ 大容量盘还用 RAID 5 扛关键数据 — 2TB/4TB 及以上容量的盘重建需全盘读取,撞上 URE(不可恢复读取错误)的概率已不可忽略,"坏一块盘 → 重建失败 → 全阵列数据丢失"的二次雪崩不再是黑天鹅(2026-09-07 补,详见 linux-raid5-rebuild-risk-guide)。数据不能丢的大容量阵列建议 RAID 6 或 RAID 10。

学习路径建议

先建立认知,不需要死记命令:

  1. 理解分层:硬盘 → RAID → PV → VG → LV → 文件系统 → 挂载点
  2. 掌握 RAID 核心区别:RAID 0/1/5/6/10 各解决什么问题
  3. 掌握 LVM 核心命令:pvcreate → vgcreate → lvcreate → mkfs → mount
  4. 掌握扩容流程:加盘 → pvcreate → vgextend → lvextend → xfs_growfs
  5. 了解硬件 RAID vs 软件 RAID 的区别

动手练习可在虚拟机中添加虚拟硬盘,依次执行上述命令。

关联页面

页面关联点
linux-disk-fault-scenario-runbook磁盘故障场景化修复手册(8 大场景对号入座:只读/超级块/Inode/坏道/盘符漂移/挂载夯住/LVM 故障/救援模式)
linux-disk-io-tuningLinux 磁盘 IO 调优(含 LVM SSD 缓存)
linux-disk-space-troubleshooting磁盘空间排查
linux-essential-commands-referenceLinux 常用命令
linux-kernel-tuning-guide内核参数调优(含 IO 调度器)
server-performance-four-dimensions四维性能排查(含磁盘 IO)
linux-rm-rf-recovery-guideLinux 下 rm -rf 误删文件后的应急响应与数据恢复实战指南,覆盖 ext4/xfs/btr
linux-rm-rf-ops-recovery-handbookrm -rf 误删文件后的完整应急流程、容器/K8s场景恢复、不同数据类型恢复策略与工程化预防
ops-interview-50-questions运维面试题(LVM 扩容 + RAID 对比)
linux-smart-disk-failure-predictionSMART 磁盘故障预测实战:6 大高危指标判读 + 采集管道 + smartd 告警 + XGBoost 模型 + Prometheus 可视化
linux-raid5-rebuild-risk-guideRAID 5 大容量时代重建风险指南:写惩罚(读-改-写)+ URE 二次雪崩 + RAID 6/10 选型红线