虛拟化

虛拟化

優化資源的解決方案
虛拟化是一個廣義的術語,是指計算元件在虛拟的基礎上而不是真實的基礎上運行,是一個為了簡化管理,優化資源的解決方案。虛拟化可以通過很多方法來證實,它不是一個單獨的實體,而是一組模式和技術的集合,這些技術提供了支持資源的邏輯表示所需的功能,以及通過标準接口将其呈現給這些資源的用戶所需的功能,這些模式本身是以各種不同虛拟形式的重複出現。[1]
    中文名:虛拟化 外文名: 适用領域:信息科學 所屬學科:

基本簡介

虛拟化是一個廣義的術語,是指計算元件在虛拟的基礎上而不是真實的基礎上運行,是一個為了簡化管理,優化資源的解決方案。如同現在空曠、通透的寫字樓,整個樓層幾乎看不到牆壁,用戶可以用同樣的成本構建出更加自主适用的辦公空間,進而節省成本,發揮空間最大利用率。這種把有限的固定的資源根據不同需求進行重新規劃以達到最大利用率的思路,在IT領域就叫做虛拟化技術。

虛拟化技術可以擴大硬件的容量,簡化軟件的重新配置過程。CPU的虛拟化技術可以單CPU模拟多CPU并行,允許一個平台同時運行多個操作系統,并且應用程序都可以在相互獨立的空間内運行而互不影響,從而顯著提高計算機的工作效率。

虛拟化技術與多任務以及超線程技術是完全不同的。多任務是指在一個操作系統中多個程序同時并行運行,而在虛拟化技術中,則可以同時運行多個操作系統,而且每一個操作系統中都有多個程序運行,每一個操作系統都運行在一個虛拟的CPU或者是虛拟主機上;而超線程技術隻是單CPU模拟雙CPU來平衡程序運行性能,這兩個模拟出來的CPU是不能分離的,隻能協同工作。

虛拟化技術也與目前VMware Work station等同樣能達到虛拟效果的軟件不同,是一個巨大的技術進步,具體表現在減少軟件虛拟機相關開銷和支持更廣泛的操作系統方面。

軟件方案

純軟件虛拟化解決方案存在很多限制。“客戶”操作系統很多情況下是通過虛拟機監視器(Virtual Machine Monitor,VMM)來與硬件進行通信,由VMM來決定其對系統上所有虛拟機的訪問。(注意,大多數處理器和内存訪問獨立于VMM,隻在發生特定事件時才會涉及VMM,如頁面錯誤。)在純軟件虛拟化解決方案中,VMM在軟件套件中的位置是傳統意義上操作系統所處的位置,而操作系統的位置是傳統意義上應用程序所處的位置。這一額外的通信層需要進行二進制轉換,以通過提供到物理資源(如處理器、内存、存儲、顯卡和網卡等)的接口,模拟硬件環境。這種轉換必然會增加系統的複雜性。此外,客戶操作系統的支持受到虛拟機環境的能力限制,這會阻礙特定技術的部署,如64位客戶操作系統。在純軟件解決方案中,軟件堆棧增加的複雜性意味着,這些環境難于管理,因而會加大确保系統可靠性和安全性的困難。

硬件方案

而CPU的虛拟化技術是一種硬件方案,支持虛拟技術的CPU帶有特别優化過的指令集來控制虛拟過程,通過這些指令集,VMM會很容易提高性能,相比軟件的虛拟實現方式會很大程度上提高性能。虛拟化技術可提供基于芯片的功能,借助兼容VMM軟件能夠改進純軟件解決方案。由于虛拟化硬件可提供全新的架構,支持操作系統直接在上面運行,從而無需進行二進制轉換,減少了相關的性能開銷,極大簡化了VMM設計,進而使VMM能夠按通用标準進行編寫,性能更加強大。另外,在純軟件VMM中,缺少對64位客戶操作系統的支持,而随着64位處理器的不斷普及,這一嚴重缺點也日益突出。而CPU的虛拟化技術除支持廣泛的傳統操作系統之外,還支持64位客戶操作系統。

虛拟化技術是一套解決方案。完整的情況需要CPU、主闆芯片組、BIOS和軟件的支持,例如VMM軟件或者某些操作系統本身。即使隻是CPU支持虛拟化技術,在配合VMM的軟件情況下,也會比完全不支持虛拟化技術的系統有更好的性能。

兩大CPU巨頭Intel和AMD都想方設法在虛拟化領域中占得先機,但是AMD的虛拟化技術在時間上要比Intel落後幾個月。Intel自2005年末開始便在其處理器産品線中推廣應用Intel Virtualization Technology(Intel VT)虛拟化技術。Intel已經發布了具有Intel VT虛拟化技術的一系列處理器産品,包括桌面平台的Pentium 4 6X2系列、Pentium D 9X0系列和Pentium EE 9XX系列,還有Core Duo系列和Core Solo系列中的部分産品,以及服務器/工作站平台上的Xeon LV系列、Xeon 5000系列、Xeon 5100系列、Xeon MP 7000系列以及Itanium 2 9000系列;同時絕大多數的Intel下一代主流處理器,包括Merom核心移動處理器,Conroe核心桌面處理器,Woodcrest核心服務器處理器,以及基于Montecito核心的Itanium 2高端服務器處理器都将支持Intel VT虛拟化技術。

而AMD方面也已經發布了支持AMD Virtualization Technology(AMD VT)虛拟化技術的一系列處理器産品,包括Socket S1接口的Turion 64 X2系列以及Socket AM2接口的Athlon 64 X2系列和Athlon 64 FX系列等等,并且絕大多數的AMD下一代主流處理器,包括即将發布的Socket F接口的Opteron都将支持AMDVT虛拟化技術。

準虛拟化

完全虛拟化是處理器密集型技術,因為它要求hypervisor管理各個虛拟服務器,并讓它們彼此獨立。減輕這種負擔的一種方法就是,改動客戶操作系統,讓它以為自己運行在虛拟環境下,能夠與hypervisor協同工作。這種方法就叫準虛拟化(para-virtualization)。

Xen是開源準虛拟化技術的一個例子。操作系統作為虛拟服務器在Xenhypervisor上運行之前,它必須在核心層面進行某些改變。因此,Xen适用于BSD、Linux、Solaris及其他開源操作系統,但不适合對像Windows這些專有的操作系統進行虛拟化處理,因為它們無法改動。

準虛拟化技術的優點是性能高。經過準虛拟化處理的服務器可與hypervisor協同工作,其響應能力幾乎不亞于未經過虛拟化處理的服務器。準虛拟化與完全虛拟化相比優點明顯,以至于微軟和VMware都在開發這項技術,以完善各自的産品。

完全虛拟

最流行的虛拟化方法使用名為hypervisor的一種軟件,在虛拟服務器和底層硬件之間建立一個抽象層。VMware和微軟的VirtualPC是代表該方法的兩個商用産品,而基于核心的虛拟機(KVM)是面向Linux系統的開源産品。

hypervisor可以捕獲CPU指令,為指令訪問硬件控制器和外設充當中介。因而,完全虛拟化技術幾乎能讓任何一款操作系統不用改動就能安裝到虛拟服務器上,而它們不知道自己運行在虛拟化環境下。主要缺點是,hypervisor給處理器帶來開銷。

在完全虛拟化的環境下,hypervisor運行在裸硬件上,充當主機操作系統;而由hypervisor管理的虛拟服務器運行客戶端操作系統(guestOS)。

實現虛拟化還有一個方法,那就是在操作系統層面增添虛拟服務器功能。SolarisContainer就是這方面的一個例子,Virtuozzo/openVZ是面向Linux的軟件方案。就操作系統層的虛拟化而言,沒有獨立的hypervisor層。相反,主機操作系統本身就負責在多個虛拟服務器之間分配硬件資源,并且讓這些服務器彼此獨立。一個明顯的區别是,如果使用操作系統層虛拟化,所有虛拟服務器必須運行同一操作系統(不過每個實例有各自的應用程序和用戶賬戶)。

雖然操作系統層虛拟化的靈活性比較差,但本機速度性能比較高。此外,由于架構在所有虛拟服務器上使用單一、标準的操作系統,管理起來比異構環境要容易。

模式簡介

虛拟化可以通過很多方法來證實。它不是一個單獨的實體,而是一組模式和技術的集合,這些技術提供了支持資源的邏輯表示所需的功能,以及通過标準接口将其呈現給這些資源的消費者所需的功能。這些模式本身都是前面介紹過的各種不同虛拟形式的重複出現。

下面是在實現虛拟化時常常使用的一些模式和技術:

單一資源多個邏輯表示

這種模式是虛拟化最廣泛使用的模式之一。它隻包含一個物理資源,但是它向消費者呈現的邏輯表示卻仿佛它包含多個資源一樣。消費者與這個虛拟資源進行交互時就仿佛自己是唯一的消費者一樣,而不會考慮他正在與其他消費者一起共享資源。

多個資源單一邏輯表示

這種模式包含了多個組合資源,以便将這些資源表示為提供單一接口的單個邏輯表示形式。在利用多個功能不太強大的資源來創建功能強大且豐富的虛拟資源時,這是一種非常有用的模式。存儲虛拟化就是這種模式的一個例子。在服務器方面,集群技術可以提供這樣的幻想:消費者隻與一個系統(頭節點)進行交互,而集群事實上可以包含很多的處理器或節點。實際上,這就是從 IT 技術設施的角度看到的網格可以實現的功能。

在多個資源之間提供單一邏輯表示

這種模式包括一個以多個可用資源之一的形式表示的虛拟資源。虛拟資源會根據指定的條件來選擇一個物理資源實現,例如資源的利用、響應時間或臨近程度。盡管這種模式與上一種模式非常類似,但是它們之間有一些細微的差别。首先,每個物理資源都是一個完整的副本,它們不會在邏輯表示層上聚集在一起。其次,每個物理資源都可以提供邏輯表示所需要的所有功能,而不是像前一種模式那樣隻能提供部分功能。這種模式的一個常見例子是使用應用程序容器來均衡任務負載。在将請求或事務提交給應用程序或服務時,消費者并不關心到底是幾個容器中執行的哪一個應用程序的副本為請求或事務提供服務。消費者隻是希望請求或事務得到處理。

單個資源單一邏輯表示

這是用來表示單個資源的一種簡單模式,就仿佛它是别的什麼資源一樣。啟用 Web 的企業後台應用程序就是一個常見的例子。在這種情況下,我們不是修改後台的應用程序,而是創建一個前端來表示 Web 界面,它會映射到應用程序接口中。這種模式允許通過對後台應用程序進行最少的修改(或根本不加任何修改)來重用一些基本的功能。也可以根據無法修改的組件,使用相同的模式構建服務。

複合或分層虛拟

這種模式是剛才介紹的一種或多種模式的組合,它使用物理資源來提供豐富的功能集。信息虛拟化是這種模式一個很好的例子。它提供了底層所需要的功能,這些功能用于管理對資源、包含有關如何處理和使用信息的元數據以及對信息進行處理的操作的全局命名和引用。例如 Open Grid Services Architecture(OGSA)或者 Grid Computing Components,實際上都是虛拟化的組合或虛拟化的不同層次。

軟件方案

純軟件虛拟化解決方案存在很多限制。“客戶”操作系統很多情況下是通過虛拟機監視器(Virtual Machine Monitor,VMM)來與硬件進行通信,由VMM來決定其對系統上所有虛拟機的訪問。(注意,大多數處理器和内存訪問獨立于VMM,隻在發生特定事件時才會涉及VMM,如頁面錯誤。)在純軟件虛拟化解決方案中,VMM在軟件套件中的位置是傳統意義上操作系統所處的位置,而操作系統的位置是傳統意義上應用程序所處的位置。

這一額外的通信層需要進行二進制轉換,以通過提供到物理資源(如處理器、内存、存儲、顯卡和網卡等)的接口,模拟硬件環境。這種轉換必然會增加系統的複雜性。此外,客戶操作系統的支持受到虛拟機環境的能力限制,這會阻礙特定技術的部署,如64位客戶操作系統。在純軟件解決方案中,軟件堆棧增加的複雜性意味着,這些環境難于管理,因而會加大确保系統可靠性和安全性的困難。

硬件方案

而CPU的虛拟化技術是一種硬件方案,支持虛拟技術的CPU帶有特别優化過的指令集來控制虛拟過程,通過這些指令集,VMM會很容易提高性能,相比軟件的虛拟實現方式會很大程度上提高性能。虛拟化技術可提供基于芯片的功能,借助兼容VMM軟件能夠改進純軟件解決方案。

由于虛拟化硬件可提供全新的架構,支持操作系統直接在上面運行,從而無需進行二進制轉換,減少了相關的性能開銷,極大簡化了VMM設計,進而使VMM能夠按通用标準進行編寫,性能更加強大。另外,在純軟件VMM中,缺少對64位客戶操作系統的支持,而随着64位處理器的不斷普及,這一嚴重缺點也日益突出。而CPU的虛拟化技術除支持廣泛的傳統操作系統之外,還支持64位客戶操作系統。

虛拟化技術是一套解決方案。完整的情況需要CPU、主闆芯片組、BIOS和軟件的支持,例如VMM軟件或者某些操作系統本身。即使隻是CPU支持虛拟化技術,在配合VMM的軟件情況下,也會比完全不支持虛拟化技術的系統有更好的性能。

兩大CPU巨頭Intel和AMD都想方設法在虛拟化領域中占得先機,但是AMD的虛拟化技術在時間上要比Intel落後幾個月。Intel自2005年末開始便在其處理器産品線中推廣應用Intel Virtualization Technology(Intel VT)虛拟化技術。

ntel已經發布了具有Intel VT虛拟化技術的一系列處理器産品,包括桌面平台的Pentium 4 6X2系列、Pentium D 9X0系列和Pentium EE 9XX系列,還有Core Duo系列和Core Solo系列中的部分産品,以及服務器/工作站平台上的Xeon LV系列、Xeon 5000系列、Xeon 5100系列、Xeon MP 7000系列以及Itanium 2 9000系列;同時絕大多數的Intel下一代主流處理器,包括Merom核心移動處理器,Conroe核心桌面處理器,Woodcrest核心服務器處理器,以及基于Montecito核心的Itanium 2高端服務器處理器都将支持Intel VT虛拟化技術。

而AMD方面也已經發布了支持AMD Virtualization Technology(AMD VT)虛拟化技術的一系列處理器産品,包括Socket S1接口的Turion 64 X2系列以及Socket AM2接口的Athlon 64 X2系列和Athlon 64 FX系列等等,并且絕大多數的AMD下一代主流處理器,包括即将發布的Socket F接口的Opteron都将支持AMDVT虛拟化技術。

相關詞條

相關搜索

其它詞條