掛載虛擬機硬碟分割區的方法
在有些情況下,我們會想要在Host主機中掛載在其上執行的VM的磁碟目錄,以對其中做一些檢視或修改的動作,在這一篇文章中,我們就來教其中的步驟。目前站長測試的過程中,如果你的VM作業系統使用的是LVM的磁碟格式的話,在操作上要多了許多的設定,所以為了方便起見,在以下的例子中,站長使用的是傳統的檔案格式。
資訊技術教材網
在有些情況下,我們會想要在Host主機中掛載在其上執行的VM的磁碟目錄,以對其中做一些檢視或修改的動作,在這一篇文章中,我們就來教其中的步驟。目前站長測試的過程中,如果你的VM作業系統使用的是LVM的磁碟格式的話,在操作上要多了許多的設定,所以為了方便起見,在以下的例子中,站長使用的是傳統的檔案格式。
除了直接撰寫原生的C程式語言,以呼叫libvirt API的方式來操作VM之外,其實最簡單的方法是透過virsh所提供的指令來完成。大部份的工作其實使用virsh的指令集都可以做到。virsh是隨附在libvirt package中用來協助管理者執行libvirt API的一組工具程式集,可以透過它的文字式交談介面來完成工作,也可以在終端機中的命令提示字元使用這些指令。完整的virsh command連結在此:http://libvirt.org/sources/virshcmdref/html-single/。
由於經常會在兩三台Linux主機之間使用SSH,另外Mirgration VM時也會使用到SSH,所以設定好免密碼驗證會讓操作上更加地便利。正確來說,其實不是免密碼,而是使用公私鑰的驗證方式來替代使用者輸入密碼。主要的原理就是先利用程式產生一組公私鑰(一個公鑰檔,一個私鑰檔),然後私鑰當然是保存在自己的帳戶目錄中,而把公鑰交給對方,這樣SSH在登入時,會先比對這組公私鑰,如果配對成功,就不會再向使用者索取密碼了。
兩台不同的主機間如果都執行了libvirtd,就可以透過virsh的指令集來對於虛擬機VM做許多的操作,這個我們在之前的文章中有提到過。現在我們有了Python API,當然可以更進一步地做自動化批次作業。除了前一篇文章中介紹到的把所有的VM關閉或是打開之外,這一篇文章我們就來做Live Migration的自動化操作,一個程式把所有正在執行中的VM在不停機的情況下全部搬到另外一台主機Node上。程式如下(Python 2)
在操作VM的過程,經常有需要把所有本地端主機上的所有 VM都打開或是關機,有了Python API,我們可以建立一個簡單的程式,使用listAllDomains把所有的domain都找出來放在一個串列中,然後分別以create()和shutdown()這兩個方法來打開或是關閉每一個domain(虛擬機)。
如同前一篇文章中我們介紹的,要操作libvirt,使用Python API是最簡單的方法。完整版本在本網站的最下方有一個連結,有興趣的朋友可以自行前往參考。依據其內容,在這裡再提供一個簡易的查詢主機的相關資訊的Python程式給大家參考,不同於C語言還要設定一大堆的編譯資訊,使用Python libvirt API,只要一個import的動作就全部搞定。程式如下:
傳統上我們都使用top指令來監看Linux執行中的行程以及目前CPU和記憶體等等的使用情形,如果你有使用top指令習慣的話,那麼一定不能錯過功能更強、畫面更漂亮的htop指令。不過,在CentOS7中,要安裝htop不是單純只要使用yum -y install htop就好了,在此之前還要再多加一行指令。
如果你試著安裝雙系統開機時,在安裝完Windows作業系統之後再安裝CentOS,重新開機之後卻找不到Windows的開機選項,除了找找看是不是BIOS所造成的問題之外,也可以依照本文的作法修改grub.cfg的內容試試看。
我們在之前的Live Mirgration實驗中,三台機器(或是兩台也可以)中一定要有一台提供NFS功能,然後把要被Migration的VM放在NFS中,才能夠進行Live Mirgration的操作。以我們之前的例子,我們在NFS中開放/var/images給Host主機掛載,而且在每一台要做Live Migration操作的主機中,要執行掛載的指令才行。但是,也可以透過/etc/fstab的設定來自動掛載。