一、原理講解
虛擬化的概念:將伺服器實體資源抽象成邏輯資源,讓一台伺服器變成幾台甚至上百台相互隔離的虛擬伺服器,我們不再受限於物理上的界限,而是讓CPU、記憶體、磁碟、I/O等硬體變成可以動態管理的“資源集區”,從而提高資源的利用率,簡化系統管理,實現伺服器整合,讓IT對業務的變化更具適應力--------這就是伺服器的虛擬化。
XEN是目前Linux上的最佳的虛擬化解決方案,特別適合於伺服器應用,如用於將多個伺服器合并到一台物理伺服器上,以節省運營成本(機房空間、電力消耗);或者是出於安全形度的考慮,需要將不同的應用進行分區,以便降低安全風險等。
1、名詞:
完全虛擬化(Full Virtualization):full virtualized
半虛擬化(Para Virtualization):paravirtualized
2、XEN的運行環境:Domain-0與Domain-U
Domain-0即虛擬母機或稱為宿主機,與Linux主機為同一系統,以XEN的Linux核心啟動的主機,負責管理和控制客戶機。
Domain-U即虛擬客戶機或稱VPS,在Domain-0上可以建立多個虛擬客戶機。
Domain-0與Domain-U的區別就是Domain-0是虛擬機器,Domain-U是虛擬機器上的作業系統。用過Windows上VMWare的可以把Domain-0理解為VMWare軟體,Domain-U則是運行在VMWare上的作業系統。
3、XEN的運行方式:
XEN分成多個層級 (layer) 執行。它將Linux的核心修改後,再使用修改過的核心開機,而開機後先載入XEN的監控器 (Hypervisor) , 並且啟動第一個作業系統,稱為domain-0。在Xen上面所謂的一個domain就是指一個虛擬機器。
Domain-0之所以要先被載入是因為Domain-0含有其他虛擬機器啟動所必須的控制指令,並且domain-0也是控制虛擬裝置的重要主控系 統。在domain-0上最重要的就是一個xend的常住進程,其他的domain都是由這個xend來管理的。至於命名方面,除了domain-0之外 的其他虛擬機器就依序被稱為domain-1, domain-2等等, 我們統稱為domain-U。
Domain-0是很重要的,因為它直接控制Xen的監控器(Hypervisor),而且掌握了真實的Linux驅動程式 (drivers)。而其他的虛擬機器(domain-U)則是透過Xen監控器來與真實的硬體以及domain-0進行互動。為了讓domain-0能夠 與Xen結合,我們必須要修改domain-0的核心才能順利運行。並且需要使用domain-0的核心來開機才可以。domain-0是所有虛擬機器的基 礎,所以它可以盡量簡潔,其他的個別服務則可以放置到不POP時尚資訊網同的domain中。xend可以管理domain-0與其他domain之間的啟動與互動,提供一個終端控制 (console) 介面來讓 domain-0 登入其他的 domain。
二、必要條件
1、硬體說明:
請在伺服器BIOS設定中開啟關於CPU的虛擬技術;由於品牌、型號不一樣請仔細尋找。
2、系統查看CPU不否支援虛擬化
查看CPU對虛擬化的支援程度:
Intel和AMD的半虛擬化支援標識 - PAE
# cat /proc/cpuinfo | grep flags flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc pni ssse3
INTEL全虛擬化支援標識 - VMX
# cat /proc/cpuinfo | grep flags flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
AMD全虛擬化支援標識 - SVM
# cat /proc/cpuinfo | grep flags flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8legacy 3dnowprefetch ts fid vid ttp tm stc 100mhzsteps
三、初始Xen
1、配置本地光碟片yum
CentOS系統只把光碟片掛載便可以使用本地源。
2、安裝Xen
#yum install xen kernel-xen xen-lib virt-manager python-virtinst –y
3、作用理解
kernel-xen:可以跑 Xen 的 Linux 核心
xen:主要的 xen 套件,包括設定檔、啟動指令碼和一些函數庫
xen-libs:Xen 所需要的函數庫
python-virtinst:提供終端安裝的軟體
virt-manager:用於圖形介面管理xen
查看/etc/grub.conf
選擇帶有xen的核心,並改為使用的核心
#init 6
重啟之後,查看核心
#uname –r
2.6.18-274.12.1.e15xen
#xm list
Domain-0
四、安裝Xen(圖形化)
1、開啟“應用程式” CentOS <wbr>Xen <wbr>安裝及使用
2、開啟“系統工具”,選擇“虛擬系統
3、選擇“localhost”,滑鼠右擊“建立”
4、點擊“前進”
5、虛擬機器命名
6、選擇系統架構,多數由CPU決定
7、選擇引導模式(ISO、PXE)
8、指定位置
9、指定硬碟大小(allocate entire virtual disk now 使用整個硬碟)
10、指定網路
11、指定記憶體大小
12、虛擬機器全部資訊
13、開始“建立”
14、安裝後台
五、常見錯誤描述及解決辦法
1、通過http或NFS安裝客戶機作業系統出現 Unable to retrieve 錯誤:....
多數原因是防火牆造成的,如果使用http安裝方式時可以先停止防火牆,也可以採用以下方式解決:
通過iptables -L命令查詢是否有開啟80連接埠或者netstat tunlp | grep httpd
開放連接埠
iptables –I INPUT –s 192.168.0.2/24 -p tcp --dport 80 -j ACCEPT service iptables save
2、出現類似下面的錯誤:
POST operation failed: xend_post: error from xen daemon: (xend.err 'Error creating domain: I need 262144 KiB, but dom0_min_mem is 262144 and shrinking to 262144 KiB would leave only 244672 KiB free.')
說明新增的虛擬機器主機記憶體設定過高,再記憶體調小點即可。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家學習或者使用Xen虛擬機器能有所協助,如果有疑問大家可以留言交流。