多块弹性云硬盘构建 LVM 逻辑卷

逻辑卷管理(Logical Volume Manager,LVM)通过在硬盘和分区之上建立一个逻辑层,将磁盘或分区划分为相同大小的 PE(Physical Extents)单元,不同的磁盘或分区可以划归到同一个卷组(VG,Volume Group),在 VG 上可以创建逻辑卷(LV,Logical Volume),在 LV 上可以创建文件系统。
相较于直接使用磁盘分区的方式,LVM 的优势在于弹性调整文件系统的容量。

相关产品
云硬盘 产品页,含版本规格、价格与购买入口。

一、LVM 简介

·文件系统不再受限于物理磁盘的大小,可以分布在多个磁盘中。

·例如,你可以购买 3 块 4TB 的弹性云硬盘并使用 LVM 创建一个将近 12TB 的超大文件系统。

·可以动态调整逻辑卷大小,不需要对磁盘重新分区。

当 LVM 卷组的空间无法满足你的需求时,你可以单独购买弹性云硬盘并挂载到相应的云服务器上,然后将其添加到 LVM 卷组中进行扩容操作。

二、构建 LVM

注意:说明:

注意:本示例基于 CentOS 8.1 操作系统,以使用 3 块弹性云硬盘通过 LVM 创建可动态调整大小的文件系统为例。如下:

注意:

三、步骤 1 创建物理卷 PV

1. 以 root 用户 登录 Linux 云服务器。

2. 执行以下命令,创建一个 物理卷(Physical Volume, PV)。

pvcreate <磁盘路径1> … <磁盘路径N>

这篇以 /dev/vdc、/dev/vdd 和 /dev/vde 为例,则执行:

pvcreate /dev/vdc /dev/vdd /dev/vde

创建成功则如下:


3. 执行以下命令,查看现在系统中的物理卷。

lvmdiskscan | grep LVM

四、步骤 2 创建卷组 VG

1. 执行以下命令,创建 VG。

vgcreate [-s <指定PE大小>] <卷组名> <物理卷路径>

这篇以创建一个名为 “lvm_demo0” 的卷组并加入 vdc、vdd 两个 PV 为例,则执行:

vgcreate lvm_demo0 /dev/vdc /dev/vdd

当提示 “Volume group “<卷组名>” successfully created” 时,表示卷组创建成功。创建成功则如下:

若想在卷组创建完成后继续加入 PV,可以执行以下命令向卷组中添加新的物理卷。

vgextend 卷组名 新物理卷路径

本示例中执行 vgextend lvm_demo0 /dev/vde 将 vde 也加入卷组中。

卷组创建完成后,可执行vgs、vgdisplay等命令查看当前系统中的卷组信息。如下:

五、步骤 3 创建逻辑卷 LV

1. 执行以下命令,创建 LV。

lvcreate [-L <逻辑卷大小>][ -n <逻辑卷名称>] <VG名称>

这篇以创建一个 8GiB 的名为 “lv_0” 的逻辑卷为例,则执行:

lvcreate -L 8G -n lv_0 lvm_demo0

创建成功则如下:


注意:说明:

注意:执行 pvs 命令,可查看到此时只有 /dev/vdc 被使用了8GiB。如下:

注意:

六、步骤 4 创建并挂载文件系统

1. 执行以下命令,在创建好的逻辑卷上创建文件系统。

mkfs.ext3 /dev/lvm_demo0/lv_0

2. 执行以下命令,创建挂载节点目录 /vg0。

mkdir /vg0

3. 执行以下命令,挂载文件系统。

mount /dev/lvm_demo0/lv_0 /vg0

4. 可以通过以下命令查找 LVM 的挂载情况。

mount | grep lvm

挂载成功则如下:

七、步骤 5 动态扩展逻辑卷及文件系统大小

注意:仅当 VG 容量有剩余时,LV 容量可动态扩展。扩展 LV 容量后,需一并扩展创建在该 LV 上的文件系统的大小。

八、场景 A:通过扩容已有云硬盘扩展(云硬盘扩容场景)

若你通过控制台/API 扩容了 VG 中已有的云硬盘(例如将 /dev/vdc 从 10GiB 扩容至 20GiB),需先执行 pvresize 让 LVM 识别新增空间。

1. 执行以下命令,扩展逻辑卷大小。

pvresize /dev/vdc

2. 执行以下命令,验证物理卷及卷组是否已识别新增空间。

pvsvgs

确认 PSize 已更新为扩容后的大小,VFree 出现新增可用空间。如下:

注意:若跳过此步骤,直接执行 lvextend 会提示 "New size matches existing size" 或 "No size change",因为物理卷(PV)未识别到云硬盘扩容后的新增空间。

3. 执行以下命令,扩展逻辑卷大小。

lvextend -l +100%FREE /dev/lvm_demo0/lv_0

扩展成功则如下:

4. 按照文件系统类型,执行以下命令,扩展文件系统。

·ext2、ext3、ext4 文件系统:

resize2fs /dev/lvm_demo0/lv_0

·XFS 文件系统

xfs_growfs <挂载点>

注意:说明:

注意:你可使用 df -Th 命令确认文件系统类型。

5. 执行以下命令,验证扩容结果。

df -h <挂载点>

示例:

df -h /vg0

九、场景 B:通过添加新云硬盘扩展(新增磁盘场景)

若你购买了新的云硬盘并希望加入已有卷组来扩展逻辑卷容量,请先完成新磁盘的挂载,然后执行以下步骤。

1. 将新云硬盘创建为物理卷:

pvcreate /dev/vdf

2. 将新物理卷加入卷组:

vgextend lvm_demo0 /dev/vdf

3. 执行以下命令,拓展逻辑卷大小

lvextend -L +4G /dev/lvm_demo0/lv_0

扩展成功则如下:

4. 按照文件系统类型,执行以下命令,扩展文件系统。

·ext2、ext3、ext4 文件系统:

resize2fs /dev/lvm_demo0/lv_0

·XFS 文件系统

xfs_growfs <挂载点>

注意:说明:

注意:你可使用 df -Th 命令确认文件系统类型。

5. 执行以下命令,验证扩容结果。

df -h <挂载点>

示例:

df -h /vg0

赞 (0)
上一篇 5天前
下一篇 5天前