LFCS:如何使用 vgcreate、lvcreate 和 lvextend 命令管理和创建 LVM - 第 11 部分
由于 LFCS 考试要求于2016 年 2 月 2 日生效,我们将向此处发布的LFCS 系列添加必要的主题。为了准备此考试,强烈建议您也使用LFCE 系列。
安装 Linux 系统时最重要的决定之一是分配给系统文件、主目录和其他文件的存储空间大小。如果您在此时犯了错误,那么扩大已用尽空间的分区可能会很麻烦,而且有一定的风险。
逻辑卷管理(也称为LVM)已成为大多数(如果不是全部)Linux 发行版的默认安装,与传统分区管理相比,它具有许多优势。LVM 最显着的功能可能是它允许随意调整逻辑分区的大小(减少或增加),而无需太多麻烦。
LVM 的结构包括:
- 一个或多个整个硬盘或分区被配置为物理卷 (PV)。
- 卷组 ( VG ) 使用一个或多个物理卷创建。您可以将卷组视为单个存储单元。
- 然后可以在卷组中创建多个逻辑卷。每个逻辑卷在某种程度上相当于一个传统分区 - 优点是可以随意调整大小,正如我们前面提到的。
在本文中,我们将使用三个8 GB的磁盘(/dev/sdb、/dev/sdc和/dev/sdd)来创建三个物理卷。您可以直接在设备上创建 PV,也可以先对其进行分区。
虽然我们选择采用第一种方法,但如果您决定采用第二种方法(如本系列第 4 部分 - 在 Linux 中创建分区和文件系统中所述),请确保将每个分区配置为类型8e
。
创建物理卷、卷组和逻辑卷
要在/dev/sdb、/dev/sdc和/dev/sdd上创建物理卷,请执行以下操作:
# pvcreate /dev/sdb /dev/sdc /dev/sdd
您可以使用以下命令列出新创建的 PV:
# pvs
并使用以下命令获取每个 PV 的详细信息:
# pvdisplay /dev/sdX
(其中X是 b、c 或 d)
如果省略/dev/sdX
参数,您将获得有关所有 PV 的信息。
vg00
要使用/dev/sdb
和创建一个名为的卷组/dev/sdc
(我们将保存/dev/sdd
以备后用,以说明在需要时添加其他设备来扩展存储容量的可能性):
# vgcreate vg00 /dev/sdb /dev/sdc
与物理卷一样,您也可以通过执行以下操作来查看有关此卷组的信息:
# vgdisplay vg00
由于它由两个8 GBvg00
磁盘组成,因此它将显示为单个16 GB驱动器:
在创建逻辑卷时,空间分配必须考虑当前和未来的需求。根据每个逻辑卷的预期用途命名是一种很好的做法。
例如,让我们创建两个名为vol_projects
(10 GB)和vol_backups
(剩余空间)的 LV,稍后我们可以分别使用它们来存储项目文档和系统备份。
选项-n
用于指示 LV 的名称,而-L
设置固定大小和-l
(小写 L)用于指示容器 VG 中剩余空间的百分比。
# lvcreate -n vol_projects -L 10G vg00 # lvcreate -n vol_backups -l 100%FREE vg00
与以前一样,你可以使用以下命令查看 LV 列表和基本信息:
# lvs
以及详细信息
# lvdisplay
要查看有关单个 LV 的信息,请使用lvdisplay并将VG和LV作为参数,如下所示:
# lvdisplay vg00/vol_projects
在上图中,我们可以看到 LV 被创建为存储设备(参见LV Path行)。在每个逻辑卷可以使用之前,我们需要在其上创建一个文件系统。
我们将在这里使用 ext4 作为示例,因为它允许我们增加和减少每个 LV 的大小(与仅允许增加大小的 xfs 相反):
# mkfs.ext4 /dev/vg00/vol_projects # mkfs.ext4 /dev/vg00/vol_backups
在下一节中,我们将解释如何在需要时调整逻辑卷大小并添加额外的物理存储空间。
调整逻辑卷大小和扩展卷组
现在想象一下以下场景。 中的空间即将用完vol_backups
,而 中却有足够的可用空间vol_projects
。 由于 LVM 的性质,我们可以轻松减小后者的大小(例如2.5 GB)并将其分配给前者,同时调整每个文件系统的大小。
幸运的是,这很简单:
# lvreduce -L -2.5G -r /dev/vg00/vol_projects # lvextend -l +100%FREE -r /dev/vg00/vol_backups
调整逻辑卷大小时,务必包含减号(-)
或加号。否则,您是在为 LV 设置固定大小,而不是调整其大小。(+)
您可能会遇到这样的情况:调整逻辑卷大小无法再满足您的存储需求,您需要购买额外的存储设备。简单来说,您将需要另一个磁盘。我们将通过从初始设置中添加剩余的 PV 来模拟这种情况 ( /dev/sdd
)。
要添加/dev/sdd
,vg00
请执行
# vgextend vg00 /dev/sdd
如果在上一个命令之前和之后运行vgdisplay vg00
,你会看到 VG 的大小增加:
# vgdisplay vg00
现在,您可以使用新添加的空间根据需要调整现有 LV 的大小,或者根据需要创建其他 LV。
在启动时和按需安装逻辑卷
当然,如果我们不打算实际使用逻辑卷,那么创建逻辑卷就毫无意义!为了更好地识别逻辑卷,我们需要找出它UUID
(唯一标识格式化存储设备的不变属性)是什么。
为此,请使用blkid后跟每个设备的路径:
# blkid /dev/vg00/vol_projects # blkid /dev/vg00/vol_backups
为每个 LV 创建挂载点:
# mkdir /home/projects # mkdir /home/backups
并插入相应的条目/etc/fstab
(确保使用之前获得的 UUID):
UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects ext4 defaults 0 0 UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults 0 0
然后保存更改并挂载 LV:
# mount -a # mount | grep home
当实际使用 LV 时,您需要分配适当的权限,如本系列第 8 部分 - 管理 Linux 中的用户和组ugo+rwx
所述。
概括
在本文中,我们介绍了逻辑卷管理,这是一种管理存储设备的多功能工具,可提供可扩展性。当与 RAID(我们在本系列的第 6 部分 - 在 Linux 中创建和管理 RAID 中进行了介绍)结合使用时,您不仅可以享受可扩展性(由 LVM 提供),还可以享受冗余性(由 RAID 提供)。
在这种类型的设置中,您通常会发现RAID之上的LVM,也就是说,先配置 RAID,然后在其上配置 LVM。
如果您对本文有任何疑问或有改进建议,请随时通过下面的评论表与我们联系。