QCOW2和ROW 區別
kvm虛擬機中需要選擇磁盤鏡像的格式,通常的選擇有兩種,一種是raw鏡像格式,一種是qcow2格式。
raw格式是原始鏡像,會直接當作一個塊設備給虛擬機來使用,至于文件里面的空洞,則是由宿主機的文件系統來管理的,Linux下的文件系統可以很好的支持空洞的特性,所以,如果你創建了一個100G的raw格式的文件,ls看的時候,可以看到這個文件是100G的,但是用du 來看,這個文件會很小。
qcow2是kvm支持的磁盤鏡像格式,我們創建一個100G的qcow2磁盤之后,無論用ls來看,還是du來看,都是很小的。這說明了,qcow2本身會記錄一些內部塊分配的信息的。
無論哪種格式,磁盤的利用率來說,都是一樣的,因為實際占用的塊數量都是一樣的。但是raw的虛擬機會比qcow2的虛擬機IO效率高一些,實際測試的時候會比qcow2高25%,這個性能的差異還是不小的,所以追求性能的同學建議選raw。
raw唯一的缺點在于,ls看起來很大,在scp的時候,這會消耗很多的網絡IO,而tar這么大的文件,也是很耗時間跟CPU的,一個解決方法是,把raw轉換成qcow2的格式,對空間壓縮就很大了。而且速度很快。轉換命令如下:
#qemu-img convert -O qcow2 disk.raw disk.qcow2
#qemu-img convert -O raw disk.qcow2 disk.raw
這樣轉換所消耗的時間遠比tar.gz小。
應該是qemu-img會直接讀取文件的元數據,而tar只會傻傻的跟操作系統要文件數據的關系吧!
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!