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 格式的壓縮。
附帶說一下 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