QEMU/KVM+OCFS2 是否可以配置为在来宾中删除文件时在稀疏图像文件中打孔?

QEMU/KVM+OCFS2 是否可以配置为在来宾中删除文件时在稀疏图像文件中打孔?

我为来宾虚拟机使用稀疏原始映像文件,并在主机上使用 OCFS2(仅限本地,非集群)来实现该reflink功能。我通过谷歌搜索了解到 OCFS2 是可以打孔的文件系统之一回到稀疏文件中。

如果我理解正确的话也许有可能(显然可以用XFS来实现)将此功能与来宾计算机中的 TRIM/discard 支持结合起来,这样当来宾计算机中的文件被删除时,主机上的空间就会自动回收。然而,尽管进行了大量实验,我仍无法证明这种方法有效。

这可能吗?如果它取决于内核和/或 QEMU 的版本,我需要的最低版本是多少?我还错过了配置的任何内容吗?我有:

  • discard使用以下选项安装 (ext4) 来宾文件系统/etc/fstab
  • 尝试了针对主机和来宾的 Debian Wheezy 的当前测试版,以及针对主机的 CentOS 6.2
  • 尝试fstrim在来宾上运行(我明白了FITRIM ioctl failed: Operation not supported,但我不能 100% 确定这是否相关)
  • 尝试过bus=idebus=virtio使用 CentOS 6.2 主机)

答案1

您应该能够通过使用 virtio-scsi 设备并在磁盘的 libvirt 定义中指定discard=unmap 来恢复空间。

我还没有在 CentOS/RHEL 中尝试过这个,但我确实让它在 Fedora 的更高版本中工作。我写关于它的博客文章

我想说尝试一下,看看是否有效。

相关内容