扩容逻辑卷前,必须确保卷组有足够的剩余容量,若容量不足,需先通过新增或扩容物理卷的方式扩容卷组后,再扩容逻辑卷并调整其文件系统大小。
工作原理
扩容逻辑卷主要包含两个步骤:
扩容卷组:逻辑卷的空间源于其所在的卷组。因此,须先通过扩容物理卷或新增物理卷方式为卷组增加可用容量。
扩容逻辑卷:将卷组中的新增空间分配给目标逻辑卷,然后扩展其上的文件系统,以使操作系统能够正常使用。
操作步骤
LVM创建逻辑卷不提供数据冗余,对于生产数据,请务必考虑应用层冗余方案或使用阿里云快照一致性组,保护数据。
步骤一:扩容卷组
登录ECS实例。
访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。
查看卷组剩余容量。
执行
sudo vgs指令,根据VG和VFree字段获取卷组名称及卷组剩余容量。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 79.99g 0示例中,卷组名称
vg_01,总容量为79.99 GiB,剩余容量为 0 GiB,需先扩容卷组。若卷组空间有剩余则可直接扩容逻辑卷。扩容卷组。
扩容卷组中物理卷
查看物理卷与云盘的对应关系。
执行
sudo pvs -a -o +devices命令,确定物理卷(通过PV字段获取)对应的云盘名称(通过Devices字段获取),并记录物理卷名称和云盘名称。sudo pvs -a -o +devicesPV VG Fmt Attr PSize PFree Devices /dev/vda1 --- 0 0 /dev/vda2 --- 0 0 /dev/vda3 --- 0 0 /dev/vdb vg_01 lvm2 a-- <40.00g 0 /dev/vdb(0) /dev/vdc1 vg_01 lvm2 a-- <40.00g 0 /dev/vdc1(0)扩展云盘容量。
访问ECS控制台-块存储-云盘。在页面左侧顶部,选择目标资源所在的资源组和地域。
单击目标云盘操作列中的扩容。
在确定目标盘与须知页面,核实信息后单击已知晓并备份,继续扩容。
在配置扩容方式与容量向导页面,设置扩容参数并确认费用后,单击扩容。
以将云盘容量由40 GiB扩展至50 GiB为例,需填写扩容后的容量为50 GiB。
重要扩展云盘容量时会收取新增容量的费用。
(条件必选)若为包年包月云盘,请在支付弹框中等待5秒倒计时结束后,单击确认,去支付,完成支付后返回扩容流程,单击已完成支付,关闭。
如果未完成支付,但单击了已完成支付,关闭,需要单击操作列的查看关联订单,完成支付。
(条件必选)若待扩容物理卷对应云盘的分区,需要在ECS实例内扩容分区。
将命令中的
<云盘名称>与<分区编号>替换为步骤a中获取到的云盘名称与分区编号后执行命令。重要云盘名称和分区编号之间有空格。
sudo LC_ALL=en_US.UTF-8 growpart <云盘名称> <分区编号>以扩容
/dev/vdc1为例,需要执行sudo LC_ALL=en_US.UTF-8 growpart /dev/vdc 1。当回执内容中包含关键字
CHANGED,表示指令执行成功。扩容物理卷。
<物理卷名称>可通过步骤a获取。sudo pvresize <物理卷名称>以扩容物理卷
/dev/vdb为例,需执行:sudo pvresize /dev/vdb。当输出内容中包含关键词
1 physical volume(s) resized or updated,表示指令执行成功。验证卷组扩容是否生效。
运行
sudo vgs,确认卷组剩余可用容量(回执中VFree字段对应的值)是否符合新增预期。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 89.99g 10.00g示例中,卷组
vg_01的容量由79.99 GiB增加至89.99 GiB,剩余容量VFree为10 GiB, 符合预期,卷组扩容成功。
新增物理卷并加入卷组
在确保云盘已创建并挂载至目标实例(无需初始化)的情况下,执行以下操作。
获取新建数据盘的设备名称。
执行
sudo lsblk -f,根据NAME和FSTYPE字段,确定新建数据盘的设备名称。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb LVM2_member okx24E-qSjZ-zv9l-lOkm-Pcxu-q6KX-qzRcCu └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdc LVM2_member ISeUSM-AhRp-KdNN-7pWJ-HxGW-2AEq-85m9dE └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdd示例中,设备名称
vdd无分区及文件系统(FSTYPE为空)为新建数据盘。创建物理卷并将其加入卷组中。
重要创建物理卷会删除数据盘中数据,请确保数据盘为空。
<新盘的设备名称>可通过上一步获取。sudo vgextend <卷组名称> /dev/<新盘的设备名称>以将云盘
vdd初始化成物理卷并添加至卷组vg_01为例,需执行sudo vgextend vg_01 /dev/vdd。当输出内容中包含关键词
successfully extended,表示指令执行成功。验证卷组扩容是否生效。
运行
sudo vgs,确认卷组剩余可用容量(回执中VSize字段对应的值)是否符合新增预期。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 3 1 0 wz--n- <89.99g <10.00g示例中,卷组
vg_01的容量由79.99 GiB增加至89.99 GiB,剩余容量VFree约为10 GiB, 符合预期,卷组扩容成功。
步骤二:扩容逻辑卷
获取逻辑卷路径。
运行
sudo lvdisplay命令,根据LV Path字段获取逻辑卷路径,后续扩容逻辑卷时需要使用。sudo lvdisplay--- Logical volume --- LV Path /dev/vg_01/lv01 LV Name lv01 VG Name vg_01 LV UUID DAD6Fy-4lbd-9EW9-UTvx-rGti-hYss-txxxxx LV Write Access read/write LV Creation host, time iZbp1hww2c2kyj54i1xxxxx, 2025-09-22 10:37:58 +0800 LV Status available # open 1 LV Size 79.99 GiB Current LE 20478 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256示例中,逻辑卷
lv01的逻辑卷路径为/dev/vg_01/lv01。扩容逻辑卷。
sudo lvextend -L +<逻辑卷容量> <逻辑卷路径>参数
说明
<逻辑卷容量>
需小于卷组剩余可用容量。
<逻辑卷路径>
需替换为上一步获取的待扩容逻辑卷路径。
以逻辑卷路径为
/dev/vg_01/lv01,新增10 GiB容量为例,执行sudo lvextend -L +10G /dev/vg_01/lv01。当输出内容中包含关键词
successfully resized,表示扩容逻辑卷成功。扩容文件系统。
运行命令
sudo lsblk -f,根据FSTYPE和MOUNTPOINT字段,确定并记录待扩容逻辑卷的文件系统类型和挂载目录,后续执行扩容文件系统指令时需要使用。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb LVM2_member okx24E-qSjZ-zv9l-lOkm-Pcxu-q6KX-qzRcCu └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdc LVM2_member ISeUSM-AhRp-KdNN-7pWJ-HxGW-2AEq-85m9dE └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01示例中逻辑卷路径
/dev/vg_01/lv01的文件系统类型为xfs,挂载目录为/mnt/lv01。扩容文件系统。
ext2/ext3/ext4文件系统。
将命令中的变量
<逻辑卷路径>替换为获取的逻辑卷路径。sudo resize2fs <逻辑卷路径>以扩容逻辑卷lv01(路径为/dev/vg_01/lv01)为例,需执行:
sudo resize2fs /dev/vg_01/lv01。xfs文件系统。
将命令中的
<挂载目录>替换为获取的逻辑卷挂载目录。sudo xfs_growfs <挂载目录>以扩容逻辑卷(挂载点为/mnt/lv01)为例,需执行:
sudo xfs_growfs /mnt/lv01。
检查文件系统扩容是否成功。
运行
sudo df -Th,确认文件系统大小(回执中Size字段对应的值)是否与逻辑卷新容量基本一致。文件系统创建时会占用部分容量用于存储元数据,因此文件系统大小可能略小于逻辑卷容量。
计费说明
扩容逻辑卷时,会收取以下费用。
通过扩容物理卷扩容卷组:
扩展云盘容量时会收取新增容量的费用,计费方式和原云盘一致。
包年包月云盘:容量扩展成功后,将立即以新容量进行计费。按剩余时长补足新旧容量差额费用。
差额费用=包月价格/30天*剩余时长*新增容量。
剩余时长单位为天,数值精确到秒。
按量付费云盘:容量扩展成功后,将立即按新容量进行计费。计费时长以小时为单位折算,下一小时将生成当前小时的消费明细。
通过新增物理卷扩容卷组:
云盘的计费项因类型而异,包括云盘容量费用、预配置性能费用及性能突发费用。除性能突发费用在突发后计费外,其他费用在创建后即开始计费,无论是否挂载至实例,不同类型或地域云盘价格可能不同。
更多信息,请参见块存储计费。
常见问题
安装工具时提示“404 Not Found”如何解决?
CentOS 6、Debian 9/10/11操作系统已结束生命周期,需要先切换Centos源地址或Debian 9/10/11源地址后再进行工具安装。
扩容逻辑卷时提示
Insufficient free space错误怎么办?扩容逻辑卷时,新增容量需小于卷组可用空间。
查看卷组剩余容量。
执行
sudo vgs指令,根据VSize字段获取卷组剩余容量。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 89.99g 10.00g示例中逻辑卷的新增容量不可超过卷组剩余的10 GiB容量。
将剩余空间全部用于逻辑卷扩展。
<逻辑卷路径>需替换为获取的待扩容逻辑卷路径。sudo lvextend -l +100%FREE <逻辑卷路径>