李雙權(quán),王燕偉(中訊郵電咨詢(xún)?cè)O(shè)計(jì)院有限公司,北京100048)
各種研究機(jī)構(gòu)、組織、廠商對(duì)服務(wù)器虛擬化均有自己不同的定義,然而其核心思想是一致的,即它是一種方法,能夠通過(guò)區(qū)分優(yōu)先次序并能隨時(shí)隨地將服務(wù)器資源分配給最需要它們的工作負(fù)載,來(lái)簡(jiǎn)化管理和提高效率,從而減少為單個(gè)工作負(fù)載峰值而儲(chǔ)備的資源。服務(wù)器虛擬化是一種對(duì)服務(wù)器計(jì)算資源的抽象化,它在物理服務(wù)器的基礎(chǔ)上構(gòu)建多個(gè)相互獨(dú)立的虛擬服務(wù)器,從而將CPU、內(nèi)存、I/O等服務(wù)器物理資源轉(zhuǎn)化為一組統(tǒng)一管理、可靈活調(diào)度、動(dòng)態(tài)分配的邏輯資源。
不管云計(jì)算以IaaS、PaaS、SaaS的哪種業(yè)務(wù)形式出現(xiàn),都需要基礎(chǔ)的計(jì)算能力資源。在云計(jì)算的計(jì)算能力構(gòu)建過(guò)程中,通過(guò)服務(wù)器虛擬化技術(shù),將服務(wù)器硬件資源虛擬成一個(gè)整體的邏輯資源池,這個(gè)邏輯資源池能配置運(yùn)行多個(gè)業(yè)務(wù)應(yīng)用,而且能根據(jù)應(yīng)用的實(shí)際需要?jiǎng)討B(tài)地分配邏輯資源,這種按需分配的模式和動(dòng)態(tài)資源調(diào)整的能力能最大幅度地提高服務(wù)器資源的利用率。虛擬化技術(shù)的這種特點(diǎn)契合了云計(jì)算的本質(zhì),因此虛擬化是云計(jì)算的重要技術(shù)要素。
云計(jì)算中不可避免地需要使用服務(wù)器虛擬化技術(shù),本文就服務(wù)器虛擬化的技術(shù)要點(diǎn)、服務(wù)器虛擬化應(yīng)具備的功能要素等方面進(jìn)行探討。
IT技術(shù)的發(fā)展可以簡(jiǎn)略地劃分為3個(gè)時(shí)代。第一代是靜態(tài)的IT,所有計(jì)算能力資源由系統(tǒng)獨(dú)享;第二代是共享的IT,主要體現(xiàn)在計(jì)算能力的共享,但計(jì)算資源不能動(dòng)態(tài)調(diào)整;第三代則是云計(jì)算,所有的信息和數(shù)據(jù)都在動(dòng)態(tài)的架構(gòu)上,不僅實(shí)現(xiàn)技術(shù)能力的共享,還可以實(shí)現(xiàn)計(jì)算資源的調(diào)整。
計(jì)算資源包括服務(wù)器資源、存儲(chǔ)資源、網(wǎng)絡(luò)資源等,其中重點(diǎn)在于實(shí)現(xiàn)服務(wù)器資源的虛擬化。若要實(shí)現(xiàn)服務(wù)器的“按需服務(wù)”,就一定要讓服務(wù)器變成動(dòng)態(tài)的,而這都要看服務(wù)器在虛擬化方面的能力,虛擬化是動(dòng)態(tài)的基礎(chǔ),只有在虛擬化的環(huán)境下,云計(jì)算才有可能。
利用服務(wù)器虛擬化技術(shù),將現(xiàn)有服務(wù)器物理資源抽象成一個(gè)擁有巨大計(jì)算能力的“云”資源池,應(yīng)用系統(tǒng)運(yùn)行時(shí)可以動(dòng)態(tài)調(diào)用這個(gè)“池”中的所有資源。這樣,按照峰值設(shè)計(jì)服務(wù)器資源中浪費(fèi)掉的那部分就被充分地利用起來(lái)了,服務(wù)器資源的利用率能提高到60%~80%,這與現(xiàn)有IT系統(tǒng)評(píng)價(jià)5%~10%的資源利用率形成巨大反差,我們僅需要原來(lái)服務(wù)器大約25%的資源即可滿足信息系統(tǒng)運(yùn)行需求,節(jié)省了約75%的服務(wù)器運(yùn)營(yíng)成本。
圖1是一個(gè)典型的云計(jì)算平臺(tái)邏輯層次圖。在此架構(gòu)下,由大量虛擬服務(wù)器所構(gòu)成的虛擬化的硬件平臺(tái)共同托起了全部軟件層所提供的服務(wù)。在虛擬化與云計(jì)算共同構(gòu)成的這樣一個(gè)整體的架構(gòu)中,虛擬化有效地分離了硬件與軟件,而云計(jì)算則讓人們將精力更加集中在軟件所提供的服務(wù)上。
云計(jì)算必定是虛擬化的,虛擬化給云計(jì)算提供了堅(jiān)定的基礎(chǔ)。但是虛擬化的用處并不僅限于云計(jì)算,這只是它強(qiáng)大功能中的一部分。
虛擬化給云計(jì)算所帶來(lái)的好處是多方面的,主要包括以下幾點(diǎn)。
a)效率。將原本一臺(tái)服務(wù)器的資源分配給了數(shù)臺(tái)虛擬化的服務(wù)器,有效地利用了閑置資源,確保企業(yè)應(yīng)用程序發(fā)揮出最高的可用性和性能。
b)隔離。雖然虛擬機(jī)可以共享一臺(tái)計(jì)算機(jī)的物理資源,但它們彼此之間仍然是完全隔離的,就像它們是不同的物理計(jì)算機(jī)一樣。因此,在可用性和安全性方面,虛擬環(huán)境中運(yùn)行的應(yīng)用程序之所以遠(yuǎn)優(yōu)于在傳統(tǒng)的非虛擬化系統(tǒng)中運(yùn)行的應(yīng)用程序,隔離就是一個(gè)重要的原因。
c)可靠。虛擬服務(wù)器是獨(dú)立于硬件進(jìn)行工作的,通過(guò)改進(jìn)災(zāi)難恢復(fù)解決方案提高了業(yè)務(wù)連續(xù)性,當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí)可在最短時(shí)間內(nèi)恢復(fù)且不影響整個(gè)集群的運(yùn)作,在整個(gè)數(shù)據(jù)中心實(shí)現(xiàn)高可用性。
d)成本。降低了部署成本,只需要更少的服務(wù)器就可以實(shí)現(xiàn)需要更多服務(wù)器才能做到的事情,也間接降低了安全等其他方面的成本。
e)兼容。所有的虛擬服務(wù)器都與正常的x86系統(tǒng)相兼容,可部署多套不同的系統(tǒng),將因兼容性造成問(wèn)題的可能性降至最低。
f)便于管理。提高了服務(wù)器/管理員比率,一個(gè)管理員可以輕松管理比以前更多的服務(wù)器而不會(huì)造成更大的負(fù)擔(dān)。
服務(wù)器虛擬化允許具有不同操作系統(tǒng)的多個(gè)虛擬機(jī)在同一物理機(jī)上獨(dú)立并行運(yùn)行。每個(gè)虛擬機(jī)都有自己的一套虛擬硬件(例如RAM、CPU、網(wǎng)卡等),可以在這些硬件中加載操作系統(tǒng)和應(yīng)用程序。無(wú)論實(shí)際采用了什么物理硬件組件,操作系統(tǒng)都將它們視為一組一致、標(biāo)準(zhǔn)化的硬件。
虛擬化技術(shù)并非云計(jì)算時(shí)代首創(chuàng),虛擬化的概念在20世紀(jì)60年代首次出現(xiàn),利用它可以對(duì)屬于稀有而昂貴資源的大型機(jī)硬件進(jìn)行分區(qū)。隨著時(shí)間的推移,小型服務(wù)器和PC可更經(jīng)濟(jì)地滿足計(jì)算能力需求,因此到20世紀(jì)80年代,虛擬技術(shù)已不再?gòu)V泛使用。到了20世紀(jì)90年代,計(jì)算能力需求的激增使得研究人員開(kāi)始探索如何利用虛擬化技術(shù)解決與龐大的IT系統(tǒng)相關(guān)的一些問(wèn)題,例如,利用率不足、管理成本不斷攀升和易受攻擊等?,F(xiàn)在,虛擬化技術(shù)處于時(shí)代前沿。
圖1 云計(jì)算平臺(tái)邏輯層次
按照虛擬化實(shí)現(xiàn)的要求,虛擬化技術(shù)應(yīng)具備以下技術(shù)要點(diǎn)。
a)在一個(gè)物理系統(tǒng)中可以支持多個(gè)應(yīng)用程序和操作系統(tǒng)。
b)可在擴(kuò)展或擴(kuò)張?bào)w系結(jié)構(gòu)中將服務(wù)器整合到虛擬機(jī)中。
c)計(jì)算資源被視為以可控方式分配給虛擬機(jī)的統(tǒng)一資源池。
d)虛擬機(jī)與主機(jī)和其他虛擬機(jī)完全隔離,如果一個(gè)虛擬機(jī)崩潰,所有其他虛擬機(jī)不會(huì)受到影響。
e)虛擬機(jī)之間不會(huì)泄露數(shù)據(jù),而且應(yīng)用程序只能通過(guò)配置的網(wǎng)絡(luò)連接進(jìn)行通信。
f)完整的虛擬機(jī)環(huán)境保存為單個(gè)文件,便于進(jìn)行備份、移動(dòng)和復(fù)制。
g)為應(yīng)用程序提供標(biāo)準(zhǔn)化的虛擬硬件,可保證兼容性。
h)整合多余硬件和提高服務(wù)器利用率。
目前服務(wù)器虛擬化中的實(shí)現(xiàn)層次類(lèi)別可以分為硬件層虛擬化、邏輯層虛擬化、軟件層虛擬化。
a)硬件層虛擬化。硬件層虛擬化指服務(wù)器硬件提供結(jié)構(gòu)支持幫助創(chuàng)建虛擬機(jī)監(jiān)視并允許客戶(hù)機(jī)操作系統(tǒng)獨(dú)立運(yùn)行,不需要操作系統(tǒng)支持,可直接對(duì)硬件資源進(jìn)行劃分,任一分區(qū)內(nèi)的操作系統(tǒng)和硬件故障不影響其他分區(qū)。
b)邏輯層虛擬化。邏輯虛擬化是指在系統(tǒng)硬件和操作系統(tǒng)之間以軟件和固件的形式將硬件資源進(jìn)行虛擬化。不需要操作系統(tǒng)支持,任一分區(qū)的操作系統(tǒng)故障不影響其他分區(qū)。
c)軟件層虛擬化。軟件虛擬化是指在主操作系統(tǒng)上運(yùn)行一個(gè)虛擬層軟件,可以安裝多種客戶(hù)操作系統(tǒng),任何一個(gè)客戶(hù)系統(tǒng)的故障不影響其他用戶(hù)的操作系統(tǒng),需要主操作系統(tǒng)支持。
目前云計(jì)算中一般采用廉價(jià)的x86服務(wù)器構(gòu)建資源池,也有部分系統(tǒng)根據(jù)其需求采用中高檔服務(wù)器構(gòu)建資源池,而軟件層虛擬化技術(shù)使用較少。
圖2 虛擬化技術(shù)層次
相對(duì)硬件虛擬模式而言,邏輯虛擬模式會(huì)占用一定比例的系統(tǒng)資源。目前大中型服務(wù)器采用硬件虛擬化;AIX和HP-UX上的虛擬效率在90%以上,虛擬化損耗約為5%;而x86架構(gòu)一般采用邏輯虛擬化,虛擬效率則在80%左右,虛擬化損耗大約為20%。
在云計(jì)算的實(shí)現(xiàn)中,上述虛擬化技術(shù)類(lèi)別均有涉及,服務(wù)器虛擬化實(shí)現(xiàn)技術(shù)主要是分區(qū)(包括硬分區(qū)或軟分區(qū),也稱(chēng)物理或邏輯分區(qū))和底層硬件模擬(部分模擬或完全模擬)。
分區(qū)是小型機(jī)中廣泛使用的一種虛擬化技術(shù),通常由服務(wù)器的軟件層和硬件層共同實(shí)現(xiàn),為上層操作系統(tǒng)和應(yīng)用提供相互隔離的運(yùn)行環(huán)境。采用分區(qū)技術(shù)的服務(wù)器中,服務(wù)器的固件記錄分區(qū)的配置信息,用以界定每個(gè)分區(qū)能夠訪問(wèn)的CPU、內(nèi)存等資源的范圍和數(shù)量。同時(shí),服務(wù)器底層軟件可以通過(guò)對(duì)不同資源的激活和釋放等操作,實(shí)現(xiàn)資源在不同分區(qū)之間的調(diào)度。分區(qū)技術(shù)起源于大型主機(jī),目前小型機(jī)廠家的許多虛擬化產(chǎn)品,例如HP的nPar、IBM的lPar都是基于或部分基于分區(qū)技術(shù)實(shí)現(xiàn)的。
底層硬件模擬是目前大多數(shù)虛擬化產(chǎn)品使用的虛擬化技術(shù),它利用虛擬機(jī)監(jiān)視器(VMM,也叫虛擬機(jī)管理程序)來(lái)模擬底層硬件的功能,為上層操作系統(tǒng)提供虛擬的運(yùn)行環(huán)境。從操作系統(tǒng)的角度來(lái)看,運(yùn)行在虛擬機(jī)上與運(yùn)行在其對(duì)應(yīng)的物理服務(wù)器上幾乎沒(méi)有區(qū)別。
采用VMM實(shí)現(xiàn)的服務(wù)器虛擬化通常分為2種類(lèi)型。
3.2.1 Type I:裸金屬架構(gòu)
Type I虛擬化架構(gòu)(見(jiàn)圖2中邏輯層虛擬化部分)不需要在服務(wù)器上先安裝操作系統(tǒng),而是直接將VMM安裝在服務(wù)器硬件設(shè)備中,本質(zhì)上Type I架構(gòu)中的VMM也可以認(rèn)為是一個(gè)操作系統(tǒng),只不過(guò)是非常輕量級(jí)的操作系統(tǒng)(實(shí)現(xiàn)核心功能)。
VMM實(shí)現(xiàn)從虛擬資源到物理資源的映射,當(dāng)虛擬機(jī)中的操作系統(tǒng)通過(guò)特權(quán)指令訪問(wèn)關(guān)鍵系統(tǒng)資源時(shí),VMM將接管其請(qǐng)求,并進(jìn)行相應(yīng)的模擬處理。為了使這種機(jī)制能夠有效地工作,每條特權(quán)指令的執(zhí)行都需要產(chǎn)生“自陷”以便VMM能夠捕獲該指令,從而使得VMM能夠模擬執(zhí)行相應(yīng)的指令。VMM通過(guò)模擬特權(quán)指令的執(zhí)行,并將處理結(jié)果返回給指定的客戶(hù)虛擬系統(tǒng)的方式,實(shí)現(xiàn)了不同虛擬機(jī)的運(yùn)行上下文保護(hù)與切換,從而能夠虛擬出多個(gè)硬件系統(tǒng),保證了各個(gè)客戶(hù)虛擬系統(tǒng)的有效隔離。
然而,x86體系結(jié)構(gòu)的處理器并不是完全支持虛擬化的,因?yàn)槟承﹛86特權(quán)指令在低特權(quán)級(jí)上下文執(zhí)行時(shí),不能產(chǎn)生自陷,導(dǎo)致VMM無(wú)法直接捕獲特權(quán)指令的執(zhí)行。
目前,針對(duì)這一問(wèn)題的解決方案主要有基于動(dòng)態(tài)指令轉(zhuǎn)換或硬件輔助的完全虛擬化技術(shù)和半虛擬化技術(shù)。
完全虛擬化是對(duì)真實(shí)物理服務(wù)器的完整模擬,在上層操作系統(tǒng)看來(lái),虛擬機(jī)與物理平臺(tái)沒(méi)有區(qū)別。操作系統(tǒng)察覺(jué)不到是否運(yùn)行在虛擬平臺(tái)之上,也無(wú)須進(jìn)行任何更改,因此完全虛擬化具有很好的兼容性,在服務(wù)器虛擬化中得到廣泛應(yīng)用。
從技術(shù)實(shí)現(xiàn)來(lái)說(shuō),完全虛擬化需要VMM能夠處理虛擬機(jī)所有可能的行為。完全虛擬化的發(fā)展經(jīng)歷了基于軟件輔助和基于硬件輔助2個(gè)階段。
a)軟件輔助的完全虛擬化。在x86虛擬化早期,由于x86體系沒(méi)有在硬件層次上對(duì)虛擬化提供支持,因此許多商業(yè)的虛擬化產(chǎn)品都采用了基于軟件輔助的完全虛擬化技術(shù),例如Vmware ESX Server、VMware Workstation和Microsoft Virtual Server系列產(chǎn)品。為了正確處理不能直接捕獲的虛擬機(jī)特權(quán)指令,完全虛擬化引入了動(dòng)態(tài)指令轉(zhuǎn)換,通過(guò)在運(yùn)行時(shí)動(dòng)態(tài)執(zhí)行指令掃描以發(fā)現(xiàn)特權(quán)指令,然后依據(jù)VMM狀態(tài)執(zhí)行指令的二進(jìn)制轉(zhuǎn)換,使得特權(quán)指令的執(zhí)行跳轉(zhuǎn)到等價(jià)模擬代碼段處,從而實(shí)現(xiàn)與自陷相同的目標(biāo)。 基于軟件輔助雖然能夠?qū)崿F(xiàn)完全虛擬化,但由于所有指令都要經(jīng)過(guò)VMM進(jìn)行處理,這種虛擬化的性能受動(dòng)態(tài)指令轉(zhuǎn)換引擎設(shè)計(jì)和實(shí)現(xiàn)的影響比較大。
b)硬件輔助的完全虛擬化。硬件輔助虛擬化是通過(guò)修改x86 CPU指令的語(yǔ)義,使其直接支持虛擬化。這一工作必須在CPU中進(jìn)行,也就是Intel-VT技術(shù)和AMD-V技術(shù)。通過(guò)引入新的處理器操作來(lái)支持虛擬化,使得虛擬機(jī)的各種特權(quán)指令能夠被CPU所截獲,并通過(guò)異常報(bào)告給VMM,這樣就解決了虛擬化的問(wèn)題。 硬件輔助虛擬化是一種完備的虛擬化方法,部分虛擬化軟件產(chǎn)品,例如Microsoft的Hyper-V目前必須借助于CPU硬件輔助才能實(shí)現(xiàn)虛擬化。
完全虛擬化是處理器密集型技術(shù),因?yàn)樗骽ypervisor管理各個(gè)虛擬服務(wù)器,并讓它們彼此獨(dú)立。減輕這種負(fù)擔(dān)的一種方法就是,改動(dòng)客戶(hù)操作系統(tǒng),讓它以為自己運(yùn)行在虛擬環(huán)境下,能夠與hypervisor協(xié)同工作。這種方法就叫半虛擬化。
與完全虛擬化技術(shù)不同,半虛擬化技術(shù)通過(guò)修改操作系統(tǒng)代碼使特權(quán)指令產(chǎn)生自陷。半虛擬化技術(shù)最初由Denali和Xen項(xiàng)目在x86體系架構(gòu)上實(shí)現(xiàn)。通過(guò)對(duì)客戶(hù)操作系統(tǒng)的內(nèi)核進(jìn)行適當(dāng)?shù)男薷模蛊淠軌蛟赩MM的管理下盡可能地直接訪問(wèn)本地硬件平臺(tái)。半虛擬化技術(shù)降低了由于虛擬化而引入的系統(tǒng)性能損失。半虛擬化技術(shù)的主要實(shí)現(xiàn)思路是:對(duì)于內(nèi)存分段管理的虛擬化,要求客戶(hù)操作系統(tǒng)對(duì)硬件分段描述符的更新由VMM進(jìn)行驗(yàn)證,這也就要求客戶(hù)操作系統(tǒng)不能有高于VMM的特權(quán)級(jí)別和不允許訪問(wèn)VMM保留地址空間;對(duì)于內(nèi)存分頁(yè)管理的虛擬化,要求客戶(hù)操作系統(tǒng)可以直接讀取硬件頁(yè)表,但對(duì)頁(yè)表的更新需要VMM進(jìn)行驗(yàn)證和處理,VMM支持客戶(hù)虛擬系統(tǒng)可以分布在不連續(xù)的物理內(nèi)存上;對(duì)于客戶(hù)虛擬系統(tǒng),其只能運(yùn)行在低于VMM的特權(quán)級(jí)別上;客戶(hù)虛擬系統(tǒng)需要注冊(cè)一個(gè)異常處理函數(shù)的描述符表,直接支持VMM的虛擬化;客戶(hù)虛擬系統(tǒng)的硬件中斷機(jī)制被VMM中的Event處理機(jī)制代替;每個(gè)客戶(hù)虛擬系統(tǒng)都有自己的時(shí)鐘接口,并且可以了解真實(shí)的時(shí)間和虛擬的時(shí)間;客戶(hù)虛擬系統(tǒng)通過(guò)異步I/O的內(nèi)存區(qū)域和外部設(shè)備 (網(wǎng)絡(luò)、硬盤(pán))來(lái)傳遞數(shù)據(jù),采用事件處理機(jī)制代替硬件中斷通知機(jī)制。
準(zhǔn)虛擬化技術(shù)的優(yōu)點(diǎn)是性能高。經(jīng)過(guò)準(zhǔn)虛擬化處理的服務(wù)器可與hypervisor協(xié)同工作,其響應(yīng)能力幾乎不亞于未經(jīng)過(guò)虛擬化處理的服務(wù)器。
3.2.2 Type II:寄居架構(gòu)
Type II虛擬化架構(gòu) (見(jiàn)圖2中軟件層虛擬化部分)中,VMM安裝在已有的主機(jī)操作系統(tǒng)(宿主操作系統(tǒng))之上,通過(guò)宿主操作系統(tǒng)來(lái)管理和訪問(wèn)各類(lèi)資源(如文件和各類(lèi)I/O設(shè)備等)。這類(lèi)虛擬化架構(gòu)系統(tǒng)損耗比較大。
就操作系統(tǒng)層的虛擬化而言,沒(méi)有獨(dú)立的hypervisor層。主機(jī)操作系統(tǒng)負(fù)責(zé)在多個(gè)虛擬服務(wù)器之間分配硬件資源,并且讓這些服務(wù)器彼此獨(dú)立。一個(gè)明顯的區(qū)別是,如果使用操作系統(tǒng)層虛擬化,所有虛擬服務(wù)器必須運(yùn)行同一操作系統(tǒng) (不過(guò)每個(gè)實(shí)例有各自的應(yīng)用程序和用戶(hù)賬戶(hù))。
雖然操作系統(tǒng)層虛擬化的靈活性比較差,但本機(jī)速度性能比較高。此外,由于架構(gòu)在所有虛擬服務(wù)器上使用單一、標(biāo)準(zhǔn)的操作系統(tǒng),管理起來(lái)比異構(gòu)環(huán)境要容易。
上述各種虛擬化方法都有各自的優(yōu)點(diǎn),總體來(lái)說(shuō),裸金屬架構(gòu)下的半虛擬化技術(shù)的優(yōu)點(diǎn)得到了驗(yàn)證,也是目前各廠家重點(diǎn)發(fā)展的技術(shù)。
服務(wù)器虛擬化解決方案在不同的場(chǎng)景實(shí)現(xiàn)的功能各不相同,在云計(jì)算中虛擬化技術(shù)應(yīng)具備以下功能。
a)服務(wù)器“一變多”。支持在一臺(tái)物理服務(wù)器中創(chuàng)建多個(gè)相互獨(dú)立的虛擬服務(wù)器,每個(gè)虛擬服務(wù)器各自擁有計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)等資源,運(yùn)行各自的操作系統(tǒng)和應(yīng)用。
b)設(shè)備資源抽象化。支持通過(guò)虛擬化軟件功能,將物理服務(wù)器中的CPU、內(nèi)存、I/O等資源進(jìn)行抽象化,將原先與具體物理服務(wù)器和物理設(shè)備綁定的資源轉(zhuǎn)化為可以統(tǒng)一分配和管理的一組邏輯資源。 通過(guò)資源抽象,服務(wù)器資源不再與具體物理設(shè)備以及上層應(yīng)用綁定,能夠靈活分配,被不同虛擬服務(wù)器共享。
c)32位/64位支持。為了使虛擬服務(wù)器能夠充分滿足企業(yè)現(xiàn)有IT系統(tǒng)的應(yīng)用需求,同時(shí)提供較強(qiáng)的擴(kuò)展能力,虛擬化產(chǎn)品應(yīng)支持在舊有32位物理服務(wù)器上運(yùn)行32位虛擬服務(wù)器,以及在新的64位物理服務(wù)器上運(yùn)行32位或64位虛擬服務(wù)器的能力。
d)支持多種操作系統(tǒng)。物理服務(wù)器所支持的各種操作系統(tǒng)類(lèi)型及版本,在對(duì)該物理服務(wù)器進(jìn)行虛擬化后,也能夠在創(chuàng)建的虛擬服務(wù)器中安裝并正常運(yùn)行。
e)兼容服務(wù)器和存儲(chǔ)設(shè)備。服務(wù)器虛擬化產(chǎn)品需具備廣泛的物理服務(wù)器硬件設(shè)備兼容性,服務(wù)器虛擬化產(chǎn)品必須支持市場(chǎng)上主流設(shè)備廠商提供的服務(wù)器。虛擬化產(chǎn)品功能的實(shí)現(xiàn),不得依賴(lài)于特殊的服務(wù)器硬件設(shè)備。
f)虛擬服務(wù)器的創(chuàng)建。創(chuàng)建過(guò)程需提供用戶(hù)交互方式,引導(dǎo)用戶(hù)設(shè)定虛擬服務(wù)器名稱(chēng)、資源類(lèi)型和數(shù)量、操作系統(tǒng)類(lèi)型、網(wǎng)絡(luò)設(shè)置等配置參數(shù)。支持通過(guò)第三方工具或者編寫(xiě)腳本等方式,實(shí)現(xiàn)虛擬服務(wù)器及其操作系統(tǒng)和應(yīng)用的自動(dòng)化安裝和配置,并支持遠(yuǎn)程操作。
g)虛擬服務(wù)器的模板和復(fù)制。為了實(shí)現(xiàn)虛擬服務(wù)器的快速部署,服務(wù)器虛擬化產(chǎn)品需提供通過(guò)模板的方式克隆已有虛擬服務(wù)器的能力。
h)支持P2V轉(zhuǎn)換。P2V是指將物理服務(wù)器連同上面安裝的操作系統(tǒng)和應(yīng)用轉(zhuǎn)換為虛擬服務(wù)器,常用于將已有應(yīng)用系統(tǒng)由物理服務(wù)器平臺(tái)遷移到虛擬服務(wù)器平臺(tái)。在創(chuàng)建虛擬服務(wù)器時(shí),應(yīng)支持通過(guò)P2V方式實(shí)現(xiàn)虛擬服務(wù)器的快速部署。
i)虛擬網(wǎng)絡(luò)支持。虛擬服務(wù)器須提供對(duì)網(wǎng)卡和交換機(jī)等網(wǎng)絡(luò)設(shè)備的虛擬化支持,虛擬網(wǎng)卡和虛擬交換機(jī)通過(guò)物理網(wǎng)絡(luò)設(shè)備接入物理網(wǎng)絡(luò)。為了提高通信效率,減少對(duì)物理網(wǎng)絡(luò)設(shè)備的壓力,虛擬服務(wù)器之間的通信可配置為通過(guò)虛擬網(wǎng)卡以及虛擬交換機(jī)的方式進(jìn)行,無(wú)須通過(guò)物理網(wǎng)卡。
j)虛擬服務(wù)器運(yùn)行控制??赏ㄟ^(guò)手動(dòng)或自動(dòng)的方式,對(duì)虛擬服務(wù)器的運(yùn)行狀態(tài)進(jìn)行控制,包括虛擬服務(wù)器的啟動(dòng)、關(guān)閉、暫停、重新啟動(dòng)、恢復(fù)、快照,遷移操作等??蓪?duì)虛擬服務(wù)器的運(yùn)行狀態(tài)進(jìn)行快速在線備份,虛擬服務(wù)器不需要暫停或關(guān)閉??蓪?duì)虛擬服務(wù)器在需要的時(shí)候恢復(fù)到任一備份點(diǎn),恢復(fù)后虛擬服務(wù)器的狀態(tài)應(yīng)該與備份時(shí)一致。
k)可使用資源分配。對(duì)于包含特定資源類(lèi)型、數(shù)量等要求的資源分配請(qǐng)求,虛擬化管理平臺(tái)能夠從統(tǒng)一管理的虛擬化服務(wù)器資源池中,自動(dòng)選擇合適的物理服務(wù)器進(jìn)行資源分配。為有效利用所分配的資源,促進(jìn)資源共享,在為虛擬服務(wù)器分配能夠使用的CPU、內(nèi)存、I/O等資源數(shù)量時(shí),支持指定可使用資源的最大值和最小值。虛擬服務(wù)器在運(yùn)行過(guò)程中實(shí)際使用的資源,允許隨工作負(fù)載在分配的資源范圍內(nèi)變動(dòng)。
l)資源調(diào)度和虛擬服務(wù)器遷移。虛擬服務(wù)器自身的資源調(diào)度,或者虛擬服務(wù)器在不同物理服務(wù)器之間的遷移可以由管理員手動(dòng)進(jìn)行,也可以按照事先設(shè)置的策略自動(dòng)進(jìn)行。通過(guò)策略可以實(shí)現(xiàn)虛擬服務(wù)器資源配置的自動(dòng)化和智能化,提高設(shè)備資源利用率和系統(tǒng)可用性。資源調(diào)度策略的觸發(fā)方式包括定時(shí)觸發(fā)、在預(yù)先設(shè)定的時(shí)間觸發(fā)、資源利用率閾值觸發(fā)。
m)虛擬化管理功能。虛擬化的管理需提供網(wǎng)絡(luò)內(nèi)部各種軟硬件資源的統(tǒng)一管理,包括物理服務(wù)器 (編號(hào)、名稱(chēng)、IP地址等)、虛擬服務(wù)器(編號(hào)、名稱(chēng)、操作系統(tǒng)、IP地址等)、存儲(chǔ)及網(wǎng)絡(luò)設(shè)備(編號(hào)、名稱(chēng)、類(lèi)型等)。
n)運(yùn)行狀態(tài)監(jiān)控。對(duì)物理服務(wù)器和各個(gè)虛擬服務(wù)器的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,記錄詳細(xì)的數(shù)據(jù),運(yùn)行狀態(tài)監(jiān)控涉及的性能指標(biāo)包括CPU利用率、內(nèi)存利用率、磁盤(pán)I/O讀寫(xiě)速率、網(wǎng)絡(luò)I/O通信速率、存儲(chǔ)數(shù)據(jù)量等。
o)故障告警管理。虛擬化的管理支持實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)中各物理服務(wù)器和虛擬服務(wù)器的運(yùn)行狀態(tài)變化情況,針對(duì)可能引發(fā)潛在性問(wèn)題的配置更改、資源不足、設(shè)備故障等故障情況,提供告警界面和信息。
目前虛擬化實(shí)現(xiàn)的技術(shù)非常多,涵蓋各個(gè)層面的虛擬化技術(shù),云計(jì)算在實(shí)施過(guò)程中應(yīng)結(jié)合需要實(shí)現(xiàn)的性能和功能要求選擇相應(yīng)的虛擬化技術(shù)。一般選擇虛擬化技術(shù)應(yīng)注意以下要求。
a)性能。在評(píng)估不同虛擬化技術(shù)的性能時(shí),需要考慮在一臺(tái)物理服務(wù)器上能夠運(yùn)行的虛擬服務(wù)器的數(shù)量限制。盡管所有的虛擬化技術(shù)對(duì)虛擬服務(wù)器的數(shù)量都沒(méi)有限制,但在過(guò)去由于過(guò)高的額外損耗,根本就不能支持更多的虛擬服務(wù)器數(shù)量。同時(shí)如果虛擬化對(duì)物理服務(wù)器的處理?yè)p耗較高,那只能運(yùn)行非產(chǎn)品級(jí)或不太重要的應(yīng)用服務(wù)。虛擬化的應(yīng)用程序的運(yùn)行效率差異很大,有的能夠做到接近原始物理環(huán)境下運(yùn)行的效率,有的則低劣到終端用戶(hù)所難以接受的程度。同一虛擬化技術(shù)路線的不同產(chǎn)品性能也有很大差異。
b)虛擬化平臺(tái)管理工具。雖然IT系統(tǒng)的硬件成本較高,但帶來(lái)的維護(hù)成本同樣不可忽視,完備的管理工具可有效降低系統(tǒng)的維護(hù)成本。常見(jiàn)管理性任務(wù)包括操作系統(tǒng)和應(yīng)用程序更新、打補(bǔ)丁、備份、安裝、開(kāi)通和應(yīng)用管理、服務(wù)流程、統(tǒng)計(jì)分析等等。因此對(duì)于虛擬化基礎(chǔ)設(shè)施的管理而言,管理工具就更加重要,只有很好地進(jìn)行資源的管理和監(jiān)控才能真正做到有效地利用虛擬服務(wù)器的資源。
c)平臺(tái)支持。虛擬化技術(shù)將虛擬服務(wù)器從其下的硬件中抽象出來(lái),但這并不意味著虛擬基礎(chǔ)結(jié)構(gòu)可以支持任何硬件。需要特別注意的是,硬件輔助虛擬化必須硬件支持;而操作系統(tǒng)虛擬化技術(shù)建立在標(biāo)準(zhǔn)的操作系統(tǒng)之上,所以操作系統(tǒng)虛擬化產(chǎn)品部署過(guò)程更容易。某些虛擬化技術(shù)除了支持基本的硬件,還有充分利用所有硬件的能力,包括支持SMP、64位處理器,直到16路CPU和64 GB的內(nèi)存。
d)遷移。虛擬化技術(shù)將虛擬服務(wù)器從硬件中抽象出來(lái),這樣做最大的好處是虛擬服務(wù)器可以在不同物理服務(wù)器中來(lái)回遷移。遷移能力允許將虛擬服務(wù)器克隆出來(lái),或從一臺(tái)物理服務(wù)器遷移到另外一臺(tái)。遷移的好處包括:消除由于硬件升級(jí)或出現(xiàn)問(wèn)題時(shí)造成的宕機(jī)時(shí)間,避免軟件更新時(shí)的宕機(jī)時(shí)間,可以按需求將虛擬服務(wù)器遷移到更強(qiáng)或更弱的服務(wù)器上。
e)隔離和安全。對(duì)于隔離和安全問(wèn)題,每種虛擬化技術(shù)的處理方式都不同。所有虛擬計(jì)算機(jī)必須完全隔離,這樣進(jìn)程、動(dòng)態(tài)連接庫(kù)及應(yīng)用程序才不會(huì)影響同一臺(tái)服務(wù)器的其他虛擬服務(wù)器上的應(yīng)用。相對(duì)于普通服務(wù)器,由于虛擬化技術(shù)改變了訪問(wèn)節(jié)點(diǎn)和不同的組件,所以不太可能對(duì)于虛擬服務(wù)器實(shí)施常規(guī)性攻擊。同隔離一樣,對(duì)于同一臺(tái)物理服務(wù)器上的2個(gè)虛擬服務(wù)器來(lái)說(shuō),彼此之間的安全同樣重要。
f)開(kāi)通效率。每個(gè)虛擬化解決方案的服務(wù)器開(kāi)通能力是不同的。某些解決方案提供了模板和預(yù)先設(shè)置工具或定制配置提前縮短了開(kāi)通時(shí)間。不同處理方法的開(kāi)通時(shí)間從30 s到1 h有很大的差別。與獨(dú)立服務(wù)器相比,虛擬服務(wù)器急劇地縮短了服務(wù)器的開(kāi)通時(shí)間。
g)成本。服務(wù)器虛擬化提高了IT系統(tǒng)的利用率,降低了系統(tǒng)硬件上的投入,但同時(shí)增加了虛擬化技術(shù)的費(fèi)用支出,在衡量系統(tǒng)性?xún)r(jià)比時(shí)不僅需要橫向比較不同虛擬化方案的成本,還需要縱向考慮增加虛擬化技術(shù)后的成本。
服務(wù)器虛擬化是云計(jì)算的必備選項(xiàng),有著顯著的優(yōu)點(diǎn),但也有相應(yīng)的缺點(diǎn),在技術(shù)使用過(guò)程中應(yīng)注意揚(yáng)長(zhǎng)避短。
服務(wù)器虛擬化技術(shù)具有以下優(yōu)點(diǎn)。
a)維護(hù)運(yùn)行在早期操作系統(tǒng)上的業(yè)務(wù)應(yīng)用。對(duì)于某些早期操作系統(tǒng),發(fā)行廠商已經(jīng)停止了系統(tǒng)的維護(hù),不再支持新的硬件平臺(tái),而重寫(xiě)運(yùn)行在這些系統(tǒng)上的業(yè)務(wù)應(yīng)用又不現(xiàn)實(shí)。為此,可以將這些系統(tǒng)遷移到新硬件平臺(tái)上運(yùn)行的虛擬系統(tǒng)上,實(shí)現(xiàn)業(yè)務(wù)的延續(xù)。
b)提高服務(wù)器的利用率。將多種低消耗的業(yè)務(wù)利用整合到一臺(tái)服務(wù)器上,可以充分發(fā)揮服務(wù)器的性能,從而提高整個(gè)系統(tǒng)的整體利用效率。
c)動(dòng)態(tài)資源調(diào)配,提升業(yè)務(wù)應(yīng)用整體的運(yùn)行質(zhì)量。可在一臺(tái)計(jì)算機(jī)內(nèi)部的虛擬機(jī)之間或是集群系統(tǒng)的各個(gè)業(yè)務(wù)之間進(jìn)行動(dòng)態(tài)資源調(diào)配,進(jìn)而提升業(yè)務(wù)應(yīng)用的整體運(yùn)行質(zhì)量。
d)提供相互隔離、安全的應(yīng)用執(zhí)行環(huán)境。虛擬系統(tǒng)下的各個(gè)子系統(tǒng)相互獨(dú)立,即使一個(gè)子系統(tǒng)遭受攻擊而崩潰也不會(huì)對(duì)其他系統(tǒng)造成影響。而且在使用備份機(jī)制后,子系統(tǒng)可被快速恢復(fù)。
e)提供軟件調(diào)試環(huán)境,進(jìn)行軟件測(cè)試,保證軟件質(zhì)量。采用虛擬技術(shù)后,用戶(hù)可以在一臺(tái)計(jì)算機(jī)上模擬多個(gè)系統(tǒng),多種不同操作系統(tǒng),使調(diào)試環(huán)境搭建簡(jiǎn)單易行,大大提高工作效率,降低測(cè)試成本。
服務(wù)器虛擬化存在以下問(wèn)題。
a)虛擬技術(shù)的認(rèn)知。用戶(hù)對(duì)虛擬技術(shù)不了解,不明確虛擬技術(shù)在提升用戶(hù)現(xiàn)有系統(tǒng)效率和降低總體運(yùn)營(yíng)成本上的優(yōu)勢(shì),這是阻礙虛擬技術(shù)推廣的最大障礙。
b)虛擬系統(tǒng)的可靠性??蛻?hù)采用服務(wù)器,很大程度上是為了保障業(yè)務(wù)的穩(wěn)定性。如果用戶(hù)在一臺(tái)服務(wù)器上運(yùn)行多個(gè)業(yè)務(wù),一旦出現(xiàn)重大硬件故障勢(shì)必會(huì)影響到所有的應(yīng)用,這種威脅很難消除。而對(duì)于用戶(hù),這種潛在的業(yè)務(wù)危險(xiǎn)往往也是不可接受的。
e)虛擬系統(tǒng)的運(yùn)行效率。使用虛擬技術(shù)的目的在于提高用戶(hù)服務(wù)器的整體利用效率,如果虛擬系統(tǒng)的運(yùn)行效率太低,也就失去了它在服務(wù)器上應(yīng)用的價(jià)值。
d)平臺(tái)支持。硬件支持方面,需要虛擬系統(tǒng)能夠不斷更新,以兼容新的硬件平臺(tái)。操作系統(tǒng)支持,需要能夠支持老操作系統(tǒng)。這樣對(duì)于某些使用早期操作系統(tǒng)的客戶(hù)才有意義。對(duì)于這兩方面,虛擬化平臺(tái)都需要不斷更新,這些都依賴(lài)虛擬化技術(shù)提供商的維護(hù)。
e)部署效率和易用性。當(dāng)前虛擬化標(biāo)準(zhǔn)尚不統(tǒng)一,移植和管理工具還不夠成熟,這也影響到虛擬化的大面積普及。特別是遠(yuǎn)程管理功能需要配合虛擬化標(biāo)準(zhǔn)工作大力發(fā)展,以使得不同的虛擬化平臺(tái)可以通過(guò)網(wǎng)絡(luò)進(jìn)行統(tǒng)一管理。
云計(jì)算概念的提出和服務(wù)器虛擬化技術(shù)的發(fā)展相輔相成,云計(jì)算的實(shí)現(xiàn)需要服務(wù)器虛擬化的技術(shù)支持,服務(wù)器虛擬化技術(shù)在云計(jì)算的推動(dòng)下得到很好的發(fā)展。隨著云計(jì)算的實(shí)現(xiàn)和推廣,服務(wù)器虛擬化技術(shù)將得到更進(jìn)一步的發(fā)展。