磁盘管理与 LVM 在线扩容实战
磁盘管理与 LVM 在线扩容实战
磁盘告警(/ 使用率 90%)是运维半夜被叫醒的高频原因。给磁盘规划做对了两件事——用 LVM、留扩容路径——大多数告警都能在业务无感的情况下解决。这篇是磁盘管理的完整实战。
一、分区表:MBR vs GPT
| 对比项 | MBR | GPT |
|---|---|---|
| 最大容量 | 2TB | 大得多 |
| 主分区数 | 最多 4 个 | 128 个 |
| 工具 | fdisk | parted / gdisk |
| 场景 | 小于 2T 的盘 | 大于 2T 的盘必须 GPT |
一条判断记住:小于 2T 用 fdisk(MBR),大于 2T 用 parted(GPT)。
二、RAID 选型:一句话对比
| 级别 | 最少磁盘 | 可用容量 | 容错 | 特点 | 典型场景 |
|---|---|---|---|---|---|
| RAID0 | 1 | 100% | 无 | 最快最脆,坏一块全丢 | 缓存/临时数据,生产几乎不用 |
| RAID1 | 2 | 50% | 1 块 | 完全镜像,安全但写慢 | 系统盘、关键小数据 |
| RAID5 | 3 | (n-1)/n | 1 块 | 均衡,坏 1 块靠校验重建 | 通用业务盘(非数据库) |
| RAID10 | 4 | 50% | 每组 1 块 | 先镜像再条带,快且安全 | 数据库等高 IO 关键业务 |
生产选型就记一条:数据库上 RAID10,通用数据 RAID5,系统盘 RAID1——不追求理论极致,追求”故障时能扛住”。
三、LVM:为什么磁盘规划一定要用它
直接分区 + 格式化虽然简单,但空间不够时只能换更大盘、迁移数据,停机时间长。LVM 的核心价值一句话:不停止服务、不卸载目录,在线扩容。
LVM 三层概念:PV(物理卷,把盘擦干净打标记)→ VG(卷组,把 PV 收进一个池)→ LV(逻辑卷,从池里切出来用)。
初始化流程
1 | # 1. PV:把新盘变成物理卷 |
在线扩容(四层,一步都不能少)
场景:/data 只剩 10% 空间,新买了一块 200G 云盘 /dev/sdc,不停机扩到 300G。
1 | # 1. 物理层面:新盘变成 PV |
完成后 df -h 立刻看到 300G,全程业务无中断。踩坑点:xfs 用 xfs_growfs /data(挂载点),ext4 用 resize2fs(设备名),混用会报错。
扩容后必做的巡检项
pvs / vgs / lvs三连确认三层状态一致- 新盘没在 fstab 里重复挂载(避免重启后两个挂载点打架)
- 告警阈值(如 80% 告警、90% 危险)在监控里同步更新
四、swap 扩容
内存吃紧时给系统加 swap 是最快的临时缓解:
1 | free -h # 先看现状 |
注意:swap 是缓解不是根治,长期还是看应用内存优化或扩容内存。
五、一次深夜磁盘告警实录
凌晨 2 点收到 / 使用率 92% 告警。处理链路:
df -h确认告警真实性(92%,确实是根分区);du -h --max-depth=1 -x / | sort -hr | head -10定位大头目录(-x不扫挂载点,防止 NFS 卡死)→ 是/data/logs应用日志;- 查 logrotate 配置——新上线的服务没配轮转,大日志一直在涨;
- 手工
logrotate -f触发一次轮转 + 临时清理,空间回到 60%; - 补上该服务的 logrotate 规则,事件闭环。
磁盘管理的核心就三句话:初始化用 LVM、扩容走四层、日志交给 logrotate——做到这三点,磁盘类故障基本都能”白天处理、晚间无感”。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuminDream's Blogs!


