Ubuntu Server LVM分区扩容

一、扩容前检查

1. 查看磁盘与 LVM 结构
lsblk

输出示例:

NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                       8:0    0   30G  0 disk
├─sda1                    8:1    0    1G  0 part /boot/efi
├─sda2                    8:2    0    2G  0 part /boot
└─sda3                    8:3    0 26.9G  0 part
  └─ubuntu--vg-ubuntu--lv 252:0   0 13.5G  0 lvm  /

可以看到,sda3有26.9G空间,但是挂载到 /分区的逻辑卷只有13.5G,接下来开始给 /分区扩容。

2. 检查卷组空闲空间
sudo vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID     
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <26.95 GiB
  PE Size               4.00 MiB
  Total PE              6898
  Alloc PE / Size       3449 / 13.47 GiB
  Free  PE / Size       3449 / 13.47 GiB
  VG UUID               lUGpnm-O0rs-TZIi-9Dkc-8tLK-DOOv-fX2u2t

重点关注:

  • Free PE / Size:卷组中未分配的空间(示例中约 13.47G)
  • Alloc PE / Size:已分配给逻辑卷的空间

二、一键扩容操作

1. 扩展逻辑卷

将逻辑卷扩展到卷组的最大可用空间:

sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

若只想扩展部分空间,例如增加 10G,可使用:

sudo lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv
2. 扩展文件系统

Ubuntu 默认文件系统为 ext4,执行:

sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

若文件系统为 xfs(如 CentOS/RHEL),需使用:

sudo xfs_growfs /
3. 验证扩容结果
df -h /
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv   27G  2.6G   23G  11% /

输出应显示 / 目录容量已从 13.5G 扩展到约 26.9G。

三、原理说明

1. LVM 分层结构
  • 物理磁盘(sda)→ 物理分区(sda3)→ 物理卷(PV)→ 卷组(VG,ubuntu-vg)→ 逻辑卷(LV,ubuntu--vg-ubuntu--lv)→ 文件系统(ext4)
  • 示例中的 30G 磁盘中,约 26.9G 被划分为 LVM 物理卷,其中 13.5G 分配给根分区,剩余 13.47G 处于空闲状态。
2. 扩容本质
  • lvextend:将空闲的物理扩展(PE)分配给逻辑卷,扩大逻辑卷的逻辑大小。
  • resize2fs:调整文件系统的大小,使其能够使用逻辑卷新增的空间。

四、注意事项

  1. 备份重要数据:扩容操作风险较低,但仍建议在操作前备份关键数据。
  2. 避免在高负载时操作:尽量在系统负载较低时执行扩容命令。
  3. 确认文件系统类型:使用 df -T / 命令确认根分区的文件系统类型,选择对应的扩容命令。