縮小qcow2/vmdk

本篇會介紹如何縮小KVM Images (qcow vmdk)的檔案大小以節省host端的硬碟空間

通常在使用KVM虛擬機的時候不外乎就那幾種檔案格式 (.img  .raw .qcow2)

不過qcow2比較特別的是 他只支援容量擴充 一旦擴充後 想要再縮小就比較麻煩

沒辦法用qem-img resize的方式縮小

如果想要縮小qcow2檔案的大小  來節省空間的話

首先在客戶端(linux)執行

dd if=/dev/zero of=/mytempfile

這裡會將硬碟剩餘的空間 用一個全部為0的mytempfile塞滿

rm -f /mytempfile

接著再把mytempfile刪除,來製造空間已使用完的假象,但其實都是沒必要的零

接著將VM 客戶端關機,回到HOST端執行以下指令
mv original_image.qcow2 original_image.qcow2_backup

qemu-img convert -O qcow2 original_image.qcow2_backup original_image.qcow2

上面的指令會透過qemu-img convert 轉檔,轉檔的同時會壓縮空間,

由於我們剛剛填入的都是0 所以可以把剩下的空間省下來

最後再檢查輸出的.qcow2檔案能不能正確的運行VM   可以的話就可以把backup刪除了