在系統管理的工作中,若發生可預知的硬體問題時,往往需要停機方可進行修復,相對地服務也必須停止運作。如果是透過虛擬技術來建置服務環境時,即可以減少因硬體維修所造成的停機時間。
在前幾篇文章中,如網管人84期「架設KVM/libvirt虛擬化叢集-Debian平台建置」、86期「架設KVM/libvirt虛擬化叢集—配置儲存空間」,曾經介紹過如何架設虛擬機器的儲存池,這樣就會建立起共同的儲存空間。如此一來,當某一台實體主機需要停機維護時,就可以利用線上移轉的功能將虛擬機器移至另一台實體主機中繼續執行,而且中間切換只需極短的停機時間(Service Down Time)。
線上移轉(Live Migration)
要使用線上移轉功能有兩個必要前提:
- 1. 兩台虛擬主機必須要有共同的儲存池
- 2. 兩台虛擬主機必須要在相同的網段
在先前的文章中所架設的網路拓樸環境,即符合上述兩個條件。符合這些前提後,就可以使用virt-manager(Virtual Machine Manager)進行以下操作。
首先在需要轉移的虛擬機器上按下滑鼠右鍵,然後點選【Migrate】,如圖1所示。
|
▲圖1 於虛擬機器管理員中選擇「Migrate」。 |
接著,如圖2所示再選取所要移轉虛擬機器的目標主機,最後再按下〔Migrate〕確認即可。
|
▲圖2 確認「Migrate」。 |
如圖3所示,當移轉工作完成之後,就可以看到剛才被移轉的虛擬機器已經被轉到另一台實體主機上繼續運作了。
|
▲圖3 於虛擬機器管理員中移轉完成。 |
命令列工具—— virsh
相對於virt-manager這個圖形化前端介面,virsh是一個透過命令列來控制虛擬機器的文字模式客戶端程式,也是libvirt工具組內建提供的管理工具。當我們要透過virsh進行操作時,請先打開終端機並輸入virsh以進入互動模式。接下來,為了連接伺服器上面的虛擬機器,則輸入以下指令:
如果使用virsh的位置與連接的虛擬機器伺服器同一台,也可以使用以下指令來連到本機操作。
這樣就能連上伺服器,並可透過其內建提供的各種指令來進行管理及操作。以下是常見的指令與說明:
- start [虛擬機器名稱]:啟動指定名稱的虛擬機器
- shutdown [虛擬機器名稱]:對指定的虛擬機器進行ACPI關機
- reboot [虛擬機器名稱]:對指定的虛擬機器進行ACPI關機後重新開機
- destroy [虛擬機器名稱]:對指定的虛擬機器進行強制關機
- reset [虛擬機器名稱]:對指定的虛擬機器進行強制重新啟動
- list:列出已經開機的虛擬機器
- list --all:列出所有虛擬機器
- edit:使用XML編輯虛擬機器配置,可以手動配置網路設定、儲存裝置設定等。
值得一提的是,這套工具可以透過XML檔案建立虛擬機器,能夠進行儲存空間管理、網路管理。它也能透過「qcow」格式建立快照(snapshot)。但限於篇幅關係,本篇將不詳述。
命令列的虛擬機器安裝工具——virt-install
virt-install是「libvirt」工具組所提供的另一個文字模式工具,讓使用者可以在命令列裡面新增一個虛擬機器並進行安裝動作。舉例來說,如果需要透過virt-manager在目前的目錄裡面建立一個映像檔,並使用放在同一個目錄底下的「ubuntu-11.10-alternate-amd64.iso」進行安裝,虛擬機器規格為512 MiB的記憶體,可以使用以下指令: