了解最新公司動態及行業資訊
毫無疑問,在業界,微軟是當之無愧的軟件霸主。它不僅在操作系統領域占有巨大的市場份額,而且在數據庫、移動計算、搜索引擎等各個方面都具有強大的影響力。沒有一個領域可以被忽略。由于低估了微軟在產品創新和銷售執行方面的能力,很多企業在與微軟的競爭中屢屢受挫。
微軟在虛擬化領域已經很長時間了(微軟在2003年收購了推出PC軟件的公司,隨后推出了服務器虛擬化軟件),而在Hpyer-V推出之前,微軟在虛擬化領域尤為突出。可以說服務器虛擬化領域有點不自信。與競爭對手頻繁的新品發布相比,PC和Xen的發布和推廣都非常低調。畢竟/Xen等產品已經憑借著出色的性能占據了大半個世界。現在,隨著Hyper-V的正式推出,企業級虛擬化領域很可能會掀起一場風暴,市場格局或將迅速發生變化。
為什么微軟的Hyper-V會有這樣的能力呢?
注意:什么是虛擬化?
Hyper-V是一個(系統管理程序),開發代號為 ,其主要功能是管理、調度虛擬機的創建和運行,提供硬件資源的虛擬化。Hyper-V是微軟在2008年推出的最新服務器虛擬化解決方案,2008年發布時集成了Hyper-V的Beta版。微軟承諾在180天內提供正式版Hyper-V。2008是4月份發布的,180天還不到6個月,所以微軟會在9-10月份發布Hyper-V正式版,目前已經到了RTM階段,可以正常使用了。
與微軟自家的PC等產品相比,Hyper-V與競爭對手/ESX明顯不同:Hyper-V絕對是架構上的突破!
第650章
Hyper-V 虛擬化詳細架構
微軟發布的架構圖資料很多,但是主要內容很相似,就像上圖一樣。
第650章
Hyper-V 之前的架構,2005 R2
Hyper-V的本質是一個VMM(虛擬化管理程序)。與微軟之前的系列產品處于不同的層次。它更接近硬件。這更像是 ESX 系列。事實上,Hyper-V 屬于微軟。第一個裸機虛擬化產品(Bare-Metal)。但是,在某些基礎架構中,Hyper-V 和 ESX 有很大不同,因此 Hyper-V 非常特殊,請參閱下一頁的細分。
Hyper-V作為虛擬化產品,有一個非常特殊的要求:處理器必須支持AMD-V或Intel VT技術,即處理器必須具備硬件輔助虛擬化技術。
對于一個虛擬化產品來說,要求一個硬件特性(要求支持指令集不算)是比較奇特的,而微軟以前不需要這個特性。對于某些產品,這只是一項可選功能,不像 Hyper-V 那樣是一項硬性要求。不支持 VT/AMD-V 的處理器無法運行 Hyper-V。
第650章
VT-x處理器輔助虛擬化技術是Hyper-V的硬性要求
VT的具體作用可以查看x86虛擬化問題解決:Intel VT或者《From VT-x to VT-d Intel 》。VT,即AMD-V,是一種硬件輔助的虛擬化技術,用來解決Ring的問題。傳統處理器下的虛擬機采用指令轉換的方式執行Ring 3中的Ring 0特權指令,嚴重影響性能。VT 解決了這個問題。對VT的依賴和支持是Hyper-V架構的基礎,也是Hyper-V最大的特點。
也因為Hyper-V需要處理器支持硬件虛擬化輔助,部分處理器無法應用Hyper-V,只能應用較新的非Value處理器。比如訪問只有75%的幾率會遇到部署在Hyper-V上的虛擬化服務器,剩下的25%是非Hyper-V的虛擬化服務器。要在這些服務器上應用虛擬化,用戶只能選擇2005 R2,或者其他公司的產品。
Hyper-V和ESX比較相似,都是Bare-Metal類型,但是它們的內核架構也有明顯的不同。微軟在談到競爭對手ESX時,總是提到Hyper-V是微內核架構,而ESX是單核架構,Hyper-V更好。
兩者有什么區別?誰更好?
第650章
單內核(分層內核)與微內核
單內核和微內核實際上是操作系統內核術語。操作系統的內核——實現核心功能的部分——可能是微內核(Micro),也可能是單個內核(有時也稱為宏內核Macro)。在類似包的方式中,這些術語定義如下:
(Micro) 在一個微內核中,最常用的功能是在一個運行在內核模式下的進程上精心挑選和設計的(或者,根據上一頁,在 x86 上的 Ring 0 權限下),而其他大的一些不太重要的核心功能在用戶態(類似的,在Ring 3權限下)作為單獨的進程運行,它們通過消息傳遞進行通信(例如進程間通信使用的IPC機制,IPC為Inter)。基本思想是使其盡可能小。通常微內核只包含進程調度、內存管理和進程間通信等基本功能。
這種設計有很多好處,例如增加靈活性、易于維護、易于移植。微內核的模塊化設計使得其他核心功能模塊只依賴于微內核模塊或其他模塊,不直接依賴于硬件。添加新功能只需要編寫額外的用戶模式微內核服務器。但是,只有移植微內核本身才能完成整個內核向新平臺的移植。
由于采用模塊化設計,可以動態加載或卸載未包含在微內核中的驅動程序。同時,微內核不依賴于固定的文件系統,用戶可以隨意選擇支持文件系統。用戶甚至可以在系統運行時將開發的新系統模塊或需要替換現有模塊的模塊直接快速地添加到系統中。不需要的模塊不會被加載到內存中,因此微內核可以更有效地使用內存。微內核還具有更好的實時性和安全性等優點,更適合構建分布式操作系統和面向對象操作系統。
微內核操作系統的典型示例是 Mach(一種被許多操作系統采用的非本地分布式操作系統內核,例如在 Mac OS X 上)、IBM AIX、BeOS 和 NT(包括 2003 和 2008),以及著名的Minix(主要用于教學的Unix系統)和(真正原生的分布式操作系統)。
單核 ( ) - 單核是一個非常大的進程。它在內部可以分成幾個模塊(或層,或其他),但在運行時,它是一個單一的大二進制圖像。因為在同一個進程中,所以其模塊之間的通信是通過直接調用其他模塊中的函數來實現的,而不是像微內核那樣在多個進程之間傳遞消息。所以在運行效率上,單核會有一定的優勢。
單核操作系統的典型例子是大多數Linux,幾乎所有的Unix包括BSD、MS-DOS、9x。比如Sun的內核運行上百個線程來實現各種功能,編譯過Linux內核的都知道Linux內核有幾十MB。
單核好還是微內核好,顯然是一個很有爭議的問題。不得不說,很有意思的是,這種爭論常常讓人想起上個時代CPU領域里RISC和CISC的斗爭。現代成功的CPU設計都包含這兩種技術中的任何一種,就像Linux(單內核)和NT(微內核)現在實際上是微內核和單核的混合產物,只是或多或少的問題而已。歷史上有過這樣的爭論。Linux(單內核)的作者Linus和Minix/(都是微內核)的作者S.教授在討論組里爭論不休,吸引了大批愛好者。最后,Linus 也同意微內核架構更先進的說法。
回到Hyper-V,Hyper-V采用微內核架構,在體積上有優勢,體積只有300k左右(好像新版更小),而ESX的Linux內核很大。對于VMM虛擬化管理程序來說,需要的功能不多,很適合采用微內核架構,運行效率可以很高。但從理論上講,配置合理的單內核實際上與微內核非常相似。哪一個性能更好?這要等到測試之后才能知道,但在此之前,我們可以看看微內核的好處之一:設備驅動的改變。
注:分布式操作系統( )
分布式操作系統DOS(不是Disk)有多種定義,是管理分布式系統資源的操作系統。這樣的說法比較抽象,我們可以將分布式操作系統與網絡操作系統(比如我們使用的)進行比較,簡單描述一下分布式操作系統的特點:
(一)分銷。分布式操作系統的處理和控制功能是分布式的;網絡操作系統的控制功能集中在一臺或幾臺主機或網絡服務器上,即集中控制方式。
(2)并行性。分布式操作系統具有任務分配功能,可以將多個任務分配給多個處理單元,使這些任務并行執行,從而加快任務執行速度;而網絡操作系統通常沒有任務分配功能,網絡中每個用戶的一項或多項任務通常都在本地計算機上處??理。
(3) 透明度。分布式操作系統通常會很好地隱藏系統內部的實現細節。包括對象的物理位置、并發控制、系統故障對用戶都是透明的。例如,當用戶要訪問一個文件時,只需要提供文件名,而不知道(要訪問的對象)在哪個站點,就可以訪問,即具有訪問權限的透明性。物理位置。此外,分布式操作系統在運行程序時,無需特殊設計或用戶特殊設置,可以自動將程序分到多個處理器中并行運行。
(4) 共享。分布式操作系統支持系統內所有用戶共享和透明訪問分布在各個站點的軟硬件資源。網絡操作系統提供的資源共享功能僅限于主機或網絡服務器中的資源,而其他機器上的資源通常為使用本機的用戶所獨享。
(5)魯棒性。由于處理器和控制功能的分布,分布式操作系統具有更好的可用性和可靠性,即健壯性。只有當所有處理節點都損壞時,分布式操作系統才能被視為崩潰。
典型的分布式系統包括SETI@Hom、集群、云計算等項目,也屬于分布式操作系統的范疇。典型的分布式操作系統包括,Mach,DCE等。
無論使用什么內核,驅動程序和文件系統總是必不可少的。虛擬機需要驅動程序才能使用服務器的硬件,并且虛擬機的文件需要存儲在適當的文件系統上。在單核ESX上,驅動包含在單核中,虛擬機鏡像文件存放在VMFS(類似EXT的文件系統),那么Hyper-V的微內核架構呢?
這里會講到Hyper-V的VSP/VSC架構,VSP是(虛擬化服務提供者),VSC是(虛擬化服務消費者),在“主機操作系統”中會放置一個VMBus組件,VSP連接到虛擬機操作系統的VSC。其實“主機操作系統”也是一個虛擬機——也就是你原來用Hyper-V安裝的2008,微軟稱它為操作系統,每個虛擬機都叫Child服務器運維,虛擬機操作系統是稱為子。稱為子操作系統。
第650章
VSP和VPC,注意VSP不是縮寫。VSP的一種
上圖很好的解釋了Hyper-V是如何使用VSP/VSC架構來解決驅動/文件系統的。Hyper-V通過添加VSP和VSC以及它們相互通信的VMBus總線服務器運維,將虛擬機的操作映射到相應的驅動程序中。在程序/文件系統中,簡化如下:
第650章
Hyper-V的VSPs/VSCs,VMBus架構
這種方法有很多優點。例如,最明顯的是,Hyper-V 可以兼容大量驅動程序,而無需為虛擬機開發專用驅動程序(ESX 就是這樣做的)。我們知道,對于服務器來說,一個非常重要的組成部分就是I/O,而IO設備離不開驅動是無法工作的。現在,只要設備能在2008下工作,Hyper-V虛擬機就可以使用這些設備資源,而且驅動本身就比其他操作系統(比如Linux)豐富,所以Hyper-V有了硬件支持。具有無可比擬的優勢。ESX甚至不能直接套用Linux驅動,需要額外操作才能使用。因此,ESX 容易出現設備兼容性問題。當然,用戶可以使用一套完整的經過認證的硬件來避免這個問題。
有優點也有缺點。VSP/VSC架構需要支持Hyper-V技術的客戶端支持,這極大地限制了虛擬機操作系統的選擇。不支持 Hyper-V 的客戶端操作系統只能使用設備模擬。性能與之前的 2005 R2 沒有太大區別。要享受 Hyper-V 的性能提升,您需要使用 2008 虛擬機,或包含 Xen 的 Linux/Unix。Hyper-V 來賓操作系統的選擇僅表示幾種類型的 Linux。雖然筆者猜測或多或少有商業策略的因素,但從技術角度來看,確實存在一些限制。
Hyper-V 設備驅動的這一優勢與微內核驅動架構的優勢完全相同。它是模塊化的,架構靈活,可以在不改變新硬件的情況下提供對新硬件的支持。敏感的用戶可能會意識到進程間通信帶來的開銷——確實存在這樣的問題。曾經問過微軟的工程師,他們說性能會稍微打折扣。從作者的角度來看,通過內存地址轉換,開銷可能會降低到很低的水平。
順便說一句,Hyper-V下設備虛擬硬件輔助VT-d技術的實現非常容易,只需要開發2008下的驅動,不需要修改Hyper-V。
Hyper-V 還有一個關于性能的重要特性:多處理器虛擬機,Hyper-V 支持 2008 個 4 個 CPU 的虛擬機,以及 2003 個 2 個 CPU 的虛擬機。多處理器虛擬機不是 Hyper-V 的功能。ESX已經實現了4CPU虛擬機,在各種操作系統下(也可以提供2CPU虛擬機)。
如果服務器工作負載需要高性能,我們可以考慮使用多處理器虛擬機。數據庫服務器會消耗大量處理器資源,在這種情況下,多處理器虛擬機是必要的,正如我們已經測試過的那樣。當然,只有在工作負載確實需要時才應使用多處理器虛擬機,因為管理更多的處理器會帶來一些額外的開銷。就像早期的NT有單處理器和多處理器兩個核心(單處理器版本去掉了一些只有在多處理器才有的同步等模塊,并做了相關優化)。
第650章
流程狀態及其轉換示意圖,流程在其中“輪換”
眾所周知,為了保護共享數據,需要一些同步機制,如鎖、信號量等。通常,多處理器操作系統內核和驅動程序會使用自旋鎖(Spin Lock,類似于互斥鎖,但具有更短的保持時間。更詳細的信息請參考第四版機制,P152)。在自旋鎖之前,線程不會阻塞,而是一直處于自旋狀態,前提是自旋鎖只會持有很短的時間。但是,在虛擬化條件下,這個前提就會被打破,因為虛擬處理器是按照時間片進行調度的。如果虛擬處理器在持有自旋鎖的同時進行競爭,其他虛擬處理器將自旋很長時間,造成 CPU 周期的浪費,降低虛擬機的性能。顯然,這種情況經常發生在重負載條件下的多處理器虛擬機中。
在2008內核和Hyper-V中加入創新設計,盡可能避免自旋鎖長時間等待的情況。如果存在長時間等待的情況,將被有效地檢測和處理。這種方法稱為自旋鎖啟發式。未實現自旋鎖試探法的虛擬機操作系統將停止并在緊密循環中自旋,等待其他虛擬處理器釋放自旋鎖。通常這種循環可能會阻塞其中一個硬件 CPU。,從而降低虛擬化性能。在自旋鎖啟發式操作系統中,當自旋即將發生時,自旋鎖代碼通過API通知Hyper-V管理程序,以便管理程序立即調度另一個虛擬處理器執行,減少不必要的CPU使用。.
在日前的媒體測試會上,微軟中國工程師展示了Hyper-V虛擬機的效率,表明4 CPU 2008虛擬機的可擴展性可以與物理4 CPU系統相媲美。當然,具體的改進還需要通過測試來評估。
注意: 其實不完全是Hyper-V的內容,更多的是2008的核心內容。Vista也實現了這個 。
不知不覺說了很多內容似乎有點深,但是Hyper-V的特點可以概括為:VT/AMD-V實現、微內核設計、VSP/VSC虛擬設備驅動架構、虛擬處理器自旋鎖靈感架構,這些功能結合起來形成了獨特的 Hyper-V。此外,28 美元的價格(或免費:包含在 2008 年的購買中)也值得一提。
第650章
微軟服務器虛擬化戰略里程碑:Hyper-V
更好的性能、更廣泛的兼容性、更強的安全性、更便宜——這就是 Hyper-V,自 2003 年收購以來一直沉寂的微軟并沒有睡著。從最早的,到早期的PC、、、,再到今天Hyper-V的推出,這些看似不經意的舉動,如今似乎為其全面虛擬化戰略的實施埋下了伏筆。經過這樣一系列的鋪墊,微軟從數據中心到桌面虛擬化的全方位端到端虛擬化戰略已經正式部署,我們已經可以看到一場風暴正在虛擬化市場襲來。