kvm虛擬機中需要選擇磁盤鏡像的格式,通常的選擇有兩種,一種是raw鏡像格式,一種是qcow2格式。
raw格式是原始鏡像,會直接當(dāng)作一個塊設(shè)備給虛擬機來使用,至于文件里面的空洞,則是由宿主機的文件系統(tǒng)來管理的,linux下的文件系統(tǒng)可以很好的支持空洞的特性,所以,如果你創(chuàng)建了一個100G的raw格式的文件,ls看的時候,可以看到這個文件是100G的,但是用du 來看,這個文件會很小。
qcow2是kvm支持的磁盤鏡像格式,我們創(chuàng)建一個100G的qcow2磁盤之后,無論用ls來看,還是du來看,都是很小的。這說明了,qcow2本身會記錄一些內(nèi)部塊分配的信息的。
無論哪種格式,磁盤的利用率來說,都是一樣的,因為實際占用的塊數(shù)量都是一樣的。但是raw的虛擬機會比qcow2的虛擬機IO效率高一些,實際測試的時候會比qcow2高25%,這個性能的差異還是不小的,所以追求性能的同學(xué)建議選raw。
raw唯一的缺點在于,ls看起來很大,在scp的時候,這會消耗很多的網(wǎng)絡(luò)IO,而tar這么大的文件,也是很耗時間跟CPU的,一個解決方法是,把raw轉(zhuǎn)換成qcow2的格式,對空間壓縮就很大了。而且速度很快。轉(zhuǎn)換命令如下:
1 2 | qemu-img convert -O qcow2 disk.raw disk.qcow2 qemu-img convert -O raw disk.qcow2 disk.raw |
這樣轉(zhuǎn)換所消耗的時間遠比tar.gz小。
應(yīng)該是qemu-img會直接讀取文件的元數(shù)據(jù),而tar只會傻傻的跟操作系統(tǒng)要文件數(shù)據(jù)的關(guān)系吧^_^
聯(lián)系客服