天天看點

雲管理之虛拟化——虛拟化的分類

NOTE:該篇主要内容來自Best Damn Server Virtualization Period Book

4.虛拟化的種類

    回顧一下IA-32(x86)架構,所有的軟體都運作在4個權限層級中的一個層級上。作業系統在通常運作在Ring-0,這個層級有足夠的通路權限來通路最多的處理器和平台資源;個人應用程式一般在Ring-3中運作,這個層級限制了一些影響其他應用程式的功能(例如記憶體映射)。這樣,作業系統才能保留對資源的控制,進而保證系統和應用程式的穩定運作。

    由于VMM必須對平台資源有控制的權限,一般的方法就是将VMM運作在Ring-0中,而子作業系統則運作在Ring-1或Ring-3中。然而,現在的作業系統都是特意為運作在Ring-0中設計的。這帶來了一些挑戰。值得一提的是,有17條“特權”指令能夠控制關鍵平台資源。這些指令偶爾會在大多數現存作業系統版本中使用。當一個作業系統沒有在Ring-0中運作的時候,這些指令中的任意一個指令都會造成沖突,或是造成系統出錯,或是帶來不正确的響應。VMM所面對的有關IA-32(x86)架構的挑戰,在與IA-32的指令集架構一起工作的時候,還包括了Popek和Goldberg的虛拟化要求。

    很多形式的虛拟化存在于現代資訊技術中。最常見的是伺服器虛拟化,這是當提到“虛拟化”這個術語時人們最常想到的虛拟化形式。然而,除了伺服器虛拟化,IT組織也基于這個詞的隐含意,使用其他類型的虛拟化。許多人認為虛拟化意味着将統一的計算資源“分區”(partitioning),變成多個實體。虛拟化也可以代表相反的意思——将多個實體以一個虛拟實體的形式表現出來,進而隐藏或掩蓋了背景真正運作的計算資源。許多制造商和獨立軟體供應商已經開發出相應軟體來以後者的形式進行虛拟化。其中最常見的是存儲、網絡和應用程式的虛拟化。

4.1 伺服器虛拟化

    伺服器虛拟化是當今虛拟化應用中最主流的形式。雖然到目前為止我們讨論的概念都是與一般意義上的虛拟化相關,但這些概念經常展現在伺服器虛拟化的産品中。盡管伺服器虛拟化可以存在任何CPU平台和架構上,最常用的平台還是IA-32或x86架構。x86架構的指令集架構以及Popek和Goldberg的虛拟化要求所帶來的挑戰已經引導了幾種VMM開發的方式。雖然在x86上有很多不同的VMM應用方式,他們可以被概括為4種比較明顯的種類。

虛拟化類型

描述

優勢

劣勢

完全虛拟化(full virtualization)

這種虛拟化技術對底層硬體進行了模拟。這使得一個系統中能夠直接運作在硬體上的應用程式也可以運作在虛拟機上。完全虛拟化支援最多種類的子作業系統。

完全隔離每個虛拟機和VMM;大多數作業系統可以直接安裝,而不用做任何修改;提供接近實體CPU和記憶體的性能;通過二進制更新檔(binary patch),利用複雜的技術在運作環境中捕獲和模拟指令。

要求硬體和軟體元素的正确組合;在純粹的x86架構上不太可能實作,因為有些特權指令不能被捕獲;性能會被x86指令的捕獲和模拟技術影響。

半虛拟化(paravirtualization)

這種虛拟化部分模拟了底層硬體。大多數硬體特征,而不是所有硬體特征被模拟。最關鍵的特征是位址空間的虛拟化,進而保證為虛拟機提供它們自己的位址空間。

比完全虛拟化更加容易實作;在沒有硬體輔助的基礎上,半虛拟化的子作業系統在網絡和磁盤I/O方面是最高性能的虛拟機。

在半虛拟化虛拟機中運作的作業系統如不作大量修改,則無法運作;虛拟機向下相容的能力較弱,也不是非常便攜。

作業系統虛拟化(operating system virtualization)

這種虛拟化是基于一個作業系統執行個體的。

資源很有限而效率很高;隻需要管理和更新一個作業系統;以本地的速度運作;支援所有實體主機配置支援的硬體和作業系統特征。

不支援同時運作不同系列的作業系統,例如Windows和Linux;相比其他虛拟化形式,虛拟機的獨立性和安全性較差;Ring-0以被作業系統占據和運作。

本地虛拟化(native virtualization)

這是x86架構虛拟化技術中最新的技術。又經常被稱為混合虛拟化。這種類型的虛拟化是完全虛拟化或半虛拟化與I/O加速技術的結合。與完全虛拟化相同,子作業系統不需要修改就可以直接安裝。它利用了x86架構的最新CPU技術——Intel VT和AMD-V。

用硬體而不是軟體中的捕獲模拟技術來處理不可虛拟的指令;有選擇地應用了記憶體和I/O加速技術;支援x64(64位x86擴充)的目标作業系統;擁有各種類型的x86虛拟機中最高的CPU、記憶體和I/O性能。

要求具備支援硬體輔助加速的CPU架構;還是需要對一些半虛拟化的作業系統進行修改,雖然比純粹的半虛拟化少。

 NOTE: 硬體輔助(hardware-assisted)增強虛拟化

    為了使你的基于x86架構的實體平台以及所托管的虛拟機的性能最大化,確定選擇硬體輔助(hardware-assisted)虛拟化的處理器。Intel和AMD都在最新一代處理器中(無論是伺服器用還是PC和筆記本用)提供了這項技術——Intel提供了Virtualization Technology(Intel VT)技術;AMD提供了Pacifica(AMD-V)技術。

    硬體輔助的處理器為子作業系統提供了他們所需要的權限,來直接通路平台資源,而不用共享硬體的控制權。以前,VMM必須為子作業系統模拟硬體,而它自身保留了對硬體平台的控制。這些新型的處理器給予VMM和子作業系統各自所需的運作權限,而不需要再進行硬體仿真或修改作業系統。

    這種伺服器幫助VMM開發者設計更簡化的VMM。由于硬體輔助的處理器能夠處理運算密集型的計算,用以管理向子作業系統發放平台控制權的任務,VMM的計算負擔則被減輕。同時,CPU和子作業系統關鍵狀态資訊現在能夠被存儲在一個被保護的記憶體中,這個記憶體隻有VMM可以通路,進而保護了傳送過程的完整性。

    最後,硬體輔助處理器中所有的處理器都支援64位處理,這使得64位運算的優點将使子作業系統和其上的應用程式獲益。這為虛拟機提供了更大的容量、擴充空間和可擴充性。

4.2 存儲虛拟化

    如今,存儲供應商已經長時間為他們的客戶提供高性能的存儲解決方案。從最基礎的形式來說,存儲虛拟化存在于多種實體磁盤驅動器或主軸驅動器(spindle)的集合中,并将這種集合作為一個實體展現給主機伺服器和作業系統,例如RAID技術的使用。這可以被認為是一種虛拟化,因為所有的驅動器都被當做一個邏輯驅動器來進行使用和互動,雖然它是由兩個或更多的驅動器組成的。

    存儲區域網(Storage Area Network,SAN)技術的出現與應用進一步地掩蓋了真正的存儲層以及它的元件。不用改變作業系統中負責管理存儲子系統的任何代碼,IT組織正在多台伺服器之間共享存儲元件,即使每台伺服器都以為它們擁有專門的實體存儲。事實上,存儲管理者隻是簡單地劃分出一塊虛拟存儲空間并提供給相應的主機使用。

    存儲虛拟化在更先進技術問世後被推進至更高的等級。有這種産品——它能夠根據一定的規定和政策(例如彈性政策、資料壽命或上一次通路記錄),實時地、在背景從一個存儲平台向另一個存儲平台遷移,而不對主機造成任何中斷或影響。也有這樣的軟體産品能夠捕捉并模拟本地SCSI指令,并在背景将這些指令翻譯成其他存儲指令,使一個磁盤列陣看起來像一些列錄音帶驅動器或錄音帶庫,進而不需要任何修改來支撐軟體和作業系統。

4.3 網絡虛拟化

    正如存儲供應商一樣,網絡硬體制造商也進入虛拟化領域很長時間,雖然他們的産品并不總是被認為實作了虛拟化。最普遍的網絡虛拟化的形式有:

虛拟區域網路(Virtual LAN,vLAN)由IEEE 802.1Q标準認定,虛拟區域網路是一種在一個共享實體網絡中建立獨立邏輯網絡的方法。網絡管理者将虛拟區域網路融入他們的網絡設計中,是為了邏輯上分割廣播域并控制兩個網絡分割上的裝置互動。虛拟區域網路技術已經發展起來,并作為當今幾乎所有以太網交換機的專用內建電路中的常見特征。盡管多種裝置可以實體上連接配接到同一個網絡交換機上,虛拟區域網路技術使網絡管理者能夠建立多個互相隔離的虛拟網絡。每個部分運用主交換機中的一部分有效資源(CPU、記憶體、帶寬等等)。

 虛拟IP(virtual IP)一種不連接配接到特定計算機或計算機網絡接口的IP位址。虛拟IP通常配置設定給網絡流量經過途中的網絡裝置。流入包被發送到虛拟IP上,并被重定向至接包主機的真實端口上。虛拟IP大多用于備援和負載均衡的情況下,這些情況下多個系統運作着一個一般的應用程式,并有能力接收來自網絡裝置重定向的流量。

虛拟專用網(virtual private network,×××)一個用于在公共網絡上進行保密通信的專用網絡。×××的流量經常在一些非常不安全的媒體之上傳輸(如Internet),并為敏感和機密的資訊建立起從一端至另一端的安全信道。它同時也作為一種将職員的家庭網絡與公司網絡相連的方式。雖然需要特殊的軟體來建立這種連接配接,但這種連接配接一旦建立,使用者與網絡上其他資源互動的處理方式與在一個真正的實體網絡上相同,而不需要修改任何網絡棧或作業系統。

4.4 應用程式虛拟化

    應用程式虛拟化或軟體虛拟化是日益發展的虛拟化家族中的最新成員。它是一種對軟體進行管理的新方式。打破應用程式、作業系統和托管作業系統的硬體之間的範式和聯系,應用程式虛拟化運用虛拟軟體包來放置應用程式和資料,而不需要傳統的安裝流程。應用程式包可以被瞬間激活或失效,以及恢複預設設定,進而降低了幹擾其他應用程式的風險,因為他們隻運作在自己的計算空間内。

    應用程式虛拟化的好處如下:

消除應用程式沖突 應用程式可以保證使用正确版本的檔案和屬性檔案(注冊設定),而不用對作業系統進行任何修改,也不會對其他應用程式造成任何幹擾。

通過快速供應來減少應用程式的導入時間 管理者可以建立事先打包好的應用程式,這些應用程式包可以在本地或通過網絡遠端快速部署,即便是使用低速的網絡連接配接。虛拟軟體應用程式甚至可以根據需要而被傳輸到系統中,而不需要安裝的流程。

運作同一個應用程式的多個版本 多個版本的應用程式可以運作在同一個作業系統執行個體上,而不會發生任何沖突,進而提高了應用程式的更新方式,加速新特征的測試以及整合到運作環境中的過程。

上一篇: KVM虛拟化
下一篇: 網絡虛拟化

繼續閱讀