Xen是一個(gè)開(kāi)放源代碼虛擬機(jī)監(jiān)視器,由劍橋大學(xué)開(kāi)發(fā)。它打算在單個(gè)計(jì)算機(jī)上運(yùn)行多達(dá)100個(gè)滿(mǎn)特征的操作系統(tǒng)。操作系統(tǒng)必須進(jìn)行顯式地修改(“移植”)以在Xen上運(yùn)行(但是提供對(duì)用戶(hù)應(yīng)用的兼容性)。這使得Xen無(wú)需特殊硬件支持,就能達(dá)到高性能的虛擬化。
Xen采用ICA協(xié)議,通過(guò)一種叫做準(zhǔn)虛擬化的技術(shù)獲得高性能,甚至在某些與傳統(tǒng)虛擬技術(shù)極度不友好的架構(gòu)上(x86),Xen也有上佳的表現(xiàn)。與那些傳統(tǒng)通過(guò)軟件模擬實(shí)現(xiàn)硬件的虛擬機(jī)不同,在Intel VT-X支持下3.0版本之前的Xen需要系統(tǒng)的來(lái)賓權(quán)限,用來(lái)和Xen API進(jìn)行連接。這種技術(shù)已經(jīng)可以運(yùn)用在NetBSD, GNU/Linux, FreeBSD和Plan 9系統(tǒng)上。Sun微系統(tǒng)公司也正在積極地將Solaris移植到Xen平臺(tái)之上。
Xen虛擬機(jī)可以在不停止的情況下在多個(gè)物理主機(jī)之間實(shí)時(shí)遷移。在操作過(guò)程中,虛擬機(jī)在沒(méi)有停止工作的情況下內(nèi)存被反復(fù)的復(fù)制到目標(biāo)機(jī)器。虛擬機(jī)在最終目的地開(kāi)始執(zhí)行之前,會(huì)有一次60-300毫秒的非常短暫的暫停以執(zhí)行最終的同步化,給人無(wú)縫遷移的感覺(jué)。類(lèi)似的技術(shù)被用來(lái)暫停一臺(tái)正在運(yùn)行的虛擬機(jī)到磁盤(pán),并切換到另外一臺(tái),第一臺(tái)虛擬機(jī)在以后可以恢復(fù)。
XEN是一個(gè)基于X86架構(gòu)、發(fā)展最快、性能最穩(wěn)定、占用資源最少的開(kāi)源虛擬化技術(shù)。Xen可以在一套物理硬件上安全的執(zhí)行多個(gè)虛擬機(jī),與Linux是一個(gè)完美的開(kāi)源組合,Novell SUSE Linux Enterprise Server最先采用了XEN虛擬技術(shù)。它特別適用于服務(wù)器應(yīng)用整合,可有效節(jié)省運(yùn)營(yíng)成本,提高設(shè)備利用率,最大化利用數(shù)據(jù)中心的IT基礎(chǔ)架構(gòu)。
XEN是英國(guó)劍橋大學(xué)計(jì)算機(jī)實(shí)驗(yàn)室開(kāi)發(fā)的一個(gè)虛擬化開(kāi)源項(xiàng)目,XEN可以在一套物理硬件上安全的執(zhí)行多個(gè)虛擬機(jī),它和操作平臺(tái)結(jié)合的極為密切,占用的資源最少。編寫(xiě)文檔時(shí)穩(wěn)定版本為XEN3.0。支持萬(wàn)貫虛擬化和超虛擬化。以高性能、占用資源少著稱(chēng),贏得了IBM、AMD、HP、Red Hat和Novell等眾多世界級(jí)軟硬件廠(chǎng)商的高度認(rèn)可和大力支持,已被國(guó)內(nèi)外眾多企事業(yè)用戶(hù)用來(lái)搭建高性能的虛擬化平臺(tái)。
IBM經(jīng)常在其主機(jī)和服務(wù)器上使用虛擬機(jī)來(lái)盡可能發(fā)揮其性能,并類(lèi)似chroot監(jiān)禁那樣將程序置于隔離的虛擬OS中以增強(qiáng)安全性。除此之外,它還能使不同和不兼容的OS運(yùn)行在同一臺(tái)計(jì)算機(jī)上。Xen對(duì)虛擬機(jī)活躍遷移的支持允許工荷平衡和避免停時(shí)。
在Xen使用的方法中,沒(méi)有指令翻譯。這是通過(guò)兩種方法之一實(shí)現(xiàn)的。第一,使用一個(gè)能理解和翻譯虛擬操作系統(tǒng)發(fā)出的未修改指令的CPU(此方法稱(chēng)作完全虛擬化或full virtualization)。另一種,修改操作系統(tǒng),從而使它發(fā)出的指令最優(yōu)化,便于在虛擬化環(huán)境中執(zhí)行(此方法稱(chēng)作準(zhǔn)虛擬化或paravirtualization)。
在Xen環(huán)境中,主要有兩個(gè)組成部分。一個(gè)是虛擬機(jī)監(jiān)控器(VMM),也叫hypervisor。Hypervisor層在硬件與虛擬機(jī)之間,是必須最先載入到硬件的第一層。Hypervisor載入后,就可以部署虛擬機(jī)了。在Xen中,虛擬機(jī)叫做“domain”。在這些虛擬機(jī)中,其中一個(gè)扮演著很重要的角色,就是domain0,具有很高的特權(quán)。通常,在任何虛擬機(jī)之前安裝的操作系統(tǒng)才有這種特權(quán)。
Domain0要負(fù)責(zé)一些專(zhuān)門(mén)的工作。由于hypervisor中不包含任何與硬件對(duì)話(huà)的驅(qū)動(dòng),也沒(méi)有與管理員對(duì)話(huà)的接口,這些驅(qū)動(dòng)就由domain0來(lái)提供了。通過(guò)domain0,管理員可以利用一些Xen工具來(lái)創(chuàng)建其它虛擬機(jī)(Xen術(shù)語(yǔ)叫domainU)。這些domainU也叫無(wú)特權(quán)domain。這是因?yàn)樵诨趇386的CPU架構(gòu)中,它們絕不會(huì)享有最高優(yōu)先級(jí),只有domain0才可以。
在domain0中,還會(huì)載入一個(gè)xend進(jìn)程。這個(gè)進(jìn)程會(huì)管理所有其它虛擬機(jī),并提供這些虛擬機(jī)控制臺(tái)的訪(fǎng)問(wèn)。在創(chuàng)建虛擬機(jī)時(shí),管理員使用配置程序與domain0直接對(duì)話(huà)。
與其它VMM的比較
Denali使用準(zhǔn)虛擬化技術(shù)來(lái)提高x86電腦上虛擬機(jī)的性能。Denali的虛擬機(jī)為因特網(wǎng)服務(wù)專(zhuān)門(mén)支持了最小化的操作系統(tǒng)。系統(tǒng)可以運(yùn)行上千虛擬機(jī)。Xen與Denali不同,因?yàn)樗噲D運(yùn)行適當(dāng)數(shù)量的完整操作系統(tǒng),而非大量輕量級(jí)操作系統(tǒng)。
VMware為x86提供虛擬機(jī),這些虛擬機(jī)可以運(yùn)行未修改的PC操作系統(tǒng)。所涉及的技術(shù)極為復(fù)雜,也導(dǎo)致了性能的(有時(shí)相當(dāng)顯著)下降。Xen犧牲了完全的二進(jìn)制兼容,換取相對(duì)的簡(jiǎn)易性和改善的性能。
KVM在全虛擬化情況下性能優(yōu)于Xen,但Xen在運(yùn)行修改過(guò)的操作系統(tǒng)時(shí)效率更高。
Xen通過(guò)一種叫做半虛擬化的技術(shù)獲得高效能的表現(xiàn)(較少的效能損失,典型的情況下大約損失2%,在最糟的情況下會(huì)有 8%的效能耗損;與其它使用完全的虛擬化卻造成最高到20%損耗的其他解決方案形成一個(gè)明顯的對(duì)比),甚至在某些與傳統(tǒng)虛擬技術(shù)極度不友好的架構(gòu)上(x86),Xen也有極佳的表現(xiàn)。與那些傳統(tǒng)通過(guò)軟件模擬實(shí)現(xiàn)硬件的虛擬機(jī)不同,在3.0版本及在Intel VT-X支援前的Xen需要讓客戶(hù)操作系統(tǒng)(guest operating systems)與Xen API進(jìn)行連接。這樣連結(jié)已經(jīng)可以運(yùn)用在NetBSD, GNU/Linux, FreeBSD和貝爾實(shí)驗(yàn)室的Plan 9系統(tǒng)上。在Brainshare 2005會(huì)議上,Novell展示了NetWare與Xen的連通。與Windows XP連通的技術(shù)曾在Xen開(kāi)發(fā)初期進(jìn)行,但微軟的協(xié)議未能允許它發(fā)布。Sun微系統(tǒng)公司也正積極研究Solaris與Xen的連結(jié),使其能在Xen平臺(tái)上運(yùn)作。
Intel對(duì)Xen貢獻(xiàn)修改以支持其VT-X Vanderpool架構(gòu)擴(kuò)展。如果主系統(tǒng)支持Vanderpool或者Pacifica擴(kuò)展(Intel和AMD對(duì)本地支持虛擬化的擴(kuò)展),這項(xiàng)技術(shù)將允許未修改的客作業(yè)系統(tǒng)運(yùn)行在Xen虛擬機(jī)中。事實(shí)上,那意味著性能的提升,并且你可以在沒(méi)有進(jìn)行任何協(xié)議不允許的修改的情況下對(duì)Windows進(jìn)行虛擬。
Xen可以運(yùn)行在x86,x86_64和ARM系統(tǒng)上,并正在向IA64、PPC移植。移植到其他平臺(tái)從技術(shù)上是可行的,未來(lái)有可能會(huì)實(shí)現(xiàn)。
2010年04月08日,開(kāi)源虛擬機(jī) Xen 發(fā)布了4.0.0 正式版。
主要的新特性包括:
改進(jìn)性能和可擴(kuò)展性,客戶(hù)機(jī)支持64個(gè)虛擬CPU,主機(jī)支持1 TB RAM和128個(gè)物理CPU;支持blktap2 for VHD image,包括快照和克?。籋VM客戶(hù)機(jī)支持虛擬內(nèi)存頁(yè)共享和頁(yè)到內(nèi)存;支持Citrix WHQL認(rèn)證的Windows PV驅(qū)動(dòng)等等。
2011年04月10日,Xen 4.1 發(fā)布,開(kāi)源虛擬機(jī),變化:這個(gè)版本添加了一個(gè)架構(gòu)XL toolstack,它在功能上幾乎相當(dāng)于XM / XEND原型credit2調(diào)度程序設(shè)計(jì)為對(duì)延遲敏感的工作負(fù)載和非常大的系統(tǒng)中,CPU池為先進(jìn)的分區(qū),支持大型系統(tǒng)(>255處理器和1 gb / 2 mb超級(jí)頁(yè)面支持),支持x86先進(jìn)向量擴(kuò)展(AVX),和一個(gè)新的內(nèi)存訪(fǎng)問(wèn)API啟用集成第三方安全解決方案到Xen虛擬化環(huán)境。
2013年04月16日,開(kāi)源虛擬機(jī) Xen成為 Linux 基金會(huì)項(xiàng)目。
2014年03月11日,Xen發(fā)布4.4版本,更好地支持ARM架構(gòu)。
2019年4月2日,發(fā)布4.12版本。
Xen憑著獨(dú)特的虛擬化性能優(yōu)勢(shì)贏得了越來(lái)越的廣泛應(yīng)用。被用戶(hù)充分應(yīng)用在以下領(lǐng)域:
◆服務(wù)器應(yīng)用整合:在虛擬機(jī)范圍內(nèi),在一臺(tái)物理主機(jī)上虛擬出多臺(tái)服務(wù)器,以安裝多個(gè)不同的應(yīng)用,充分利用服務(wù)器的物理性能,靈活進(jìn)行服務(wù)器的應(yīng)用遷移。
◆軟件開(kāi)發(fā)測(cè)試:用戶(hù)可利用Linux的低成本優(yōu)勢(shì)非常靈活地搭建多個(gè)應(yīng)用系統(tǒng)開(kāi)發(fā)平臺(tái),由此節(jié)省了大量的開(kāi)發(fā)成本,加快了開(kāi)發(fā)進(jìn)程。
◆集群運(yùn)算:和單獨(dú)的管理每個(gè)物理主機(jī)相比較,虛擬機(jī)管理更加靈活,同時(shí)在負(fù)載均衡方面,更易于控制和隔離。
◆多操作系統(tǒng)配置:以開(kāi)發(fā)和測(cè)試為目的,同時(shí)運(yùn)行多個(gè)操作系統(tǒng);
◆內(nèi)核開(kāi)發(fā):在虛擬機(jī)的沙盒中,做內(nèi)核的測(cè)試和調(diào)試,無(wú)需為了測(cè)試而單獨(dú)架設(shè)一臺(tái)獨(dú)立的機(jī)器;
◆為客戶(hù)操作系統(tǒng)提供硬件技術(shù)支持:可以開(kāi)發(fā)新的操作系統(tǒng),以得益于現(xiàn)存操作系統(tǒng)的廣泛硬件支持,比如Linux;
1)騰訊公司---中國(guó)最大的Web服務(wù)公司
騰訊公司經(jīng)過(guò)多方測(cè)試比較后,最終選擇了Novell SUSE Linux Enterprise Server中的Xen超虛擬化技術(shù)。該技術(shù)幫助騰訊改善了硬件利用率以及提高系統(tǒng)負(fù)載變化時(shí)的靈活性??蛻?hù)說(shuō):“在引入Xen超虛擬化技術(shù)后,我們可以在每臺(tái)物理機(jī)器上運(yùn)行多個(gè)虛擬服務(wù)器,這意味著我們可以潛在的顯著擴(kuò)大用戶(hù)群,而不用相應(yīng)地增加硬件成本?!?/p>
2)寶馬集團(tuán)----馳名世界的高檔汽車(chē)生產(chǎn)企業(yè)
寶馬集團(tuán)(BMW Group)利用Novell帶有集成Xen虛擬化軟件的SUSE Linux Enterprise Server來(lái)執(zhí)行其數(shù)據(jù)中心的虛擬化工作量,從而降低硬件成本、簡(jiǎn)化部署流程。采用虛擬化技術(shù)使該公司節(jié)省了高達(dá)70%的硬件成本,同時(shí)也節(jié)省了大量的電力成本。
3)云谷科技---基于Xen的VPS管理平臺(tái)研發(fā)公司
XenSystem,是基于Xen的虛擬技術(shù)開(kāi)發(fā)的一款VPS管理系統(tǒng)。這一款功能VPS智能管理平臺(tái),運(yùn)用IT業(yè)界最新的“云計(jì)算”和“云儲(chǔ)存”的設(shè)計(jì)理念,支持自動(dòng)化的VPS云主機(jī)和服務(wù)器的實(shí)時(shí)管理功能,具備良好的兼容性和穩(wěn)定性,從而簡(jiǎn)單高效地管理VPS主機(jī)的運(yùn)作,與Hyper-V基于Xen的虛擬化技術(shù)后使VPS更趨穩(wěn)定,運(yùn)作更為高效。這也意味著IDC的運(yùn)作成本會(huì)大大地降低,利潤(rùn)得以增加。
使用Xen時(shí),開(kāi)源項(xiàng)目與其它項(xiàng)目的一些差異有時(shí)會(huì)讓人感到迷惑。Xen起源于英國(guó)的劍橋大學(xué)計(jì)算機(jī)實(shí)驗(yàn)室,該實(shí)驗(yàn)室開(kāi)發(fā)了Xen開(kāi)源項(xiàng)目。這個(gè)項(xiàng)目包括虛擬機(jī)監(jiān)控器,即Xen環(huán)境的核心組成部分。除了劍橋大學(xué)的科學(xué)家以外,很多其它IT領(lǐng)域集團(tuán)也都參與了Xen開(kāi)源項(xiàng)目,其中包括IBM、AMD、HP、Red Hat和Novell。
由于Xen方法使虛擬化領(lǐng)域邁出了一大步,因此Xen的創(chuàng)始人成立了他們自己的公司XenSource(已被Citrix收購(gòu))。他們成立XenSource的目的是為了基于Xen hypervisor而提供一個(gè)完善的虛擬化解決方案,與其它虛擬化產(chǎn)品(如VMware ESX)競(jìng)爭(zhēng)。其它企業(yè)也在它們自己的產(chǎn)品中綜合應(yīng)用了Xen hypervisor。例如,Linux廠(chǎng)商Red Hat和Novell公司都在自己的操作系統(tǒng)中包含了各自版本的Xen。由于Xen的大多數(shù)部分都是開(kāi)源的,所以這些解決方案都非常相似。