网站搜索

LFCS:如何使用 vgcreate、lvcreate 和 lvextend 命令管理和创建 LVM - 第 11 部分


由于 LFCS 考试要求的变化将于 2 月 12 日生效。 2016 年 2 月 2 日,我们正在向此处发布的 LFCS 系列添加必要的主题。为了准备这项考试,我们强烈建议您也使用 LFCE 系列。

安装 Linux 系统时最重要的决定之一是为系统文件、主目录等分配的存储空间量。如果您在此时犯了错误,则扩展空间不足的分区可能会很麻烦并且有些风险。

逻辑卷管理(也称为LVM)已成为大多数(如果不是全部)Linux 发行版安装的默认设置,与传统分区管理相比具有许多优势。也许 LVM 最显着的特点是它允许随意调整逻辑分区的大小(减少或增加),而不需要太多麻烦。

LVM的结构包括:

  1. 将一个或多个整个硬盘或分区配置为物理卷 (PV)。
  2. 卷组 (VG) 是使用一个或多个物理卷创建的。您可以将卷组视为单个存储单元。
  3. 然后可以在卷组中创建多个逻辑卷。每个逻辑卷在某种程度上相当于一个传统的分区——其优点是可以随意调整大小,正如我们前面提到的。

在本文中,我们将使用三个 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 的信息。

使用 /dev/sdb/dev/sdc 创建一个名为 vg00 的卷组(我们将保存 /dev/sdd 稍后说明在需要时添加其他设备以扩展存储容量的可能性):

vgcreate vg00 /dev/sdb /dev/sdc

与物理卷的情况一样,您还可以通过发出以下命令来查看有关该卷组的信息:

vgdisplay vg00

由于 vg00 由两个 8 GB 磁盘组成,因此它将显示为单个 16 GB 驱动器:

在创建逻辑卷时,空间的分配必须考虑当前和未来的需求。根据每个逻辑卷的预期用途来命名它被认为是一种良好的做法。

例如,我们创建两个名为 vol_projects10 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 并以 VGLV 作为参数,如下所示:

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 设置固定大小,而不是调整其大小。

您可能会遇到这样的情况:调整逻辑卷大小无法再满足您的存储需求,您需要购买额外的存储设备。简单来说,您将需要另一个磁盘。我们将通过添加初始设置 (/dev/sdd) 中的剩余 PV 来模拟这种情况。

要将 /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 时,您需要分配适当的 ugo+rwx 权限,如本系列第 8 部分 - 在 Linux 中管理用户和组中所述。

概括

在本文中,我们介绍了逻辑卷管理,这是一种用于管理提供可扩展性的存储设备的多功能工具。与 RAID(我们在本系列的第 6 部分 – 在 Linux 中创建和管理 RAID)结合使用时,您不仅可以享受可扩展性(由 LVM 提供),还可以享受冗余(由 RAID 提供)。

在这种类型的设置中,您通常会在RAID之上找到LVM,即先配置RAID,然后在其之上配置LVM。

如果您对本文有疑问或改进建议,请随时使用下面的评论表与我们联系。