我有一个基础映像,我正在从中启动我的虚拟机。基础映像只有 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 是原始分区的第一个扇区。这非常重要,因为这破坏了我最初的努力。
我希望这对遇到类似问题的人有所帮助。