Linux lvm扩容,在线增加服务器磁盘容量
当服务器磁盘空间不足时,Linux LVM(逻辑卷管理)允许你在线扩展容量,无需停机或重启。
本文面向零基础用户,从准备到验证,逐步讲解如何通过添加新硬盘或扩展已有磁盘,完成物理卷、卷组、逻辑卷和文件系统的扩容。
扩容前的准备与检查
首先确认当前磁盘和LVM布局。
执行 lsblk 查看块设备树,df -h 查看文件系统使用率,pvs、vgs、lvs 分别查看物理卷、卷组和逻辑卷信息。
假设我们要扩容的卷组是 vg_data,逻辑卷是 lv_home,挂载在 /home。
如果添加了新硬盘(如 /dev/sdb),需要用 fdisk 或 parted 创建分区并设置类型为 8e(Linux LVM)。
如果云服务器支持在线扩展系统盘,先在控制台扩容磁盘,再在系统内扩展分区。
关键点:扩容前建议备份重要数据,虽然LVM在线扩容风险较低,但误操作仍可能导致数据丢失。
逐层扩展:从物理卷到文件系统
LVM扩容需要按顺序操作:物理卷(PV)→ 卷组(VG)→ 逻辑卷(LV)→ 文件系统。
每一步都有对应的命令。
1. 扩展物理卷
如果新增了磁盘或分区,先创建物理卷:
pvcreate /dev/sdb1
然后将新PV加入现有卷组:
vgextend vg_data /dev/sdb1
如果只是扩展现有磁盘的分区,先用 growpart 调整分区大小(例如 /dev/sda 的第3个分区):
growpart /dev/sda 3
pvresize /dev/sda3
2. 扩展逻辑卷
将卷组中的空闲空间分配给逻辑卷。
以下命令将 lv_home 扩展至使用卷组所有剩余空间的100%:
lvextend -l +100%FREE /dev/vg_data/lv_home
也可以指定增加的大小,例如增加10G:
lvextend -L +10G /dev/vg_data/lv_home
3. 扩展文件系统
根据文件系统类型选择命令。
对于 ext4:
resize2fs /dev/vg_data/lv_home
对于 xfs:
xfs_growfs /home
注意:xfs 只能扩大不能缩小,且需要挂载点而非设备路径。
验证扩容结果与常见报错
执行 df -h /home 查看容量是否增加。
如果 resize2fs 报错“Filesystem does not support online resize”,说明文件系统可能不支持在线扩容,需卸载后操作。
如果 lvextend 提示“insufficient free space”,用 vgs 确认卷组剩余空间。
避坑提醒:
- 操作前确保没有其他进程正在写入该文件系统,避免数据损坏。
- 对于云服务器,扩容磁盘后可能需要重启实例才能识别新容量,具体以云厂商文档为准。
- 如果使用
parted调整分区,注意分区起始位置不要覆盖已有数据。
常见疑问
扩容会影响正在运行的服务吗?
LVM在线扩容通常不影响服务,但建议在业务低峰期操作,并确保文件系统支持在线扩展。
如何缩小逻辑卷?
缩小风险较高,需要先卸载文件系统,用 resize2fs 缩小文件系统,再用 lvreduce 缩小逻辑卷。生产环境慎用。
扩容后需要重启吗?
一般不需要,但某些云平台或旧内核可能要求重启以识别新磁盘。
只要按顺序执行上述步骤,你就能安全地在线增加服务器磁盘容量。
遇到报错时,优先检查每层的状态和剩余空间,再逐步排查。