寇 鵬, 張 韻,滕曉曉
虛擬化技術(shù)在復(fù)證測(cè)試中的應(yīng)用
寇 鵬, 張 韻,滕曉曉
(上海通用識(shí)別技術(shù)研究所,201112)
系統(tǒng)虛擬化技術(shù)具有提高資源利用率、虛擬機(jī)隔離性、硬件無(wú)關(guān)性、封裝性及特權(quán)功能等優(yōu)良特性,這些特性能夠?yàn)閺?fù)證測(cè)試系統(tǒng)的搭建和使用提供很大的便利性和其他一些純硬件環(huán)境無(wú)法具備的優(yōu)勢(shì)。本文闡述了系統(tǒng)虛擬化的相關(guān)技術(shù),分析了系統(tǒng)虛擬化技術(shù)的優(yōu)勢(shì)和應(yīng)用,并詳細(xì)探討了虛擬化技術(shù)在復(fù)證測(cè)試系統(tǒng)中如何應(yīng)用和具備哪些優(yōu)勢(shì)。
虛擬化;復(fù)證測(cè)試;VMware ESX;VMware vSphere
近年來(lái),虛擬化以其高效使用計(jì)算機(jī)系統(tǒng)資源、提供良好隔離機(jī)制等優(yōu)勢(shì),越來(lái)越多地成為信息技術(shù)領(lǐng)域的研究熱點(diǎn)。以VMware為代表的虛擬化技術(shù)產(chǎn)品在各大中小型企業(yè)和各大數(shù)據(jù)中心中得到了廣泛應(yīng)用,其中最為著名且市場(chǎng)占有率最高的莫過(guò)于VMware的vSphere。除此之外,還有KVM,Xen等成熟的虛擬化產(chǎn)品。虛擬化技術(shù)具有很多普通IT環(huán)境無(wú)法達(dá)到的優(yōu)勢(shì),虛擬化技術(shù)能夠整合企業(yè)的服務(wù)器資源,降低企業(yè)購(gòu)買(mǎi)硬件設(shè)備和能耗的開(kāi)支,減少成本。同時(shí)虛擬化技術(shù)提供了快速部署、硬件無(wú)關(guān)性等特性,具有廣泛的應(yīng)用前景。
復(fù)證測(cè)試環(huán)境需要在短時(shí)間內(nèi)置備數(shù)量龐大的測(cè)試系統(tǒng),同時(shí)系統(tǒng)的部署千變?nèi)f化,使用純物理環(huán)境很難滿足上述要求,虛擬化以其獨(dú)特的功能和特性,在復(fù)證測(cè)試環(huán)境的部署和應(yīng)用上,具有重要意義。
1.1 系統(tǒng)虛擬化技術(shù)
系統(tǒng)虛擬化是指在一臺(tái)物理計(jì)算機(jī)上提供多個(gè)相互隔離的虛擬執(zhí)行環(huán)境,執(zhí)行環(huán)境之間使用不同的磁盤(pán)和內(nèi)存區(qū)域,分時(shí)使用共享的處理器、網(wǎng)絡(luò)設(shè)備等資源。如圖1所示,系統(tǒng)虛擬化技術(shù)不僅能夠提高硬件資源的使用效率,降低系統(tǒng)運(yùn)行的成本開(kāi)銷(xiāo),而且高度的隔離性使虛擬機(jī)之間互不影響,同時(shí)使虛擬機(jī)與硬件之間沒(méi)有直接關(guān)聯(lián)。另外,用于完成指令模擬和硬件復(fù)用的虛擬化層,能夠提供以往操作系統(tǒng)所無(wú)法提供的功能。
圖1 系統(tǒng)虛擬化
系統(tǒng)虛擬化技術(shù)對(duì)物理資源的虛擬化主要是通過(guò)處理器虛擬化、內(nèi)存虛擬化和I/O虛擬化來(lái)實(shí)現(xiàn)的。
處理器虛擬化技術(shù)能夠使客戶虛擬機(jī)在執(zhí)行敏感指令時(shí)觸發(fā)異常,陷入到虛擬化層,由虛擬化層進(jìn)行指令模擬,以防敏感指令對(duì)虛擬化層造成破壞。
內(nèi)存虛擬化通過(guò)提供介于物理內(nèi)存地址空間和客戶虛擬機(jī)虛擬內(nèi)存地址空間之間的客戶物理內(nèi)存地址空間,使客戶虛擬機(jī)操作系統(tǒng)仍認(rèn)為其掌握著對(duì)一個(gè)地址從0開(kāi)始且連續(xù)的物理內(nèi)存空間的管理。不僅使虛擬化層為各個(gè)虛擬機(jī)很好的分配了物理內(nèi)存地址,而且保證了良好的內(nèi)存隔離,同時(shí)使客戶虛擬機(jī)能夠正常運(yùn)行。如圖2所示。
圖2 內(nèi)存虛擬化
I/O虛擬化就是使虛擬化層截獲客戶虛擬機(jī)操作系統(tǒng)對(duì)I/O設(shè)備訪問(wèn)請(qǐng)求,再通過(guò)軟件的方式模擬物理設(shè)備的反饋返回給客戶虛擬機(jī),或者將請(qǐng)求進(jìn)行集中排隊(duì),依次調(diào)度給真實(shí)的物理設(shè)備,再將反饋結(jié)果返回給對(duì)應(yīng)的客戶虛擬機(jī)。I/O虛擬化同時(shí)還能模擬出計(jì)算機(jī)系統(tǒng)中并不存在的物理設(shè)備,在物理資源有限的條件下,滿足客戶虛擬機(jī)的配置要求。
1.2 系統(tǒng)虛擬化的優(yōu)勢(shì)
虛擬化技術(shù)的優(yōu)勢(shì)主要有以下幾個(gè)方面。
(1)提高資源利用率
操作系統(tǒng)的運(yùn)行對(duì)資源的占用是具有分時(shí)特性的,資源的占用狀態(tài)有忙有閑,多個(gè)虛擬機(jī)實(shí)例運(yùn)行在同一物理計(jì)算機(jī)上,通過(guò)合理的調(diào)度,可以使系統(tǒng)資源的利用率得到很大的提高。通過(guò)對(duì)物理計(jì)算機(jī)性能的充分調(diào)動(dòng),使原來(lái)需要多個(gè)服務(wù)器同時(shí)運(yùn)行才能達(dá)到的要求,通過(guò)將服務(wù)器以虛擬機(jī)的形式合理地整合到少量的物理服務(wù)器上就可以達(dá)到。有效地節(jié)省了購(gòu)買(mǎi)硬件設(shè)備的成本,提高了企業(yè)的效益。虛擬化技術(shù)為公司節(jié)約大量的硬件開(kāi)銷(xiāo),降低了系統(tǒng)管理的花費(fèi),節(jié)約人力資源,提高了舊業(yè)務(wù)系統(tǒng)的性能,還降低了新系統(tǒng)的開(kāi)發(fā)部署成本。
(2)虛擬機(jī)隔離性
系統(tǒng)虛擬化技術(shù)將多個(gè)虛擬機(jī)整合在同一個(gè)物理機(jī)上運(yùn)行,必須解決的問(wèn)題就是隔離,多個(gè)虛擬機(jī)在相互隔離的環(huán)境下互不影響地運(yùn)行。如果一臺(tái)虛擬機(jī)因操作系統(tǒng)或其應(yīng)用程序的故障導(dǎo)致異常甚至崩潰,這種故障和對(duì)系統(tǒng)的破壞會(huì)被封閉在一個(gè)虛擬機(jī)中,不會(huì)影響到其他虛擬機(jī)的正常運(yùn)行。這種特性可以被用戶用來(lái)測(cè)試不穩(wěn)定的軟件系統(tǒng)或制作吸引攻擊的蜜罐系統(tǒng)以保護(hù)真正的服務(wù)程序。
(3)硬件無(wú)關(guān)性
虛擬機(jī)與底層硬件之間存在一個(gè)虛擬化層軟件,使虛擬機(jī)和硬件之間沒(méi)有直接的聯(lián)系。因此,通過(guò)對(duì)虛擬化層的開(kāi)發(fā),模擬出適合于不同操作系統(tǒng)的硬件環(huán)境,就可以對(duì)上層虛擬機(jī)隱藏硬件的異構(gòu)性,從而便于虛擬機(jī)從一臺(tái)物理機(jī)遷移到另一臺(tái)不同硬件結(jié)構(gòu)的物理機(jī)上。虛擬機(jī)遷移技術(shù)也是虛擬化技術(shù)的研究熱點(diǎn)。
(4)封裝性
系統(tǒng)虛擬化技術(shù)將虛擬機(jī)整體封裝起來(lái),這種封裝使得用戶對(duì)虛擬機(jī)運(yùn)行環(huán)境的保存、恢復(fù)等操作非常方便。如快照、克隆和掛起等功能。
虛擬機(jī)快照功能可以將運(yùn)行中的虛擬機(jī)所有狀態(tài)抓取并保存下來(lái),當(dāng)系統(tǒng)出現(xiàn)無(wú)法解決的故障時(shí),可以通過(guò)快照進(jìn)行所有狀態(tài)的還原,恢復(fù)系統(tǒng)在某個(gè)過(guò)去的時(shí)間點(diǎn)上的正常運(yùn)行狀態(tài)。虛擬機(jī)克隆功能可以完整地把一個(gè)虛擬機(jī)復(fù)制為多份,得到多個(gè)相同的執(zhí)行環(huán)境。虛擬機(jī)掛起功能如同操作系統(tǒng)的休眠功能,可以將系統(tǒng)的運(yùn)行暫停下來(lái),將虛擬機(jī)的運(yùn)行狀態(tài)保存在磁盤(pán)上,當(dāng)恢復(fù)運(yùn)行時(shí),暫停前的虛擬機(jī)運(yùn)行狀態(tài)完整地恢復(fù)出來(lái),系統(tǒng)從暫停時(shí)的狀態(tài)開(kāi)始繼續(xù)運(yùn)行。封裝性使服務(wù)和運(yùn)行環(huán)境能夠更為便捷地部署,同時(shí)能夠在計(jì)算機(jī)取證和災(zāi)難恢復(fù)等領(lǐng)域發(fā)揮很大作用。
(5)特權(quán)功能
虛擬化層是比操作系統(tǒng)更為底層的系統(tǒng)軟件,具有更高的特權(quán)級(jí)。虛擬化層可以在虛擬機(jī)操作系統(tǒng)沒(méi)有察覺(jué)的的情況下,更全面地監(jiān)測(cè)虛擬機(jī)的運(yùn)行。目前基于這一特性的研究和應(yīng)用已經(jīng)大量存在。
1.3 系統(tǒng)虛擬化的應(yīng)用
伴隨著虛擬化技術(shù)的成熟,很多企業(yè)和機(jī)構(gòu)都把它應(yīng)用在自己的基礎(chǔ)架構(gòu)建設(shè)上,總體來(lái)說(shuō)主要有以下幾個(gè)方面。
(1)服務(wù)器整合
虛擬化技術(shù)最為典型的應(yīng)用就是服務(wù)器整合,在一臺(tái)服務(wù)器上按不同的需求虛擬出多個(gè)虛擬機(jī),讓每個(gè)服務(wù)都運(yùn)行在不同的虛擬機(jī)上,不僅能夠充分利用已有的服務(wù)器資源,而且虛擬機(jī)互相隔離的特性能夠?yàn)榉?wù)程序提供獨(dú)立的執(zhí)行環(huán)境,系統(tǒng)的穩(wěn)定性、安全性和可擴(kuò)展性能夠得到很好的保障。
(2)災(zāi)難恢復(fù)
虛擬化技術(shù)在災(zāi)難恢復(fù)中的應(yīng)用主要體現(xiàn)在三個(gè)方面,第一是虛擬機(jī)的獨(dú)立性使客戶虛擬機(jī)以文件的形式存在,這樣備份程序可以通過(guò)普通的文件復(fù)制操作對(duì)系統(tǒng)進(jìn)行備份,避免了重裝操作系統(tǒng)和服務(wù)程序,大大增加了備份和恢復(fù)的速度。第二是由于虛擬化技術(shù)能夠?qū)ι蠈酉到y(tǒng)屏蔽底層硬件的特殊性,備份恢復(fù)能夠在任何硬件平臺(tái)上運(yùn)行,增強(qiáng)災(zāi)難恢復(fù)的可靠性。第三是虛擬化技術(shù)在服務(wù)器整合方面具有良好的特性,從而降低災(zāi)難恢復(fù)方面的成本開(kāi)銷(xiāo)。
(3)增強(qiáng)系統(tǒng)的安全性和可信性
虛擬機(jī)技術(shù)在提供安全性和可信性保護(hù)方面有著得天獨(dú)厚的優(yōu)勢(shì),首先是通過(guò)虛擬機(jī)技術(shù)提供的各客戶機(jī)之間和虛擬機(jī)與宿主機(jī)之間的高隔離性,用戶數(shù)據(jù)的私密性能夠得到很好的保護(hù);其次是虛擬機(jī)技術(shù)具有對(duì)系統(tǒng)資源的完全控制權(quán),虛擬機(jī)系統(tǒng)能夠?qū)Τ绦虻膱?zhí)行和客戶虛擬機(jī)的運(yùn)行進(jìn)行全面監(jiān)控,當(dāng)不滿足安全策略時(shí),程序的執(zhí)行就被阻止,從而可以保護(hù)用戶數(shù)據(jù)的完整性;再次是可以利用虛擬機(jī)進(jìn)行病毒等惡意軟件的測(cè)評(píng),病毒和惡意軟件對(duì)系統(tǒng)的破壞可以被控制在某個(gè)客戶虛擬機(jī)中,從而保護(hù)宿主機(jī)系統(tǒng)和其他系統(tǒng)不被影響。
復(fù)證測(cè)試系統(tǒng)需要在短時(shí)間內(nèi)給操作者提供大量完備的測(cè)試環(huán)境,同時(shí)能夠盡可能高效地完成測(cè)試過(guò)程,并在測(cè)試后,對(duì)測(cè)試環(huán)境快速恢復(fù)。虛擬化技術(shù)針對(duì)這些需求具有良好的適應(yīng)性,主要體現(xiàn)在以下幾個(gè)方面:
(1)節(jié)約硬件資源。絕大部分的測(cè)試環(huán)境往往不需要占用很多資源,而為了保證測(cè)試的完備性,測(cè)試環(huán)境的規(guī)模需要很龐大。虛擬化技術(shù)能夠高效的整合有限的服務(wù)器資源,提供最為真實(shí)的環(huán)境模擬。
(2)快速部署和恢復(fù)。虛擬機(jī)的創(chuàng)建可以通過(guò)虛擬化軟件提供的虛擬機(jī)模板和虛擬機(jī)克隆功能,測(cè)試環(huán)境能夠?qū)崿F(xiàn)分鐘級(jí)的部署。結(jié)合虛擬化軟件提供的網(wǎng)絡(luò)模擬功能,還能夠提供網(wǎng)絡(luò)環(huán)境的快速部署功能,從而省去了安裝操作系統(tǒng)、應(yīng)用軟件和部署網(wǎng)絡(luò)的時(shí)間及人力。同時(shí)測(cè)試環(huán)境能夠在使用后通過(guò)虛擬化軟件提供的快照功能進(jìn)行保存和恢復(fù),能夠在測(cè)試結(jié)束后快速恢復(fù)測(cè)試環(huán)境,不僅省去了對(duì)測(cè)試環(huán)境的清理工作,也無(wú)需擔(dān)心清理工作的不徹底導(dǎo)致之后測(cè)試結(jié)果的不正確。
(3)底層特權(quán)功能。很多測(cè)試需要深入了解軟件的運(yùn)行狀態(tài)和系統(tǒng)行為,而在主機(jī)中安裝監(jiān)控軟件本身就會(huì)對(duì)測(cè)試環(huán)境造成不同程度的影響,通過(guò)虛擬化層軟件直接監(jiān)控虛擬機(jī)的運(yùn)行狀態(tài)和系統(tǒng)行為能夠真實(shí)地反映被測(cè)試軟件或系統(tǒng)的運(yùn)行狀況,得出更為確切地結(jié)果。
基于VMware vSphere的復(fù)證測(cè)試系統(tǒng)總體架構(gòu)如圖3所示。
圖3 復(fù)證測(cè)試系統(tǒng)架構(gòu)
每個(gè)物理服務(wù)器均安裝VMware ESX虛擬化軟件,VMware ESX相當(dāng)于一個(gè)輕量級(jí)的操作系統(tǒng),它的安裝和運(yùn)行只需占用很少的磁盤(pán)空間和內(nèi)存。安裝好之后,每個(gè)物理服務(wù)器可以根據(jù)自己的硬件資源情況虛擬出多個(gè)不同操作系統(tǒng)的虛擬機(jī)。虛擬機(jī)通過(guò)管理端遠(yuǎn)程進(jìn)行管理。
管理端安裝vSphere Client軟件,遠(yuǎn)程連接安裝了VMware ESX的服務(wù)器。通過(guò)vSphere Client可以創(chuàng)建、銷(xiāo)毀虛擬機(jī),同時(shí)能夠?qū)μ摂M機(jī)執(zhí)行快照、克隆等管理操作,并能夠進(jìn)入虛擬機(jī),進(jìn)行各種測(cè)試工作。vSphere Client還能夠?qū)ξ锢矸?wù)器進(jìn)行資源的監(jiān)控和配置。
VMware vSphere還提供了vCenter,用來(lái)對(duì)多個(gè)服務(wù)器進(jìn)行集中管理,在管理端安裝vCenter Server后,通過(guò)vSphere Client連接到vCenter Server,將整個(gè)架構(gòu)看作一個(gè)數(shù)據(jù)中心,每個(gè)主機(jī)就是指每個(gè)物理服務(wù)器,主機(jī)上運(yùn)行多個(gè)虛擬機(jī)。通過(guò)vCenter,能夠?qū)?shù)據(jù)中心中的虛擬機(jī)進(jìn)行集中管理,更加方便,效率更高。
一個(gè)完整的復(fù)證測(cè)試過(guò)程如下:
(1)準(zhǔn)備測(cè)試環(huán)境
根據(jù)測(cè)試的具體要求,使用vSphere Client創(chuàng)建虛擬機(jī),并安裝對(duì)應(yīng)的操作系統(tǒng)及上層應(yīng)用軟件。如有需要,可先將虛擬機(jī)連接到互聯(lián)網(wǎng),進(jìn)行系統(tǒng)及軟件的更新。得到完備的測(cè)試環(huán)境后,對(duì)該虛擬機(jī)執(zhí)行快照操作,保存當(dāng)前的測(cè)試環(huán)境,以便測(cè)試完成后能夠快速恢復(fù),執(zhí)行下一個(gè)測(cè)試任務(wù)。
(2)執(zhí)行測(cè)試任務(wù)
進(jìn)入虛擬機(jī)環(huán)境,執(zhí)行測(cè)試任務(wù)。由于虛擬機(jī)的隔離特性,可以在多個(gè)虛擬機(jī)上同時(shí)運(yùn)行不同的測(cè)試任務(wù),虛擬機(jī)之間互不干擾。即便發(fā)生故障,導(dǎo)致虛擬機(jī)環(huán)境被破壞,也不會(huì)影響到其他虛擬機(jī)的運(yùn)行。通過(guò)還原快照,便可以迅速消除故障帶來(lái)的影響。
(3)輸出測(cè)試結(jié)果
根據(jù)測(cè)試過(guò)程的進(jìn)展,得到測(cè)試的結(jié)果,測(cè)試的結(jié)果能夠直觀的反應(yīng)在操作者面前,也能夠通過(guò)虛擬化層從底層監(jiān)控虛擬機(jī)的狀態(tài),甚至在不影響虛擬機(jī)運(yùn)行的情況下獲取軟件在底層發(fā)生的行為,獲得更加深入,更加詳細(xì)的測(cè)試結(jié)果。測(cè)試完成后,通過(guò)恢復(fù)快照,能夠迅速獲得測(cè)試前的系統(tǒng)環(huán)境,不會(huì)影響下一次的測(cè)試任務(wù)執(zhí)行。
本文主要對(duì)虛擬化技術(shù)從其技術(shù)實(shí)現(xiàn)、具備的優(yōu)勢(shì)和典型應(yīng)用方便進(jìn)行了詳細(xì)的闡述,提出虛擬化技術(shù)具備提高資源利用率、虛擬機(jī)隔離性、硬件無(wú)關(guān)性、封裝性以及特權(quán)功能等五個(gè)方面的獨(dú)特優(yōu)勢(shì),在服務(wù)器整合,災(zāi)難恢復(fù)和增強(qiáng)系統(tǒng)的安全性和可信性方面得到了廣泛應(yīng)用。
本文根據(jù)復(fù)證測(cè)試系統(tǒng)的特點(diǎn),指出虛擬化技術(shù)在復(fù)證測(cè)試系統(tǒng)的搭建和使用中具有良好的適應(yīng)性,能夠充分利用其節(jié)約硬件資源,快速部署和恢復(fù),底層特權(quán)功能等特性搭建和使用復(fù)證測(cè)試系統(tǒng)。
本文最后給出一個(gè)基于VMware vSphere的復(fù)證測(cè)試系統(tǒng)的模型,并簡(jiǎn)述了一個(gè)完整測(cè)試的流程。
[1] N.Susanta,C.Tzi-cker.A Survey on Virtualization Technologies[R].Experimental Computer Systems Lab, 2005.
[2] 胡嘉璽.智慧VMware vSphere運(yùn)維實(shí)錄[M].清華大學(xué)出版社,北京, 2011.
[3] 王春海.VMware Workstation與ESX Server典型應(yīng)用指南[M].中國(guó)鐵道出版社,北京,2011.
Virtualization technology application in the verification test
Kou Peng,Zhang Yun,Teng Xiaoxiao
(Shanghai General Recognition Technology Institute,201112)
System virtualization technology has excellent features,it helps to improve resource utilization, virtual machine isolation,hardware-independence,platform encapsulation and privileged functionality,etc. These features provide a great convenience and lots of advantages for the construction and application of the verification test system,which bare hardware environment can seldom have.This paper illustrates the system virtualization technologies,analyzes their advantages and existing applications.It also discusses in detail on how we apply the virtualization technology to the verification test system and what the advantages of this application are.
Virtualization;Verification Test;VMware ESX;VMware vSphere