一、原理講解
虛擬化的概念:將服務器物理資源抽象成邏輯資源,讓一臺服務器變成幾臺甚至上百臺相互隔離的虛擬服務器,我們不再受限于物理上的界限,而是讓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虛擬機能有所幫助,如果有疑問大家可以留言交流。