- 文档首页
云服务器
云服务器ECS
最佳实践
云盘
配置LVM逻辑卷(Linux)
配置LVM逻辑卷(Linux)
本文介绍如何为Linux实例配置LVM逻辑卷。
逻辑卷管理(Logical Volume Manager,LVM)是Linux环境下对磁盘分区进行管理的一种机制,LVM将物理存储设备(如云盘)抽象为一个或多个逻辑卷,用户可以在逻辑卷上创建文件系统并进行数据存储。通过LVM管理云盘之后,文件系统不再受限于云盘的大小,可以分布在多个云盘上,也可以动态扩容,无需重新分区或重新格式化整个磁盘。
从架构图可以看出,使用LVM管理云盘的基本流程如下:
拥有一台ECS实例,基本配置如下。购买操作请参见购买云服务器。 - 实例规格:本文选择ecs.g3il.large规格。
以下为您介绍如何在两块20GiB的数据盘上创建一个35GiB的逻辑卷。
- 为目标实例新创建并挂载2块容量为20GiB的数据盘,无需初始化。创建云盘、挂载云盘。
fdisk -l | grep /dev/vd | grep -v vda
-
- 可以看到有2块数据盘,设备名为“/dev/vdb”、“/dev/vdc”,下面将使用这两块数据盘通过LVM创建弹性可扩展的逻辑卷。
sudo yum install -y lvm2
- 执行sudo pvcreate <磁盘设备名1> <磁盘设备名2> <磁盘设别名···>命令,将云盘创建为物理卷。命令示例如下:
sudo pvcreate /dev/vdb /dev/vdc
-
- 回显如下,可以看到系统有两个新的物理卷,物理卷名称分别为“/dev/vdb”、“/dev/vdc”。
-
- 执行sudo vgcreate <卷组名称> <物理卷名称1> <物理卷名称2> <物理卷名称···>命令,创建卷组。本实践以创建名为vg_01的卷组为例,命令示例如下:
sudo vgcreate vg_01 /dev/vdb /dev/vdc
-
- (可选)如需在卷组中添加新的物理卷,请执行以下命令添加其它已创建的物理卷。
sudo vgextend <卷组名称> <物理卷名称> <物理卷名称>
- 回显如下,表示已创建卷组vg_01,容量约为40GiB(文件系统本身会占用部分存储空间)。
-
- 执行sudo lvcreate -L <逻辑卷大小> -n <逻辑卷名称> <卷组名称>命令,创建逻辑卷。本实践以创建一个大小为35GiB的逻辑卷lv_01为例,命令示例如下:
sudo lvcreate -L 35g -n lv_01 vg_01
-
- (可选)如需在卷组中创建多个逻辑卷,请重复执行第1步。
- 执行以下命令查看逻辑卷详细信息,包括逻辑卷路径、名称、所属卷组等信息,后续操作步骤需要用到。
-
- 执行sudo mkfs.<文件系统格式> <逻辑卷路径>命令,在逻辑卷上创建文件系统。本实践以创建ext4文件系统为例。
sudo mkfs.ext4 /dev/vg_01/lv_01
- (可选)创建新挂载点,例如/mnt/lv_01。
- 执行sudo mount <逻辑卷路径> <挂载点>命令,将文件系统挂载至挂载点。本实践以将逻辑卷(路径为/dev/vg_01/lv_01)挂载至/mnt/lv_01目录下为例。
sudo mount /dev/vg_01/lv_01 /mnt/lv_01
-
- 执行blkid /dev/vg_01/lv_01命令查看逻辑卷的UUID,并编辑/etc/fstab文件中的挂载选项,以便在实例重启后新挂载仍然存在。具体操作请参见设置开机自动挂载磁盘分区。
方式一:使用未分配容量扩展逻辑卷的容量
方式二:扩容云盘以扩展逻辑卷的容量
方式三:新增云盘以扩展逻辑卷的容量
本操作假设您创建的35GiB逻辑卷已经不能满足需求,需要再增加4GiB容量。
说明
使用该方式扩容时,请确保需要扩容的逻辑卷所在的卷组有足够的空闲空间。如果卷组的空闲空间不能满足当前逻辑卷扩容的需求,请参考方式二或方式三进行扩容。
- 执行lvextend -L +<增加容量> <逻辑卷路径>命令,扩展逻辑卷的容量。
lvextend -L +4G /dev/vg_01/lv_01
-
-
- ext4文件系统请执行resize2fs <逻辑卷路径>命令,扩容文件系统。
resize2fs /dev/vg_01/lv_01
-
说明
如果是xfs文件系统,请执行sudo xfs_growfs <逻辑卷挂载点>命令进行扩容。
- 回显如下,表示逻辑卷已从35GiB扩容至39GiB。
-
本操作假设您创建的39GiB逻辑卷已经不能满足需求,通过扩容其中一块云盘来增加10GiB容量。
- 参考扩容单块云盘,为其中一块数据盘增加10GiB容量(本文以扩容dev/vdc为例)。
- 执行以下命令,查看系统是否正确识别扩容后的云盘。
- 回显如下,扩容前/dev/vdc的容量是20GiB,扩容后为30GiB。
-
-
- /dev/vdc的容量是20GiB,说明物理卷容量未增加。
- 执行pvresize -v <物理卷名称>命令,扩容物理卷。
- 回显如下,说明物理卷扩容成功。可以执行pvdisplay命令查看扩容后的物理卷信息。
-
- 执行sudo lvextend -L +<逻辑卷容量> <逻辑卷路径>命令扩容逻辑卷。
sudo lvextend -L +10G /dev/vg_01/lv_01
- 回显类似如下信息,表示您为逻辑卷新增了10GiB空间。
-
- 执行resize2fs <逻辑卷路径>命令,扩容逻辑卷文件系统(本文以ext4文件系统为例)。
resize2fs /dev/vg_01/lv_01
说明
如果是xfs文件系统,请执行sudo xfs_growfs <逻辑卷挂载点>命令进行扩容。
- 可以看到,逻辑卷容量已经增加了10GiB(文件系统本身会占用部分存储空间)。
-
- 为目标实例新创建并挂载1块容量为20GiB的数据盘,无需初始化。创建云盘、挂载云盘。
fdisk -l | grep /dev/vd | grep -v vda
- 可以看到,新挂载的数据盘设备名为/dev/vdd。
-
- 回显类似如下信息,表示卷组名称vg_01,当前卷组容量为49.99GiB。
-
- 执行sudo vgextend <卷组名称> <物理卷名称>命令,扩容卷组。
sudo vgextend vg_01 /dev/vdd
-
- 回显类似如下信息,卷组vg_01的容量约等于69.99GiB,说明卷组扩容成功。
-
- 执行sudo lvextend -L +<逻辑卷容量> <逻辑卷路径>命令扩容逻辑卷。
sudo lvextend -L +20G /dev/vg_01/lv_01
- 回显类似如下信息,表示为逻辑卷新增了20GiB空间。
-
- 执行sudo resize2fs <逻辑卷路径>命令,扩容逻辑卷文件系统(本文以ext4文件系统为例)。
sudo resize2fs /dev/vg_01/lv_01
说明
如果是xfs文件系统,请执行sudo xfs_growfs <逻辑卷挂载点>命令进行扩容。
- 回显如下,表示已为逻辑卷新增20GiB容量(文件系统本身会占用部分存储空间)。
-
最近更新时间:2025.06.04 14:43:03