提到數據中心里的虛擬化技術,當屬服務器的虛擬化最為久遠。服務器虛擬化技術是將傳統的物理主機通過虛擬化軟件,將物理主機的CPU、內存和硬盤存儲空間整合成統一的邏輯資源池,再從邏輯資源池中創建幾個幾十甚至幾百個虛擬服務器為應用提供服務,從而提高資源利用率,簡化服務器管理。隨著云計算技術的應用,服務器虛擬化得到了極大普及,虛擬化已經成為數據中心必備技術之一。實際上,虛擬化技術包含廣泛,僅是服務器的虛擬化就已經發展出了很多分支。當然,不管這些技術如何發展,目的都是一樣,就是盡可能地提升數據中心應用部署、運維、故障恢復的效率。本文就來詳細說一說服務器的虛擬化技術,以便使大家從整體上對服務器虛擬化技術有個了解。服務器虛擬化可以分為三大類:非硬件輔助虛擬化、硬件輔助虛擬化、硬件分區虛擬化。
非硬件輔助虛擬化
這種虛擬化技術將虛擬機系統和底下的物理硬件徹底解耦,虛擬機系統沒有意識到它是被虛擬化的。這種虛擬化技術不需要硬件輔助或操作系統來輔助,為虛擬機提供最佳的隔離和安全性,使移植變得簡單。這類虛擬化主要有基于容器的虛擬化,這種虛擬機無操作系統,共享操作系統,例如OPEN VZ,OPEN VZ是基于Linux平臺的操作系統級服務器虛擬化解決方案,允許物理服務器運行多個操作系統;基于主機的虛擬化,這種虛擬機有獨立的操作系統,也叫虛擬主機。典型代表是VMware 服務器和VMware工作站,虛擬主機的一個實例支持多個虛擬操作系統實例,同一個主機操作系統的內核在進程級別處理虛擬服務器的I/O和調度需求;準虛擬化技術,這類虛擬化技術有獨立操作系統,以完全仿真的方式進行,CPU必須要特別將虛擬化技術加入到CPU核心中,對CPU有特殊需求,需要修改內核的代碼。典型代表是XEN、KVM技術,XEN既可以是非硬件輔助虛擬化,也可以實現硬件輔助虛擬化。XEN少于15萬行的代碼量,不包含任何物理設備驅動,可以重用現有的Linux設備驅動程序,XEN對硬件兼容性非常廣泛,只要是Linux支持的,XEN都可以支持;完全虛擬化技術。這種技術有獨立的操作系統,不做任何修改,虛擬機的操作系統代碼仿真執行。典型代表是VMware ESX。VMware ESX是VMware的企業級虛擬化產品,2001年就發布了ESX 1.0。ESX服務器啟動時,首先移動Linux Kernel,通過這個操作系統加載虛擬化組件VMkernel,VMkernel會完全接管對硬件的控制權,實現本地的一些管理功能。
硬件輔助虛擬化
硬件廠商面對虛擬化都相當熱情,他們都投入了大量的精力來開發新的特性來簡化虛擬化技術的應用。硬件輔助虛擬化技術囊括了計算機體系架構中CPU、內存、網絡和I/O的虛擬化,并且還在一直發展當中,內存和I/O虛擬化都有了成熟的規范。硬件輔助虛擬化直接在硬件上提供虛擬化能力,簡化軟件的實現。典型代表是Intel的VT-x/VT-I,AMD的AMD-V/AMD-Vc,這兩種都是CPU虛擬化技術,還有I/O虛擬化的VT-d,AMD-VI,網絡虛擬化的VT-c,所有這些都屬于半虛擬化技術。半虛擬化技術虛擬化了物理硬件,為虛擬機呈現一系列標準的虛擬設備,這些虛擬設備有效地模擬了所熟知的CPU、內存等部件,并將虛擬機的請求翻譯成對系統物理硬件的請求。設備驅動的標準化也幫助了虛擬機的標準化并增加在不同平臺間的可移植性,因為所有虛擬機都配置運行在虛擬硬件上,跟底下真實的系統物理硬件無關。
硬件分區虛擬化
硬件分區虛擬化分為物理分區和邏輯分區兩部分。物理分區是LVM最小的磁盤空間分配單元,物理分區是物理卷上的大小相同的磁盤空間。物理分區構成邏輯分區,邏輯卷是一個卷組內多個邏輯分區的集合。硬件分區虛擬化主要用于大型機,硬件資源直接做物理或邏輯分區,每個分區運行各自的操作系統。典型代表是IBM system z LPar和HP nPartitions。IBM的system z在1964年誕生距今已經超過50年,經過這些年system z也在不斷進步和發展,到了2014年,已經發展成為System z云。HP的nPartitions也是硬件分區主流技術,npartitions可以實現多個節點的硬分區(每個節點可配置不同的操作系統),一個節點的硬分區(可配置多個操作系統),一個硬分區內的虛擬分區。硬件分區可支持更為細化的工作負載合并和軟件隔離,支持系統管理員對分區資源進行智能化調配,目的在于保證關鍵任務運行。
經過以上的介紹,可以看到虛擬化的技術種類比較多,但基本都是從與硬件的關聯程度來區分的。其中非硬件輔助虛擬化是軟件廠商提出來的,希望虛擬化能盡量脫離硬件,與硬件松耦合,而硬件分區虛擬化完全是硬件廠商基于硬件特點提出來的,結合硬件處理效率高的優勢,也占據重要地位,硬件輔助虛擬化則介于兩者之間,既與硬件有一定關聯,但又不是全部。造成這樣的結果主要是來自軟件和硬件兩大陣營的競爭,硬件廠商統治了數據中心數十載,如今終于輪到了軟件廠商,軟件廠商希望借助虛擬化技術迅速占盡優勢,一舉改變軟件在數據中心里的地位,硬件廠商自然不甘示弱,一方面強調硬件的重要性,另一方面也基于硬件開發出來一些虛擬化技術,希望保持住原有的優勢地位。這樣的競爭局面持續了幾年,現在還看不到哪方面的技術有絕對優勢,在數據中心市場里也勢均力敵,這也讓數據中心市場里的服務器虛擬化競爭十分好看,未來十年究竟是硬件廠商繼續主宰,還是該輪到了軟件廠商,就看誰的虛擬化技術玩得好,讓我們拭目以待吧。