逻辑卷管理器 (LVM) 概述

在完成调整大小过程之前,重要的是我们首先要了解有关物理卷、卷组、逻辑卷和文件系统的一些基本概念。

  • 物理卷 (PV):这可以在整个物理磁盘(想想 /dev/sda)或者 Linux 分区上创建。
  • 卷组 (VG):它由至少一个或者多个物理卷组成。
  • 逻辑卷 (LV):这有时被称为分区,它位于一个卷组内,并有一个文件系统写入其中。
  • 文件系统: ext4 等文件系统将位于逻辑卷上。

LVM Resize - 如何增加或者扩展逻辑卷

这个过程使用 LVM 非常容易完成,因为它可以在不需要停机的情况下即时完成,我们可以在已安装的卷上执行它而不会中断。
为了增加逻辑卷的大小,它所在的卷组必须有可用空间。

要查看卷组的可用空间,请运行如下所示的 vgdisplay 命令并查看“可用 PE/大小”字段。

[jack@onitroad ~]# vgdisplay
  --- Volume group --
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               20.74 GiB
  PE Size               4.00 MiB
  Total PE              5309
  Alloc PE / Size       4030 / 15.74 GiB
  Free  PE / Size       1280 / 5.00 GiB
  VG UUID               VvG6Sp-wIgb-LTh0-szdU-s9R1-a6K9-qHassI

在此示例中,我们在卷组中有 5GB 的可用空间,如“Free PE/Size 1279/5.00 GiB”所示。

注意:如果卷组中没有任何或者足够的可用空间,则首先需要扩展卷组以完成调整大小。
或者,如果我们有多个 LVM 分区,我们可以先缩小不同的逻辑卷以在卷组内创建空间。

现在我们已经确认卷组中有可用空间,请确认我们要增加的逻辑卷的名称以及我们计划添加的空间量。
下面的 lvdisplay 命令将显示所有逻辑卷及其当前大小。
它还将显示逻辑卷所属的卷组,因此确保已使用 vgdisplay 检查正确的卷组是否有足够的空间,如前面所述,以防止尝试增加某个其他卷组内的逻辑卷。

如下例所示,我们将使用位于卷组“centos”中的逻辑卷“var”,即我们在 vgdisplay 中看到的卷组。
在此示例中,我们只有一个卷组,但我们可能有更多,因此我们需要检查。

[jack@onitroad ~]# lvdisplay
  --- Logical volume --
  LV Path                /dev/centos/var
  LV Name                var
  VG Name                centos
  LV UUID                7PNgg2-ZmnG-a26g-zRoT-PRVM-RDc1-oq6J4M
  LV Write Access        read/write
  LV Creation host, time CentOS7, 2014-04-16 07:50:25 +1000
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

现在是扩展逻辑卷的时候了。
在下面的示例中,我们使用 -L 标志来增加指定的大小(M 表示兆字节,G 表示千兆字节,T 表示太字节)。
我们也可以删除 + 以增加到指定的数量而不是指定的数量。

lvextend -L+5G /dev/centos/var
  Rounding size to boundary between physical extents: 4.90 GiB
  Size of logical volume centos/var changed from 5.00 GiB (1280 extents) to 10.00 GiB (2560 extents).
  Logical volume var successfully resized

上面的命令会将逻辑卷 /dev/centos/var 增加 5GB,目前它已经是 5GB,所以这将增加到总共 10GB。
我们可以使用“lvextend -L 10G /dev/centos/var”实现相同的效果,这会将逻辑卷也增加到 10GB,因为这是没有 + 指定的内容。
或者,如果我们只想使用卷组中的所有可用空间而不是指定要增加的大小,请运行“lvextend -l +100%FREE /dev/centos/var”。

我们可以运行如下所示的 lvdisplay 命令来检查扩展是否按预期完成。

[jack@onitroad ~]# lvdisplay
  --- Logical volume --
  LV Path                /dev/centos/var
  LV Name                var
  VG Name                centos
  LV UUID                7PNgg2-ZmnG-a26g-zRoT-PRVM-RDc1-oq6J4M
  LV Write Access        read/write
  LV Creation host, time CentOS7, 2014-04-16 07:50:25 +1000
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

现在逻辑卷已经扩展,我们可以调整文件系统的大小。
这将扩展文件系统,使其占用逻辑卷内新创建的空间。
该命令可能因我们使用的文件系统类型而异。

将此用于基于 ext3/4 的文件系统

resize2fs /dev/centos/var

或者,将此用于基于 xfs 的文件系统

xfs_growfs /dev/centos/var

调整文件系统大小后,空间应该可以使用了。
如果我们运行“df”命令来查看磁盘空间,我们应该会看到它已成功增加。

[jack@onitroad mnt]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  9.8G  1.4G  8.5G  14% /
devtmpfs                 908M     0  908M   0% /dev
tmpfs                    914M     0  914M   0% /dev/shm
tmpfs                    914M  8.6M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M   96M  402M  20% /boot
/dev/mapper/centos-var    10G   33M   10G   1% /mnt

在这个例子中,我运行了一个 'mount /dev/centos/var /mnt' 来将逻辑卷挂载到 /mnt,如上所示 /mnt 正确报告了 10G 的大小。

LVM 调整大小 - 如何增加 LVM 分区

在这里,我们展示如何在 Linux 中扩展 LVM 卷或者分区,方法是首先调整逻辑卷的大小,然后调整文件系统的大小以利用另外的空间。

注意:在这个例子中,我们在 CentOS 7 中工作,在不同的 Linux 发行版中,某些命令可能会有所不同。

在这个例子中,我们将把逻辑卷 /var/centos/var 从 5GB 扩展到 10GB。
我们目前将此逻辑卷挂载到 /mnt。

日期:2020-07-07 20:56:51 来源:oir作者:oir