李文嬋,彭志平
(1.江蘇科技大學 計算機科學與工程學院,江蘇 鎮江 212003;2. 廣東石油化工學院 計算機與電子信息學院,廣東 茂名 525000)
在虛擬化數據資源管理中心環境[1]中,應用被封裝在一個或多個虛擬機中。例如典型的互聯網應用由web服務器前端、中間應用邏輯和后端數據庫3個層次構成;這些層次可能各自封裝在獨立的虛擬機中。
虛擬化資源的調度存在于兩個層次[2]: 局部調度涉及如何在虛擬機之間合理共享物理機的CPU、內存和IO資源,由虛擬機管理器負責;全局調度解決如何優化組合虛擬機、在物理機間平衡負載,這相當于把資源合理地分配給應用。本文主要討論前者。
虛擬機技術允許多個虛擬機同時運行,每個虛擬機有自己的操作系統OS并同時支持多個服務,這就需要在同一個物理機上共享資源。它主要依賴隸屬于硬件和來賓OS之間的虛擬機監視器VMM,以便在虛擬機之間分配資源。
CloudSim是在GridSim模型基礎上發展而來,提供了云計算的特性,支持云計算的資源管理和調度模擬。CloudSim提供基于數據中心的虛擬化技術、虛擬化云的建模和仿真功能。CloudSim提供了資源的監測、主機到虛擬機的映射功能。CloudSim的CIS(Cloud Information Service)和DataCenterBroker實現資源發現和信息交互,是模擬調度的核心。用戶自行開發的調度算法可在DataCenterBroker的方法中實現,從而實現調度算法的模擬。
XEN[3]是由劍橋大學開發的開源準虛擬化虛擬機,通過改動客戶OS,使其以為自己運行在虛擬機上,能夠和VMM協同工作,圖1顯示了XEN虛擬機的體系結構[4]。在XEN上的眾多域中存在一個特權域(Dom0),用來輔助XEN管理其它域(DomU),提供相應的虛擬資源服務(處理器調度和內存分配等),特別是DomU對I/O設備的訪問。管理程序(Hypervisor)允許Dom0直接訪問硬件,而DomU的I/O數據包都必須經過Dom0的轉發,通過事件通道通知將數據包傳遞給對方。

圖1 XEN體系結構Fig. 1 XEN Architecture
強化學習[5]方法不依賴于被控對象的數學模型和先驗知識,而是通過試錯和與環境的不斷交互獲得知識,從而改進行為策略,具有自學習的能力。強化學習單元與環境之間的關系如圖2所示。rk是環境針對當前時刻學習單元所選擇的動作的好壞給予學習單元的獎賞值,其選擇形式有很多種,比如選擇二值型:{-1,0} ,當rk=0時表示該動作是正確的,得到了來自環境的獎勵,當rk=-1時表示該動作是錯誤的,遭到了來自環境的懲罰。

圖2 強化學習單元與環境關系圖Fig. 2 Diagram of there lation shipbet ween leaming agentanden vironmen
一個RL問題通??苫梢粋€馬爾科夫模型(MDP)[6]。正常情況下,對一個環境狀態集S和一個動作集合{(A,MDP)}模型通過狀態轉移概率被定義成Pa(s,s)=Pr(st+1=s|st=s,at=a) ,還有一個立即回饋函數值R=E[rt+1|st=s,at=a,st+1=s]。在每一個步驟t,Agent獲得它當前的狀態at∈S和可能的行為集st∈A(st),agent轉移到下一個狀態st+1,并從當前環境獲得一個立即回饋值rt+1。在狀態S下采取動作a的值函數被定義成:

這里0 ≤ γ < 1為折扣因子幫助Q(s,a)收斂。
一個VM配置任務通常被構想成一個連續狀態的折扣MDP,目標是優化所有的VM性能。我們定義基于單個VM的應用層次性能的回饋函數;而狀態空間是虛擬機上的硬件配置信息,這些可以通過驅動域被完全觀察到;動作則是配置參數的聯合改變。具體設想如下:
回饋函數reward:單個VM的性能通過一個分值score來衡量,其中thrpt為當前吞吐量,ref_thrpt為參考吞吐量,resp為反應時間,penalty是違反SLA時的懲罰,wi是第i個虛擬機的權重,1≤ i≤n

狀態空間:我們簡化為(men1,time1,vcpu1…menn,timen,vcpun,) , meni, timei, vcpui分別代表第i個虛擬機的內存大小,調度值credit和虛擬cpu數目。
行為集:對上面3個配置參數可能的行為即是增加,減少或是維持不變。對RL任務來說,行為即是對每個參數的操作使之增加,減少或不變。
在VM配置任務中,基于RL的代理問題依隨一種貪心算法[7]采取重配置措施。在一個小概率下,Agent選擇一個隨機動作并在大部分情況下跟隨它發現的最好策略實施行為。開始于任何初始策略,Agent逐漸在之后的每一步根據它得到的回饋值重新定義策略。
SRLAC是基于RL的虛擬機自動配置Agent,被設計成一個獨立的定居在驅動域中的精靈,它充分利用了dom0提供的控制界面來控制單個虛擬機的資源配置。圖3強調了SRLAC的組織形式和XEN的虛擬化環境。

圖3 SRLAC結構示意圖Fig. 3 The organization of SRLAC
SRLAC通過監視每臺虛擬機的性能回饋來管理VM的資源配置。在一個提前預知的時間段內,重新配置行為階段性的進行。SRLAC查詢驅動域的當前狀態并計算出可靠的行為。按照RL算法產生的策略,SRLAC選擇一個動作并將其送入dom0,以便VM進行重新配置。在每一步驟結束之時,SRLAC收集每個VM的性能回饋,然后計算立即回饋值。得到的新的立即回饋值通過RL來處理,SRLAC依據處理結果更新配置策略。
本實驗的開發環境是基于Windows XP操作系統,內存在2G左右,CloudSim版本為2.1.1,采用MyEclipse下開發。實驗中需要建立資源池cloudlab,配置Windows操作系統的實驗環境虛擬機模板,安裝Xen Tool,我們使用Xen 3.1作為虛擬環境,這里我們設計了一系列實驗來展示依據RL的SRLAC的有效性。圖4列出了CloudSim中資源池cloudlab虛擬機圖4個不同的VM設置。

圖4 cloudsim配置Fig. 4 The configuration of cloudsim
在這個實驗中,應用和資源的數量被限制在一個小規模集合里,即環境是可控的。我們創建了虛擬機運行服務,代表了服務器虛擬化的應用,它是多層的TPCW[8]基準(面向電子商務的基準程序),即電子商務應用,TPCW是典型的CPU密集型應用,在這個可控環境中,內存參數是可以被修改的。通過調整將CPU資源分配到每一層,SRLAC可以最大化TPCW的吞吐量。
CloudSim仿真步驟為:
1)創建一個數據中心A;
2)通過A建立內存、CPU和吞吐量等資源參數;
3)注冊。對 CIS 發送注冊信號,注冊成功后即刻登陸;
4)Data center Broker 將進行信息交互過程的管理。
RL算法并不需要假設任何系統模型,它在與環境的相互作用中提出策略并從新獲取的經驗中更新策略。在這個實驗中,我們將應用的吞吐量作為最優目標。為限制問題規模,我們規定每層最多3個虛擬CPU。SRLAC被分配了一個基于表的Q值函數,并且全都被初始化為0。我們使用Sara(0)算法,其中α=0.2, γ=0.9, ε=0.1,來驅動配置代理,配置間隔被設為50秒。代理持續運行直到Q值收斂,最終一個最優配置策略便可以從Q表中得到。RL算法在上面3種工作負載下重復運行最后得出3種策略。圖5描述了SRLAC在動態和靜態策略下的在線性能,曲線是TPCW得到的吞吐量。結果表明,RL agents 都可以自動驅使一個不合理的配置使之在幾步之內達到一個比較好的設置情況,TPCW的吞吐量也得到增長并達到一個更高的水準。RL算法可能的最好結果就是Agent適應了環境并得到了最優的性能。

圖5 SRLAC在TPCW應用中的性能Fig. 5 SRLAC performance with TPCW application
文中討論了虛擬環境中虛擬資源的分配問題,所利用的方法是基于RL的自動資源分配算法。自我配置系統自動適應軟件參數、硬件資源以達到正確的功能應用和更好的性能優化,RL算法無疑是其中一種具有潛在利益的好方法。本文討論的算法是在仿真軟件中進行,對環境和資源維數有要求,而實際環境下會更復雜,這就需要我們更深一步的研究,RL算法是人類智慧的表達,將其應用在云環境中虛擬資源的自動配置上將是它的很好發揮。
[1] 黎寒光. 虛擬化技術介紹及虛擬應用環境實踐[J].數字技術與應用,2010(4):79~81.LI Han-guang. Introduction of Virtualization technology and the practice of virtual application environment[J].Digital Technology and Application,2010(4):79~81.
[2] Amazon. Amazon EC2 Pricing[EB/OL].(2011). http: / /aws. amazon.com/ec2/pricing/.
[3] Barham P,Dragovic B,Fraser K.Xen and the art of virtualization[C] //2003.
[4] 石磊,鄒德清,金海.Xen虛擬化技術[M].武漢;華中科技大學出版社,2009.
[5] 張汝波,顧國昌,張國?。畯娀瘜W習系統的結構及算法[J].計算機科學,1999,26(10):53-56.ZHANG Ru-bo,GU Guo-chang,ZHANG Guo-yin.The system structure and algorithm of Reinforcement learning[J].Computer Science,1999, 26(10):53-56.
[6] 胡奇英,劉建庸著.馬爾可夫決策過程引論[M].2版.西安電子科技大學出版社,2000.
[7] 仲宇,顧國昌,張汝波.分布式強化學習的體系結構研究[J].計算機工程與應用,2003(11):111-113.ZHONG Yu,GU Guo-chang,ZHANG Ru-bo.Research of distributed reinforcement learning architecture[J].Computer Engineering and Applications, 2003(11):111-113.
[8] 周萬江,晏蒲柳.Web服務器性能評測軟件的原理及發展[J].計算機應用研究,2003,24(8):93-95.ZHOU Wan-jiang,YAN Pu-liu. The principles and development of Web server performance evaluation software[J].Application Research of Computers,2003,24(8):93-95.