




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、背景知識云計算平臺需要有資源池為其提供能力輸出,這種能力包括計算能力、存儲能力和網絡能力,為了將這些能力調度到其所需要的地方,云計算平臺還需要對能力進行調度管理,這些能力均是由虛擬化資源池提供的。云計算離不開底層的虛擬化技術支持。維基百科列舉的虛擬化技術有超過60 種, 基于 X86(CISC)體系的超過50 種, 也有基于RISC 體系的, 其中有 4 種虛擬化技術是當前最為成熟而且應用最為廣泛的,分別是:VMWARE 的ESX、微軟的 Hyper-V 、開源的XEN 和 KVM 。云計算平臺選用何種虛擬化技術將是云計算建設所要面臨的問題,文章就 4 種主流虛擬化技術的架構層面進行了對比
2、分析。形成資源池計算能力的物理設備,大概有兩種,一種是基于RISC 的大 /小型機,另一種是基于CISC 的 X86 服務器。大/小型機通常意味著高性能、高可靠性和高價格,而 X86 服務器與之相比有些差距,但隨著 Inter 和 AMD 等處理器廠商技術的不斷發展,原本只在小型機上才有的技術已經出現在了X86 處理器上,如64 位技術、虛擬化技術、多核心技術等等,使得X86 服務器在性能上突飛猛進。通過 TPC 組織 在 2011 年 3 月份所公布的單機計算機性能排名中可以看出, 4 路 32 核的 X86 服務器性能已經位列前10 名,更重要的是X86 服務器的性價比相對小型機有約5 倍
3、的優勢。因此,選擇X86 服務器作為云計算資源池,更能凸顯出云計算的低成本優勢。由于單機計算機的處理能力越來越大,以單機資源為調度單位的顆粒度就太大了, 因此需要有一種技術讓資源的調度顆粒更細小,使資源得到更有效和充分的利 用,這就引入了虛擬化技術。當前虛擬化技術中主流和成熟的有4 種:VMWARE 的 ESX、微軟的Hyper-V 、開源的XEN 和 KVM 。二、虛擬化架構分析從虛擬化的實現方式來看,虛擬化架構主要有兩種形式:宿主架構和裸金屬架構。 在宿主架構中的虛擬機作為主機操作系統的一個進程來調度和管理,裸金屬架構下則不存在主機操作系統,它是以Hypervisor 直接運行在物理硬件之
4、上,即使是有類似主機操作系統的父分區或Domain 0 ,也是作為裸金屬架構下的虛擬機存在的。宿主架構通常用于個人PC 上的虛擬化,如WindowsVirtualPC, VMware Workstation , Virtual Box , Qemu 等,而裸金屬架構通常用于服務器的虛擬化,如文中提及的4 種虛擬化技術。2.1 ESX 的虛擬化架構VMWare (Virtual Machine ware) 是一個“虛擬PC”軟件公司。它的產品可以使你在一臺機器上同時運行二個或更多Windows 、 DOS、 LINUX 系統。 與 “多啟動”系統相比, VMWare 采用了完全不同的概念。多啟動
5、系統在一個時刻只能運行一個系統,在系統切換時需要重新啟動機器。VMWare 是真正“同時”運行, 多個操作系統在主系統的平臺上,就象標準Windows 應用程序那樣切換。而且每個操作系統你都可以進行虛擬的分區、配置而不影響真實硬盤的數據,你甚至可以通過網卡將幾臺虛擬機用網卡連接為一個局域網,極其方便。安裝在VMware 操作系統性能上比直接安裝在硬盤上的系統低不少,因此,比較適合 學習和測試。ESXI 服務器啟動時,首先啟動Linux Kernel ,通過這個操作系統加載虛擬化組件,最重要的是ESX的 Hypervisor 組件,稱之為VMkernel , VMkernel會從 LinuxKe
6、rnel 完全接管對硬件的控制權,而該 Linux Kernel 作為 VMkernel的首個虛擬機,用于承載ESX的 serviceConsole ,實現本地的一些管理功能。VMkernel 負責為所承載的虛擬機調度所有的硬件資源,但不同類型的硬件會有些區別。虛擬機對于CPU 和內存資源是通過VMkernel 直接訪問,最大程度地減少了開銷,CPU 的直接訪問得益于CPU 硬件輔助虛擬化(Intel VT-x 和 AMDAMD-V ,第一代虛擬化技術),內存的直接訪問得益于MMU( 內存管理單元,屬于 CPU 中的一項特征)硬件輔助虛擬化(Intel EPT 和 AMD RVI/NPT ,第
7、二代虛擬化技術)。虛擬機對于I/O 設備的訪問則有多種方式,以網卡為例,有兩種方式可供選擇 : 一 是 利 用 I/O MMU 硬 件 輔 助 虛 擬 化 (Intel VT-d 和 AMD-Vi) 的VMDirectPath I/O , 使得虛擬機可以直接訪問硬件設備,從而減少對CPU 的開銷;二是利用半虛擬化的設備VMXNETx ,網卡的物理驅動在VMkernel 中,在虛擬 機中裝載網卡的虛擬驅動,通過這二者的配對來訪問網卡,與仿真式網卡(IntelE1000) 相比有著較高的效率。半虛擬化設備的安裝是由虛擬機中VMwaretool 來實現的,可以在Windows 虛擬機的右下角找到它。
8、網卡的這兩種方式,前者有著顯著的先進性,但后者用得更為普遍,因為VMDirectPath I/O 與VMware 虛擬化的一些核心功能不兼容,如:熱遷移、快照、容錯、內存過量使用等。ESX 的物理驅動是內置在Hypervisor 中,所有設備驅動均是由VMware預植入的。因此,ESX對硬件有嚴格的兼容性列表,不在列表中的硬件,ESX將拒絕在其上面安裝。2.2 Hyper-V 的虛擬化架構Hyper-V 是微軟新一代的服務器虛擬化技術,首個版本于2008 年 7 月發布,目前最新版本是2011 年 4 月發布 R2 SP1 版, Hyper-V 有兩種發布版本:一是獨立版,如Hyper-V S
9、erver 2008 ,以命令行界面實現操作控制,是一個免費的版本;二是內嵌版,如Windows Server 2008 , Hyper-V 作為一個可選開啟的角色。對于一臺沒有開啟Hyper-V 角色的 Windows Server 2008 來說,這個操作系統將直接操作硬件設備,一旦在其中開啟了Hyper-V 角色,系統會要求重新啟動服務器。雖然重啟后的系統在表面看來沒什么區別,但從體系架構上看則與之前的完全不同了。在這次重啟動過程中,Hyper-V 的 Hypervisor 接管了硬件設備的控制權,先前的Windows Server 2008 則成為 Hyper-V 的首個虛擬機,稱之為
10、父分區,負責其他虛擬機(稱為子分區)以及I/O 設備的管理。Hyper-V 要求 CPU 必須具備硬件輔助虛擬化,但對MMU 硬件輔助虛擬化則是一個增強選項。其實 Hypervisor 僅實現了CPU 的調度和內存的分配,而父分區控制著I/O設備,它通過物理驅動直接訪問網卡、存儲等。子分區要訪問I/O 設 備需要通過子分區操作系統內的VSC(虛擬化服務客戶端),對VSC 的請求由VMBUS( 虛擬機總線)傳遞到父分區操作系統內的VSP(虛擬化服務提供者 ), 再由 VSP 重定向到父分區內的物理驅動,每種 I/O 設備均有各自的VSC 和 VSP 配對, 如存儲、網絡、視頻和輸入設備等,整個I
11、/O 設備訪問過程對于子分區的操作系統是透明的。其實在子分區操作系統內,VSC 和 VMBUS 就是作為I/O 設備的虛擬驅動,它是子分區操作系統首次啟動時由Hyper-V 提供的集成服務包安裝,這也算是一種半虛擬化的設備,使得虛擬機與物理I/O 設備無關。如果子分區的操作系統沒有安裝Hyper-V 集成服務包或者不支持Hyper-V 集成服務包(對于這種操作系統,微軟稱之為Unenlightened OS , 如未經認證支持的Linux 版本和舊的 Windows 版本 ),則這個子分區只能運行在仿真狀態。其實微軟所宣稱的啟蒙式 (Enlightenment) 操作系統,就是支持半虛擬化驅動
12、的操作系統。Hyper-V 的 Hypervisor 是一個非常精簡的軟件層,不包含任何物理驅動,物理服務器的設備驅動均是駐留在父分區的Windows Server 2008 中, 驅動程序的安裝和加載方式與傳統Windows 系統沒有任何區別。因此,只要是Windows 支持的硬件,也都能被Hyper-V 所兼容。2.3 XEN 的虛擬化架構XEN 最初是劍橋大學Xensource 的一個開源研究項目,2003 年 9 月發布了首個版本XEN 1.0 , 2007 年 Xensource 被 Citrix 公司收購,開源XEN 轉由 繼續推進,該組織成員包括個人和公司(
13、如 Citrix、 Oracle 等 )。Xen 的缺點是操作系統必須進行顯式地修改( “移植” )以在 Xen 上運行(但是提供對用戶應用的兼容性),所以比較麻煩。使得Xen 無需特殊硬件支持,就能達到高性能的虛擬化。Linux 的官方內核在較早之前已經去掉了對Xen 的支持。 。相對于 ESX和 Hyper-V 來說, XEN 支持更廣泛的CPU 架構,前兩者只支持 CISC的 X86/X86_64 CPU 架構, XEN 除此之外還支持RISC CPU 架構,如IA64 、 ARM 等。XEN 的 Hypervisor 是服務器經過BIOS 啟動之后載入的首個程序,然后啟動一個具有特定權
14、限的虛擬機,稱之為Domain 0( 簡稱 Dom 0) 。 Dom 0 的操作系統可以是Linux 或 Unix , Domain 0 實現對 Hypervisor 控制和管理功能。在所承載的虛擬機中,Dom 0 是唯一可以直接訪問物理硬件(如存儲和網卡)的虛擬機,它通過本身加載的物理驅動,為其它虛擬機(Domain U ,簡稱 DomU)提供訪問存儲和網卡的橋梁。XEN 支持兩種類型的虛擬機,一類是半虛擬化(PV, Paravirtualization) ,另一類是全虛擬化(XEN 稱其為 HVM , Hardware Virtual Machine) 。半虛擬化需要特定內核的操作系統,如
15、基于 Linux paravirt_ops(Linux 內核的一套編譯選項)框架的Linux 內核, 而 Windows 操作系統由于其封閉性則不能被XEN 的半虛擬化所支持, XEN 的半虛擬化有個特別之處就是不要求CPU 具備硬件輔助虛擬化,這非常適用于2007 年之前的舊服務器虛擬化改造。全虛擬化支持原生的操作系統,特別是針對Windows 這類操作系統,XEN 的全虛擬化要求CPU具備硬件輔助虛擬化,它修改的Qemu 仿真所有硬件,包括:BIOS、 IDE 控制器、 VGA 顯示卡、 USB 控制器和網卡等。為了提升I/O 性能,全虛擬化特別針對磁盤和網卡采用半虛擬化設備來代替仿真設備
16、,這些設備驅動稱之為PV onHVM ,為了使PV on HVM 有最佳性能。CPU 應具備 MMU 硬件輔助虛擬化。XEN 的 Hypervisor 層非常薄,少于15 萬行的代碼量,不包含任何物理設備驅動,這一點與Hyper-V 是非常類似的,物理設備的驅動均是駐留在Dom 0中,可以重用現有的Linux 設備驅動程序。因此,XEN 對硬件兼容性也是非常廣泛的,Linux 支持的,它就支持。2.4 KVM 的虛擬化架構KVM 的全稱是Kernel-based Virtual Machine , 字面意思是基于內核虛擬機。 其最初是由Qumranet 公司開發的一個開源項目,2007 年 1
17、 月首次被整合到 Linux 2.6.20 核心中;2008 年, Qumranet 被 RedHat 所收購,但KVM 本身仍是一個開源項目,由RedHat 、 IBM 等廠商支持。KVM 作為 Linux 內核中的一個模塊,與 Linux 內核一起發布。KVM 是指基于Linux 內核 ( Kernel-based )的虛擬機(Virtual Machine ) 。 KVM 最大的好處就在于它是與Linux 內核集成的,所以速度很快。KVM 的宿主操作系統必須是Linux ,支持的客戶機操作系統包括 Linux 、 Windows 、 Solaris 和BSD,運行在支持虛擬化擴展的x86
18、 和x86_64 硬件架構上,這意味著KVM 不能運行在老式CPU 上,新 CPU 如果不支持虛擬化擴展也不能運行(如英特爾的Atom 處理器) 。 。與 XEN 類似, KVM 支持廣泛的CPU 架構, 除了 X86/X86_64 CPU 架構之外,還將會支持大型機(S/390) 、小型機(PowerPC 、 IA64) 及 ARM 等。KVM 充分利用了CPU 的硬件輔助虛擬化能力,并重用了Linux 內核的諸多功能,使得KVM 本身是非常瘦小的,KVM 的創始者AviKivity 聲稱 KVM 模塊僅有約 10000 行代碼,但我們不能認為KVM 的 Hypervisor 就是這個代碼量
19、,因為從嚴格意義來說,KVM 本身并不是Hypervisor ,它僅是Linux 內核中的一個可裝載模塊,其功能是將Linux 內核轉換成一個裸金屬的Hypervisor 。這相對于其它裸金屬架構來說,它是非常特別的,有些類似于宿主架構,業界甚至有人稱其是半裸金屬架構。通過 KVM 模塊的加載將Linux 內核轉變成Hypervisor , KVM 在 Linux 內核的用戶(User)模式和內核(Kernel) 模式基礎上增加了客戶(Guest) 模式。 Linux本身運行于內核模式,主機進程運行于用戶模式,虛擬機則運行于客戶模式,使得轉變后的Linux 內核可以將主機進程和虛擬機進行統一的
20、管理和調度,這也是 KVM 名稱的由來。KVM 利用修改的QEMU 提供BIOS、顯卡、網絡、磁盤控制器等的仿真,但對于 I/O 設備(主要指網卡和磁盤控制器)來說,則必然帶來性能低下的問題。因此,KVM 也引入了半虛擬化的設備驅動,通過虛擬機操作系統中的虛擬驅動與主機 Linux 內核中的物理驅動相配合,提供近似原生設備的性能。從此可以看出,KVM 支持的物理設備也即是Linux 所支持的物理設備。本文所討論的4 種虛擬化技術都用到了半虛擬化驅動,若要在不同虛擬化架構之間遷移虛擬機,這些半虛擬化驅動將必然帶來兼容性問題。因此, RedHat 和IBM 聯合 Linux 社區推出VirtIO
21、半虛擬化驅動開發標準,基于 VirtIO 的半虛擬化驅動獨立于Hypervisor , 跨平臺遷移時半虛擬化驅動仍可重用,使得不同虛擬化架構之間更容易實現互操作。2.5 架構分析總結目前, 傳統概念下的半虛擬化和全虛擬化的界線越來越模糊了,而且半虛擬化和全虛擬化得到了有機的整合,如半虛擬化的設備驅動和全虛擬化的虛擬機在上述四種虛擬化架構中得到了統一,很多虛擬化廠商也不再明確自己的虛擬化產品歸類(如 VMware 和微軟)。隨著 CPU 硬件輔助虛擬化技術發展到了二代,而且新版的操作系統對虛擬化 技 術 的 原 生 支 持 (如Windows7 的 Natively Enlightened ,
22、Linux 的paravirt_ops 內核選項),以及Hypervisor 對虛擬機的CPU 調度和內存管理越來越少的干預。則軟件做得越少而硬件做得越多,如虛擬機之間內存管理所需用到的地址翻譯由軟件的影式分頁(Shadow Paging) 轉變為由CPU 硬件加速的嵌套分頁 (Nested Paging) ,各種虛擬化技術既有全虛擬化技術對操作系統的兼容性,又有半虛擬化技術所帶來的性能優勢。從架構上來看,各種虛擬化技術沒有明顯的性能差距,穩定性也在逐漸逼近中, 各自有著自身的優勢場景和市場群體。因此, 我們在進行虛擬化技術選型時,不應局限于某一種虛擬化技術,而應該有一套綜合管理平臺實現對各種
23、虛擬化技術的兼容并蓄,實現不同技術架構的統一管理及跨技術架構的資源調度,最終達到云計算可運營的目。三、綜合對比KVM 、 Xen 、 VMWare 、 Hyper-v 的對比如下表所示。名稱是否開源是否免費性能優點缺點KVM是是高1. KVM 是內核本身的一部分,因此可以利用內核的優化和改進2. 高性能, 穩定, 無需修改客戶機系統3. 開源、免費運行在Linux 內核之上的寄居式虛擬化架構,會消耗比較多的計算資源XEN是是高1.性能較好操作復雜,維護成本2. 開源、免費較高,VMWare否否一般比較成熟的商業軟件,市場占有率較大不開源,需要付費Hyper-v否否一般比較成熟的商業軟件,微軟服務器操作系統在中小企業有一定的占有率windows2008R2windows2012 產品組件注 :由于KVM 獨特的虛擬化架構會消耗比較多的計算資源,不過針對這一點,Intel 、 AMD 已經在處理器設計上有專門的VT-x 和 AMD-V 擴展,這種特性在每次硬件更新的時候也會更新,往往每次更新后都對虛擬化性能和速度上有明顯的提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西師范大學現代文理學院《產品生態設計》2023-2024學年第一學期期末試卷
- 北京中醫藥大學東方學院《藥用拉丁語》2023-2024學年第一學期期末試卷
- 四川建筑職業技術學院《人體影像解剖學實驗》2023-2024學年第一學期期末試卷
- 廈門醫學院《中國古建筑藝術鑒賞》2023-2024學年第一學期期末試卷
- 婁底幼兒師范高等專科學校《項目導向專業課程量子信息方向》2023-2024學年第一學期期末試卷
- 世界濕地日科普活動方案
- 世界鄭氏宗親活動方案
- 業主搬家活動方案
- 東關街道防災活動方案
- 外貿企業幫扶活動方案
- Q∕SY 01007-2016 油氣田用壓力容器監督檢查技術規范
- 赤水市轄區內楓溪河(風溪河)、寶沅河(寶源河)、丙安河
- 水利水電 流體力學 外文文獻 外文翻譯 英文文獻 混凝土重力壩基礎流體力學行為分析
- 零星維修工程項目施工方案
- 物流公司超載超限整改報告
- 起重機安裝施工記錄表
- 江蘇省高中學生學籍卡
- 碳排放問題的研究--數學建模論文
- 贏越酒會講解示范
- 物業承接查驗協議書
- 主系表結構句子練習題
評論
0/150
提交評論