qemu-img是QEMU的磁盤管理工具,在qemu-kvm源碼編譯后就會默認編譯好qemu-img這個二進制文件。
qemu-img也是QEMU/KVM使用過程中一個比較重要的工具,可以用其創建兩種格式(raw和qcow2)的虛擬機磁盤。
我們kvm 和openstack 中常用得鏡像格式就是raw 或者qcow2 格式得鏡像, 一般通常用qcow2
為什么選擇qcow2 鏡像?
"raw" 鏡像格式是最最簡單的,並且是被 KVM 和 Xen 原生支持的格式,raw唯一的缺點在於,看起來很大,在scp的時候,這會消耗很多的網絡IO,而壓縮這么大的文件,也是很耗時間和cpu
qcow2 (QEMU 寫時復制版本2)格式通常是KVM使用,使用稀疏文件呈現方式,鏡像尺寸小,支持快照。
舉個例子: raw 格式就像你郵寄一箱子,這個箱子可以存放十斤得重量得物品,我得箱子里存放了兩斤得重量得東西,我在郵寄使用這個箱子都時按照十斤大小去計費。他不會管你實際用了多少,你這個箱子有多大,那我按照你這個最大得來計算。
qocw2 格式,我這個箱子可以存放十斤得重量得物品,但是我只放了兩斤,我在郵寄使用就是算這兩斤重量,他是按照你實際使用得大小來計算得
raw 格式鏡像你看到時多大就是多大
qcow2 格式鏡像,隨着你對鏡像得操作他會動態得增長, 但是他不是無限置得增長。我們鏡像都有一個virtual size 這個就是我們鏡像得大小得限制
查看鏡像大小與格式
qemu-img info 鏡像名
qemu-img 轉換鏡像格式
qemu-img convert -f raw -O qcow2 ubuntu-14.04.6-server-amd64.iso (初始鏡像) ubuntu-14.04.6-server-amd64.qcow2(轉換格式后得鏡像命名)
擴容鏡像大小
qemu-img resize 鏡像名 +20G
縮減鏡像大小 (不建議使用,這樣可以減少空間但是對系統有損害,可能導致系統直接進入維護模式或者鏡像拉不起虛機)
qemu-img resize 鏡像名 -20G
實例
查看鏡像得大小和格式
[root@ var]# qemu-img info ubuntu-14.04.6-server-amd64.iso
image: ubuntu-14.04.6-server-amd64.iso
file format: raw
virtual size: 632M (662700032 bytes)
disk size: 632M
將鏡像有raw 格式轉為qcow2 格式
[root@ var]# qemu-img convert -f raw -O qcow2 ubuntu-14.04.6-server-amd64.iso ubuntu-14.04.6-server-amd64.qcow2
檢查鏡像大小格式
[root@ var]# qemu-img info ubuntu-14.04.6-server-amd64.qcow2
image: ubuntu-14.04.6-server-amd64.qcow2
file format: qcow2
virtual size: 632M (662700032 bytes) -------鏡像總得大小
disk size: 631M ------鏡像使用得實際大小
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
擴展qcow2 大小
root@cic-0-1:~# qemu-img resize ubuntu-14.04.6-server-amd64.qcow2 +20G
Image resized.
root@cic-0-1:~# qemu-img info ubuntu-14.04.6-server-amd64.qcow2
image: ubuntu-14.04.6-server-amd64.qcow2
file format: qcow2
virtual size: 21G (22137536512 bytes)
disk size: 631M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
擴容后lsblk 查看節點新擴容的節點得信息是有顯示的。 但是需要將擴容的空間加到我們需要用的分區里
growpart /dev/vda1 將新擴容的空間添加我們需要的分區,但是我們df -TH 檢查會發現,分區掛載的目錄大小並沒有變化,lsblk 查看分區是擴容空間后的大小,檢查沒有問題
resize2fs /dev/vda1 在線調整分區大小(df TH 是會發現分區掛載的目錄大小是增大了)