当我执行以下操作时,qcow2 文件小于 200KB。
# qemu-img create -f qcow2 /var/lib/libvirt/images/urb-dat0.qcow2 10G
# du -hsc /var/lib/libvirt/images/urb-dat0.qcow2
196K /var/lib/libvirt/images/urb-dat0.qcow2
如果我将其连接到 KVM 客户机,fdisk -l
Disk /dev/vdb: 0 MB, 197120 bytes, 385 sectors
问题
如何制作非精简配置的 10GB qcow2 文件?
答案1
您可以使用该preallocation
选项。
qemu-img create -o preallocation=full -f qcow2 /var/lib/libvirt/images/urb-dat0.qcow2 10G
参考:https://linux.die.net/man/1/qemu-img
预分配模式(允许值:关闭、元数据、完整)。具有预分配元数据的映像最初较大,但当映像需要增大时可以提高性能。完整预分配还会将零写入整个映像,以便预分配较低层(例如包含映像文件的文件系统)。请注意,完整预分配会写入虚拟磁盘的每个字节,因此对于大型映像可能需要很长时间。
答案2
现有的精简配置 qcow2 文件可以转换为完全分配的文件,如下所示:
qemu-img convert -p -f qcow2 -O qcow2 -S 0 original-file.qcow2 new-file.qcow2
(这不是问题的答案,但可能仍然引起人们的兴趣。)