为了将Hyper-V VM迁移到KVM,我使用qemu-img convert
实用程序将vhdx磁盘转换为兼容格式,如qcow(OS)和raw(数据分区)。原始的Hyper-V磁盘使用动态分配。转换后,这似乎改为固定分配。
一个例子:
-rw-r--r-- 1 root root 300G May 6 20:30 IIS-Daten.raw
-rw-r--r-- 1 root root 3.5G May 6 18:17 IIS-Daten.vhdx
IIS-Daten.vhdx
是原始光盘。它的动态分配限制为300GB。实际上,还有3.5 / 300GB使用。如您所见,转换后的原始文件的固定大小为300GB。
与OS磁盘相同
-rw-r--r-- 1 root root 24G May 6 20:53 IIS.qcow2
-rw-r--r-- 1 libvirt-qemu kvm 36G May 6 19:16 IIS.vhdx
如何将类型更改为动态?根据文档,似乎没有可用于控制此行为的转换。
更新
使用df -h
我检查了驱动器,发现只使用了89GB / 1.8TB。由于两个虚拟硬盘都在那些驱动器上,似乎linux欺骗了我:根据ls -lh
至少324GB被用于qcow2 / raw磁盘。旧版vhdx文件大约加40GB。
我认为ls -lh
会显示hdd的最大大小,而不是当前的大小。我以前从未见过这个。为什么会发生这种情况?如何查看这些文件的实际使用大小?
答案 0 :(得分:2)
IIS-Daten.raw是一个稀疏文件,并非所有块都实际分配在磁盘上。当您读取未分配的块时,您将返回零,当您编写它们时,内核将分配块来存储您编写的内容。这是几十年来标准的unix行为。您可以使用“du $ file”查看文件在磁盘上的实际使用量。
如果你想要动态磁盘,qcow2格式通常效果更好,它支持动态文件分配而不依赖于稀疏文件。