●qcow2 格式的壓縮
首先,需要對虛擬機系統的剩余空間寫零操作:
$ dd if=/dev/zero of=/zero.dat
刪除 zero.dat
$ rm /zero.dat
關閉虛擬機,進入虛擬機鏡像文件的目錄,通過 qemu-img 的 convert 來操作:
$ qemu-img convert -c -O qcow2 /path/old.img.qcow2 /path/new.img.qcow2
隨后改變 VM 的配置,測試 new.img.qcow2,正常的話,刪除old.img.qcow2 即可。
●raw 格式的壓縮
先進虛擬機系統對剩余空間寫零操作,隨后刪除 zero.dat,關閉虛擬機。
最后通過 cp 的稀疏復制,把零全部釋放。
$ cp --sparse=always /path/old.raw /path/new.raw
raw 鏡像比 qcow2 鏡像速度略快,但是 qcow2 鏡像有增量功能,
一般情況下,我們都采用 qcow2 鏡像格式。
qemu-img 的 convert 也能轉化 raw 成 qcow2:
$ qemu-img convert -c -f raw -O qcow2 /path/old.raw /path/new.qcow2