詳解Citrix思杰XenServer虛擬化
Xen管理程序(hypervisor)是一款出色的開源程序,由XenSource帶頭,與Xen社區(qū)協(xié)作開發(fā),IBM是最活躍的貢獻(xiàn)者。最初它是劍橋大學(xué)計(jì)算機(jī)實(shí)驗(yàn)室的一個(gè)x86虛擬化研究項(xiàng)目,但Xen很快就超出了研究范疇,并成立了一個(gè)獨(dú)立的公司XenSource,由其進(jìn)行協(xié)調(diào)開發(fā),在創(chuàng)立了開源項(xiàng)目的同時(shí)還發(fā)布了Xen商業(yè)版本。
Citrix系統(tǒng)公司在2007年10月22日收購了XenSource,現(xiàn)在XenSource每年的收入超過了1千萬美元,Xen的發(fā)展速度實(shí)在是太快了,Citrix每年發(fā)布兩個(gè)新版本,現(xiàn)在最新的版本是2009年6月發(fā)布的5.5,v6將在2009年11月發(fā)布。
雖然Xen現(xiàn)在是屬于XenSource的,由于它本身是開源軟件,因此存在相當(dāng)多的分支版本,有些是由其它廠商發(fā)布的,最常見的版本有:
1、Xen(由XenSource發(fā)布的開源版本)
2、由以下公司發(fā)布的商業(yè)版本:
Citrix系統(tǒng)公司發(fā)布的Citrix XenServer
Virtual Iron/Oracle發(fā)布的Oracle VM
Sun公司發(fā)布的Sun xVM
Xen強(qiáng)大的功能征服了許多Linux廠商,許多Linux發(fā)行版默認(rèn)采用的hypervisor就是Xen,但有些廠商(最著名的就是Red Hat)最近轉(zhuǎn)移到了KVM hypervisor,KVM也是一個(gè)非常優(yōu)秀的開源hypervisor。
自從2006年XenSource與微軟建立了密切關(guān)系后,它們聯(lián)合推動(dòng)虛擬化行業(yè)標(biāo)準(zhǔn),本次合作擴(kuò)大了微軟和Xen客戶機(jī)的互操作性。
在編寫本文時(shí),XenServer 5.5是使用得最多的版本,預(yù)計(jì)2010年將會(huì)發(fā)布V6。
技術(shù)特性
Xen是一個(gè)開源的裸機(jī)或本地hypervisor,由XenSource基于GPL2協(xié)議發(fā)布,在它的早期版本中,Xen hypervisor引入了半虛擬化的概念(針對(duì)x86平臺(tái)),這個(gè)功能最初出現(xiàn)在上世紀(jì)70年代IBM的System/360-67上,半虛擬化需修改客戶機(jī)操作系統(tǒng),要讓它知道hypervisor在它的底層。
自Xen Server 3.0發(fā)布后,硬件廠商開始在硬件級(jí)支持虛擬化,如英特爾的VTx和AMD的AMD-V,這些技術(shù)主要是集成到現(xiàn)代x86/x64處理器中了,但是在指令集方面有很大的差異,因此靠Xen實(shí)現(xiàn)了對(duì)硬件的抽象,這樣就不用修改主機(jī)了,硬件虛擬化技術(shù)簡(jiǎn)化了宿主主機(jī)的部署,如果沒有這種技術(shù),要修改操作系統(tǒng)(如Windows)內(nèi)核支持半虛擬化可能是個(gè)大問題。
微軟Hyper-V和Xen Server的架構(gòu)設(shè)計(jì)非常類似,最大的不同是,在Xen中,Dom0(運(yùn)行虛擬機(jī)監(jiān)視器和管理I/O的特權(quán)域)是一個(gè)經(jīng)過優(yōu)化的Linux內(nèi)核,而微軟使用的是Windows Server 2008作為其父分區(qū)(Parent Partition)(與Xen中的Dom0類似),正是由于有這些相似點(diǎn),Citrix Essentials包才可以在Hyper-V和Citrix Xen Server之間實(shí)現(xiàn)虛擬機(jī)遷移。
#p#
Citrix Xen Server 5.5
按照每年發(fā)布2次的節(jié)奏,Citrix在2009年6月發(fā)布了Xen Server v5.5,本次發(fā)布帶來了大量的優(yōu)化和改進(jìn),最值得注意的是管理和存儲(chǔ)架構(gòu)的更新,Citrix收購XenSource后,通過加快發(fā)布速度贏得了不少市場(chǎng)認(rèn)可,同時(shí)Citrix也將來自開源社區(qū)的最新技術(shù)研究成果加入到上游Xen內(nèi)核中(未來版本),這是一個(gè)快速占領(lǐng)市場(chǎng)的有效做法。
Citrix Xen Server提供了一個(gè)極具競(jìng)爭(zhēng)力的虛擬化解決方案,Xen Server 5.5最顯著的一個(gè)疏忽是過量分配內(nèi)存資源的能力,內(nèi)存過量分配(內(nèi)存膨脹)可以使整合度更高,特別是虛擬桌面方面,如果沒有過量分配內(nèi)存資源的能力,Citrix XenServer就不能達(dá)到其它類似產(chǎn)品的整合率,如VMware的vSphere,Red Hat的KVM,Citrix將會(huì)在下一個(gè)版本中增加內(nèi)存過量分配功能。并入到目前開源Xen hypervisor的Xen內(nèi)核3.4具有下列新特性(希望所有新特性都能在下一個(gè)版本中見到):
設(shè)備穿透增強(qiáng),特別是對(duì)客戶端設(shè)備的支持(更多支持包含在XCI項(xiàng)目中);
RAS功能:CPU和內(nèi)存脫機(jī);
電源管理:增強(qiáng)的頻率/電力控制,支持深度睡眠,調(diào)度程序和計(jì)時(shí)器經(jīng)過優(yōu)化,峰值時(shí)消耗的電力更少;
支持Hyper-V啟發(fā)接口。
另外,VM故障容錯(cuò)功能允許在兩臺(tái)物理主機(jī)上運(yùn)行一個(gè)虛擬機(jī)實(shí)例,其中一個(gè)處于隱藏狀態(tài),兩者步調(diào)保持一致,如果主主機(jī)發(fā)生故障,輔助主機(jī)上的虛擬機(jī)實(shí)例就開始接管,虛擬機(jī)完全不用停機(jī),因此對(duì)最終用戶是沒有任何影響的,這個(gè)技術(shù)首先是在VMware的vSphere中引入的。
#p#
許可
Citrix XenServer許可計(jì)劃簡(jiǎn)單有吸引力,核心hypervisor和管理控制臺(tái)都是免費(fèi)的,可以從Citrix網(wǎng)站下載,如果需要更高級(jí)的功能,可以購買一兩個(gè)“Essentials”包,這些擴(kuò)展包大大增強(qiáng)了XenServer的功能,如下表所示。
“Essentials”包是按每服務(wù)器進(jìn)行授權(quán)的,而不是按處理器或處理器核心,因此在向上擴(kuò)展方面有很大的吸引力,如IBM的eX4和即將發(fā)布的eX5系統(tǒng)。
*以上價(jià)格來自Citrix/VMware網(wǎng)站2009年7月23日的報(bào)價(jià),以美元作為單元。
#p#
Citrix XenServer版本
Citrix已經(jīng)發(fā)布了三個(gè)不同版本的XenServer,核心組件都是免費(fèi)的,附加功能包括兩個(gè)Essentials包,組織可以調(diào)整它們的許可,隨時(shí)增加想要的包。
#p# Citrix Xen產(chǎn)品堆棧
Xen hypervisor
Xen hypervisor是XenServer的核心,它運(yùn)行在最低特權(quán)層,它位于操作系統(tǒng)下方,直接與硬件打交道,因此算是硬件抽象層,它負(fù)責(zé)為運(yùn)行在物理主機(jī)上的各個(gè)虛擬機(jī)調(diào)度CPU和內(nèi)存分區(qū),hypervisor不僅抽象了虛擬機(jī)硬件,還控制著虛擬機(jī)的執(zhí)行,因?yàn)樘摂M機(jī)之間要共享相同的處理環(huán)境。
在hypervisor上面運(yùn)行一個(gè)或多個(gè)客戶機(jī)操作系統(tǒng),在安裝時(shí)就創(chuàng)建了第一個(gè)客戶機(jī)VM,也就是著名的Dom0,這個(gè)VM有特權(quán)管理訪問hypervisor,并且可以直接訪問物理硬件,它的主要作用是保護(hù)hypervisor的管理接口。
最近的變化大大地改進(jìn)了Xen hypervisor,包括本地運(yùn)行半虛擬化Windows Server 2008作為一個(gè)XenServer客戶機(jī)的能力,正如本章前面所提到的,Hyper-V和XenServer的架構(gòu)類似,微軟和Citrix之間的合作讓一個(gè)開啟Xen的Linux客戶機(jī)運(yùn)行在Hyper-V上成為可能,需要用到本地Xen hypercall訪問虛擬功能,微軟提供的軟件組件調(diào)用hypercall適配器將XenServer hypercall轉(zhuǎn)換成Hyper-V hypercall,因此Linux客戶機(jī)可以運(yùn)行在全內(nèi)核半虛擬化支持下,在Citrix Essentials的Hyper-V版本中支持XenMotion,可以在XenServer和Hyper-V之間實(shí)現(xiàn)實(shí)時(shí)遷移。
Citrix XenServer v5.5使用的是Xen 3.3內(nèi)核,它為Xen Hypervisor帶來了許多增強(qiáng):
Hypervisor中的電源管理(P&C狀態(tài));
硬件輔助分頁增強(qiáng):2MB頁面支持,具有更好的TLB局域性;
CPUID功能級(jí):允許跨不同CPU類型的系統(tǒng)安全域遷移;
PVSCSI驅(qū)動(dòng),直接訪問半虛擬化客戶機(jī);
完整的x86實(shí)址方式仿真英特爾VT上的HVM客戶機(jī):支持更多的傳統(tǒng)客戶機(jī)操作系統(tǒng)。
當(dāng)Citrix發(fā)布下一個(gè)XenServer版本時(shí),希望采用新的3.4版Xen內(nèi)核。
正如前面提到的,更多增強(qiáng)已經(jīng)在Xen內(nèi)核的未來版本中存在的。
在計(jì)劃的Xen 4.0內(nèi)核中包括以下特性:
RDMA實(shí)時(shí)遷移支持;
Linux 2.6.30或更高版本的Dom0內(nèi)核;
Marvell 6480硬盤Dom0支持;
為PV客戶機(jī)穿透USB控制器/設(shè)備;
故障容錯(cuò) – Remus和Kemari項(xiàng)目;
DomUs級(jí)的監(jiān)控,限制和網(wǎng)絡(luò)通信控制;
國際化/Unicode支持;
象真實(shí)交換機(jī)那樣配置虛擬橋(如控制VLAN,端口狀態(tài));
每NIC接口VLAN標(biāo)記;
虛擬以太網(wǎng)交換機(jī);
通過UEFI(pUEFI)和虛擬UEFI支持物理Xen啟動(dòng)/安裝;
限制VM的I/O;
動(dòng)態(tài)內(nèi)存管理;
PCI CGA穿透;
完整的AMD IOMMU支持;
在線調(diào)整DomU磁盤的大小;
交叉編譯Xen和模塊化構(gòu)建。
#p#
Citrix XenServer 5.5需求
Citrix XenServer 5.5對(duì)宿主主機(jī)有以下要求,但對(duì)于開源版本,超出這些限制的配置可能也是可以支持的。
Citrix XenServer 5.5支持當(dāng)前核心x86操作系統(tǒng),但它絕大部分是Windows市場(chǎng),如果需要支持半虛擬化Linux客戶機(jī)操作系統(tǒng),必須安裝Linux支持包,它支持Linux運(yùn)行在dom0,如果不安裝這個(gè)包,所有操作系統(tǒng)都必須運(yùn)行在硬件輔助模式下,在安裝時(shí)你會(huì)經(jīng)過如下圖所示的一步,安裝程序會(huì)提示你是否要安裝可選的Linux包。
圖 1 安裝Linux Pack的確認(rèn)界面
如果在這一步你選擇不安裝Linux包,也可以在以后需要時(shí)安裝,只需要運(yùn)行Linux Pack安裝CD中的install.sh即可。
下表列出了Citrix XenServer支持的操作系統(tǒng)清單,其實(shí)很多未列出的操作系統(tǒng)也可以作為客戶機(jī)運(yùn)行。
支持的客戶機(jī)操作系統(tǒng)
#p#
XenCenter
XenCenter是為Citrix XenServer設(shè)計(jì)的多服務(wù)器管理控制臺(tái),它可以管理所有XenServer資源池、宿主主機(jī)和虛擬機(jī),并集成了存儲(chǔ)管理功能,與其它虛擬管理服務(wù)器不一樣,XenCenter是一個(gè)輕量級(jí)的Windows應(yīng)用程序,它可以運(yùn)行在任何桌面,所有被管理服務(wù)器的配置和性能數(shù)據(jù)被復(fù)制到一個(gè)資源池中,消除了潛在的單點(diǎn)故障,如果管理資源池的服務(wù)器出了故障,其它服務(wù)器可以立即接管,免費(fèi)版本的XenServer需要手工操作,而購買了Essentials包的XenServer則是自動(dòng)的,XenCenter可以以圖表格式顯示性能信息,非常簡(jiǎn)單直觀。
Citrix XenServer的最低系統(tǒng)要求如下:
基于x86的系統(tǒng);
Windows 2000,Windows XP,Windows Server 2003,Windows Server 2008或Windows Vista;
.Net Framework 2.0或更高版本;
CPU速度:最低750MHz,推薦1GHz或更快的處理器;
內(nèi)存:最低512MB;
磁盤空間:最低100MB;
網(wǎng)卡。
使用XenMotion可以在資源池成員之間實(shí)時(shí)在線遷移虛擬機(jī),因此IT維護(hù)人員可以在不中斷用戶訪問虛擬機(jī)的情況下更新和管理服務(wù)器,也就沒有所謂的計(jì)劃內(nèi)停機(jī)時(shí)間了,虛擬機(jī)存儲(chǔ)在共享存儲(chǔ)上,可以隨時(shí)遷移,最令人羨慕的是這個(gè)功能是免費(fèi)的。
【編輯推薦】