伺服器虛擬化平臺發展至今,VMware vSphere獨領風騷,市占已超過一半,接著是微軟Hyper-V緊追在後,Citrix主推的XenServer則又次之,2015年一開春,XenServer和vSphere都陸續發布新版本,前者早在1月正式推出6.5版(先前代號叫做Creedence),現在已經可以下載,後者則在2月宣布了6.0版,但全球發布(GA)的日期未定,很有可能是在3月上半。

XenServer是基於開放原始碼專案Xen的Hypervisor,所開發出來的商業軟體,在6.5這一版當中,該產品開始提供完整的64位元核心架構,用戶可藉此運用近期推出的伺服器硬體與作業系統平臺,以因應企業與電信服務商等級的資料中心虛擬化環境需求。

現在,XenServer也支援Intel處理器所內建的TXT(Trusted Execution Technology)安全防護技術,Hypervisor因此得以具有偵測與避免遭到竄改存取行為的能力,可預防應用系統執行在被駭客侵入的VM上。新版也提供加註資產標籤(Asset Tagging)的機制,使各個工作負載能夠搭配基於地理位置的標籤,讓管理者限制它們只能在特定地區來執行。

XenServer對於GPU虛擬化的支援也繼續延伸,6.5版開始支援Nvidia GRID繪圖卡最新推出的vGPU技術,不只是因應桌面虛擬化應用環境的高階3D繪圖應用程式執行需求,還可將所需的運算伺服器的密度提升50%。

更徹底支援64位元環境,可完整存取4GB以上記憶體空間,驅動程式的穩定度提升,並可支援更多新硬體裝置

6.5版XenServer強調採用了64位元的核心架構,對於網路與儲存應用的效能,也隨之大幅提升。不過,這裡所謂的64位元核心架構,指的是Xen Hypervisor在執行時,第一個載入的控制領域(control domain)──dom0,是整個伺服器虛擬化平臺管理VM及驅動實體硬體裝置的地方。原本dom0是CentOS 5.7版,現在升級到5.10版。

圖中的箭頭處就是所謂的控制領域dom0,它本身也是一臺VM,但作用跟一般VM不同,它負責管理主機、主機共用區,以及提供給所有VM的儲存與網路I/O。XenServer的Dom0到了6.5版之後,正式64位元化,可存取更多記憶體與硬碟、網路裝置,連帶地,每臺主機可負載的VM數量也能提升,並且能適用於當前伺服器出貨普遍採用64位元組態的方式。

Xen hypervisor早已支援64位元的執行模式,所以能承載32位元與64位元的Guest OS,然而,在之前版本的XenServer,dom0核心都是32位元。

32位元dom0會面臨什麼樣的限制?主要是對於下層記憶體(low memory)的作法。就如同大家所熟知的,32位元環境面臨的主要限制,在於系統最大可存取的記憶體容量只有4GB,後來發展出許多延伸的方式來突破,但這些作法也會影響效能,導致作業成本提高的後果。

甚至,後來在32位元Linux作業系統上,還發展出所謂的下層記憶體與上層記憶體(High Memory)的配置,前者負責與作業系統核心有關的一切處理,包括核心記憶體的對應與核心驅動程式,後者則是針對使用者空間(userspace)的處理。由於低層記憶體要處理的東西太多,形成資源不夠用的局面,而這樣的架構也影響到32位元dom0,XenServer安裝後,預設只能存取到752MB的下層記憶體。

XenServer在先前32位元dom0環境所遇到的問題,還不只是這樣。

在32位元BIOS下,MMIO(Memory-Mapped I/O)區域所坐落的實體位址空間,只能在1GB和3GB之間,dom0如果建立了MMIO hole,可選擇重新對應記憶體的位置,讓它投射到虛擬位址空間上,核心必須對應與MMIO hole大約等量的記憶體,而對32位元核心來說,就必須放到下層記憶體。

再加上,許多驅動程式會自行將核心記憶體對應到MMIO hole,以便在開機時能夠成功載入,但如果下層記憶體容量低到不足以滿足MMIO hole重新對應的需求時,就有可能導致無法穩定執行驅動程式的狀況。雖然XenServer支援PAE,可定址超過4GB的記憶體空間,但對於有些驅動程式的執行來說,還是沒幫助,因為它們固定放在32位元的記憶體實體位址空間,在這種情況下,還是會無法存取到4GB以上的記憶體空間,而導致載入失敗。

而到了64位元BIOS環境,MIMO區域改置於實體記憶體的最上層,所以,也就沒有過去這種上下層記憶體的對應管理問題,等於也提升了驅動程式的穩定度。

此外,許多當前的電腦硬體與周邊裝置,都已充分支援64位元處理器與4GB以上的記憶體,而提供了對應的驅動程式,XenServer 6.5現在採用64位元dom0,等於可藉此支援這些新的硬體;同時,由於所能存取的核心記憶體容量不再受限於先前組態,使得XenServer主機端所能搭配的裝置數量與類型都更為豐富。

例如,每臺主機可同時運用的虛擬磁碟數量,6.5版XenServer提升到2048臺(6.2版是512臺);對於僅提供64位元驅動程式的新一代硬體裝置,例如PCIe SSD,XenServer現在也可支援。

64位元dom0帶來的另一個好處是,XenServer可運用64位元編譯器設定,在編譯時,能促使事件傳輸通道(Event Channel)的數量與程式碼執行路徑,達到最佳化處理效果,並且能夠善用新一代處理器所特有的延伸指令集。

採用4.4版Xen Hypervisor

XenServer 6.5所採用的Xen Hypervisor版本,也提升到2014年3月所推出的4.4版。Xen 4.4的特色,是增加了事件通道數量(從1023擴張到131,071,有128倍之多),可因應VM內部需搭配大量磁碟、網路卡虛擬裝置的應用。

Xen Hypervisor是圖中箭頭所指的地方,這裡提供了控制介面和虛擬硬體,它和Dom0需相互搭配,以便管理整臺實體主機和VM的資源。在XenServer所搭配的Xen是4.4版。

在XenServer前一版(6.2版)時,曾採用了過渡時期的作法,來提供4096個事件通道,然而,這只能滿足每臺主機500臺VM的組態(若以這個數字去除以500臺VM,每臺VM所能搭配的虛擬裝置只能到8個,並不多)。現在,Xen 4.4擁有多達13多萬個事件通道後,等於可讓XenServer 6.5環境下的每臺主機、VM擁有更多虛擬裝置。

同時,這一版Xen對於grant-copy鎖定請求的處理,也變得更有效率,可大幅增加VM硬碟與網路I/O吞吐效能。

XenServer 6.5所搭配的Linux核心,也提升到3.10版,該版核心是以長期穩定為前提而設計的,因此適合XenServer使用。相較之下,6.2版XenServer搭配的是2.6.32版核心,之後推出的2.6.37版,是第一個原生支援Xen dom0執行的Linux核心,從那時候起,眾家標準Linux版本都可以透過PVOPS(paravirt_ops)的核心形式執行──它是Linux核心基礎架構的一部分,可讓Linux在Hypervisor上以半虛擬化的方式執行。

強化對於Nvidia vGPU支援,強化桌面虛擬化應用

伺服器虛擬化平臺與Nvidia vGPU之間的技術應用,談了好幾年,到了2015年終於比較完整,在2013年底推出的XenServer 6.2 SP1率先完成多種模式的支援,而VMware vSphere則是到了2015年推出的6.0版才完成。GPU虛擬化技術的發展至此,終於到達最終階段的里程碑。

圖中是XenServer的vGPU支援架構與彼此的細部運作方式,主要分為三大部分,最底層是Nvidia GPU,中間是Xen Hypervisor,上層是dorm0和Windows VM,需要安裝Nvidia的核心模組、外掛,以及用戶端驅動程式。

由於XenServer 6.5支援vGPU,因此,能夠整合XenServer的Citrix CloudPlatform與其他開放雲端管理平臺,也將跟著原生支援這項GPU虛擬化技術。

Citrix表示,若用XenServer支援vGPU的方式,來供應XenDesktop與XenApp環境的3D繪圖應用程式執行,在伺服器配置的密度上,將可提高50%,可因此降低成本,並兼顧使用者體驗的改善。

過去幾年以來,XenServer與vSphere陸續支援了不同的GPU虛擬化技術,包括透過軟體讓多臺VM共享GPU的模式(GPU Shared)、單臺VM獨佔單顆GPU的模式(GPU pass-through),然後,可同時支援多臺共享或單臺獨佔的硬體GPU虛擬技術(Hardware Virtualization of the GPU),卻較晚就緒。

以最早支援的XenServer 6.2 SP1來說,每臺主機只能支援到64臺VM;到了XenServer 6.5,vGPU支援相關軟體套件直接內建在主系統的安裝ISO映像檔中,無需再額外安裝,而且,主機端可依照搭配的Nvidia GRID硬體繪圖卡數量,支援更多實體GPU存取。以目前來說,每臺XenServer主機運用vGPU加速的VM,最大可支援96臺(搭配3張GRID K1,每張K100繪圖卡最大可支援32個使用者)。

XenServer 6.2支援了3種GPU虛擬化方式,由左而右,分別是GPU Sharing、GPU Pass-through、vGPU。6.5版支援的vGPU程度更高,可支撐高達96臺應用vGPU的VM。

6.5版XenServer也支援Nvidia最近推出的GRID vGPU設定檔,像是K120Q、K160Q、K180Q,以及K220Q與K280Q,以K120Q為例,雖然只有512MB,卻可支援32個一般使用者的雙螢幕顯示,解析度高達2560x1600,。值得注意的是,雖然XenServer本身已內建支援,仍須至Nvidia網站下載最新版驅動程式,與之搭配。

上述兩張圖是Nvidia官網的vGPU相關驅動程式軟體,若要應用vGPU功能,可選擇Nvidia GRID vGPU這個產品型號項目,接下來選XenServer版本與語言別,即可下載。目前可選擇XenServer 6.2和6.5版,vSphere 6.0號稱支援vGPU,但該產品目前(3月7日)還沒正式發布,所以,Nvidia網站並沒有列出vSphere 6的選項。

你也可以應用其他Nvidia GPU虛擬化功能,以Quadro K6000系列為例,就可以選擇VMware ESXi 5.1或5.5版,但這裡就沒看到XenServer的項目了,關於這個問題,還需要跟Nvidia和Citrix確認一下原因,也許是vGPU一推出之後,可以滿足所有需求吧?

工作負載平衡器重回XenServer懷抱,並提供新的分散式虛擬網路交換控制器

這套產品也重新提供企業等級的工作負載平衡器(Workload Balancing,WLB)的虛擬設備,以及新的分散式虛擬網路交換控制器(Distributed Virtual Switch Controller,DVSC),支援Amazon如此大型的雲端環境使用。

在XenServer 6.2版取消提供的工作負載平衡器(WLB),在6.5版中又回來了,這項功能其實跟vSphere的DRS(Dynamic Resource Scheduler)很類似,可以根據主機端的負載情況搭配政策,將正在執行的VM,自動線上遷移到其他臺主機。
6.5版的WLB增加了更多功能、改善操作介面與稽核機制,授權方式也有變更(XenServer企業版和XenApp白金版、XenDesktop白金版均可使用)。

目前,WLB包含4種功能,包括收集XenServer系統效能資料,例如處理器、儲存與網路的負載,以及分析效能狀態的歷程與趨勢、對資源不足情況提出警告、自動平衡工作負載等等。因此,它可以產生效能監控報表、警示管理者系統可能會出現使用率過高的部分,並且根據歷史資料,自動將VM工作負載配置到不同XenServer主機上。

WLB虛擬設備在XenServer 6.2版時,曾被移除、不再提供,然而,到了最新推出的6.5版,該功能又回歸。有了WLB,系統管理者可以深入掌握系統效能,例如,透過細緻的效能監控報表的產生、警告管理者去發現系統熱區(system hot spots)所在,並且設法使其最佳化,例如根據歷史資料的分析,自動調整工作負載的執行位置,以及基於現有的處理器、儲存與網路負載,動態搬移工作負載至其他地方。

WLB也提供了進階的資源池存取蹤跡稽核記錄(Pool Audit Trail)功能,管理者可以指定稽核記錄收集資料的粗細粒度,之後,可以依據特定使用者、物件和時間等條件,來搜尋與過濾這些資料。

這臺虛擬設備也支援線上升級,企業可透過YUM的更新機制,連至正在執行的SLB伺服器,或是從Citrix網站下載升級套件,然後直接套用、不停機。

在網路端應用方面,XenServer 6.5所提供的開放虛擬交換器(Open vSwitch,OVS),也從先前的1.4版升級到2.1.3。新版OVS支援Megaflow的作法,在絕大多數狀況下,有助於減少流量表(Flow Table)所需記錄的項目,也可以改善dom0的網路負荷程度,能處理大量伺服器VM連接眾多用戶端的應用。

在OVS的網路Flow處理中,會比對網路封包標頭,並給予對應的處理動作,像是轉送或丟棄,而作為伺服器應用的VM之言,本身可能需負荷大量用戶端連線,而每一個連線都需要一個Flow,如果主機端的VM數量增加,dom0的OVS流量表會填入相關資料,導致OVS使用者空間處理的迴圈,其他節點連至VM與VM對外發出的網路吞吐量,也會因此降低。同時,在XenServer 6.2包含的OVS 1.4環境下,Flow必須擁有確切符合的標頭,才能傳輸。而換成新的OVS之後,XenServer 6.5的主機與VM,可望承載更多網路流量。

前面提到,新版XenServer也更新了分散式虛擬網路交換控制器。先前XenServer 6.2所採用的是DVSC-Controller-17223,到了6.5版,XenServer改用DVSC-Controller-37734.1,主要來自被VMware併購的網路虛擬化廠商Nicira,當中最大改變是修正了幾個重大安全漏洞,例如OpenSSL、Shellshock。

除此之外,網路存取而言,XenServer 6.5主機對主機的總吞吐量(Aggregate network throughput),也從先前的3Gb/s提升到25Gb/s,等於增加了7倍,而網路Flow的平均延遲縮短了15倍,改善更為顯著(6.2版是800毫秒,6.5版則為50毫秒)。

XenServer也改良一般網路傳輸與IPv6環境下的效能。例如系統預設支援GRO(Generic Receive Offload)的處理卸載機制,VM接收網路效能可因此提升2倍。只要伺服器端的實體網路卡可相容或支援GRO,入埠的網路封包
就能由網卡端以透明的方式合併,這有助於dom0處理傳入資料時所受到干擾的頻率,會跟著變少,等於節省處理器的計算週期,並且也能更容易搭配與運用10Gb與40Gb的新一代資料中心高速網路。
根據Citrix本身的測試數據,他們看到單一串流網路吞吐量,甚至最大可因此增加4倍。
此外,XenServer 6.5也採用Grant Mapping的方式來傳輸網路流量,而不是用Grant Copy,因此節省了dom0的處理器資源,於是,總體網路吞吐量可增加2倍。

總體而言,6.5版加入不少改善網路吞吐量處理的技術,如此一來,大量VM不論是發出或接收資料,都能以高速的方式進行。

 

存取儲存裝置的速度大幅改善

這次XenServer改版,同時引進了新的記憶體內讀取快取(In-memory Read Caching),目的是為了改善VM存取磁碟的效能,該功能可減少存取實體儲存裝置的I/O量。快取的輔助加速,在伺服器虛擬化平臺似乎越來越普遍,像VMware從vSphere 5.5開始支援vFlash Read Cache,微軟Windows Server 2012 Hyper-V也支援CSV Cache和Storage Spaces Write-back Cache,但各自的作法,以及所利用的、針對的對象都不太一樣。

透過單一模版方式來同時啟動多個VM,可透過這種集中化機制,節省不必要的I/O負擔。

這項新的快取技術應用,主要是針對常用的VM模版映像(golden images)。原本,XenServer系統可將少數對於特定儲存區塊的上的VM寫入資料,存放在每臺VM所配置的差異磁碟(differencing-disks)上,若搭配這種讀取快取技術,相關VM資料從外部的實體磁碟讀取之後,可暫存在主機端記憶體內,以提升虛擬磁碟效能。若基於這樣的架構,而且許多VM都是複製自同一個VM,改善系統效能幅度更大。

XenServer新增了記憶體內的讀取快取,讓所有VM的I/O都在主機端的記憶體執行,而不是去存取本機或外部儲存陣列端的磁碟。

記憶體內快取還可搭配XenServer既有的IntelliCache,做到兩階式快取,以及非持續性寫入動作的快取。

Citrix認為,若將其應用在XenDesktop的Machine Creation Service(MCS),能更徹底減少從硬碟端讀取儲存區塊的數量,而且可因應需頻繁讀取磁碟資料的行為。對於那些因繁重I/O而導致服務等級下降的例子,快取的助益會更趨於明顯,就像桌面虛擬化環境面臨的開機風暴(使用者在很短時間內紛紛執行開機),或是VM的排程掃毒作業。設定在同一段時間內密集進行。

搭配固態硬碟時,XenServer在儲存讀取的總體吞吐量(Aggregate storage read throughput)表現上也很亮眼。根據Citrix所公布的效能測試數據,6.2版是2.2GB/s,而6.5版提升到9.9GB/s,幅度有3.5倍之多;相對地,對於儲存寫入的總體吞吐量(Aggregate storage write throughput),XenServer 6.2版是2.8GB/s,6.5版則到7.8GB/s,增加了到近1.8倍。

XenServer對於儲存採用了最佳化的資料路徑(datapath),可將總體吞吐量擴大到更理想的地步,以因應大量VM的存取需求。這項措施讓系統在承載多臺VM時,I/O得以維持在較高的標準上。例如,XenServer新版支援Tapdisk3,可改善多個磁碟同時存取的效能,提供更巨大的總體虛擬磁碟吞吐量。據Citrix估計,提升幅度達到1倍。

面對大量VM同時開機時所產生的巨量I/O負擔(俗稱開機風暴),新版XenServer改善程度很大,這主要受益於In-memory Read Caching技術的採用。Citrix宣稱開機風暴的時間原本是471秒,新版縮短至140秒,加速比例達到70%;在這段過程中所傳輸的資料量,也大幅減少──原本需要18GB,新版XenServer則不到1GB,能做到這樣,有賴於In-memory Read Caching的快取特性之外,再加上,該技術也運用VM共用基本映像檔的方式,因此,大幅降低XenServer主機端存取外部儲存陣列的I/O量。

在XenServer 6.5環境下,同時使大量VM開機時的速度會加快,原因在於支援了新的記憶體內讀取快取技術。當VM全都共用相同的映像檔時,讀取快取能有效降低對儲存陣列的I/O衝擊。

基於Intel處理器架構的安全開機功能支援,也有所改良

在企業版上,XenServer可應用Intel處理器所提供的安全開機功能──TXT(Trusted Execution Technology) Measured Boot,但用戶需安裝相關增補套件軟體,才能應用。該套件是在2013年推出的,XenServer也針對6.1版和6.2版發行了對應版本,而到了6.5版上市,這個TXT Measured Boot套件更新了tboot(Trusted Boot)版本。

Tboot是一套開源的核心前執行(pre- kernel)或VMM模組,當中採用了Intel處理器所普遍內建的TXT技術,以便測量與驗證作業系統核心或VMM的系統啟動程序,防止有心人士從開機程序當中滲透到作業系統或VMM當中。

除此之外,XenServer 6.5版更新的Measured Boot套件,也支援一些新功能,像是加註資產標籤(Asset Tagging),讓管理者可以在伺服器上,標示任何有用的資訊,例如所處的地理位置、所配置的硬體規格與性能,或是法規遵循要求。

有了這項機制,能讓XenServer主機在啟動VM時,驗證是否具有管理者所給予的標籤,以符合特定的條件和加密憑證要求。

支援近期推出的x86伺服器級處理器,虛擬化平臺的最大組態也有所增長

距離XenServer上次大改版(2013年6月)已經有好幾年,6.5版一推出,該平臺也強調可支援較新款的x86伺服器級處理器,像是Intel在2014年初推出的Xeon E7 v2系列(Ivy Bridge EX),以及下半年發表的Xeon E5-2600 v3(Haswell EP),對於AMD Opteron處理器也不偏廢,開始支援2014年初推出、採用Piledriver架構的6338P和6370P(Warsaw)。

在整體平臺的最大組態上,XenServer也調高了主機端與VM端的部分規格。以單臺主機而言,6.5版和6.2版一樣,可支援160顆實體處理器、1TB記憶體和500臺VM,不過,它支援的虛擬磁碟裝置數量,有了突破,從原本的512臺,增加到2048臺,而且所支援的LUN(Multipathed LUN),也提升到256個之多(6.2版是150個)。

最大組態向來是眾家伺服器虛擬化平臺的必爭之地,但XenServer就算是6.5版的規格來看,仍落後其他廠商許多,唯一的亮點,是每一臺主機可支援的虛擬磁碟,高達2,048臺。

若以單一VM來看,在6.5版的XenServer環境下,每臺可配置的記憶體從先前的128GB,提升到192GB。

雖然XenServer 6.5部分最大組態有所調整,只有一項居於領先,主機端可同時存取的虛擬磁碟數量是2048臺(VMware vSphere 6.0也是),但絕大多數規格仍趕不上VMware vSphere 5.x和微軟Windows Server 2012 Hyper-V,甚至比不上Red Hat Enterprise Virtualization當前版本 3.4,尤其是記憶體容量。例如,這三家廠商的產品,至少都提供了1TB的主機或VM配置(相當於Windows Server 2008 R2 Hyper-V)。

XenServer目前的授權方式,分為4種:免費版、標準版、企業版,以及XenApp與XenDesktop白金版。圖中所列的標準版和企業版售價,似乎是不含技術支援的價格。

XenServer標準版和企業版之間的售價、定位、功能的比較。

XenServer現行版本的功能差異比較。

產品資訊

●建議售價:提供免費版,也可選購標準版每顆處理器永久授權為45,000元,含1年軟體維護費用,或是企業版每顆處理器永久授權為81,000元,含1年軟體維護費用

●原廠:Citrix(02)8758- 2931

●XenServer主機端硬體需求:64位元x86處理器1.5 GHz、2GB記憶體、16GB硬碟空間

●XenCenter系統需求:Windows Vista~8.1、Windows Server 2003~2012R2、.NET Framework 4、750MHz處理器、1GB記憶體、100MB硬碟空間

●VM端支援作業系統:Windows XP~8.1、Windows Sever 2003~2012 R2、CentOS 4.5~7.0、RHEL 4.5~7.0、SLES 10~11、Oracle Linux 5.0~7.0、Debian 6.0~7、Ubuntu 10/12/14

 

熱門新聞

Advertisement