寇 鵬, 張 韻,滕曉曉
虛擬化技術在復證測試中的應用
寇 鵬, 張 韻,滕曉曉
(上海通用識別技術研究所,201112)
系統虛擬化技術具有提高資源利用率、虛擬機隔離性、硬件無關性、封裝性及特權功能等優良特性,這些特性能夠為復證測試系統的搭建和使用提供很大的便利性和其他一些純硬件環境無法具備的優勢。本文闡述了系統虛擬化的相關技術,分析了系統虛擬化技術的優勢和應用,并詳細探討了虛擬化技術在復證測試系統中如何應用和具備哪些優勢。
虛擬化;復證測試;VMware ESX;VMware vSphere
近年來,虛擬化以其高效使用計算機系統資源、提供良好隔離機制等優勢,越來越多地成為信息技術領域的研究熱點。以VMware為代表的虛擬化技術產品在各大中小型企業和各大數據中心中得到了廣泛應用,其中最為著名且市場占有率最高的莫過于VMware的vSphere。除此之外,還有KVM,Xen等成熟的虛擬化產品。虛擬化技術具有很多普通IT環境無法達到的優勢,虛擬化技術能夠整合企業的服務器資源,降低企業購買硬件設備和能耗的開支,減少成本。同時虛擬化技術提供了快速部署、硬件無關性等特性,具有廣泛的應用前景。
復證測試環境需要在短時間內置備數量龐大的測試系統,同時系統的部署千變萬化,使用純物理環境很難滿足上述要求,虛擬化以其獨特的功能和特性,在復證測試環境的部署和應用上,具有重要意義。
1.1 系統虛擬化技術
系統虛擬化是指在一臺物理計算機上提供多個相互隔離的虛擬執行環境,執行環境之間使用不同的磁盤和內存區域,分時使用共享的處理器、網絡設備等資源。如圖1所示,系統虛擬化技術不僅能夠提高硬件資源的使用效率,降低系統運行的成本開銷,而且高度的隔離性使虛擬機之間互不影響,同時使虛擬機與硬件之間沒有直接關聯。另外,用于完成指令模擬和硬件復用的虛擬化層,能夠提供以往操作系統所無法提供的功能。

圖1 系統虛擬化
系統虛擬化技術對物理資源的虛擬化主要是通過處理器虛擬化、內存虛擬化和I/O虛擬化來實現的。
處理器虛擬化技術能夠使客戶虛擬機在執行敏感指令時觸發異常,陷入到虛擬化層,由虛擬化層進行指令模擬,以防敏感指令對虛擬化層造成破壞。
內存虛擬化通過提供介于物理內存地址空間和客戶虛擬機虛擬內存地址空間之間的客戶物理內存地址空間,使客戶虛擬機操作系統仍認為其掌握著對一個地址從0開始且連續的物理內存空間的管理。不僅使虛擬化層為各個虛擬機很好的分配了物理內存地址,而且保證了良好的內存隔離,同時使客戶虛擬機能夠正常運行。如圖2所示。

圖2 內存虛擬化
I/O虛擬化就是使虛擬化層截獲客戶虛擬機操作系統對I/O設備訪問請求,再通過軟件的方式模擬物理設備的反饋返回給客戶虛擬機,或者將請求進行集中排隊,依次調度給真實的物理設備,再將反饋結果返回給對應的客戶虛擬機。I/O虛擬化同時還能模擬出計算機系統中并不存在的物理設備,在物理資源有限的條件下,滿足客戶虛擬機的配置要求。
1.2 系統虛擬化的優勢
虛擬化技術的優勢主要有以下幾個方面。
(1)提高資源利用率
操作系統的運行對資源的占用是具有分時特性的,資源的占用狀態有忙有閑,多個虛擬機實例運行在同一物理計算機上,通過合理的調度,可以使系統資源的利用率得到很大的提高。通過對物理計算機性能的充分調動,使原來需要多個服務器同時運行才能達到的要求,通過將服務器以虛擬機的形式合理地整合到少量的物理服務器上就可以達到。有效地節省了購買硬件設備的成本,提高了企業的效益。虛擬化技術為公司節約大量的硬件開銷,降低了系統管理的花費,節約人力資源,提高了舊業務系統的性能,還降低了新系統的開發部署成本。
(2)虛擬機隔離性
系統虛擬化技術將多個虛擬機整合在同一個物理機上運行,必須解決的問題就是隔離,多個虛擬機在相互隔離的環境下互不影響地運行。如果一臺虛擬機因操作系統或其應用程序的故障導致異常甚至崩潰,這種故障和對系統的破壞會被封閉在一個虛擬機中,不會影響到其他虛擬機的正常運行。這種特性可以被用戶用來測試不穩定的軟件系統或制作吸引攻擊的蜜罐系統以保護真正的服務程序。
(3)硬件無關性
虛擬機與底層硬件之間存在一個虛擬化層軟件,使虛擬機和硬件之間沒有直接的聯系。因此,通過對虛擬化層的開發,模擬出適合于不同操作系統的硬件環境,就可以對上層虛擬機隱藏硬件的異構性,從而便于虛擬機從一臺物理機遷移到另一臺不同硬件結構的物理機上。虛擬機遷移技術也是虛擬化技術的研究熱點。
(4)封裝性
系統虛擬化技術將虛擬機整體封裝起來,這種封裝使得用戶對虛擬機運行環境的保存、恢復等操作非常方便。如快照、克隆和掛起等功能。
虛擬機快照功能可以將運行中的虛擬機所有狀態抓取并保存下來,當系統出現無法解決的故障時,可以通過快照進行所有狀態的還原,恢復系統在某個過去的時間點上的正常運行狀態。虛擬機克隆功能可以完整地把一個虛擬機復制為多份,得到多個相同的執行環境。虛擬機掛起功能如同操作系統的休眠功能,可以將系統的運行暫停下來,將虛擬機的運行狀態保存在磁盤上,當恢復運行時,暫停前的虛擬機運行狀態完整地恢復出來,系統從暫停時的狀態開始繼續運行。封裝性使服務和運行環境能夠更為便捷地部署,同時能夠在計算機取證和災難恢復等領域發揮很大作用。
(5)特權功能
虛擬化層是比操作系統更為底層的系統軟件,具有更高的特權級。虛擬化層可以在虛擬機操作系統沒有察覺的的情況下,更全面地監測虛擬機的運行。目前基于這一特性的研究和應用已經大量存在。
1.3 系統虛擬化的應用
伴隨著虛擬化技術的成熟,很多企業和機構都把它應用在自己的基礎架構建設上,總體來說主要有以下幾個方面。
(1)服務器整合
虛擬化技術最為典型的應用就是服務器整合,在一臺服務器上按不同的需求虛擬出多個虛擬機,讓每個服務都運行在不同的虛擬機上,不僅能夠充分利用已有的服務器資源,而且虛擬機互相隔離的特性能夠為服務程序提供獨立的執行環境,系統的穩定性、安全性和可擴展性能夠得到很好的保障。
(2)災難恢復
虛擬化技術在災難恢復中的應用主要體現在三個方面,第一是虛擬機的獨立性使客戶虛擬機以文件的形式存在,這樣備份程序可以通過普通的文件復制操作對系統進行備份,避免了重裝操作系統和服務程序,大大增加了備份和恢復的速度。第二是由于虛擬化技術能夠對上層系統屏蔽底層硬件的特殊性,備份恢復能夠在任何硬件平臺上運行,增強災難恢復的可靠性。第三是虛擬化技術在服務器整合方面具有良好的特性,從而降低災難恢復方面的成本開銷。
(3)增強系統的安全性和可信性
虛擬機技術在提供安全性和可信性保護方面有著得天獨厚的優勢,首先是通過虛擬機技術提供的各客戶機之間和虛擬機與宿主機之間的高隔離性,用戶數據的私密性能夠得到很好的保護;其次是虛擬機技術具有對系統資源的完全控制權,虛擬機系統能夠對程序的執行和客戶虛擬機的運行進行全面監控,當不滿足安全策略時,程序的執行就被阻止,從而可以保護用戶數據的完整性;再次是可以利用虛擬機進行病毒等惡意軟件的測評,病毒和惡意軟件對系統的破壞可以被控制在某個客戶虛擬機中,從而保護宿主機系統和其他系統不被影響。
復證測試系統需要在短時間內給操作者提供大量完備的測試環境,同時能夠盡可能高效地完成測試過程,并在測試后,對測試環境快速恢復。虛擬化技術針對這些需求具有良好的適應性,主要體現在以下幾個方面:
(1)節約硬件資源。絕大部分的測試環境往往不需要占用很多資源,而為了保證測試的完備性,測試環境的規模需要很龐大。虛擬化技術能夠高效的整合有限的服務器資源,提供最為真實的環境模擬。
(2)快速部署和恢復。虛擬機的創建可以通過虛擬化軟件提供的虛擬機模板和虛擬機克隆功能,測試環境能夠實現分鐘級的部署。結合虛擬化軟件提供的網絡模擬功能,還能夠提供網絡環境的快速部署功能,從而省去了安裝操作系統、應用軟件和部署網絡的時間及人力。同時測試環境能夠在使用后通過虛擬化軟件提供的快照功能進行保存和恢復,能夠在測試結束后快速恢復測試環境,不僅省去了對測試環境的清理工作,也無需擔心清理工作的不徹底導致之后測試結果的不正確。
(3)底層特權功能。很多測試需要深入了解軟件的運行狀態和系統行為,而在主機中安裝監控軟件本身就會對測試環境造成不同程度的影響,通過虛擬化層軟件直接監控虛擬機的運行狀態和系統行為能夠真實地反映被測試軟件或系統的運行狀況,得出更為確切地結果。
基于VMware vSphere的復證測試系統總體架構如圖3所示。

圖3 復證測試系統架構
每個物理服務器均安裝VMware ESX虛擬化軟件,VMware ESX相當于一個輕量級的操作系統,它的安裝和運行只需占用很少的磁盤空間和內存。安裝好之后,每個物理服務器可以根據自己的硬件資源情況虛擬出多個不同操作系統的虛擬機。虛擬機通過管理端遠程進行管理。
管理端安裝vSphere Client軟件,遠程連接安裝了VMware ESX的服務器。通過vSphere Client可以創建、銷毀虛擬機,同時能夠對虛擬機執行快照、克隆等管理操作,并能夠進入虛擬機,進行各種測試工作。vSphere Client還能夠對物理服務器進行資源的監控和配置。
VMware vSphere還提供了vCenter,用來對多個服務器進行集中管理,在管理端安裝vCenter Server后,通過vSphere Client連接到vCenter Server,將整個架構看作一個數據中心,每個主機就是指每個物理服務器,主機上運行多個虛擬機。通過vCenter,能夠對數據中心中的虛擬機進行集中管理,更加方便,效率更高。
一個完整的復證測試過程如下:
(1)準備測試環境
根據測試的具體要求,使用vSphere Client創建虛擬機,并安裝對應的操作系統及上層應用軟件。如有需要,可先將虛擬機連接到互聯網,進行系統及軟件的更新。得到完備的測試環境后,對該虛擬機執行快照操作,保存當前的測試環境,以便測試完成后能夠快速恢復,執行下一個測試任務。
(2)執行測試任務
進入虛擬機環境,執行測試任務。由于虛擬機的隔離特性,可以在多個虛擬機上同時運行不同的測試任務,虛擬機之間互不干擾。即便發生故障,導致虛擬機環境被破壞,也不會影響到其他虛擬機的運行。通過還原快照,便可以迅速消除故障帶來的影響。
(3)輸出測試結果
根據測試過程的進展,得到測試的結果,測試的結果能夠直觀的反應在操作者面前,也能夠通過虛擬化層從底層監控虛擬機的狀態,甚至在不影響虛擬機運行的情況下獲取軟件在底層發生的行為,獲得更加深入,更加詳細的測試結果。測試完成后,通過恢復快照,能夠迅速獲得測試前的系統環境,不會影響下一次的測試任務執行。
本文主要對虛擬化技術從其技術實現、具備的優勢和典型應用方便進行了詳細的闡述,提出虛擬化技術具備提高資源利用率、虛擬機隔離性、硬件無關性、封裝性以及特權功能等五個方面的獨特優勢,在服務器整合,災難恢復和增強系統的安全性和可信性方面得到了廣泛應用。
本文根據復證測試系統的特點,指出虛擬化技術在復證測試系統的搭建和使用中具有良好的適應性,能夠充分利用其節約硬件資源,快速部署和恢復,底層特權功能等特性搭建和使用復證測試系統。
本文最后給出一個基于VMware vSphere的復證測試系統的模型,并簡述了一個完整測試的流程。
[1] N.Susanta,C.Tzi-cker.A Survey on Virtualization Technologies[R].Experimental Computer Systems Lab, 2005.
[2] 胡嘉璽.智慧VMware vSphere運維實錄[M].清華大學出版社,北京, 2011.
[3] 王春海.VMware Workstation與ESX Server典型應用指南[M].中國鐵道出版社,北京,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