在这里,我们将向您展示如何在 Linux 中扩展 LVM 卷或分区,方法是首先调整逻辑卷的大小,然后调整文件系统的大小以利用额外的空间。
如果您尝试执行减少LVM分区,文件系统是ext4请参考LVM——缩小LVM分区(efx4),文件系统是xfs请参考LVM——linux缩小逻辑卷(xfs)
注意:在这个例子中,我们在 CentOS 7 中工作,某些命令在不同的 Linux 发行版中可能会有所不同。
在此示例中,我们将通过扩展逻辑卷 /var/vg0/lv_root 从 200GB 扩展到 21.8TB。
逻辑卷管理器 (LVM) 概述
在完成调整大小过程之前,请务必先了解有关物理卷、卷组、逻辑卷和文件系统的一些基本概念。
- 物理卷 (PV):这可以在整个物理磁盘(例如/dev/sda)或Linux分区上创建。
- 卷组 (VG):它由至少一个或多个物理卷组成。在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
- 逻辑卷 (LV):这有时称为分区,它位于卷组中,并有一个文件系统写入其中。
- 文件系统:文件系统(如 ext4)将位于逻辑卷上。卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
LVM 调整大小 – 如何增加或扩展逻辑卷
使用 LVM 非常容易完成此过程,因为它可以在不需要停机的情况下动态完成,您可以在已装载的卷上执行而不会中断。为了增加逻辑卷的大小,它所在的卷组必须具有可用空间。
要查看卷组的可用空间,请运行 vgdisplay 命令,如下所示,然后查看“可用 PE/大小”字段。
sudo vgdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <21.82 TiB
PE Size 4.00 MiB
Total PE 5719403
Alloc PE / Size 55296 / 216.00 GiB
Free PE / Size 5664107 / <21.61 TiB
VG UUID actwSa-3B1J-WN8T-NOyJ-Wc2p-nm1D-rEE3Xk
在此示例中,卷组中有 21.61TiB 的可用空间,如“Free PE / Size 5664107 / <21.61 TiB”所示。
注: 如果卷组中没有任何可用空间或没有足够的可用空间,则首先需要展开卷组以完成大小调整。或者,如果您有多个 LVM 分区,则可以先收缩不同的逻辑卷,以便在卷组中创建空间。
现在,我们已经确认卷组中有可用空间,请确认要增加的逻辑卷的名称以及计划添加的空间量。下面的 lvdisplay 命令将显示所有逻辑卷及其当前大小。它还将显示逻辑卷所属的卷组,因此请确保如前所述,已使用 vgdisplay 检查了正确的卷组是否有足够的空间,以防止尝试增加其他卷组中的逻辑卷。
如下面的示例所示,我们将使用逻辑卷“var”,它位于卷组“vg0”中,这是我们在vgdisplay中看到的卷组。在此示例中,我们只有一个卷组,但您可能有更多卷组,因此需要检查。
sudo lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lv_root
LV Name lv_root
VG Name vg0
LV UUID KNsy8l-GSGO-wmcw-JJh5-Kmw0-tqH5-U8o1No
LV Write Access read/write
LV Creation host, time ubuntu-server, 2022-03-28 10:17:46 +0000
LV Status available
# open 1
LV Size 200.00 GiB
Current LE 51200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/vg0/lv_swap
LV Name lv_swap
VG Name vg0
LV UUID kk4IJw-UZ62-JGcd-s1h6-Au2h-miFd-0Bhnq1
LV Write Access read/write
LV Creation host, time ubuntu-server, 2022-03-28 10:17:48 +0000
LV Status available
# open 2
LV Size 16.00 GiB
Current LE 4096
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
现在是时候扩展逻辑卷了。在下面的示例中,我们使用 -L 标志按指定的大小(M 表示兆字节,G 表示千兆字节,T 表示 TB)。或者,您可以删除 + 以增加到指定的量,而不是按指定的量增加。
sudo lvextend -L+21.61T /dev/vg0/lv_root
上面的命令会将逻辑盘 /dev/centos/var 增加 21.61T,你可以用下面来实现同样的目标
lvextend -L 21.80T /dev/vg0/lv_root
或者,如果您只想使用卷组中的所有可用空间,而不是指定要增加到的大小,请运行
sudo lvextend -l +100%FREE /dev/vg0/lv_root
我们可以运行下面显示的 lvdisplay 命令来检查扩展是否按预期完成。
sudo lvdisplay
现在逻辑卷已经扩展,我们可以调整文件系统的大小。这将扩展文件系统,使其占用逻辑卷内新创建的空间。该命令可能会有所不同,具体取决于您使用的文件系统的类型。
将其用于基于 ext3/4 的文件系统
resize2fs /dev/vg0/lv_root
或者,将其用于基于 xfs 的文件系统
xfs_growfs /dev/vg0/lv_root
调整文件系统大小后,空间应可供使用。如果运行“df”命令查看磁盘空间,则应看到它已成功增加。
df -h