Home

LVM 扩容操作记录

这篇文章记录在 Linux 中给已有 LVM 逻辑卷扩容的基本流程。场景是先在虚拟化平台上追加一块新硬盘,再把它并入现有卷组,最终扩展到业务逻辑卷和文件系统。

适用场景

这种做法适用于下面这类常见场景:

  • 业务目录空间不足,但现有卷组仍然可以继续扩展
  • 虚拟机已经在平台层面新增了磁盘
  • 希望把新空间直接并入现有逻辑卷,而不是新挂一个单独目录

第一步:在虚拟化平台添加硬盘

先在 VMware vSphere、Proxmox、Hyper-V 等平台中,为目标虚拟机添加一块新的 SCSI 硬盘,例如 100GB

建议同时确认两点:

  • 控制器类型使用 SCSI。
  • 新磁盘已经真正挂载到目标虚拟机。

第二步:在 Linux 中识别新硬盘

登录系统后,先确认操作系统已经识别到新磁盘。

sudo lsblk

示例输出如下:

NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                         8:0    0  100G  0 disk
├─sda1                      8:1    0  512M  0 part /boot/efi
├─sda2                      8:2    0    1G  0 part /boot
└─sda3                      8:3    0 98.5G  0 part
  ├─datavg-db2data_lv 253:0    0 88.5G  0 lvm  /db2data
  └─datavg-other_lv   253:1    0   10G  0 lvm  /other
sdn                         8:16   0  100G  0 disk
sr0                        11:0    1 1024M  0 rom

在这个例子里,新盘是 /dev/sdn。实际操作时请以自己的设备名为准。

如果 lsblk 没有立刻显示新盘,可以先扫描 SCSI 总线:

# 重新扫描SCSI主机总线(host# 请根据您的系统调整,通常是host0)
echo "- - -" | sudo tee /sys/class/scsi_host/host0/scan

# 如果不行,可以尝试扫描所有主机
for host in /sys/class/scsi_host/host*/scan; do echo "- - -" | sudo tee $host; done

重新扫描后,再执行一次 lsblk 确认磁盘已经出现。

第三步:创建物理卷

假设新盘识别为 /dev/sdn,可以直接在整块磁盘上创建物理卷,不再额外分区:

sudo pvcreate /dev/sdn

执行成功后,LVM 元数据会直接写入这块磁盘。

第四步:扩展卷组

把新建好的物理卷并入现有卷组。文中的卷组名示例是 datavg

sudo vgextend datavg /dev/sdn

如果不确定卷组名称,可以先用 vgdisplay 查看。执行完成后,再用 vgdisplay datavg 确认 Free PE / Size 是否已经增加。

第五步:扩展逻辑卷

接下来把卷组里新增出来的空间分配给业务逻辑卷。

sudo lvextend -l +100%FREE /dev/mapper/datavg-datalv

如果不想一次性吃满全部空闲空间,也可以把 +100%FREE 改成具体大小,例如 -L +50G

第六步:扩展文件系统

逻辑卷扩容完成后,文件系统本身也要同步扩展,否则业务目录看不到新增空间。

# 扩展文件系统以使用新的空间(假设是XFS,挂载在 /db2data)
sudo xfs_growfs /db2data

# 如果是 ext4,命令如下:
sudo resize2fs /dev/mapper/datavg-datalv

这里要特别注意文件系统类型:

  • 如果是 XFS,对挂载点执行 xfs_growfs
  • 如果是 ext4,对逻辑卷执行 resize2fs

验证结果

扩容完成后,建议至少检查下面几项:

  • lsblk 确认新盘、卷组和逻辑卷关系正常
  • df -h 确认挂载点容量已经增长
  • lvdisplaylvs 确认逻辑卷大小已经更新
  • 业务目录读写正常,没有因为扩容引入挂载异常

小结

整个流程其实可以概括成四步:

  1. 加盘
  2. pvcreate
  3. vgextend
  4. lvextend + 文件系统扩容

只要新盘识别没问题,卷组和逻辑卷名称确认正确,LVM 扩容本身并不复杂。最容易出错的地方通常是把设备名写错,或者扩了 LV 但忘记扩文件系统。

Linux VMware LVM ext4 虚拟化