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


11

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

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

编辑:我正在使用带有Ext4格式化分区的LVM。

编辑:显示我的LVM分区布局的GParted屏幕截图。我需要做更多的事情,然后才调整文件系统的大小。我知道没有安全的方法来调整LVM的大小。而且请不要告诉我使用pvresize。尽管名称如此,它不支持调整LVM的大小。

GParted屏幕截图

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

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

编辑:通过遵循这些指令,我能够成功地缩小逻辑卷和物理卷(尽管我必须记住要在指令所省略的某些命令之前和之后激活和停用lvm。

现在,GParted显示了250G的未分配可用空间。如何从KVM磁盘映像中删除它,并将其返回给底层虚拟机管理程序?


您是否真的需要缩小虚拟磁盘的大小,或者压缩它就足够了?您可以使用qemu-img -O qcow2 vm1.img vm1-compact.qcow2
Ansgar Wiechers,2012年

@AnsgarWiechers,是的,我仍然需要使用磁盘,并且分配的空间远远超出了我的需要。
塞林2012年

Answers:


10

感谢那些发布者,但您的答案太含糊,无法提供任何帮助。

经过数小时的Google搜索,我终于找到了指南(链接已编辑),该指南提供了有关如何缩小文件系统,逻辑卷和物理卷的逐步说明。大多数指南所忽略的技巧是需要实际删除物理分区,并以正确的大小重新创建它们,因为parted无法调整lvm分区的大小。

然后,我在qemu-img上找到了该文档该文档说明了如何通过运行以下命令来缩小原始格式的虚拟磁盘映像:

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

当涉及到kvm的磁盘映像时,qemu-img是一个很棒的工具。3年后,您的链接似乎断开了,此处来自die.net linux.die.net/man/1/qemu-img
Louis Loudog Trottier

并且,如果有人希望获得这种便利,并且被(不需要).qcow2 VM所困扰,请先对其进行转换qemu-img convert -f qcow2 -O raw image.qcow2 image.img,然后您可以运行上述命令。
oemb1905 '19

4

你需要做什么,

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

这可以通过GUI和CLI来完成

资源资源

工具类

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

困难的部分是“缩小文件系统”。我使用的是LVM,但我发现没有工具支持调整大小。甚至没有GParted Live CD。
塞林2012年

我认为这已经涵盖了它,我没有使用过,所以请报告好坏tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html
daxroc 2012年

有两个要注意的要点:1)按顺序执行操作(首先收缩文件系统,然后收缩分区,然后收缩磁盘)。2)调整文件系统大小的过程/工具在很大程度上取决于实际的文件系统(OP选择不显示)。@daxroc发布的文章仅适用于ext [234]以外的文件系统。
Ansgar Wiechers,2012年

@daxroc,我需要减少逻辑和物理量。您的链接仅涉及减小逻辑量。
塞林2012年

同意 备份,新磁盘,还原最安全,最简单
dyasny 2012年

0

这对我来说真的很好。它压缩和缩小磁盘映像中的0个块。随着再次写入,图像将随着时间扩展。

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2

-4

我建议您在执行任何此操作之前,先完整复制磁盘映像,然后在磁盘映像全部中断时直接将其复制回来以重新开始。

您需要做三件事:

1)增大磁盘映像。在您的主机中:

qemu-img调整大小foo.qcow2 + 32G

现在,您的来宾可以看到更大的磁盘,但是仍然具有旧的分区和文件系统。

2)扩大磁盘映像内的分区。为此,您需要在来宾中启动LiveCD,因为您将无法弄乱已挂载的分区。这是相当复杂的,可能是最危险的部分。这里要复制很多东西,所以我现在只链接。您想做这样的事情:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

或2b)如果您只想要更多的存储空间,则创建新分区会更简单(更安全)。使用fdisk或cfdisk或任何您喜欢的方式-现在您应该在来宾磁盘上看到一大堆未分配的空间。

3)最后,如果您调整了现有分区的大小,则使新的更大分区内的文件系统更大(无论如何,这实际上在上面链接的指南中)。在客人内部:


6
他正在尝试缩小图像,而不是放大图像。
迈克尔·汉普顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.