逻辑卷管理LVM(Logical Volume Manager)是Linux系统的一种管理硬盘分区机制,具有动态管理硬盘的能力。本文介绍了如何通过LVM在多块云盘上创建一个逻辑卷,适用于Linux实例。
背景信息
LVM在硬盘和分区之上建立一个逻辑层,提高了硬盘分区管理的灵活性。 逻辑卷的大小可以动态调整,而且不会丢失现有数据。即使您新增了数据盘,也不会改变现有的逻辑卷。
注意
- 为了防止数据丢失,不能在已有数据的云盘上创建逻辑卷。
- 由于云盘快照只能备份单块云盘数据,使用LVM后,回滚单个云盘时会造成数据差异。因此,建议您通过快照一致性组进行备份数据。更多信息,请参见创建快照一致性组。
本文中,LVM配置示意图如下所示。

步骤一:创建物理卷
- 以root权限远程连接ECS实例。
- 使用以下命令查看ECS实例上所有云盘信息。
lsblk
结果如下所示,表示您有五块云盘可以通过LVM创建弹性可扩展的逻辑卷。

- 如果您的ECS实例未安装LVM2工具,使用以下命令安装LVM2。
- 使用以下命令创建物理卷PV(Physical Volume)。
pvcreate <数据盘设备名称1> ... <数据盘设备名称N>
以下示例表示添加/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde、/dev/vdf这5块新创建的数据盘,多个数据盘设备名称之间以空格间隔。您需要根据您的实际情况修改设备名称。
pvcreate /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf
结果如下所示。

- 使用以下命令查看ECS实例已经创建的物理卷(PV)信息。
lvmdiskscan | grep LVM
结果如下所示。

步骤二:创建卷组
- 使用以下命令创建卷组VG(Volume Group)。
vgcreate <卷组名> <物理卷名称1>……<物理卷名称N>
以下示例表示创建lvm_01卷组,并添加/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde、/dev/vdf这5块物理卷,多个物理卷名称之间以空格间隔。您需要根据您的实际情况修改卷组名称和物理卷名称。
vgcreate lvm_01 /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf
结果如下所示。

- 可选:如果您需要在卷组中添加新的物理卷,使用以下命令添加新的物理卷。
vgextend 卷组名称 <物理卷名称1>……<物理卷名称N>
以下示例表示在卷组lvm_01中添加新的物理卷/dev/vdg,如果添加多个物理卷,则物理卷名称之间以空格间隔。
vgextend lvm_01 /dev/vdg
结果如下所示。

- 使用以下命令查看卷组信息。
vgs
结果如下所示。

步骤三:创建逻辑卷
- 使用以下命令创建逻辑卷LV(Logical Volume)。
lvcreate [-L <逻辑卷大小>][ -n <逻辑卷名称>] <卷组名称>
说明
- 逻辑卷大小:逻辑卷的大小应小于卷组(VG)剩余可用空间,容量单位支持M、G或者T。
- 逻辑卷名称:由您自定义。
- 卷组名称:已经创建的卷组的名称。
以下示例创建一个150 GiB的逻辑卷(LV)。
lvcreate -L 150g -n lv01 lvm_01
结果如下所示。

- 使用以下命令查看逻辑卷详细信息。
lvdisplay
结果如下所示。

步骤四:创建并挂载文件系统
- 使用以下命令在逻辑卷(LV)上创建文件系统。
mkfs.<文件系统格式> <逻辑卷路径>
您可以根据需要创建文件系统类型,以下以ext4和xfs文件系统为例:
- 创建挂载点,例如/media/lv01。
如果您使用已有的挂载点,可以跳过此步骤。
mkdir /media/lv01
- 使用以下命令挂载文件系统。
本示例中,逻辑卷路径为/dev/lvm_01/lv01,挂载点为/media/lv01,您需要根据实际情况修改。
mount /dev/lvm_01/lv01 /media/lv01
- 使用以下命令查看逻辑卷的挂载信息。
df -h
结果如下所示。
