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