如何减小KVM虚拟机磁盘映像的大小

如何减less或缩小KVM虚拟机磁盘的大小?

我分配了一个500GB的虚拟磁盘(存储在/var/lib/libvirt/images/vm1.img),我发现过度杀伤,所以现在我想释放一些空间用于其他虚拟机器。 似乎有关于如何增加图像存储的很多答案 ,但不能减less它。 我发现了virt-resize工具,但它似乎只适用于原始磁盘分区,而不是磁盘映像。

编辑:我正在使用一个Ext4格式分区的LVM。

编辑:GParted截图显示我的LVM parition布局。 我需要做更多的事情,然后调整文件系统的大小。 我知道没有安全的方式来调整LVM的大小。 请不要告诉我使用pvresize 。 尽pipe它的名字,它不支持调整LVM的大小。

GParted截图

我曾尝试sudo pvresize /dev/vda5 ,但它只是说physical volume "/dev/vda5" changed但实际上并没有减小大小。

我尝试开始parted手动设置分区大小(非常危险),但做print all只是给我的错误“/ dev / sr0无法识别的磁盘标签”。

编辑:通过按照这些说明 ,我能够成功地收缩我的逻辑卷和物理卷(尽pipe我必须记住在某些命令之前和之后激活和停用lvm,这些说明省略了。

现在GParted显示了250G的未分配空闲空间。 我如何从KVM磁盘镜像中删除这个镜像,并将其还给底层的虚拟机pipe理程序?

感谢那些贴出来的人,但是你的回答太模糊了,没有任何帮助。

经过几个小时的谷歌search,我终于find了一个指导( 链接编辑 )提供了如何收缩我的文件系统,逻辑卷和物理卷的分步说明。 大多数指南未命中的诀窍是需要实际删除物理分区,并以正确的大小重新创build它们,因为parted无法调整lvm分区的大小。

然后我在qemu-img上find了这个文档 ,它解释了如何通过运行下面的方式来压缩原始格式的虚拟磁盘映像:

 sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G 

你需要做什么,

  • 做一个备份
  • 收缩文件系统*不要在现场系统上执行此操作,我build议使用live cd。
  • 创build一个所需大小的新磁盘映像。
  • 运行一个实时操作系统,将新旧映像作为(虚拟)硬盘(未安装)
  • 创build与旧磁盘上resize的分区大小相同的新分区
  • 使用dd将数据镜像到新分区。
  • 您可能需要清除/重新生成grub(2)才能成功启动。

这可以通过GUI和CLI来完成

资源

工具

  • gparted(由于垃圾邮件,链接被省略,没有足够的代表)

我build议在做任何这样的事情之前,先将磁盘映像的完整副本按原样复制,然后在复制完成之后,将其复制回来重新开始。

有三件事你需要做的:

1)使磁盘映像变大。 在你的主机上:

qemu-img调整foo.qcow2 + 32G

现在你的客人可以看到一个更大的磁盘,但仍然有旧的分区和文件系统。

2)使磁盘映像内的分区变大。 你需要在你的guest虚拟机中引导一个LiveCD,因为你不能搞乱装载的分区。 这是相当复杂的,可能是最危险的部分。 在这里复制是相当多的,所以我现在只需要链接。 你想要做这样的事情:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

或者2b)如果你只是想要更多的存储空间,创build一个新的分区会更简单(也更安全)。 使用fdisk或者cfdisk,或者任何你感觉舒服的东西 – 你现在应该会看到客户磁盘上的一大堆未分配的空间。

3)最后,如果您调整了现有分区的大小,那么使新的更大的分区内的文件系统变大(实际上这在上面的链接中就已经介绍过了)。 在你的客人里面: