摘要云計(jì)算是一種基于Internet的新興應(yīng)用計(jì)算機(jī)技術(shù)。其愿景是以互聯(lián)網(wǎng)為中心,提供可靠安全的數(shù)據(jù)存儲(chǔ)、方便快捷的互聯(lián)網(wǎng)服務(wù)和強(qiáng)大的計(jì)算能力。在這個(gè)特殊的云計(jì)算環(huán)境下,如何創(chuàng)造基于云計(jì)算的虛擬化平臺(tái),將是云計(jì)算面臨的一大問題。從云計(jì)算的特征及目前存在的問題出發(fā),分析云計(jì)算在虛擬化平臺(tái)的應(yīng)用情況。
關(guān)鍵詞云計(jì)算;虛擬化;底層技術(shù);虛擬網(wǎng)絡(luò)驅(qū)動(dòng);虛擬交換機(jī)
中圖分類號(hào)S126文獻(xiàn)標(biāo)識(shí)碼A文章編號(hào)0517-6611(2014)04-01241-02
作者簡(jiǎn)介余津浩(1990-),男,福建福州人,本科生,專業(yè):網(wǎng)絡(luò)工程。
云計(jì)算的根本是計(jì)算資源虛擬化,在云計(jì)算蓬勃發(fā)展的今天,各廠商紛紛推出虛擬化平臺(tái)產(chǎn)品,如何衡量一款產(chǎn)品性能的好壞,也成為業(yè)內(nèi)新的技術(shù)挑戰(zhàn)。從技術(shù)層面分析,虛擬化平臺(tái)是在虛擬機(jī)操作系統(tǒng)與物理服務(wù)器硬件之間增加了一個(gè)調(diào)度層,勢(shì)必會(huì)對(duì)應(yīng)用程序操作硬件產(chǎn)生一定影響;同時(shí)其自身運(yùn)行也需要耗費(fèi)一定的計(jì)算資源,對(duì)整個(gè)物理服務(wù)器的資源使用會(huì)產(chǎn)生損耗,這些都是在性能測(cè)試設(shè)計(jì)中需要考慮的方面[1]。
根據(jù)云計(jì)算中最為關(guān)鍵的3個(gè)要素:計(jì)算資源、網(wǎng)絡(luò)資源和存儲(chǔ)資源,虛擬化平臺(tái)性能測(cè)試也對(duì)應(yīng)地分為計(jì)算性能測(cè)試、網(wǎng)絡(luò)性能測(cè)試和存儲(chǔ)性能測(cè)試3個(gè)主要方面。
1 計(jì)算性能測(cè)試設(shè)計(jì)
計(jì)算資源是云計(jì)算的重中之重,所有業(yè)務(wù)的展開都是依托于計(jì)算資源的能力提供,因此計(jì)算性能也是衡量云計(jì)算性能的最重要指標(biāo)。計(jì)算性能測(cè)試設(shè)計(jì)分為兩個(gè)方面:①對(duì)虛擬化平臺(tái)自身消耗硬件系統(tǒng)性能進(jìn)行評(píng)估;②不同虛擬化平臺(tái)對(duì)虛擬機(jī)操作系統(tǒng)業(yè)務(wù)調(diào)度的影響進(jìn)行比較。
1.1虛擬化平臺(tái)性能消耗測(cè)試設(shè)計(jì)不同廠家的虛擬化平臺(tái)采用了不同的底層技術(shù),當(dāng)前業(yè)內(nèi)主流的4大類虛擬化底層平臺(tái)為:VMware的ESX/ESXi、Microsoft的Hyper-V和開源的XEN與KVM。這些不同的底層平臺(tái)對(duì)CPU和內(nèi)存等計(jì)算資源的調(diào)度方式各不相同,很難找到一個(gè)通用的技術(shù)工具來統(tǒng)一衡量。如果變換角度,通過測(cè)試在同一硬件平臺(tái)下虛擬機(jī)操作系統(tǒng)和物理機(jī)操作系統(tǒng)對(duì)資源的使用性能,可以推算出虛擬化平臺(tái)自身的運(yùn)行損耗。
第1步,選擇一款物理服務(wù)器平臺(tái),然后在此服務(wù)器上安裝測(cè)試使用的操作系統(tǒng),可以選擇Windows或Linux系統(tǒng)。接著安裝常用的計(jì)算性能測(cè)試軟件,如Windows Server系統(tǒng)自帶的評(píng)測(cè)工具或開源的Benchmarker等,測(cè)算當(dāng)前系統(tǒng)計(jì)算性能得分。如果采用Linux Server系統(tǒng),則可以安裝如lmbench和Geekbench等測(cè)試工具,進(jìn)行評(píng)測(cè)。性能測(cè)試后得到測(cè)試結(jié)果TestResult1。
第2步,在物理服務(wù)器上安裝虛擬化平臺(tái)軟件,創(chuàng)建一個(gè)虛擬機(jī),并將物理服務(wù)器的CPU和內(nèi)存等計(jì)算資源都分配給此虛擬服務(wù)器。然后在此虛擬服務(wù)器上安裝同樣的操作系統(tǒng)與測(cè)試工具,運(yùn)行相同的測(cè)試項(xiàng)目,得到測(cè)試結(jié)果TestResult2。
比較兩個(gè)測(cè)試結(jié)果的差值,可以得到虛擬化平臺(tái)對(duì)物理資源的損耗估計(jì)值。如果希望得到更準(zhǔn)確的損耗估計(jì),需要測(cè)試同一款虛擬化平臺(tái)安裝在不同物理服務(wù)器上,部署多個(gè)操作系統(tǒng)和測(cè)試工具情況下的測(cè)試結(jié)果,并進(jìn)行縱向比較,得到更多的參考數(shù)據(jù)。
1.2虛擬化平臺(tái)調(diào)度性能測(cè)試設(shè)計(jì)虛擬化平臺(tái)性能損耗測(cè)試是縱向測(cè)試,比較的對(duì)象為物理服務(wù)器和虛擬服務(wù)器環(huán)境下的測(cè)試結(jié)果。而虛擬化平臺(tái)調(diào)度性能測(cè)試則為橫向測(cè)試,比較的對(duì)象主要為相同物理服務(wù)器和軟件環(huán)境下不同虛擬化平臺(tái)的性能測(cè)試結(jié)果。兩者的測(cè)試方法區(qū)別不大,但環(huán)境設(shè)定存在差異。
第1步,選取相同的物理服務(wù)器硬件平臺(tái),安裝虛擬化平臺(tái)軟件,并創(chuàng)建虛擬服務(wù)器,此時(shí)不需要安裝最大化部署計(jì)算資源,只需考慮業(yè)務(wù)環(huán)境需求創(chuàng)建對(duì)應(yīng)大小CPU和內(nèi)存資源的虛擬機(jī)即可。然后在虛擬機(jī)上安裝操作系統(tǒng)與測(cè)試工具,取得測(cè)試結(jié)果TestResult1。
第2步,更換虛擬化平臺(tái)軟件,創(chuàng)建同樣資源大小的虛擬服務(wù)器并安裝運(yùn)行環(huán)境,取得測(cè)試結(jié)果TestResult2。
比較兩個(gè)測(cè)試結(jié)果,可以得到不同虛擬化平臺(tái)的調(diào)度運(yùn)行性能。如果希望得到更準(zhǔn)確的調(diào)度性能結(jié)果,建議將相同測(cè)試運(yùn)行多次,取平均值再進(jìn)行比較。
2 網(wǎng)絡(luò)性能測(cè)試設(shè)計(jì)
在虛擬化環(huán)境下,用戶關(guān)心的流量轉(zhuǎn)發(fā)已經(jīng)由物理節(jié)點(diǎn)鏈路延伸到服務(wù)器內(nèi)部,從測(cè)試設(shè)計(jì)考慮,網(wǎng)絡(luò)性能測(cè)試也相應(yīng)地增加了虛擬鏈路與虛擬交換機(jī)的轉(zhuǎn)發(fā)性能等相關(guān)內(nèi)容。虛擬鏈路(虛擬網(wǎng)卡)性能測(cè)試重點(diǎn)關(guān)注的是虛擬化平臺(tái)為虛擬服務(wù)器提供的虛擬網(wǎng)卡的轉(zhuǎn)發(fā)性能,即測(cè)試模型主要以單點(diǎn)到單點(diǎn)的轉(zhuǎn)發(fā)為主。虛擬交換機(jī)性能測(cè)試則關(guān)注的是在限定的物理服務(wù)器平臺(tái)下,虛擬交換機(jī)可以提供的最大全虛擬服務(wù)器節(jié)點(diǎn)的轉(zhuǎn)發(fā)性能,即測(cè)試模型主要以多點(diǎn)到多點(diǎn)的轉(zhuǎn)發(fā)為主。
2.1虛擬鏈路性能測(cè)試設(shè)計(jì)虛擬鏈路性能測(cè)試結(jié)果主要與虛擬機(jī)采用的虛擬網(wǎng)絡(luò)驅(qū)動(dòng)類型有關(guān),同時(shí)受限于虛擬化平臺(tái)的軟件轉(zhuǎn)發(fā)能力。測(cè)試過程重點(diǎn)關(guān)注同一物理機(jī)內(nèi)部的虛擬機(jī)之間的流量轉(zhuǎn)發(fā)能力。對(duì)跨物理交換機(jī)網(wǎng)絡(luò)的不同物理服務(wù)器之間的轉(zhuǎn)發(fā)能力,由于會(huì)受到物理網(wǎng)卡及網(wǎng)絡(luò)設(shè)備的影響,測(cè)試結(jié)果往往體現(xiàn)的是整個(gè)系統(tǒng)的性能,對(duì)單一虛擬化平臺(tái)性能衡量不夠精確。
測(cè)試虛擬鏈路性能常用的方法是在同一物理服務(wù)器內(nèi)部創(chuàng)建2臺(tái)虛擬機(jī)(圖1),在相同的操作系統(tǒng)和軟件環(huán)境下,使用相同的測(cè)試工具(如NetPerf和Iperf等)測(cè)試流量轉(zhuǎn)發(fā)性能。對(duì)于測(cè)試結(jié)果有兩點(diǎn)注意事項(xiàng):①比較不同廠家虛擬化平臺(tái)產(chǎn)品的虛擬鏈路性能時(shí),需要保證測(cè)試的物理平臺(tái)與虛擬機(jī)操作系統(tǒng)相同。②測(cè)試結(jié)果有時(shí)還會(huì)受到測(cè)試工具所在操作系統(tǒng)的影響,測(cè)試過程中需要對(duì)TCP滑動(dòng)窗口大小和傳輸報(bào)文負(fù)載大小等參數(shù)進(jìn)行調(diào)整,以取得虛擬化平臺(tái)能夠承載的最大值和最接近真實(shí)應(yīng)用數(shù)據(jù)模型情況下的測(cè)試結(jié)果。
2.2虛擬交換機(jī)性能測(cè)試設(shè)計(jì)虛擬化平臺(tái)上通常需要部署大量虛擬機(jī),因此也需要測(cè)試在復(fù)雜環(huán)境下大量虛擬機(jī)轉(zhuǎn)發(fā)對(duì)虛擬交換機(jī)vswitch的影響,從而得到vswitch的最大轉(zhuǎn)發(fā)性能。同樣,此測(cè)試設(shè)計(jì)只對(duì)同一物理服務(wù)器內(nèi)部流量轉(zhuǎn)發(fā)模型有意義,對(duì)于跨物理服務(wù)器的流量模型,測(cè)試結(jié)果無法準(zhǔn)確衡量虛擬交換機(jī)的性能。
虛擬交換機(jī)性能測(cè)試需要測(cè)試大量虛擬機(jī)同時(shí)進(jìn)行流量轉(zhuǎn)發(fā)情況下的性能,假設(shè)建立虛擬機(jī)為a1,a2,…,am;b1,b2,…,bn,流量模型可以分為Backbone或Fullmesh兩類(圖2)。
圖2虛擬交換機(jī)性能測(cè)試模型Backbone模型是建立每個(gè)a節(jié)點(diǎn)到每個(gè)b節(jié)點(diǎn)的雙向流量,而a節(jié)點(diǎn)內(nèi)部和b節(jié)點(diǎn)內(nèi)部沒有流量交互,測(cè)試結(jié)果可以衡量?jī)山M虛擬機(jī)之間的流量交互性能。
Fullmesh模型則是在所有節(jié)點(diǎn)之間都要建立流量交互,以測(cè)試虛擬交換機(jī)連接所有虛擬機(jī)均有多條流量轉(zhuǎn)發(fā)情況下的性能。
測(cè)試時(shí),需要根據(jù)實(shí)際業(yè)務(wù)模型來選取測(cè)試的流量模型。如果虛擬機(jī)部署為應(yīng)用與數(shù)據(jù)庫(kù)兩類,只有互相訪問,而沒有內(nèi)部交互,則可以選擇Backbone模型進(jìn)行測(cè)試;如果部署同一類型用于分布式計(jì)算的虛擬機(jī),相互之間都會(huì)有流量產(chǎn)生,則選擇Fullmesh模型測(cè)試更加適合。
由于測(cè)試過程中需要大量虛擬機(jī)同時(shí)收發(fā)流量,則常規(guī)的單一開源測(cè)試軟件如NetPerf或Iperf等很難滿足需求,需要配合STAF等自動(dòng)化測(cè)試平臺(tái)軟件才能完成任務(wù)的同步下發(fā)和管理。此類測(cè)試還有一些常用的專業(yè)測(cè)試工具,如Spirent的STCv、IXIA的IxVM等測(cè)試軟件。這類軟件的原理是根據(jù)模板建一個(gè)虛擬機(jī),此虛擬機(jī)唯一的工作任務(wù)就是收發(fā)流量測(cè)試,不需要再安裝操作系統(tǒng)與額外的軟件工具。相對(duì)來說操作簡(jiǎn)單,同時(shí)可以提供更加豐富的數(shù)據(jù)。缺點(diǎn)是開銷較大[2]。
虛擬交換機(jī)性能測(cè)試同樣完全受限于物理服務(wù)器硬件平臺(tái)和虛擬化平臺(tái)的能力,因此只有在相同物理平臺(tái)下,比較不同廠商的測(cè)試結(jié)果才有意義。
3 存儲(chǔ)性能測(cè)試設(shè)計(jì)
在云計(jì)算虛擬化平臺(tái)中,使用的存儲(chǔ)設(shè)備資源可以為FC SAN、iSCSI、NFS、Samba等網(wǎng)絡(luò)存儲(chǔ)方式,無論使用哪種存儲(chǔ)方式,虛擬化平臺(tái)都會(huì)將其進(jìn)行轉(zhuǎn)化,最終以文件形式形成虛擬機(jī)的磁盤文件或直接以卷的形式供虛擬機(jī)使用。因此,測(cè)試設(shè)計(jì)時(shí)只需要考慮測(cè)試場(chǎng)景均采用同種存儲(chǔ)方式進(jìn)行搭建下的測(cè)試即可。
關(guān)注的存儲(chǔ)性能測(cè)試結(jié)果主要是IOPS和吞吐率兩個(gè)指標(biāo)。IOPS指每秒I/O吞吐數(shù)量,是存儲(chǔ)性能的常規(guī)測(cè)試指標(biāo),體現(xiàn)了虛擬化平臺(tái)對(duì)存儲(chǔ)I/O處理方面的能力。吞吐率指虛擬化平臺(tái)能夠處理的存儲(chǔ)流量大小,單位為Mbps,通常分為讀和寫兩個(gè)方向的結(jié)果,受限于磁盤的磁道寫入性能,通常讀速率性能要遠(yuǎn)大于寫速率性能[3]。
測(cè)試時(shí),為了比較不同廠家虛擬化平臺(tái)產(chǎn)品的存儲(chǔ)性能,需要在相同硬件環(huán)境下,采用相同的存儲(chǔ)介質(zhì)與存儲(chǔ)方式測(cè)試同一個(gè)指標(biāo),進(jìn)而將得到的測(cè)試結(jié)果進(jìn)行比較。測(cè)試工具可以選擇專用的存儲(chǔ)測(cè)試軟件,如IOmeter、IObench和IOzone等,也可以選用通用的測(cè)試平臺(tái),如phoronix-test-suite的存儲(chǔ)相關(guān)性能測(cè)試套件等。安裝測(cè)試方法和前面的計(jì)算與網(wǎng)絡(luò)性能測(cè)試類似,都是先給虛擬機(jī)安裝Windows或Linux操作系統(tǒng),然后再安裝測(cè)試工具軟件進(jìn)行測(cè)試。
4小結(jié)和展望