Ubuntu 扩展 LVM
知识热身:
- 在 LVM 中,一个磁盘分区是一个物理卷(PV)
- 多个物理卷组成一个卷组(或者叫存储池,VG),相当于多个小磁盘组成了一个大磁盘。
- 从存储池可以划分出逻辑卷(LV),相当于从大磁盘里分出的虚拟分区。
- 每个物理卷都会被划分成许多物理扩展块(PE),相当于磁盘扇区,所有的分配和调整都以 PE 为单位。
将新磁盘加入 LVM
磁盘分区
-
打开 GPT 磁盘分区工具
sudo gdisk /dev/sdX
-
创建新分区。输入
n
,然后按 4 次回车。GPT fdisk (gdisk) version 1.0.10 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries in memory. Command (? for help): n Partition number (1-128, default 1): First sector (34-4194303966, default = 2048) or {+-}size{KMGTP}: Last sector (2048-4194303966, default = 4194301951) or {+-}size{KMGTP}: Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem'
-
输入
p
检查分区表,没问题的话输入w
保存分区表,然后输入q
退出。
将新分区加入 VG
-
检查磁盘设备分区情况:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 2T 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 2G 0 part /boot └─sda3 8:3 0 2T 0 part └─ubuntu--vg-ubuntu--lv 252:0 0 2T 0 lvm / sdb 8:16 0 2T 0 disk └─sdb1 8:17 0 2T 0 part
这里的
sdb1
是我新创建的分区。 -
创建物理卷(PV)
sudo pvcreate /dev/sdb1
-
查看现有的卷组(VG)
$ sudo vgdisplay --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 1 ...
可以看到这里的 VG Name 为
ubuntu-vg
-
将新 PV 加入现有的 VG
sudo vgextend ubuntu-vg /dev/sdb1
-
验证 VG 已被扩展
sudo vgdisplay
观察
Free PE / Size
项,应该可以看到现在 VG 有了一些剩余空间。
将 VG 剩余空间分配给 LV
-
查看块设备:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 2T 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 2G 0 part /boot └─sda3 8:3 0 2T 0 part └─ubuntu--vg-ubuntu--lv 252:0 0 2T 0 lvm /
-
检查卷组剩余空间:
$ sudo vgdisplay --- Volume group --- VG Name ubuntu-vg ... Free PE / Size 511999 / 1.95 TiB ...
可以看到未分配的 PE 大小
Free PE
为 1.95 TiB,我们可以直接将其分配给 LV。 -
查看逻辑卷的信息:
$ sudo lvdisplay --- Logical volume --- LV Path /dev/ubuntu-vg/ubuntu-lv ...
可以看到 LV 路径为
/dev/ubuntu-vg/ubuntu-lv
,记住它。 -
将卷组中未分配的空间全部分配给逻辑卷:
$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv # 这里要填之前记住的 LV 路径
-
扩展逻辑卷后,需要调整文件系统大小以使用新增的空间。对于
ext4
文件系统,运行以下命令:$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv # 这里要填之前记住的 LV 路径
-
最后,检查根分区
/
是否成功扩展:$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-ubuntu--lv 3.9T 1.9T 1.9T 50% / ...
可以看到根分区
/
已经被成功扩展。