李葉飛,王松云
(江蘇方天電力技術(shù)有限公司,江蘇 南京 211102)
虛擬化技術(shù)是當(dāng)前大型數(shù)字化中心進(jìn)行硬件資源整合和提高能效的重要技術(shù)之一,利用虛擬化技術(shù)構(gòu)建企業(yè)內(nèi)部的私有云平臺,可以實現(xiàn)對物理資源的統(tǒng)一管理,提高資源的利用率,在節(jié)約經(jīng)濟(jì)成本、節(jié)能、降低安裝部署和管理的難度等方面取得顯著的成效?,F(xiàn)有的虛擬化產(chǎn)品更多地注重虛擬化性能,在基礎(chǔ)設(shè)施的管理方面存在諸多不足。
1)企業(yè)對資源管理的趨勢是將基礎(chǔ)設(shè)施以服務(wù)的方式向用戶提供,給用戶提供透明服務(wù),實現(xiàn)資源的按需分配,根據(jù)應(yīng)用所需的資源(CPU、內(nèi)存、存儲、帶寬等),自動實現(xiàn)硬件資源的負(fù)載均衡,提高系統(tǒng)的高可用性。而現(xiàn)有管理工具的操作、配置、控制和管理基本停留在人工階段,資源申請時,在申請人提出需求后,需要管理人員判斷申請的資源能否滿足;平臺運(yùn)行時,需要管理人員定期察看資源的使用情況,以防止某些虛擬機(jī)資源緊張,影響應(yīng)用的運(yùn)行。在資源長時間不用時,不能及時釋放資源,造成不必要的資源競爭。隨著資源的增加,減少資源管理的人工干涉,讓資源可以根據(jù)管理人員制定的策略,實現(xiàn)自適應(yīng)管理成為迫切的需要。
2)對虛擬化主機(jī)的管理需要屏蔽不同軟硬件資源之間的異構(gòu)性,現(xiàn)有的管理工具只能管理同一系列的虛擬主機(jī),vCenter只能管理 ESXi主機(jī),而 Xen-Center只能管理XenServer主機(jī)。然而各個產(chǎn)品都有其優(yōu)勢領(lǐng)域,因此當(dāng)企業(yè)因需求的多樣性而需要使用多種產(chǎn)品時,需要有能兼容多個虛擬化產(chǎn)品的管理工具。
3)資源管理需要實現(xiàn)報警信息的主動推送,在物理機(jī)或虛擬機(jī)運(yùn)行出現(xiàn)報警時及時通知運(yùn)維人員進(jìn)行維護(hù),有效地降低故障帶來的損失。
因此,在利用這些虛擬化產(chǎn)品來搭建企業(yè)的私有云平臺時,如何使它們與企業(yè)的管理流程更好地結(jié)合,對云平臺的基礎(chǔ)設(shè)施進(jìn)行自動化管理和維護(hù),為上層應(yīng)用提供穩(wěn)定高效的基礎(chǔ),真正實現(xiàn)資源的“集中管理、按需分配、動態(tài)調(diào)優(yōu)”是本文研究的目的。
目前,現(xiàn)有的服務(wù)器虛擬化產(chǎn)品提供了功能完善的客戶端管理工具對物理機(jī)、虛擬機(jī)及虛擬機(jī)模板進(jìn)行管理,如vCenter、XenCenter等。桌面虛擬化產(chǎn)品也有相應(yīng)的客戶端可以實現(xiàn)虛擬桌面的發(fā)布和交付,如XenDesktop Studio。但是,如何對這些構(gòu)建企業(yè)私有云平臺的軟硬件基礎(chǔ)設(shè)施進(jìn)行一體化管理,減少人工干預(yù),兼容異構(gòu)產(chǎn)品,提高云平臺的工作效率,實現(xiàn)云平臺的自動化管理,使得與現(xiàn)有的企業(yè)管理流程更好地融合,是企業(yè)在建立私有云平臺時面臨的挑戰(zhàn)。
對資源的管理策略,最終體現(xiàn)在虛擬服務(wù)器的放置問題上,因此許多學(xué)者在這一方面做了大量的研究。文獻(xiàn)[4]綜合考慮了性能、能耗和QoS等參數(shù)指標(biāo),提出了一種自適應(yīng)管理框架,框架采用多目標(biāo)優(yōu)化遺傳算法制定虛擬機(jī)放置策略。文獻(xiàn)[5]通過分析不同虛擬機(jī)的負(fù)載特征,提出并實現(xiàn)了一個基于負(fù)載特征的虛擬機(jī)放置策略,在使用更少的物理機(jī)的同時,保持虛擬機(jī)性能基本不變。文獻(xiàn)[12]提出了一種應(yīng)用無關(guān)的負(fù)載均衡機(jī)制,通過實時監(jiān)控物理機(jī)及虛擬機(jī)的各項資源使用情況,結(jié)合應(yīng)用的當(dāng)前負(fù)載并預(yù)測其變化趨勢,及時調(diào)整物理資源到虛擬資源的重新分配。
未來數(shù)據(jù)中心的虛擬機(jī)服務(wù)單元將具備動態(tài)遷移和伸縮能力,需要對虛擬資源進(jìn)行自適應(yīng)調(diào)度和管理以適應(yīng)應(yīng)用負(fù)載的動態(tài)變化。究其核心依然是虛擬機(jī)的優(yōu)化放置問題,本文結(jié)合虛擬機(jī)資源使用情況和應(yīng)用服務(wù)性能,研究一種虛擬機(jī)放置策略,并以此策略建立自動化管理框架。
本文提出一種虛擬機(jī)放置算法來解決資源分配時的虛擬機(jī)放置問題,并在此基礎(chǔ)上設(shè)計一個自動化管理框架,對私有云的基礎(chǔ)設(shè)施進(jìn)行統(tǒng)一管理。同時實現(xiàn)對于云平臺報警信息的主動推送。系統(tǒng)框架如圖1所示,根據(jù)功能不同,邏輯上分為三層結(jié)構(gòu):接口層、功能層、管理層。
接口層鏈接底層物理資源與上層功能應(yīng)用的樞紐,解析上層指令操作,封裝下層功能相同的異構(gòu)函數(shù)。向上層應(yīng)用提供透明的管理接口和監(jiān)控接口作為服務(wù),屏蔽軟硬件資源的異構(gòu)性;向下實現(xiàn)對異構(gòu)的虛擬服務(wù)器進(jìn)行管理、監(jiān)控,封裝了服務(wù)器虛擬化和桌面虛擬化軟件提供的SDK。
圖1 系統(tǒng)框架設(shè)計
功能層是管理平臺最核心的部分,主要包括4個功能模塊:性能監(jiān)控、資源調(diào)度、自適應(yīng)管理和報警推送。其詳細(xì)框架如圖2所示。
圖2 功能層結(jié)構(gòu)圖
性能監(jiān)控模塊對平臺內(nèi)的物理機(jī)資源使用情況、虛擬機(jī)資源使用情況、應(yīng)用的性能進(jìn)行監(jiān)控,并把監(jiān)控的數(shù)據(jù)寫入數(shù)據(jù)庫。
資源調(diào)度模塊對于長期的、可預(yù)測的負(fù)載采取主動方式,從數(shù)據(jù)庫中獲取性能監(jiān)控的數(shù)據(jù),建立長期負(fù)載模式下的性能模型。同時接受來自上層應(yīng)用的負(fù)載需求,進(jìn)行負(fù)載預(yù)測。在此基礎(chǔ)上,對虛擬化管理平臺的目標(biāo),如:應(yīng)用服務(wù)質(zhì)量的保證、降低能耗、降低虛擬機(jī)遷移代價、降低節(jié)點(diǎn)使用數(shù)量等進(jìn)行綜合分析,建立一種多目標(biāo)優(yōu)化的虛擬機(jī)放置的自適應(yīng)策略。
考慮到企業(yè)在搭建私有云時,都配置了充足的物理資源,因此在設(shè)計虛擬機(jī)放置策略時,更多的是考慮保證云平臺的穩(wěn)定可靠運(yùn)行,而非對物理資源的高效率使用。虛擬機(jī)的放置策略傾向于盡量使各種優(yōu)化目標(biāo)向平均值靠攏。
定義1 云平臺狀態(tài),描述為{PM,VM,CCPU,CMEM,CI/O,F(xiàn)},其中PM表示在使用的物理主機(jī)的集合,VM表示在使用的虛擬機(jī),CCPU,CMEM,CI/O表示空閑的資源集合,F(xiàn)表示虛擬機(jī)以及資源與物理主機(jī)的映射關(guān)系,?vmi∈VM,?f(vmi)∈PM,f∈F,同樣,對于資源集合也存在上面關(guān)系。
本文設(shè)計算法時,結(jié)合私有云平臺實際運(yùn)行狀況,綜合考慮了多種優(yōu)化目標(biāo)。根據(jù)虛擬機(jī)優(yōu)化目標(biāo),可以定義云平臺在某一狀態(tài)對應(yīng)的狀態(tài)質(zhì)量。
定義2 狀態(tài)質(zhì)量,描述為一個四元組(OQos,ONh,OMc,OSu),OQos表示應(yīng)用服務(wù)質(zhì)量,如系統(tǒng)吞吐量、應(yīng)用需求的界限(響應(yīng)時間不高于)。ONh表示能耗,主要與物理機(jī)使用數(shù)量有關(guān),使用的物理機(jī)越多,能耗越高。OMc表示虛擬機(jī)遷移代價,在現(xiàn)有狀態(tài)下,虛擬機(jī)遷移的代價。OSu表示資源使用率,包括CPU、內(nèi)存、I/O資源等。
為了能準(zhǔn)確度量云平臺狀態(tài)變化所需要的成本,引入量化的狀態(tài)變化代價作為評估參數(shù)。
定義3 狀態(tài)變化代價,可以描述為:
其中,OQos,ONh,OMc,OSu表示虛擬機(jī)放置后狀態(tài),O'Qos,O'Nh,O'Mc,O'Su表示虛擬機(jī)放置前狀態(tài)。
算法的目標(biāo)可以描述為min C,約束條件為C>0,即在放置虛擬機(jī)前后,引起云平臺的狀態(tài)質(zhì)量變化最小。
虛擬機(jī)放置算法流程如圖3所示,算法遍歷可能的云平臺狀態(tài),最終獲取狀態(tài)變化代價最小者對應(yīng)的云平臺狀態(tài)作為虛擬機(jī)遷移的策略。算法的優(yōu)點(diǎn)是對私有云平臺現(xiàn)有運(yùn)行狀態(tài)影響較小,資源利用比較充分,且能保持系統(tǒng)的穩(wěn)定性。
自適應(yīng)管理模塊根據(jù)生成的虛擬機(jī)放置策略,實現(xiàn)基本的虛擬機(jī)相關(guān)操作:創(chuàng)建虛擬機(jī)、注銷虛擬機(jī)、遷移虛擬機(jī)。
報警推送模塊定時從數(shù)據(jù)庫獲取最新監(jiān)控數(shù)據(jù),當(dāng)監(jiān)控的數(shù)據(jù)因越限而引起報警,或平臺本身運(yùn)行出現(xiàn)報警時,報警推送模塊主動以短信的方式把報警信息推送給平臺維護(hù)人員,保證在最短的時間處理問題,提高平臺的穩(wěn)定性、可用性。
圖3 虛擬機(jī)放置算法流程
管理層包括監(jiān)控管理、備份管理、日志查詢、自動化流程管理、用戶帳戶管理等模塊。監(jiān)控管理向用戶提供查詢資源的當(dāng)前使用狀態(tài)及歷史使用狀態(tài)的功能。自動化流程管理向用戶提供資源的申請、釋放等功能。日志查詢向用戶提供查詢?nèi)罩镜墓δ堋?/p>
框架的開發(fā)主要包括3部分SDK:vSphere Web Services SDK、XenServer SDK、XenDesktop SDK。其中vSphere Web Services SDK和XenServer SDK是以jar包的形式提供的二次開發(fā)的接口,而XenDesktop SDK提供了可以在PowerShell下運(yùn)行的cmdlet。
為了驗證本文策略的有效性,實驗選擇3臺物理服務(wù)器作為虛擬化主機(jī),型號為IBM3650M3,內(nèi)存均為64G,虛擬主機(jī)配置都一樣,系統(tǒng)為WIN7,單CPU,內(nèi)存4G,實驗中不斷地增加虛擬主機(jī)的啟用數(shù)量,監(jiān)控物理主機(jī)的資源使用情況,與vSphere產(chǎn)品中的DRS策略進(jìn)行比較。
圖4、圖5表示了在虛擬主機(jī)逐漸增加的情況下,分別使用DRS策略與使用本文策略時CPU和內(nèi)存的使用率,從圖中可以看出使用DRS策略時,3臺物理機(jī)的CPU和內(nèi)存資源使用不均勻,而本文策略則能均勻地使用物理機(jī)CPU和內(nèi)存資源,資源利用效率較高,可以在一定程度上提高系統(tǒng)的穩(wěn)定性。
圖4 虛擬主機(jī)逐漸增加時CPU使用率
本文針對企業(yè)內(nèi)部私有云平臺管理基礎(chǔ)設(shè)施存在的管理不便問題,提出一種新的虛擬機(jī)放置算法,并以此算法為基礎(chǔ),設(shè)計云平臺的自適應(yīng)管理框架。實驗表明框架可以有效監(jiān)控資源的使用狀態(tài),根據(jù)資源分配情況,適時進(jìn)行資源的重新分配,有效地對軟硬件資源進(jìn)行管理,實現(xiàn)資源的按需分配、動態(tài)調(diào)整,提高云平臺的工作效率,從而為業(yè)務(wù)的開發(fā)提供更好的基礎(chǔ)設(shè)施服務(wù)。
[1]VMware.Developer’s Setup Guide(VMware vSphere Web Service SDK5.0)[EB/OL].http://www.vmware.com/support/pubs/sdk_pubs.html,2014-05-14.
[2]VMware.vSphere Web Services SDK Programming Guide(vSphere Web Services SDK 5.0)[EB/OL].http://www.vmware.com/support/pubs/sdk_pubs.html,2014-05-14.
[3]任昱,李青榮.基于VMware vSphere虛擬化資源管理平臺研究[J].計算機(jī)應(yīng)用與軟件,2012,29(5):219-223.
[4]李強(qiáng),郝沁汾,肖利民,等.云計算中虛擬機(jī)放置的自適應(yīng)管理與多目標(biāo)優(yōu)化[J].計算機(jī)學(xué)報,2011,34(12):2253-2264.
[5]潘飛,蔣從鋒,徐向華,等.負(fù)載相關(guān)的虛擬機(jī)放置策略[J].小型微型計算機(jī)系統(tǒng),2013,34(3):520-524.
[6]張怡,張擁軍,彭宇行,等.一種基于QoS的多維資源近似最優(yōu)分配算法[J].計算機(jī)研究與發(fā)展,2000,37(10):1246-1251.
[7]李進(jìn)超,陳靜怡,吳杰,等.基于改進(jìn)分組遺傳算法的虛擬機(jī)放置研究[J].計算機(jī)工程與設(shè)計,2012,33(5):2053-2056.
[8]陳康,鄭緯民.云計算:系統(tǒng)實例與研究現(xiàn)狀[J].軟件學(xué)報,2009,20(5):1337-1348.
[9]李喜彤,范玉順.Web服務(wù)流程相容性和相似性分析[J].計算機(jī)學(xué)報,2009,32(12):2429-2437.
[10]伍之昂,羅軍舟,宋愛波.基于QoS的網(wǎng)格資源管理[J].軟件學(xué)報,2006,17(11):2264-2276.
[11]Eshghi K,Lillibridge M,Wilcock L,et al.Jumbo Store:Providing Efficient Incremental Upload and Versioning for a Utility Rendering Service[R].Technical Report(HPL-2006-144R1),HP,2006.
[12]Watson R,Morrison W,Vance C,et al.The TrustedBSD MAC framework:Extensible kernel access control for FreeBSD 5.0[C]//Proceedings of the USENIX Annual Technical Conference.2003:285-296.
[13]Welch V,Siebenlist F,F(xiàn)oster I,et al.Security for grid services[C]//Proceedings of Symposium on High Performance Distributed Computing.2003:48-57.
[14]Wright C,Cowan C,Smalley S,et al.Linux security modules:General security support for the Linux kernel[C]//Proceedings of the USENIX Security Symposium.2002:17-31.
[15]Petroni N L,F(xiàn)raser T,Molina J,et al.Copilot-A coprocessor-based kernel runtime integrity monitor[C]//Proceedings of the USENIX Security Symposium.2004:13.
[16]Jaeger T R,Hallyn S,Latten J.Leveraging IPSec for Mandatory Access Control of Linux Network Communications[R].Technical Report RC23642(W0506-109),IBM,2005.