簡介 php
Xen是一個基於虛擬硬件監控器技術的虛擬化軟件。Xen運行在一個宿主linux系統上,提供同時引導啓動多個linux實例的能力。每一個由Xen生成的虛擬機,被稱爲domain。新建立的domain須要爲其安裝一個操做系統,方可引導並使用。如下是幾種虛擬化軟件的對比: python
項目 linux |
Virtual Machine 服務器 |
Para Virtualized 架構 |
OS Virtualized app |
虛擬層面 dom |
硬件虛擬機 工具 |
準虛擬化 性能 |
操做系統虛擬化 ui |
虛擬原理 |
虛擬硬件監控層 模擬多個虛擬機運行 |
並行虛擬化 同時啓動多個虛擬的子系統 |
將操做系統劃分爲多個容器構成虛擬環境 |
表明產品 |
EMC VMware 微軟Virtual Server |
Xen |
SWsoft Virtuozzo SUN Container |
運行的系統內核實例 |
底層物理系統運行一個內核,每一個虛擬機各自運行運行一個標準內核 |
底層系統使用一個修改過的內核,全部虛擬機運行通過修改的特別內核(如過CPU支持虛擬指令集,則虛擬機可以使用標準內核 |
全部虛擬環境一個內核,由底層系統提供 |
性能 |
低 |
通常 |
高 |
虛擬機間隔離 |
隔離 |
隔離 |
隔離 |
物理節點和虛擬機間隔離 |
隔離 |
隔離 |
隔離 |
資源分配顆粒度 |
粗 |
粗 |
很是細 |
軟件可管理性 |
高 |
通常 |
很是高 |
安裝
Redhat Enterprise Linux 自5.0版本(如下簡稱AS5)起,內核版本提高到了2.6.18系列,正式提供了對Xen虛擬化技術的支持。在以往的Linux版本中,安裝Xen須要編譯內核(Domain0/DomainU等)等,並進行有關配置,安裝過程比較複雜。而在Xen上安裝新的虛擬機操做系統(即建立新Domain)更是讓新手無從下手。從AS5起,系統級集成讓這一切有了明顯改善,更加簡單易用。
首先用默認安裝方式安好一個乾淨的AS5系統,推薦安裝X圖形環境,通常使用GNOME便可。AS5提供了基於圖形的Xen管理工具,因此安裝X圖形環境會讓使用Xen更加簡便。固然,若是對Xen很熟悉,能夠不安裝或者安裝可是不啓動X圖形環境,所有在命令行下邊操做Xen。
使用默認安裝方式安裝操做系統完畢後,從操做系統的光盤中尋找以下RPM並上傳到服務器上,用於Xen的安裝:
光盤Server目錄 |
kernel-xen xen-lib gnome-python2-gnomekeyring |
光盤VT目錄 |
gnome-applet-vm-0.1.2-1.el5.i386.rpm libvirt-0.1.8-15.el5.i386.rpm libvirt-devel-0.1.8-15.el5.i386.rpm libvirt-python-0.1.8-15.el5.i386.rpm python-virtinst-0.99.0-2.el5.noarch.rpm virt-manager-0.2.6-7.el5.i386.rpm Virtualization-en-US-5.0.0-7.noarch.rpm Virtualization-zh-CN-5.0.0-7.noarch.rpm xen-3.0.3-25.el5.i386.rpm xen-devel-3.0.3-25.el5.i386.rpm |
在第五張安裝光盤的VT目錄中還有許多其餘文件,主要是Xen圖形管理工具的語言包文件,能夠不用都安裝上。上邊列出的只是主要的RPM包,若是在安裝過程當中報告還須要其餘的RPM,則從光盤中尋找並安裝便可。
首先安裝Kernel的RPM包,使用rpm -ivh 命令安裝。
[root@localhost "]# rpm -ivh kernel-xen-2.6.18-8.el5.i686.rpm warning: kernel-xen-2.6.18-8.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:kernel-xen ########################################### [100%] [root@localhost "]# rpm -ivh xen-libs-3.0.3-25.el5.i386.rpm warning: xen-libs-3.0.3-25.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:xen-libs ########################################### [100%] [root@localhost "]# |
接下來修改默認的Kernel啓動順序。編輯/etc/grub.conf,找到「default=1」這行,把數字改爲「0」 。「0」表示啓動第一個內核,即Xen內核。「1」表示啓動第二個內核,即操做系統AS5原來的普通內核。以下圖中紅色的標記。
[root@localhost "]# vi /etc/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/hda default=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-8.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-8.el5 module /vmlinuz-2.6.18-8.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-8.el5xen.img title Red Hat Enterprise Linux Server (2.6.18-8.el5) root (hd0,0) kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18-8.el5.img |
修改完畢後從新啓動系統。重啓系統完成後,再安裝其餘的RPM。
[root@localhost "/xen]# rpm -ivh *.rpm warning: gnome-applet-vm-0.1.2-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:Virtualization-en-US ########################################### [ 9%] 2:gnome-python2-gnomekeyr########################################### [ 18%] 3:Virtualization-zh-CN ########################################### [ 27%] 4:xen-devel ########################################### [ 36%] 5:libvirt ########################################### [ 45%] 6:xen ########################################### [ 55%] 7:python-virtinst ########################################### [ 64%] 8:libvirt-python ########################################### [ 73%] 9:virt-manager ########################################### [ 82%] 10:gnome-applet-vm ########################################### [ 91%] 11:libvirt-devel ########################################### [100%] [root@localhost "/xen]# |
安裝完成。這裏能夠不重啓系統。當且僅當更新內核的時候,才須要重啓。而安裝Xen的其餘組件和管理工具是不須要重啓的。這裏也能夠看出Linux系統架構設計的優點——絕大部分狀況下都不用重啓系統。如今啓動Xen本身的後臺服務「Xend」並將其設置爲隨機自動啓動。
[root@localhost "/xen]# /etc/init.d/xend start Starting xend: [ OK ] [root@localhost "/xen]# chkconfig --add xend [root@localhost "/xen]# chkconfig --level 345 xend on [root@localhost "/xen]# |
配置
Xen能夠經過圖形方式配置,也能夠經過字符方式配置。字符方式使用命令xm,能夠直接鍵入xm查看輸出的命令參數信息。
[root@localhost "/xen]# xm Usage: xm [args] Control, list, and manipulate Xen guest instances. Common 'xm' commands: console Attach to 's console. create Create a domain based on . destroy Terminate a domain immediately. dump-core Dump core for a specific domain. help Display this message. list List information about all/some domains. mem-set Set the current memory usage for a domain. migrate Migrate a domain to another machine. pause Pause execution of a domain. reboot Reboot a domain. restore Restore a domain from a saved state. save Save a domain state to restore later. shutdown Shutdown a domain. top Monitor a host and the domains in real time. unpause Unpause a paused domain. uptime Print uptime for a domain. vcpu-set Set the number of active VCPUs for allowed for the domain. can either be the Domain Name or Id. For more help on 'xm' see the xm(1) man page. For more help on 'xm create' see the xmdomain.cfg(5) man page. For a complete list of subcommands run 'xm help'. [root@localhost "/xen]# |
經過執行vm命令輸出的這裏能夠看到,xm命令行工具可執行的操做包括登陸、啓動、中止、暫停、備份、恢復、重啓、遷移、內存設置、CPU設置等。具體的操做會在後邊的章節中提到。
AS5對Xen提供的集成中包含了圖形工具,能夠從菜單進入,如圖。
如今執行virt-manager啓動管理工具。首選提示要管理的Xen節點是什麼。Virt-manager管理工具支持管理本機Xen,還能夠管理其餘服務器上的Xen程序。這樣就提供了一種遠程應用的場景,即運行Xen的服務器能夠徹底不啓動X圖形環境,而是在遠程運行客戶端管理Xen。
本例中因爲是本地安裝的Xen並在服務器的本地終端上啓動了X圖形環境,所以選擇Local Xen host便可。
進入到virt-manager的界面,默認會顯示一個ID爲0的節點,又叫作Domain0,當前狀態是Running。這個節點就是安裝了AS5的物理服務器,經過管理界面能夠看到物理節點擁有的CPU和內存數量。
在管理界面的下方還有「New」 、「Details」 、「Open」等幾個按鈕,點擊其中的New便可來安裝新的domain了