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