在 KVM CentOS 6 VM 上调整 LVM 大小

在 KVM CentOS 6 VM 上调整 LVM 大小

我有一个基础映像,我正在从中启动我的虚拟机。基础映像只有 1.5GB。不同的虚拟机对磁盘空间有不同的要求。我使用默认设置设置了虚拟机:

VolGroup
  -lv_root
  -lv_swap

/dev/vda 1.5GB
  -/dev/vda1 /boot 500MB
  -/dev/vda2 LVM2  1GB

因此 /dev/vda2 是 VolGroup 所在的位置。假设我需要一个新的 VM,其大小需要为 100GB。我在主机级别使用 LVM,因此我可以随意调整 VM 的磁盘大小,但这只有在客户 VM 上的分区表发生更改后才会反映出来。

编辑:我尝试添加另一个分区,但这会导致系统无法启动,因为 LVM 正在新分区中查找 LVM 数据。因此,新的分区表将如下所示:

/dev/vda 100GB
  -/dev/vda1 /boot 500MB
  -/dev/vda2 LVM2  1GB
  -/dev/vda3       98.5GB

对于我来说,从当前的 1GB LVM 升级到 100GB LVM 最快或最简单的方法是什么?

答案1

我最终使用 fdisk 重新创建了 LVM 后面的分区。这是我在 CentOS 6/7 服务器上运行的出色脚本:

ssh root@vmip "fdisk /dev/vda << EEOF
                d
                2
                n
                p
                2
                $firstpartborder

                t
                2
                8e
                w
                EEOF" >> /dev/null 2>&1

echo
echo "-------- Rebooting VM to Sync Disks ----------"
ssh root@$vmip "reboot"
echo "------ Waiting for the VM to come back up ----"
sleep 20
echo "--------Extending LVM to fill disk -----------"
ssh root@$vmip "pvresize /dev/vda2; lvextend -r -l +100%FREE $lvmname; " > /dev/null 2>%1

firstpartborder 是原始分区的第一个扇区。这非常重要,因为这破坏了我最初的努力。

我希望这对遇到类似问题的人有所帮助。

相关内容