由于自2016年2月2日生效的LFCS考试要求的变化,我们在这里发布的LFCS系列将增加必要的主题。为了准备这次考试,强烈建议您同时使用LFCE系列。

在安装Linux系统时,最重要的决策之一是分配给系统文件、家目录等的大小。如果在这一点上出错,扩展已用尽空间的分区可能会很麻烦,也有一定的风险。
逻辑卷管理(也称为LVM),已成为大多数(如果不是全部)Linux发行版的默认安装方式,与传统的分区管理相比,它有许多优势。LVM最显著的特点是,它可以随意调整(减少或增加)逻辑分区,而不会带来太多麻烦。
LVM的结构包括:
- 一个或多个整个硬盘或分区被配置为物理卷(PVs)。
- A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
- 然后在卷组中创建多个逻辑卷。每个逻辑卷都与传统分区相当——优点是我们之前提到的可以随意调整大小。
在本文中,我们将使用三个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_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路径行)。在每个逻辑卷可以使用之前,我们需要在其上创建一个文件系统。
我们将以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中解释了RAID),您不仅可以享受可扩展性(由LVM提供),还可以获得冗余性(由RAID提供)。
在这种设置中,您通常会发现LVM位于RAID之上,即首先配置RAID,然后在其上配置LVM。
如果您对本文有任何问题或改进建议,请随时使用下方的评论表单与我们联系。
Source:
https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/