来源:赵楠 | 发布日期: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 -ay 报 No volume groups found 或 Input/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。
学习路径建议
先建立认知,不需要死记命令:
- 理解分层:硬盘 → RAID → PV → VG → LV → 文件系统 → 挂载点
- 掌握 RAID 核心区别:RAID 0/1/5/6/10 各解决什么问题
- 掌握 LVM 核心命令:pvcreate → vgcreate → lvcreate → mkfs → mount
- 掌握扩容流程:加盘 → pvcreate → vgextend → lvextend → xfs_growfs
- 了解硬件 RAID vs 软件 RAID 的区别
动手练习可在虚拟机中添加虚拟硬盘,依次执行上述命令。
关联页面
| 页面 | 关联点 |
|---|---|
| linux-disk-fault-scenario-runbook | 磁盘故障场景化修复手册(8 大场景对号入座:只读/超级块/Inode/坏道/盘符漂移/挂载夯住/LVM 故障/救援模式) |
| linux-disk-io-tuning | Linux 磁盘 IO 调优(含 LVM SSD 缓存) |
| linux-disk-space-troubleshooting | 磁盘空间排查 |
| linux-essential-commands-reference | Linux 常用命令 |
| linux-kernel-tuning-guide | 内核参数调优(含 IO 调度器) |
| server-performance-four-dimensions | 四维性能排查(含磁盘 IO) |
| linux-rm-rf-recovery-guide | Linux 下 rm -rf 误删文件后的应急响应与数据恢复实战指南,覆盖 ext4/xfs/btr |
| linux-rm-rf-ops-recovery-handbook | rm -rf 误删文件后的完整应急流程、容器/K8s场景恢复、不同数据类型恢复策略与工程化预防 |
| ops-interview-50-questions | 运维面试题(LVM 扩容 + RAID 对比) |
| linux-smart-disk-failure-prediction | SMART 磁盘故障预测实战:6 大高危指标判读 + 采集管道 + smartd 告警 + XGBoost 模型 + Prometheus 可视化 |
| linux-raid5-rebuild-risk-guide | RAID 5 大容量时代重建风险指南:写惩罚(读-改-写)+ URE 二次雪崩 + RAID 6/10 选型红线 |