如何在 Linux 服务器上创建一个小而方便的 qcow2 文件?

Cat*_*d55 10 virtualization linux compression qcow2 sparse-files

我相信有 qcow2 文件会在服务器上替换少量 GB(在物理服务器上使用 df -h 进行验证),但在您登录到 virt-manager VM 并发出 df 时允许大量空间 - H。你如何创建这样的文件?如果/何时虚拟机增长到其最大大小并可能填满物理服务器,物理服务器如何知道不会出现问题?

truncate 命令不会创建小的 qcow2 文件。Virtual Machine Manager 的 GUI 允许通过 GUI 创建“硬件”。这两种创建 .qcow2 文件的方法都会创建最大大小的文件。

Tuo*_*mas 23

要为 100MB 大小的虚拟磁盘创建 qcow2 映像,请执行以下操作:

qemu-img create -f qcow2 foobar.qcow2 100M
Run Code Online (Sandbox Code Playgroud)

创建的 foobar.qcow2 大约为 200KB。

你可以很容易地创建一个非常大的虚拟磁盘,它只占用主机文件系统上很小的空间,例如 100TB 虚拟磁盘在主机上只占用大约 2MB,但是当磁盘在来宾上使用时,文件会增长在主机上。这最终将填满主机文件系统,并阻止来宾进一步写入任何尚未分配的位置。为主机上真正可用的来宾分配更多资源称为精简配置,请参阅https://en.wikipedia.org/wiki/Thin_provisioning了解更多信息。

当磁盘被精简配置时,避免问题的最简单方法是监控主机系统的磁盘使用情况(自动向管理员发送警报)并在主机系统文件系统填满之前添加更多磁盘空间。

  • 文件扩展名——无论是 foobar.img 还是 foobar.qcow2——并不重要。文件格式不是由扩展名决定的,而是由文件的内容决定的。即,如果您使用“-f qcow2”,即使文件名为 foobar.img,文件也将是 qcow2。但由于这似乎会引起混乱,我将编辑我的答案并将扩展名从 .img 更改为 .qcow2。 (3认同)
  • @SalemF您可能使用支持“稀疏”文件中的“漏洞”的文件系统(ext4,...)。主机文件系统知道文件的“表观大小”(例如图像的虚拟大小),但在存储文件时遗漏了零块(即漏洞)。Linux 工具包括`ls -l` 和`du --apparent-size -h` 将报告图像的虚拟大小(例如最大可能大小)。磁盘上的物理大小可以通过“du -h”和“qemu-img info”显示。 (2认同)