Virtualization
QEMU/KVM+OCFS2能否配置成在guest中刪除文件時在稀疏鏡像文件中打孔?
我正在使用主機上的來賓虛擬機和 OCFS2 的稀疏原始圖像文件(僅限本地,非集群)來實現該
reflink
功能。我通過Google搜尋了解到 OCFS2 是一種文件系統,可以在稀疏文件中打孔。如果我理解正確,有可能(並且顯然可以通過 XFS 實現)將此功能與來賓機器中的 TRIM/丟棄支持結合起來,以便在刪除來賓中的文件時,自動回收主機上的空間。然而,儘管進行了很多實驗,我仍然無法證明這項工作。
這可能嗎?如果它取決於核心和/或 QEMU 的版本,我需要的最低版本是多少?我還錯過了配置的任何內容嗎?我有:
discard
使用選項安裝(ext4)來賓文件系統/etc/fstab
- 嘗試了目前的 Debian Wheezy 測試版用於主機和來賓,以及 CentOS 6.2 用於主機
- 嘗試
fstrim
在客戶機上執行(我明白了FITRIM ioctl failed: Operation not supported
——但我不是 100% 確定這是否相關)- 嘗試過
bus=ide
(bus=virtio
使用 CentOS 6.2 主機)
您應該能夠通過使用 virtio-scsi 設備並在磁碟的 libvirt 定義中指定 discard=unmap 來恢復空間。
我沒有在 CentOS/RHEL 中嘗試過這個,但我確實讓它在更高版本的 Fedora 中工作。我寫了一篇關於它的部落格文章。
我會說試一試,看看它是否有效。