LinuxLVM逻辑卷怎么使用_动态扩容实战说明【教学】

Linux LVM逻辑卷的核心价值在于“动态调整容量”,不用重启、不丢数据,关键在分清PV、VG、LV三层关系并按顺序操作:先用pvdisplay/vgdisplay/lvdisplay摸清现状;VG无空闲时需先扩容(pvcreate+vgextend或pvresize);再lvextend扩LV,最后resize2fs(ext4)或xfs_growfs(xfs)扩文件系统;缩容须卸载、e2fsck、先缩文件系统再缩LV。

LinuxLVM逻辑卷怎么使用_动态扩容实战说明【教学】

Linux LVM逻辑卷的核心价值在于“动态调整容量”,不用重启、不丢数据,关键在分清物理卷(PV)、卷组(VG)、逻辑卷(LV)三层关系,再按顺序操作。

一、先确认当前LVM结构

用三条命令快速摸清现状:

  • pvdisplay:查看物理卷(比如 /dev/sdb、/dev/sdc)是否已初始化为PV,以及剩余空间
  • vgdisplay:看卷组(如 centos、myvg)总大小、空闲PE数(Free PE / Size)
  • lvdisplay:查逻辑卷(如 /dev/centos/root)挂载点、当前大小、是否激活

如果 vgdisplay 显示 Free PE 为 0,说明卷组没空闲空间,得先扩容VG(加新硬盘或扩现有PV),再扩LV。

二、给卷组(VG)加空间

两种常见场景:

  • 新增一块硬盘(如 /dev/sdc)pvcreate /dev/sdc && vgextend myvg /dev/sdc
  • 扩已有PV对应分区(如 /dev/sdb1 已是PV,但磁盘扩容了)pvresize /dev/sdb1(自动识别新容量并更新PV大小)

执行后再次 vgdisplay,确认 Free PE 已增加。

三、动态扩容逻辑卷(LV)和文件系统

以扩容根逻辑卷 /dev/centos/root 为例(ext4文件系统):

  • 先扩LV本身lvextend -l +100%FREE /dev/centos/root(把VG所有空闲空间全给它) 或指定大小:lvextend -L +5G /dev/centos/root
  • 再扩文件系统(在线生效): ext4用 resize2fs /dev/centos/root xfs用 xfs_growfs /(注意:xfs_growfs 后跟的是挂载点,不是设备路径)

完成后 df -h 就能看到可用空间已更新。

四、缩容要格外谨慎(非必要不建议线上操作)

缩LV前必须先缩文件系统,且只能离线操作:

  • 卸载逻辑卷:umount /mnt/data
  • 检查文件系统:e2fsck -f /dev/myvg/datalv
  • 缩小文件系统(如缩到5G):resize2fs /dev/myvg/datalv 5G
  • 再缩小LV:lvreduce -L 5G /dev/myvg/datalv
  • 重新挂载:mount /dev/myvg/datalv /mnt/data

跳过 e2fsck 或顺序颠倒极易导致数据损坏。