網管人84期已介紹過如何使用KVM與libvirt架設虛擬化叢集,其儲存方式是採用NFS。但NFS並非唯一的網路存取方案,本篇將會介紹另一種iSCSI的網路儲存方式。
|
▲圖2 新增iSCSI Target步驟2。 |
如圖1~2所示,將Target改成iscsi。然後除了輸入Hostname外,在Source Path上輸入Target名稱,按〔Finish〕即可。
使用iSCSI新增虛擬機器
在設定storage的地方調整一下步驟,直接選取尚未被使用的LUN空間即可,如圖3所示。
|
▲圖3 新增iSCSI虛擬機器圖示。 |
qcow格式
qcow是QEMU的copy-on-write映像檔格式。由於在使用到虛擬硬碟空間時才會增加大小,於硬碟空間有限的桌上型電腦環境下相當實用,比較新的qcow2還可利用一個映像檔為基礎建立新的映像檔。這裡將介紹如何從VMware或VirtualBox的硬碟格式轉換成qcow2,以及如何建立qcow2的快照(Snapshot)。
目前QEMU映像檔系列最新的QED效率已有提升,不過由於本篇教學所使用的Debian Squeeze裡沒有可以支援QED的QEMU,因此將不介紹。
建立qcow映像檔
映像檔剛建立時,只會佔用很小的空間,但經過使用,空間會越佔越多。
建立映像檔主要有兩種方式:從virt-manager建立及使用命令列指令建立。
從virt-manager建立
如果是使用本機安裝,或是NFS格式的網路存取,virt-manager在建立映像檔的時候就可以選擇以qcow2作為映像檔格式。
使用命令列指令建立
也可以使用以下的指令:
例如,執行指令「$ qemu-img create -f qcow2 debian-squeeze-test1.img 16G」來建立映像檔。
從基礎的映像檔建立映像檔
qcow2可以從基礎的映像檔(Backing File)建立一個映像檔。藉此,可以一個映像檔為基礎建立不同的映像檔,用在不同的虛擬機器上,就不需要再重新安裝作業系統。
不過,透過基礎的映像檔建立映像檔之後,請不要任意使用基礎的映像檔,以免造成不必要的麻煩。
可以使用以下指令來建立:
例如剛安裝好一套Ubuntu Server,為了方便可以透過它來建立一個快照:
也可以查詢映像檔用到的是哪一個Backing File:
在映像檔內進行快照
透過qcow格式,可以在映像檔內進行快照,這有助於系統管理。建立快照後,如果虛擬機器出現問題,可以再從快照還原之前的狀態。相關指令如下:
轉換映像檔
如果想將身邊其他格式的映像檔轉換成qcow2格式,則使用以下指令轉換:
支援的格式相當多,包含VMware的vmdk、VirtualBox的vdi等。指令範例如下:
使用該映像檔建立新的虛擬機器
若要使用剛建立好的映像檔,可以將映像檔放置在Storage Pool指定的目錄內(如果是單機使用,預設是「/var/lib/libvirt/images」,必須使用root或sudo權限才能放置),並在建立虛擬機器時直接從Storage Pool選取該映像檔即可,如圖4所示。
|
▲圖4 使用映像檔建立新的虛擬機器。 |
結語
筆者介紹了如何使用iSCSI作為libvirt的儲存池,也說明qcow磁碟儲存格式。雖然兩者在libvirt裡面無法同時使用,但讀者可以依照效能的需求或是便利性自行決定要使用哪一種格式,以達到最佳的生產力。
<本文依創用CC BY-ND-NC授權刊登,原文請見:http://www.openfoundry.org/tw/tech-column/8539>