kvm鏡像格式使用注意事項


常用的kvm鏡像格式包括raw及qcow2
RAW:
創建raw格式鏡像文件

[root@localhost tmp]# qemu-img create -f raw raw.img 1G
Formatting 'raw.img', fmt=raw size=1073741824
[root@localhost tmp]# qemu-img info raw.img 
image: raw.img
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 0
[root@localhost tmp]# ls -l raw.img 
-rw-r--r--. 1 root root 1073741824 Sep 13 01:18 raw.img
[root@localhost tmp]# du -h raw.img 
0	raw.img

QCOW2:
創建qcow2格式鏡像

[root@localhost tmp]# qemu-img create -f qcow2 qcow2.img 1G
Formatting 'qcow2.img', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 lazy_refcounts=off
[root@localhost tmp]# qemu-img info qcow2.img 
image: qcow2.img
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@localhost tmp]# ls -l qcow2.img 
-rw-r--r--. 1 root root 197120 Sep 13 01:22 qcow2.img
[root@localhost tmp]# du -h qcow2.img 
196K	qcow2.img

總結:

  • qemu-img info 看到的disk size為鏡像所占用物理磁盤的實際大小
  • raw使用命令ls/du 看到的輸入結果
  • qcow使用命令ls/du 看到的輸入結果相同
    兩者對比發現raw創建的鏡像文件使用ls命令看到的結果與創建鏡像時指定大小一致,但du命令看到的為0,這是因為raw具有稀疏特性(Sparse File),其內部有若干holes
    當在本地拷貝raw文件時,拷貝大小為du命令看到的結果,速度很快,當通過網絡傳輸時拷貝大小為ls命令看到的大小,傳輸很慢,所以這里要注意一下,而qcow2無論是ls或者
    du看到的大小相同,沒有這種情況.

另一個需要注意的地方,當我們用 GUI界面創建虛擬機時,有兩種方式創建磁盤(img):

  • 在GUI里直接填寫路徑及volume名字,選在qcow2格式,讓GUI自動創建
  • 使用qemu-img手動創建好之后在GUI里面進行選擇.
    這兩種方式創建出的磁盤文件使用qemu-img info命令看到的disk size不同,並且第一種方式創建的文件在網絡傳輸拷貝時現象與raw類似,非常慢,按照創建時文件大小進行的傳輸.
    而使用第二種方式創建的並沒有這個問題,是按照實際文件大小進行傳輸,如果制作虛擬機時使用了第一種方式,那在傳輸之前使用virsh vol-clone,qemu-img convert等命令重新克隆或轉換一遍,再次進行傳輸就與第二種方式速度相當.
    時什么原因導致這兩種方式產生的差距,目前還沒有找出來.
    參考鏈接:
    https://blog.csdn.net/Jmilk/article/details/69418999?locationNum=5&fps=1
    https://people.gnome.org/~markmc/qcow-image-format.html.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM