接觸過的一些搞了幾年雲計算的童鞋,也沒明白常見的幾種虛擬機技術方案的異同,比如只是記住了半虛擬要在虛擬機裝驅動而全虛擬不需要,也不知道有時候為什么需要打開BIOS里的VT項。本人呢,在看了各種講解虛擬化的書籍之后,有些概念雖然不是很清晰,但對各種虛擬化技術解決方案產生的根源及實現手段還是基本能夠理解。最近要研究下QEMU的源碼,於是乎又看了很久以前就看過的VMware關於虛擬化技術的白皮書。雖然本人長期閱覽各種英文資料,讀英文和中文幾乎沒有什么差別,但為加深理解決定翻譯一下。今天是周日,真是做到了一天足不出戶,終於完成翻譯工作,雖然這白皮書是2007年寫的,但還是具有很好的參考價值,並且偶發現看過的很多書其實都參考或使用了這白皮書的圖片。要看白皮書原版的點擊這里。
理解全虛擬、半虛擬以及硬件輔助的虛擬化
序言
1998年,VMware就琢磨着解決一度被認為不太可能完成的的x86平台的虛擬化問題,並且開創了x86平台的虛擬化市場。解決方案就是,在允許多個虛擬機系統完全隔離地運行於一個硬件系統的處理器上,在可承受虛擬化代價的前提下,使用二進制翻譯和直接指令執行相結合的方式來完成。
這項技術的擴散進而產生了成千上萬的公司,這又進一步推動了從桌面到數據中心的虛擬計算技術的采用。一些新的廠商進入到這個領域並想差異化他們的產品,在他們的宣傳口號和術語中迷惑視聽。舉個例子,硬件輔助虛擬化是一個很有價值的技術,它會不斷成熟並增加可被硬件輔助來虛擬化的任務,半虛擬化並不是一個全新且能帶來量級性能優化的技術。
這是一個復雜又不斷進化的領域,通過對這些技術進行很好地解釋,可幫助那些公司明白他們有哪些可選方案並選擇自己的方向。這個白皮書旨在澄清用來虛擬化x86硬件的各種不同技術,各自的優勢和劣勢,以及VMware如何以最佳效率利用和發展這些新興的虛擬化技術。圖1是x86虛擬化技術時間線的一個總覽,從VMware的二進制翻譯到最近的內核半虛擬化和硬件輔助的虛擬化技術。
x86虛擬化概觀
“虛擬化”這個術語本身就極大地表明了服務請求和底層物理交付的分離。對於x86虛擬化,在硬件和操作系統之間,添加了一個虛擬化層,如圖2。
這個虛擬化層使得多個操作系統實例可以並行地運行在一台計算機上,並動態地瓜分和共享諸如CPU、存儲、內存和I/O設備等物理資源。
隨着桌面和服務器處理能力持續逐年地增加,虛擬化技術被認為是一種可以簡化軟件開發測試、進行服務器整合、提高數據中心敏捷性和業務連續性的強大技術。事實表明,將操作系統和應用程序完全從硬件中抽象出來然后封裝成具有可移植性的虛擬機后,會帶來很多虛擬化設施才具有的而單純硬件所沒有的特性。例如,現今的服務可以24*7*365不間斷地運行在配置有容錯特性的虛擬設施中,數據備份和硬件維護也不需要停止服務。VMware有一些客戶,他們生產環境上的服務器已經運行了三年多沒出現過服務停止現象。
對於業界標准的x86系統,虛擬化采取hosted或者hypervisor架構。hosted架構將虛擬化層以一個應用程序的方式安裝運行於操作系統之上,支持最為廣泛的各種硬件配置。hypervisor(裸金屬)架構將虛擬化層直接安裝到干凈的x86系統上,由於它不需要通過操作系統而直接訪問硬件,hypervisor架構相對於hosted架構效率更高,且具有更好的可擴展性、健壯性和性能。VMware Player, ACE, Workstation和Server使用了hosted架構的便捷性,而ESX server針對已認證的硬件采用hypervisor架構以達到數據中心級別的性能。
了解各個組件的大概背景,有助於更好的理解x86虛擬化技術。虛擬化層是負責運行和管理所有虛擬機的軟件,運行於虛擬機監控器(VMMs)上。如圖3所示,虛擬化層是直接運行在硬件上的hypervisor,基於不同架構和實現方法的hypervisor所具有的功能有很大不同。運行於hypervisor上的每個VMM實現了虛擬機的硬件抽象並負責運行虛擬機系統,每個VMM需要通過分割和共享CPU、內存和I/O設備來完成系統的虛擬化。
CPU虛擬化
x86硬件虛擬化的挑戰
x86操作系統被設計成直接運行在硬件上,自然這些系統會認為它們擁有硬件的全部控制權。如圖4所示,x86架構為操作系統和應用程序提供了四個不同級別的權限來管理對硬件的訪問,分別為ring 0,1,2和3。用戶程序一般運行在ring 3,操作系統需要直接訪問內存和硬件,因此需要在ring 0執行它的特權指令。x86架構的虛擬化需要在操作系統(運行於最高權限的ring 0)之下放置一個提供共享資源的虛擬化層來創建和管理虛擬機。比較糟的是,有些敏感指令在非ring 0下執行時具有不同的語義,因此不能很好地將其虛擬化。在運行時陷入並翻譯這些敏感指令和特權指令是一個艱難的挑戰,這使得x86架構的虛擬化起初看起來是不可完成的任務。
VMware在1998年就攻克了這個挑戰,開發了二進制翻譯技術使得VMM運行在ring 0以達到隔離和性能的要求,而將操作系統轉移到比應用程序所在ring 3權限高和比虛擬機監控器所在ring 0權限低的用戶級。基於VMware 20000多客戶的安裝使用情況以及所形成的廣大合作伙伴生態系統,VMware使用二進制翻譯的全虛擬化方案已經成為事實上的標准,總的來說業界還沒有一個開放的標准來定義和管理虛擬化。每個開發虛擬化解決方案的公司可以用不同的方式應對這個技術上的挑戰,提供的解決方案良莠不齊。
正如以下闡述的,目前有三種技術來實現x86架構CPU敏感指令和特權指令的虛擬化,分別為:
. 使用二進制翻譯的全虛擬化;
. 操作系統輔助或半虛擬化;
. 硬件輔助的虛擬化(第一代);
技術 1 --- 使用二進制翻譯的全虛擬化
使用二進制翻譯和直接指令執行相結合的技術,VMware可以虛擬化任何基於x86的操作系統。這種方法如圖5所示,將內核代碼翻譯,以便使用一系列作用於虛擬化硬件可達到所需效果的新指令序列替換那些不可虛擬化的指令。同時,用戶級的代碼直接運行在物理處理器上保證虛擬化的高性能。虛擬機監控器為每個虛擬機提供類似於真實物理系統所具有的服務,如一個虛擬的BIOS,虛擬化設備和虛擬化的內存管理。
二進制翻譯和直接指令執行相結合的全虛擬化使得虛擬機系統和底下的物理硬件徹底解耦。虛擬機系統沒有意識到它是被虛擬化的,因此不需要虛擬機系統做任何的修改。全虛擬化是不需要硬件輔助或操作系統輔助來虛擬化敏感指令和特權指令的唯一方案。hypervisor將操作系統的指令翻譯並將結果緩存供之后使用,而用戶級指令無需修改就運行,具有和物理機一樣的執行速度。
全虛擬化為虛擬機提供最佳的隔離和安全性,使移植變得簡單,因為同樣的虛擬機系統可運行於虛擬化環境或真實物理硬件上。VMware的虛擬化產品和微軟的Virtual Server是全虛擬化的例子。
技術 2 --- 操作系統輔助虛擬化或半虛擬化
"Para"是源於希臘的英文詞綴,意為“beside”、“with”、“alongside”。就以“alongside virtualization”來說,半虛擬化指的是虛擬機系統和hypervisor通過交互來改善性能和效率。如圖6所示,半虛擬化涉及到修改操作系統內核來將不可虛擬化的指令替換為直接與虛擬化層交互的超級調用(hypercalls)。hypervisor同樣為其他關鍵的系統操作如內存管理、中斷處理、計時等提供了超級調用接口。
半虛擬化和全虛擬化不一樣,全虛擬化時未經修改的虛擬機系統不知道自身被虛擬化,系統敏感的調用陷入后再進行二進制翻譯。半虛擬化的價值在於更低的虛擬化代價,但是半虛擬化相對全虛擬化的性能優勢根據不同的工作負載有很大差別。半虛擬化不支持未經修改的操作系統(如Windows 2000/XP),因此它的兼容性和可移植性較差。由於半虛擬化需要系統內核的深度修改,在生產環境中,半虛擬化在技術支持和維護上會有很大的問題。開源的Xen項目是半虛擬化的一個例子,它使用一個經過修改的Linux內核來虛擬化處理器,而用另外一個定制的虛擬機系統的設備驅動來虛擬化I/O。
使用二進制翻譯來實現虛擬化更復雜更困難,相對來說修改虛擬機系統較容易。這些年來,VMware在自己的產品線中,以VMware tools和經優化的虛擬設備驅動的方式使用了半虛擬化某些方面的技術。VMware tools為VMM hypervisor進行時間同步、日志服務、和關閉虛擬機等服務提供了一個后門。Vmxnet是一個半虛擬化的I/O設備驅動,它和hypervisor共享一些數據結構。它通過利用宿主機設備的能力來獲得更好的吞吐量和更低的CPU的使用量。需要澄清的是,VMware tools服務和vmxnet設備驅動並不是CPU半虛擬化方案,它們是小型的,非***式地安裝在虛擬機系統中,不需要系統內核作修改。從今往后,VMware也在幫助開發半虛擬化的Linux版本,以支持概念驗證和產品開發。更多的信息見之后的頁11。
技術 3 --- 硬件輔助的虛擬化
硬件廠商迅速擁抱虛擬化並開發出新的硬件特性來簡化虛擬化技術。第一代技術包括Intel虛擬化技術(VT-x)和AMD的AMD-V,兩者都針對特權指令為CPU添加了一個執行模式,VMM運行在ring 0,同時在新增的根模式下。如圖7所示,特權和敏感調用自動陷入hypervisor,不再需要二進制翻譯或半虛擬化。虛擬機的狀態保存在虛擬機控制結構(VMCS,VT-x)或虛擬機控制塊(VMCB,AMD-V)中。帶有VT和AMD-V的處理器在2006年投入使用,因此新的系統才會帶有這些硬件輔助特性。由於hypervisor到虛擬機轉換的高代價和僵化的編程模型,目前VMware的二進制翻譯技術在很多情況下會比第一代硬性輔助的實現表現更好。第一代硬件輔助虛擬化的實現中,僵化的編程模型使軟件在管理hypervisor到虛擬機轉換的頻率和代價方面失去靈活性。出於此,VMware僅使用了第一代硬件輔助的少數特性,例如在Intel處理器上支持64位虛擬機。
內存虛擬化
除了CPU虛擬化之外,下一個關鍵的組件是內存虛擬化。內存虛擬化涉及到對系統物理內存的共享和動態地為虛擬機分配內存。內存虛擬化和當代操作系統對虛擬內存的支持類似。應用程序看到的連續地址空間和底下真正的物理內存不一定是一一對應的。操作系統保存了虛擬頁號到物理頁號的映射。當前所有的x86 CPU包含了一個內存管理單元(MMU)和一個旁路緩沖(TBL)以優化虛擬內存的性能。
為了在一個系統上運行多個虛擬機,還需要另外一層的內存虛擬化。也就是說,MMU需要被虛擬化來支持虛擬機系統。虛擬機系統還是控制着虛擬地址到虛擬機內存物理地址的映射,但虛擬機系統不能直接訪問真實的機器內存。VMM負責將虛擬機物理內存映射到真實的機器內存,並使用影子頁表來加速映射過程。如圖8種標紅線之處所示,VMM使用硬件中的TLB來直接映射虛擬內存到機器內存以避免每次訪問時需要兩級轉換。當虛擬機改變了虛擬內存到物理內存的映射時,VMM更新影子頁表使得后續可以直接查找。對於所有的虛擬化方案來說,MMU虛擬化都會帶來一定的代價,這也是第二代硬件輔助虛擬化方案會改進的地方。
設備和I/O虛擬化
除了CPU和內存虛擬化之外,最后一個需要虛擬化的組件是設備和I/O虛擬化,這涉及到對虛擬設備和共享的物理設備之間的I/O請求路徑的管理。
相對於直接訪問(direct pass-through)物理硬件的方法,基於軟件的I/O虛擬化及管理具有更豐富的特性和更簡化的管理方式。以網絡方面為例,虛擬網卡和虛擬交換機可以在虛擬機之間創建虛擬網絡,而不需要消耗物理網絡的帶寬,網卡組合(NIC teaming)使得多個物理網卡變成邏輯上的一塊網卡,這對虛擬機來說,物理網卡的故障轉移是透明的。這樣一來,虛擬機通過VMotion可以無縫地在不同系統之間遷移,並且保留已有的MAC地址。高效I/O虛擬化關鍵的一點就是要保留虛擬化的這些好處同時對CPU增加的消耗減到最少。
hypervisor虛擬化了物理硬件,為虛擬機呈現一系列標准的虛擬設備,如圖9所示。這些虛擬設備有效的模擬了所熟知的硬件並將虛擬機的請求翻譯成對系統物理硬件的請求。設備驅動的標准化也幫助了虛擬機的標准化並增加在不同平台間的可移植性,因為所有的虛擬機都配置成運行在虛擬硬件上,跟底下真實的系統物理硬件無關。
當前x86虛擬化技術的總結
VMware目前無論在生產環境還是開發實驗室都使用了所有這些x86虛擬化技術,並在性能和功能特性之間做到最佳的平衡。和虛擬化技術概觀一節所描述的一起,圖10中的對比總結有助於從更高層次去理解各種不同技術的優缺點。
二進制翻譯的全虛擬化是當前最為成熟的技術
二進制翻譯的全虛擬化是當前最為成熟和可靠的技術。VMware在常見的Windows和Linux操作系統中的實現都具有最高的虛擬化性能、最健壯的特性集和最簡易的管理方式。除了64位的虛擬機以二進制翻譯的方式運行於Intel CPU上,VMware在生產環境中都支持全虛擬化和硬件輔助的虛擬化方案,可根據對性能的相對需求進行選擇。
二進制翻譯的全虛擬化在之后幾年仍然是一項有用的技術,更新更快的硬件在性能上會繼續比通過二進制翻譯執行的未經修改的虛擬機系統具有更高的性能。硬件輔助的虛擬化是虛擬化的未來,半虛擬化在性能上的優勢將會減少。
硬件輔助是虛擬化的未來,它真正的優勢還沒發揮出來
Intel和AMD的第一代硬件輔助特性在2006年發布,是hypervisor可以不依賴於二進制翻譯和OS-assisted的處理器半虛擬化的第一步。正如Xen項目所展示的,早期的這些硬件輔助特性使得創建一個不依賴於二進制翻譯和半虛擬化技術的hypervisor容易得多。Xen使用硬件輔助特性來虛擬化Windows,但相較於VMware的二進制翻譯和Xen半虛擬化的Linux,效率上打了不少折扣。挑戰在於,這些第一代硬件輔助的實現提供了一個僵化的編程模型,同時hypervisor到虛擬機的轉換要付出高昂的代價,導致了硬件輔助的虛擬化比VMware的二進制翻譯性能更低。VMware跟合作伙伴Intel和AMD一起,為改善未來硬件的設計使得能更充分利用軟件固有的靈活性來應對虛擬化挑戰而努力。
第二代硬件輔助技術正在開發之中,它將對虛擬化系能有更大影響,同時降低內存的消耗代價。AMD和Intel都公布了他們的開發路線圖,包括硬件支持的內存虛擬化(AMD Nested Page Tables[NPT]和Intel Extended Page Tables[EPT]),以及硬件支持的設備和I/O虛擬化(Intel VT-d,AMD IOMMU)。
CPU密集型的工作負載在二進制翻譯和直接指令執行的方式下已經可以運行得很好,但是NPT/EPT通過摒棄影子頁表來減少對系統內存的消耗,將會獲得明顯的性能提升。未來CPU的性能提升和虛擬化代價減少的期待是廣泛使用硬件輔助特性的動力,但不要期待有什么革命性的改變。隨着處理器每年變得更快,每年處理器性能的提升似乎比未來硬件輔助優化對虛擬化容量和性能帶來的影響更大。
隨着時間的推移,可見到硬件輔助的虛擬化性能會超越處理器和內存半虛擬化的性能。隨着對CPU、內存和I/O設備進行硬件輔助開發,半虛擬化相對於硬件輔助虛擬化的性能優勢將逐漸縮小。隨着硬件輔助特性的開發和成熟,hypervisors will commoditize as they increasingly leverage a common set of hardware assist features,但它們還會在性能、可管理性、功能特性上繼續競爭。
Xen的CPU半虛擬化帶來性能提升卻有維護代價
Xen好像是把半虛擬化當作第二代虛擬化技術,而把VMware的全虛擬化技術當作第一代。現實情況是,半虛擬化是一項老而有用的技術,對於某些工作負載確實提供了性能上的好處,但往往需要付出維護代價。毫無疑問,要獲得性能提升,需要在虛擬機系統安裝虛擬化管理程序和設備驅動,但數據中心必須權衡減少虛擬化代價的優勢和運行一個經過修改的虛擬機系統內核來使能半虛擬化所需要的支持維護成本。性能優勢還依賴於工作負載的特質。大部分的工作負載獲得很少的提升,不是所有的負載都能獲得接近物理機的性能。
Xen最大的挑戰是處理器半虛擬化無法作用於未經修改的虛擬機系統,因此不適用於無法修改的虛擬機系統(如Windows)和不需要修改的虛擬機系統(when supported versions of Linux are required)。大部分的數據中心不願意將業務應用運行在半虛擬化的第三方Linux內核而這些內核又運行在開源的hypervisor上。此外,***式的內核修改使得虛擬機系統和hypervisor在一些數據結構上緊耦合,阻止了修改后的虛擬機系統無法運行在其它的hypervisor或裸機上。
即使主流的Linux發行版開始將半虛擬化功能捆綁到操作系統內核,部署半虛擬化的系統會增加維護成本和減少可移植性。不少公司發現Xen的Linux半虛擬化方案不適合企業應用,一些新的Xen系的虛擬化廠商則完全拋棄了Linux半虛擬化。例如,Virtual Iron宣稱半虛擬化是個“窮途末路的方法(dead-end approach2)”,而集中精力在基於硬件輔助的使用未經修改虛擬機系統的全虛擬化技術。
這給Xen帶來了第二個競爭挑戰。Xen 3.x只引入了硬件輔助使用未經修改虛擬機系統的全虛擬化支持。VMware的二進制翻譯比使用第一代硬件輔助的Xen復雜很多,性能更高,Xen廠商在整體的性能、可靠性、易於管理方面還無法跟VMware競爭。那些沒有完全放棄處理器半虛擬化的廠商經常迷惑試聽,暗示他們的Linux半虛擬化性能比基於硬件輔助虛擬化使用未經修改的虛擬機系統性能好。
需要明確的是,VMware發現處理器半虛擬化對現今的某些工作負載來說確實能很大地提升性能,但當第二代硬件輔助特性發布時,這種性能好處是否會保持則難以預測。性能的差異或許會減少、消除甚至擴大,因為半虛擬化的接口也許會有新的改進。這是個開放的問題。
在VMware看來,處理器半虛擬化最大的問題在於它需要修改虛擬機操作系統,這使得虛擬機系統的運行依賴於特定的hypervisor。例如,Xen接口實現的深度半虛擬化對hypervisor有很強的依賴性。虛擬機操作系統和hypervisor實現的數據結構有強耦合。Xen的Linux內核不能運行在裸機或其它的hypervisor上,這帶來了不兼容性,使kernel的發布和需要維護的版本數增加了2倍。另外,對新的開源操縱系統來說有限制,因為對虛擬機操作系統的修改需要操作系統廠商的支持。最后,對hypervisor的強依賴性阻礙了內核的獨立進化。
VMware的透明半虛擬化平衡了性能好處和維護成本
Xen的半虛擬化實現對Linux內核進行***式修改,VMware圍繞標准接口來獲得OS輔助的半虛擬化性能上的好處同時減輕維護成本。VMware於2005年提出透明半虛擬化接口VMI(Virtual Machine Interface),作為虛擬機操作系統和hypervisor之間標准的通信機制。
如圖11所示,VMI是位於hypervisor和半虛擬化虛擬機系統之間的一層。透明半虛擬化實現中,同樣的虛擬機操作系統可以運行在裸機上、在虛擬化環境中或其它任何兼容的hypervisor中。所有的VMI調用有兩種實現,一種是為裸機准備的內聯原生指令,另一種是在虛擬機中間接調用到虛擬機OS和hypervisor之間的VMI層。兩種實現都做到了高性能。VMI的版本控制使得hypervisor和虛擬機系統的發展相互獨立,這就獲得了可維護性和可擴展性。VMI層支持hypervisor的多樣性,因為VMI-Linux運行時可使用Xen hypervisor中一個合適的間接層。對可移植性,后續的一個Linux版本已經被移植到VMI接口。
VMware繼續和Linux社區合作開發半虛擬化接口來支持不同的hypervisor。VMware在2006年發布了VMI規范,在Ottawa Linux Symposium的VMI提議促成了paravirt-ops接口在Linux社區的開發。paravirt-ops接口合並了VMI的多個概念,包括對透明半虛擬化的支持,是由一個聯合小組開發,成員來自包括IBM、VMware、Ret Hat和XenSource。使用這個接口,半虛擬化的Linux操作系統可以運行在任何支持該接口的hypervisor上。VMware發力在虛擬機系統的paravirt-ops接口開發,這些接口使用VMI接口調用hypervisor,paravirt-ops從Linux內核2.6.20版本開始成為內核的一部分。在Linux 2.6.22版本中,包含了用來補充paravirt-ops接口的VMI backend。有了這個規范,Linux系統發行方和ISV可支持單個含有半虛擬化的內核鏡像,同時獲得性能好處和可管理性。這使得處理器半虛擬化的兼容性有機會得到改善。
為獲得反饋和評估,VMware在Workstation 6中包含了支持試驗的VMI功能,即在宿主環境中支持操作系統的半虛擬化。這個Workstation發布版提供了2005年就和Linux社區討論的透明半虛擬化接口。你可以下載一個功能齊全的支持半虛擬化接口的VMware Player虛擬機監控器,和一個流行的支持半虛擬化的Linux內核。VMware Player和Workstation中的這個試驗支持目標受眾是那些希望評估VMware半虛擬化技術的開發者。
由於這個試驗是在宿主架構模式中,因此不宜用來評估半虛擬化的I/O性能改善,不過它可以用來評估CPU密集型工作負載的性能改善。后續的實現將是在裸機hypervisor架構下,如VMware ESX Server,會展示半虛擬化帶來的CPU和I/O系能改善。VMware計划對半虛擬化操作系統添加支持,因為這些系統在商用的虛擬化平台設施中被采用了。
VMware正在促進虛擬化的開放標准
在過去的幾年中,VMware和一些領頭的技術廠商合作來定義虛擬化的開放標准。作為最初的一步,VMware貢獻了自己現有的框架和API,以中立的方式幫助開發這些業界標准。VMware之所以提出這些開放接口和格式,是因為技術界最為成功的接口和格式是基於客戶實際的部署標准。7年多來,VMware的技術被廣泛部署從而獲得了很多現實世界的經驗。
任何一個行業,開放接口和格式被證明是產品被廣泛采用的一個保證,虛擬化也不例外。雖然今天虛擬化的勢頭很猛,但它還處於早期階段。VMware采取這一步來帶動虛擬化的增長,加速客戶解決方案的交付最終形成虛擬化技術的廣泛采用。
VMware采取這一步驟還因為合作伙伴和客戶的需求。使用不同虛擬化方案的產品在不斷地增加,只要虛擬化解決方案兼容,客戶就可以進行更大范圍的訪問從而受益。開放接口和格式對業界的好處是,它促進虛擬化生態系統中廠商的合作和創新並為大家擴大了市場機會。
VMware提供了以下開放接口和格式:
. 虛擬機接口 --- hypervisor和虛擬機之間的APIs
. 管理接口 --- 針對單個虛擬機環境和高度動態的、數據中心規模的虛擬化系統的標准運維管理的框架
. 虛擬機鏡像磁盤格式 --- 虛擬機磁盤鏡像,使得虛擬機提供、遷移和維護可跨平台。
VMware傾向於這些東西都是開放的,廠商中立的,任何擁抱這種虛擬化開放標准的廠商可以參與。
VMware使用Multi-Mode VMM架構來×××能和靈活性
大部分初創的虛擬化廠商只具有在產品中使用一種虛擬化方案的資源。他們自然願意集中精力在他們的虛擬化方案中並使該方案的弱點最小化同時填補功能上的差距。這就容易出現市場的混亂局面,因為他們片面的宣稱扭曲了現實。
每發布一個產品,VMware都經過挖掘現有的和未來的虛擬化技術,以獲得在性能、穩定性、功能特性、可管理性之間的最佳平衡。VMware同時積極地和合作伙伴一起為企業虛擬化開發一個可互操作的生態系統。
VMware提供了一個靈活的“multi-mode” VMM架構,如圖12所示,每個VMM管理一個虛擬機。VMware讓你自己選擇模式來達到在CPU支持的情況下獲得最佳的性能。同樣的VMM架構已經在用於ESX Server,Player,Server,Workstation和ACE。
現今的工作負載可使用一個32位BT VMM或一個伴有BT/VT-x的64位VMM,以后的工作負載將運行在支持32/64位AMD-V+NPT和VT-X+EPT的VMM上。
VMware提供一個靈活的架構來支持不斷涌現的虛擬化技術。Multi-mode VMM使用二進制翻譯,硬件輔助虛擬化和半虛擬化來為每種工作負載選擇最佳的操作模式和處理器組合。硬件輔助技術將不斷成熟,同時拓寬了可被虛擬化的工作負載種類。
結語
長期以來,在虛擬化性能改善方面,VMware尋求了很多的策略。二進制翻譯、硬件輔助虛擬化、操作系統輔助(半虛擬化)都是有效的x86虛擬化技術,但它們的重要性和價值不斷消長,因為企業虛擬化市場仍然在不斷的進化和成熟過程中。差不多10年前,VMware就開始了這場革命,直到現在還在引領業界建立一個開放標准、操作系統無關的虛擬化生態系統,來幫助企業實現IT環境的轉型。
未來的虛擬化估計會有廠商支持的半虛擬化操作系統安裝在業界標准的磁盤文件格式中,並且可運行在裸機上或者在一系列兼容的可互操作的hypervisor上,同時利用了硬件輔助管理CPU、內存、I/O設備的優勢。
今天,VMware虛擬化技術作為領先的方案部署在世界前100強中100%的企業和前1000強中的84%的企業中。沒有另一個選擇能在性能、穩定性、方便管理、安全性、技術支持、功能性和廣大的合作伙伴系統方面能和VMware相比。
轉載自:https://blog.csdn.net/weixin_33720956/article/details/92324500