3.4.3 逻辑卷扩展与缩减
3.4.3 逻辑卷扩展与缩减#
逻辑卷扩展与缩减是LVM容量管理的核心操作,必须区分在线/离线与文件系统类型。通用原则:扩展先扩LV再扩文件系统;缩减先缩文件系统再缩LV。
一、原理草图:LV与文件系统伸缩关系#
二、环境准备与工具安装#
适用发行版:CentOS/RHEL/Alma/Rocky/Ubuntu
若系统未安装LVM工具:
# RHEL/CentOS/Alma/Rocky
yum -y install lvm2
# Ubuntu/Debian
apt -y install lvm2
三、扩展逻辑卷(在线推荐)#
场景:/dev/vg0/lv_data 从 50G 扩到 70G,挂载点 /data
1)检查VG剩余空间
vgs
vgdisplay vg0
2)扩展LV并自动扩文件系统
# 推荐一体化扩展(自动扩文件系统)
lvextend -r -L +20G /dev/vg0/lv_data
# 预期输出示例(关键行)
# Size of logical volume vg0/lv_data changed from 50.00 GiB to 70.00 GiB
# Filesystem on /dev/vg0/lv_data is now 70.00 GiB
3)手动扩文件系统(可选)
# ext4
resize2fs /dev/vg0/lv_data
# xfs(必须使用挂载点)
xfs_growfs /data
4)验证结果
df -h /data
lvs -a -o +devices /dev/vg0/lv_data
命令解释
- lvextend -L +20G:在原有基础上增加20G。
- -r:自动执行文件系统扩容。
- xfs_growfs:XFS只能扩展,不支持缩减。
四、缩减逻辑卷(高风险,需离线)#
前提:文件系统为ext4;XFS不支持缩减。
示例:将 /dev/vg0/lv_data 缩到 40G
# 1. 业务停机并卸载
umount /data
# 2. 强制检查文件系统(必须)
e2fsck -f /dev/vg0/lv_data
# 3. 先缩文件系统
resize2fs /dev/vg0/lv_data 40G
# 4. 再缩LV
lvreduce -L 40G /dev/vg0/lv_data
# 5. 重新挂载并确认
mount /dev/vg0/lv_data /data
df -h /data
命令解释
- e2fsck -f:强制检查并修复ext4,缩减前必须执行。
- resize2fs 40G:把文件系统缩到目标大小或更小。
- lvreduce -L 40G:缩减逻辑卷到40G。
五、常见报错与排查#
1)扩容后容量不变
# 可能忘记扩文件系统
lsblk -f
df -h /data
解决:执行 resize2fs 或 xfs_growfs。
2)缩减失败提示“Device is busy”
lsof /data
fuser -m /data
解决:停止占用进程并卸载挂载点。
3)VG空间不足
vgs
# 若VFree为0,需要新增PV并扩VG
pvcreate /dev/sdb
vgextend vg0 /dev/sdb
六、完整演练:新增磁盘扩容LV#
# 1. 新增磁盘 /dev/sdb 并初始化为PV
pvcreate /dev/sdb
# 2. 扩VG
vgextend vg0 /dev/sdb
# 3. 扩LV并自动扩文件系统
lvextend -r -l +100%FREE /dev/vg0/lv_data
# 4. 校验
vgs
df -h /data
七、练习#
1) 创建一个20G的LV并挂载到 /data,然后扩到30G(要求在线扩容)。
2) 在ext4文件系统上演示缩减到15G(需写出完整步骤)。
3) 通过新增磁盘扩容VG,再将LV扩大并验证。
提示:练习前可先用快照或备份验证回滚流程,避免数据丢失。