虛擬化是一種方法,本質(zhì)上講是指從邏輯角度而不是物理角度來對(duì)資源進(jìn)行配置,是從單一的邏輯角度來看待不同的物理資源的方法。以此出發(fā),虛擬化是一種邏輯角度出發(fā)的資源配置技術(shù),是物理實(shí)際的邏輯抽象。比如說,當(dāng)前只有一臺(tái)計(jì)算機(jī),通過虛擬技術(shù),在用戶看來,可以多臺(tái),每臺(tái)都有其各自的CPU、內(nèi)存、硬盤等物理資源。
對(duì)于用戶,虛擬化技術(shù)實(shí)現(xiàn)了軟件跟硬件分離,用戶不需要考慮后臺(tái)的具體硬件實(shí)現(xiàn),而只需在虛擬層環(huán)境上運(yùn)行自己的系統(tǒng)和軟件。而這些系統(tǒng)和軟件在運(yùn)行時(shí),也似乎跟后臺(tái)的物理平臺(tái)無關(guān)。
服務(wù)器虛擬化技術(shù)是將服務(wù)器物理資源抽象成邏輯資源,讓一臺(tái)服務(wù)器變成幾臺(tái)甚至上百臺(tái)相互隔離的虛擬服務(wù)器,我們不再受限于物理上的界限,而是讓CPU、內(nèi)存、磁盤、I/0等硬件變成可以動(dòng)態(tài)管理的“資源池”,從而提高資源的利用率,簡化系統(tǒng)管理,實(shí)現(xiàn)服務(wù)器資源整合,讓IT對(duì)業(yè)務(wù)的變化更具適應(yīng)力。
虛擬化的概念在20世紀(jì)60年代首次出現(xiàn),利用它可以對(duì)屬于稀有而昂貴資源的大型機(jī)硬件進(jìn)行分區(qū)。隨著時(shí)間的推移,微型計(jì)算機(jī)和PC可提供更有效、更經(jīng)濟(jì)的方法來分配處理能力,因此到20世紀(jì)80年代,虛擬技術(shù)已不再廣泛使用。
但是到了20世紀(jì)90年代,研究人員開始探索如何利用虛擬化解決與廉價(jià)硬件激增相關(guān)的一些問題,例如,利用率不足、管理成本不斷攀升和易受攻擊等。虛擬化技術(shù)處于時(shí)代前沿,可以幫助企業(yè)升級(jí)和管理他們?cè)谑澜绺鞯氐腎T基礎(chǔ)架構(gòu)并確保其安全。虛擬化技術(shù)可以擴(kuò)大硬件的容量,簡化軟件的重新配置過程。CPU的虛擬化技術(shù)可以單CPU模擬多CPU并行,允許一個(gè)平臺(tái)同時(shí)運(yùn)行多個(gè)操作系統(tǒng),并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率。
所有的IT設(shè)備,不管是PC、服務(wù)器還是存儲(chǔ),都有一個(gè)共同點(diǎn):它們被設(shè)計(jì)用來完成一組特定的指令。這些指令組成一個(gè)指令集。對(duì)于虛擬技術(shù)而言,“虛擬”實(shí)際上就是指的虛擬這些指令集。虛擬機(jī)有許多不同的類型,但是它們有一個(gè)共同的主題就是模擬一個(gè)指令集的概念。每個(gè)虛擬機(jī)都有一個(gè)用戶可以訪問的指令集。虛擬機(jī)把這些虛擬指令“映射”到計(jì)算機(jī)的實(shí)際指令集。硬分區(qū)、軟分區(qū)、邏輯分區(qū)、Solaris Container、VMware、Ken、微軟Hyper—V這些虛擬技術(shù)都是運(yùn)用的這個(gè)原理,只是虛擬指令集所處的層次位置不同。無論哪一種虛擬技術(shù),都要求需要實(shí)施虛擬化的物理服務(wù)器能夠良好地支持這些的虛擬化指令集。
全虛擬化方式
全虛擬化方式(Full Virtualization)是指虛擬管理層對(duì)底層硬件進(jìn)行完全模擬,把底層硬件平臺(tái)的API完整拷貝并提供給上層虛擬機(jī),虛擬機(jī)中的客戶操作系統(tǒng)和應(yīng)用無法感知真實(shí)機(jī)器的存在。全虛擬化方式的優(yōu)點(diǎn)是兼容性好,可以在虛擬機(jī)上使用任何類型的操作系統(tǒng),客戶操作系統(tǒng)無需修改,所有軟件都能在虛擬機(jī)中運(yùn)行;但其缺點(diǎn)是性能開銷較大,以軟件來完全模擬底層硬件必然影響硬件調(diào)用的性能。
半虛擬化方式
半虛擬化方式(Para—virtualization)是指虛擬管理層對(duì)底層硬件進(jìn)行部分模擬,把底層硬件平臺(tái)的低級(jí)API用一套高級(jí)API來代替并提供給上層虛擬機(jī),客戶操作系統(tǒng)需要支持底層硬件。這樣,虛擬機(jī)在運(yùn)行時(shí)可減少用戶模式(User Mode)和特權(quán)模式(Supervisor Mode)之間的切換,從而降低運(yùn)行時(shí)的開銷。例如,虛擬化軟件XEN就是使用了半虛擬化方式。
實(shí)現(xiàn)虛擬化的技術(shù)主要有純軟件的虛擬化技術(shù)和硬件輔助虛擬化技術(shù)兩種。前者是當(dāng)前主流的虛擬化技術(shù),具有成熟的應(yīng)用,硬件輔助虛擬化技術(shù)是今后的發(fā)展方向。
軟件虛擬化技術(shù)
傳統(tǒng)的計(jì)算機(jī)層次結(jié)構(gòu)分為三層,即硬件層(Hardware Layer)、主機(jī)操作系統(tǒng)層(HostOS Layer)和應(yīng)用層(Application Layer)。在這種結(jié)構(gòu)中,主機(jī)操作系統(tǒng)統(tǒng)一控制、管理和分配整個(gè)計(jì)算機(jī)的硬件和軟件資源,這種結(jié)構(gòu)的缺點(diǎn)主要在于未能充分發(fā)揮CPU的性能,利用率較低;還有就是一臺(tái)計(jì)算機(jī)無法滿足同時(shí)運(yùn)行多平臺(tái)的應(yīng)用需求,如果對(duì)于一種不同的應(yīng)用程序采用一臺(tái)獨(dú)立的物理服務(wù)器,解決方案是增加服務(wù)器的數(shù)量,這無疑將增加投資成本。
服務(wù)器虛擬化技術(shù)采用純軟件的方法,就是在硬件層之上仍然安裝被稱為主機(jī)操作系統(tǒng)的系統(tǒng),在其上部署虛擬機(jī)軟件(Virtual Machine Software,VMS),根據(jù)實(shí)際應(yīng)用需求,VMS可以將物理計(jì)算機(jī)虛擬出多個(gè)分區(qū),每一個(gè)分區(qū)稱為一個(gè)虛擬機(jī)(Virtual Machine,VM)。虛擬機(jī)具有完整的計(jì)算機(jī)應(yīng)用環(huán)境,包括硬件層(由VMS提供)、驅(qū)動(dòng)接口層(由VMS提供)、操作系統(tǒng)(Guest OS Layer)及應(yīng)用層(Applications),都是建立在計(jì)算機(jī)的應(yīng)
用環(huán)境上,屬于用戶級(jí)軟件。這樣用戶可以“隨心所欲”地安裝應(yīng)用程序。實(shí)現(xiàn)這種虛擬化技術(shù)關(guān)鍵在于虛擬機(jī)軟件的可靠性。
對(duì)于一臺(tái)獨(dú)立的物理服務(wù)器,在這臺(tái)服務(wù)器上安裝操作系統(tǒng),在操作系統(tǒng)安裝相應(yīng)的應(yīng)用程序,這種傳統(tǒng)架構(gòu)是一臺(tái)獨(dú)立的物理服務(wù)器作為一種應(yīng)用程序服務(wù)器使用。服務(wù)器虛擬化之后,一臺(tái)獨(dú)立物理服務(wù)器的資料被虛擬化為若干個(gè)獨(dú)立的主機(jī),這些主機(jī)可以單獨(dú)安裝其他的操作系統(tǒng),在操作系統(tǒng)之上又可以分別安裝各種不同的應(yīng)用程序。
基于軟件虛擬化技術(shù)實(shí)現(xiàn)的虛擬機(jī)軟件主要有VMware的Workstation、Microsoft的Hvper-V、Parallels等,這些軟件在近年來得到了迅速的推廣和應(yīng)用。
硬件虛擬化技術(shù)
硬件輔助虛擬化技術(shù)源于Intel公布的Vanderpool技術(shù),即VT技術(shù),該技術(shù)對(duì)于服務(wù)器系統(tǒng),包括處理器VT技術(shù)和IO虛擬分配技術(shù)進(jìn)行了規(guī)范。Intel和AMD公司發(fā)布的CPU產(chǎn)品中都集成了VT技術(shù),為進(jìn)一步推動(dòng)和發(fā)展虛擬化計(jì)算環(huán)境提供了硬件支持。
由于虛擬化技術(shù)將物理服務(wù)器進(jìn)行了抽象,形成邏輯上的服務(wù)器,因而有助于我們更好管理服務(wù)器的計(jì)算資源,與傳統(tǒng)應(yīng)用相比.有以下四大突出的特征。
(1)分區(qū):將物理服務(wù)器進(jìn)行虛擬化后。使得在一個(gè)物理服務(wù)器上同時(shí)運(yùn)行多操作系統(tǒng),每個(gè)操作系統(tǒng)單獨(dú)運(yùn)行在一臺(tái)虛擬機(jī),通過在多個(gè)虛機(jī)之間劃分系統(tǒng)資源以滿足使用需求,顯然,這將提高服務(wù)器的利用效率。
(2)隔離:由于在硬件層實(shí)現(xiàn)了虛擬機(jī)之間的故障和安全隔離,因而因操作系統(tǒng)或應(yīng)用軟件帶來的安全問題能夠更好地進(jìn)行隔離,更好地保證安全性。而且通過高級(jí)資源調(diào)控還能動(dòng)態(tài)地保證不同虛機(jī)的性能。
(3)封裝:運(yùn)行的每個(gè)虛機(jī)都被封裝為文件,這樣在移動(dòng)和復(fù)制虛機(jī)時(shí)就如同移動(dòng)和復(fù)制文件一樣簡單,提高管理和部署的便利。
(4)硬件獨(dú)立性:虛擬機(jī)可以在異構(gòu)硬件安裝和移動(dòng),基于虛擬化技術(shù),可以在AMD或Intel架構(gòu)的服務(wù)器上進(jìn)行不同操作系統(tǒng)的安裝和移動(dòng),可以更好地整合現(xiàn)有的異構(gòu)硬件資源來提高使用效率和節(jié)約投資。
基于服務(wù)器虛擬化技術(shù)所體現(xiàn)的特點(diǎn),采用虛擬化技術(shù)帶來的好處非常明顯通過整合物理服務(wù)器,提高的資源利用率相當(dāng)充分,絕大多數(shù)應(yīng)用的傳統(tǒng)部署利用率不超過10%,虛擬化后利用率往往超過70%;此外,虛擬化意味著降低成本,節(jié)能減排,成為構(gòu)建綠色I(xiàn)T的必然選擇,因?yàn)閿?shù)據(jù)中心每減少一臺(tái)服務(wù)器,可以降低約4 t的二氧化碳排放量,這相當(dāng)于減少了1.5輛在路上行駛的汽車或多種植55棵樹木,對(duì)于環(huán)境的保護(hù)意義非凡;虛擬化實(shí)現(xiàn)上是對(duì)物理硬件進(jìn)行抽象,形成池化的計(jì)算資源,使得用戶面對(duì)多臺(tái)服務(wù)器時(shí)的管理復(fù)雜度大大降低.將大幅節(jié)約在傳統(tǒng)架構(gòu)上的管理成本。正是基于這些優(yōu)勢(shì),虛擬化技術(shù)得到廣泛認(rèn)可和應(yīng)用。不僅服務(wù)器被廣泛進(jìn)行虛擬化.由于云計(jì)算的驅(qū)動(dòng),傳統(tǒng)的桌面PC也以新的虛擬化應(yīng)用方式提供,存儲(chǔ)、網(wǎng)絡(luò)也被虛擬化,以全池化的形式進(jìn)行資源的分配和管理,通過虛擬化層的軟件重新對(duì)數(shù)據(jù)中心的建設(shè)和應(yīng)用方式進(jìn)行定義。