虛擬化

虛擬化

虛擬化虛擬化是一個廣義的術語,是指計算元件在虛擬的基礎上而不是真實的基礎上運行,是一個為了簡化管理,最佳化資源的解決方案。如同現在空曠、通透的寫字樓,整個樓層幾乎看不到牆壁,用戶可以用同樣的成本構建出更加自主適用的辦公空間,進而節省成本,發揮空間最大利用率。

虛擬化虛擬化
虛擬化是指計算機元件在虛擬的基礎上而不是真實的基礎上運行。虛擬化技術可以擴大硬體的容量,簡化軟體的重新配置過程。CPU的虛擬化技術可以單CPU模擬多CPU並行,允許一個平台同時運行多個作業系統,並且應用程式都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。

基本簡介

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

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

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

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

軟體方案

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

VMware是提供一套虛擬機解決方案的軟體,主要產品分為如下三個:

VMware-ESX-Server

這個版本並不需要作業系統的支持。它本身就是一個作業系統,用來管理硬體資源。所有的系統都安裝在它的上面。帶有遠程web管理和客戶端管理功能。

VMware-GSX-Server

這個版本就要安裝在一個作業系統下了,這個作業系統叫做HOSTOS。這個HOSTOS可以是Windows2000Server以上的Windows系統或者是Linux(官方支持列表中只有RH,SUSE,Mandrake很少的幾種),和VMware-ESX-Server一樣帶有遠程web管理和客戶端管理功能。

VMware-WorkStation

這個版本和VMware-GSX-Server版本的機構是一樣的。也是要安裝在一個作業系統下,對作業系統的要求也是Windows2000以上或者Linux。和Vmware的區別就是沒有web遠程管理和客戶端管理。VMware-ESX-Server已經成為整機虛擬化的必然選擇。

桌面虛擬化

伺服器虛擬化主要針對伺服器而言,而虛擬化最接近用戶的還是要算的上桌面虛擬化了,桌面虛擬化主要功能是將分散的桌面環境集中保存並管理起來,包括桌面環境的集中下發,集中更新,集中管理。桌面虛擬化使得桌面管理變得簡單,不用每台終端單獨進行維護,每台終端進行更新。終端數據可以集中存儲在中心機房裡,安全性相對傳統桌面套用要高很多。桌面虛擬化可以使得一個人擁有多個桌面環境,也可以把一個桌面環境供多人使用,節省了license。
桌面虛擬化主要有傳統的VDI和新型的VOI(VirtualOSInfrastructure)兩種架構,二者最大的區別在於,傳統的虛擬桌面基礎架構(VDI,VirtualDesktopInfrastructure)是許多機構目前正在評估的全新模式。VDI旨在為智慧型分散式計算帶來出色的回響能力和定製化的用戶體驗,並通過基於伺服器的模式提供管理和安全優勢。而VOI桌面虛擬化從桌面套用交付提升到了OS(作業系統)的標準化與即時分發,與傳統的VDI設計不同之處在於終端對本機系統資源的充分利用不再依靠於GPU虛擬化與CPU虛擬化技術,而是直接在I/O層實現對物理存儲介質的數據重定向,以達到虛擬化的作業系統完全工作於本機物理硬體之上,從驅動程式、應用程式到各種設備均不存在遠程連線埠映射關係,而是直接的內部址。因此杜絕於VDI所存在的伺服器與網路消耗大及軟硬體兼容性問題。

硬體方案

虛擬化虛擬化
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(IntelVT)虛擬化技術。目前,Intel已經發布了具有IntelVT虛擬化技術的一系列處理器產品,包括桌面平台的Pentium46X2系列、PentiumD9X0系列和PentiumEE9XX系列,還有CoreDuo系列和CoreSolo系列中的部分產品,以及伺服器/工作站平台上的XeonLV系列、Xeon5000系列、Xeon5100系列、XeonMP7000系列以及Itanium29000系列;同時絕大多數的Intel下一代主流處理器,包括Merom核心移動處理器,Conroe核心桌面處理器,Woodcrest核心伺服器處理器,以及基於Montecito核心的Itanium2高端伺服器處理器都將支持IntelVT虛擬化技術。

AMD方面也已經發布了支持AMD Virtualization Technology(AMDVT)虛擬化技術的一系列處理器產品,包括SocketS1接口的Turion64X2系列以及SocketAM2接口的Athlon64X2系列和Athlon64FX系列等等,並且絕大多數的AMD下一代主流處理器,包括即將發布的SocketF接口的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界面,它會映射到應用程式接口中。這種模式允許通過對後台應用程式進行最少的修改(或根本不加任何修改)來重用一些基本的功能。也可以根據無法修改的組件,使用相同的模式構建服務。
複合或分層虛擬
這種模式是剛才介紹的一種或多種模式的組合,它使用物理資源來提供豐富的功能集。信息虛擬化是這種模式一個很好的例子。它提供了底層所需要的功能,這些功能用於管理對資源、包含有關如何處理和使用信息的元數據以及對信息進行處理的操作的全局命名和引用。例如OpenGridServicesArchitecture(OGSA)或者GridComputingComponents,實際上都是虛擬化的組合或虛擬化的不同層次。

評估

1、使用習慣、感受:企業大量的分散的PC採用集中式運算結合虛擬化技術進行集中式的管理確實為我們企業提供了很好的解決方案。不過我們知道計算資源是不可缺少的,不過是存在的位置不同而已,我們放在終端上還是伺服器上都是無法減少的。假設我們當今每個人桌面的計算資源相當於(cpu雙核2.0記憶體2G)在這種環境下我們已經習慣了的用戶體驗轉移到伺服器上,100個用戶的並發那就要求伺服器提供100X2X2等於400的CPU運算能力和200G的記憶體才可以滿足用戶習慣了的體驗環境(冗餘未計算內)。那么我們計算如果我們的企業有500個用戶呢,如果是1000個用戶呢。實際上我們不可能為我們的用戶提供如此的計算能力的,那么也就從這個單方面就必須犧牲用戶的體驗了。其二在每個用戶都要去伺服器端下載它所用的作業系統對頻寬壓力是巨大的,用戶越多這個因素就越明顯,所以這個因素也需要企管人員重點考慮。用戶的體驗沒以前好了,會不會對IT人員的工作推進造成影響呢?
2、設備和軟體兼容性:我們習慣了即插即用的外設設備,新的系統會不會對日常的工作習慣造成影響呢,如果有了影響是如何避免的呢?我們的IT管理人員的工作量是增加了還是降低了,效率是提高了還是降低了?需要我們企管人員具體考量。
3、成本:企業花費的每一分錢都會具體考慮投入產出比,一個好的管理工具要推廣,最起碼它能夠給企業在一個時間內帶來成倍以上的收益才給與考慮的。集中式的虛擬化方案帶來的投入成本主要是虛擬化軟體授權費用,正版作業系統的授權,正版辦公軟體的授權,瘦客戶機的採購費用,網路設備的換代費用,新的存儲設備增加費用,伺服器集群的硬體和軟體採購費用,甚至有一些網路改造的費用。由於新的技術對管理人員的技術要求的提高相應的就會有技術人員的培訓學習費用,新增管理人員費用。由於設備的成倍增加帶來的還有機房改造電力消耗的各種費用。考慮到各種費用的總和,計算出的單點改造成本,還要考慮到日後虛擬化平台升級費用和兼容性是否能匹配企業內部的系統升級。然後才可以制定一個完整的財務規劃來應對整個項目的開支和升級。這個計畫就需要整個集團公司所有部門一起參與協調。
4、多媒體和大型程式體驗:在一些設計部門和跟設計關聯部門,需要大型的設計程式由於當今顯示卡虛擬化的技術尚未成熟,所以在這個場景中是無法套用的。
5、軟硬體架構改變:新的系統和新的套用,我們有做好準備嗎來應對管理架構的改變,來應對團隊組織的改變嗎?最後建議我們的企管人員對於雲計算模式引入虛擬化產品的方案問一句:我們準備好了嗎?

軟體方案

純軟體虛擬化解決方案存在很多限制。“客戶”作業系統很多情況下是通過虛擬機監視器(VirtualMachineMonitor,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年末開始便在其處理器產品線中推廣套用IntelVirtualizationTechnology(IntelVT)虛擬化技術。Intel已經發布了具有IntelVT虛擬化技術的一系列處理器產品,包括桌面平台的Pentium46X2系列、PentiumD9X0系列和PentiumEE9XX系列,還有CoreDuo系列和CoreSolo系列中的部分產品,以及伺服器/工作站平台上的XeonLV系列、Xeon5000系列、Xeon5100系列、XeonMP7000系列以及Itanium29000系列;同時絕大多數的Intel下一代主流處理器,包括Merom核心移動處理器,Conroe核心桌面處理器,Woodcrest核心伺服器處理器,以及基於Montecito核心的Itanium2高端伺服器處理器都將支持IntelVT虛擬化技術。
而AMD方面也已經發布了支持AMDVirtualizationTechnology(AMDVT)虛擬化技術的一系列處理器產品,包括SocketS1接口的Turion64X2系列以及SocketAM2接口的Athlon64X2系列和Athlon64FX系列等等,並且絕大多數的AMD下一代主流處理器,包括即將發布的SocketF接口的Opteron都將支持AMDVT虛擬化技術。

相關搜尋

熱門詞條

聯絡我們