在Linux系统中,KVM虚拟化技术支持多种磁盘镜像格式。qcow2和raw disk镜像是两种最流行和广泛使用的磁盘格式。其中,qcow2被认为是最通用且功能丰富的虚拟磁盘格式,它提供了一组有用的功能,例如128位AES加密、对多个快照的支持和zlib压缩等。
当然,有时候你可能需要扩展KVM虚拟机的磁盘空间或调整其大小以容纳更多数据或创建其它分区。为此,在本文中,小编将主要介绍如何使用qcow2磁盘格式扩展或增加KVM虚拟机磁盘大小。
第1步:关闭KVM虚拟机
$ sudo virsh list
在本文设置中,小编有一个在Debian 11上运行的虚拟机,名称为debian11,如下图所示:
要关闭该VM,请使用以下语法命令:
$ sudo virsh shutdown domain_name
在本文的示例中,命令当然就是:
$ sudo virsh shutdown debian11
现在,为了确认虚拟机已关闭,请再次列出正在运行的虚拟机。这次,虚拟机名称将不会被列出:
$ sudo virsh list
第2步:找到KVM虚拟机磁盘镜像文件路径
下一步是确定虚拟机磁盘路径的路径,命令如下:
$ sudo virsh domblklist debian11
从输出中可以看到虚拟磁盘路径是/var/lib/libvirt/images/debian11.qcow2。使用该磁盘路径,可以检索有关虚拟磁盘映像的更多信息,例如所示的虚拟大小:
$ sudo qemu-img info /var/lib/libvirt/images/debian11.qcow2
从输出中可以看到我们的初始虚拟磁盘大小是20G。稍后会将其扩展到40G。
第3步:扩展KVM虚拟机磁盘大小
下一步是扩展虚拟机磁盘大小。在本文的例子中,小编将使用下面所示的命令添加另外20G,将大小扩大两倍:
$ sudo qemu-img resize /var/lib/libvirt/images/debian11.qcow2 +20G
注意:需要先删除与虚拟机相关的所有快照,然后才能继续下一步操作。你可以列出与该名称关联的快照,命令如下:
$ sudo virsh snapshot-list debian11
假设这里有一个名为mysnapshot的快照。要删除该快照,将运行以下命令:
$ sudo virsh snapshot-delete --domain debian11 --snapshotname mysnapshot
第4步:启动KVM虚拟机
扩展虚拟机大小之后,继续并启动虚拟机,命令如下:
$ sudo virsh start debian11
要确认磁盘大小现已扩展,请运行以下命令:
$ sudo qemu-img info /var/lib/libvirt/images/debian11.qcow2
从输出来看,虚拟磁盘大小现在为40GB ,比原始磁盘大小增加了20G,如下图所示:
或者,可以登录虚拟机并使用lsblk命令检查磁盘大小:
$ lsblk
结论
在本文中,小编主要介绍了如何扩展KVM虚拟机磁盘大小。当你想要创建额外的分区或增加现有磁盘分区的大小时,增加VM磁盘的大小会派上用场。如果你不清楚如何进行设置,那么可以参考以上教程,应该会对你有所帮助。