本文只涉及到如何實現xen的全虛擬化與半虛擬化,也就是linux下安裝linux,與linux下安裝windows。
原理性的東西,以及優化,本人還在研究中。
環境centos 5.2 64bit
安裝時候已經包含虛擬化,所以啟動系統後已經是帶xen的內核,已經安裝好xen相關軟件。
xen虛擬機的存儲有多種方式,根據官方手冊上說的有files,lvm,nfs等。我選擇了files作為xen虛擬機的存儲,因為這樣比較簡單,當然會有弱點,後面會說到。
先說如何實現半虛擬化:
檢查cpu的指令集是否包含pae,這個應該不成問題,我小黑的cpu是T2370都支持。
1.先dd出一個img文件作為虛擬機的安裝空間
dd if=/dev/zero of=/xen/image/xen1.img bs=1M count=30720 數值大小可以根據自己需要調整。
2.接著就是安裝虛擬機了,安裝方式跟宿主機安裝一樣,可以采取光驅,網絡,由於我已經建好了ks的源,方便
期間我就采用ks來安裝虛擬機的系統。
執行如下命令:
virt-install -n xen1 -r 256 -p --nographic -f /xen/images/xen1.img -l http://192.168.32.132/centos32bit -x "ip=192.168.32.31 netmask=255.255.255.0 gateway=192.168.32.1 ks=http://192.168.32.132/centos32bit/ksxen.cfg"
成功的話就會自動安裝完系統,直到重啟進入系統。ks文件就不貼了,和宿主機的配置文件基本一樣需要做調整的是分區的名字,宿主機是類似sda的形式,而虛擬機是類似xvda的形式。
那些控制xen的基本命令也不說了,網上一大堆,建議看下官方的xen+man.pdf這本書,很詳細。
接著說全虛擬化:
linux安裝windows前,我有個誤區,想windows是圖形的,linux不裝圖形界面怎麼裝啊,後來才明白過來,是通過vnc連接,即可以看到圖形界面。安裝vnc配置vnc也不再敘述,配置下很簡單,客戶端通過vnc連接到linux的時候一定要輸入ip:number(number=1,2...)只輸入ip就只能看到一片白的屏幕,什麼都沒有。
然後先傳個iso到宿主機上去,這裡要說明下了,網上關於全虛擬化有各種說法,說什麼要修改配置文件,修改啟動項目,我照著做試了好幾遍都不行,後來突然之間找到了個方法解決。
照樣dd出img文件,
執行 virt-install -n win2003 -r 512 --vcpus=2 --file=/xen/image/win2003.img --vnc -v -c /root/windows2003_sp2.iso --vnc --vncport=5902 --os-type='windows'
然後會自動生成win2003的配置文件。
接著通過vnc可以安裝系統,(說明下,當時看到藍底白字的圖像時候,很興奮啊)
當windows復制完需要的文件時候,重啟,這時候會出問題了。屏幕是會提示一個錯誤,安裝程序不會繼續下去了,這時候刪除那個在/etc/xen目錄下關於win2003的配置文件,再執行上述命令,再自動生成win2003的配置文件,通過vnc查看,安裝程序順利進行。直到重新啟動系統,順利進去win2003系統,這時候安全起見注意開啟win2003的遠程桌面,關閉宿主機的vnc服務。
以後通過遠程桌面管理win2003.
上述簡單的說明了下如何實現半虛擬化與全虛擬化的步驟,行文不是很好,希望大家可以看懂。
補充下,采用files作為xen虛擬機的存儲,io速度會很慢,基本是宿主機的一半,所以用在生產機器上會有嚴重問題。聽說采取lvm的虛擬分區效果不錯,正打算有時間去測試下