武 杰,闞文梟,杜 然,李 莎,伍文靜,Andrei Tsaregorodtsev,陳 剛
面向應用的虛擬桌面網格架構
武 杰1,2,闞文梟1,杜 然1,李 莎1,伍文靜1,Andrei Tsaregorodtsev2,陳 剛1
(1. 中國科學院高能物理研究所計算中心,北京 100049;2. 法國科學院馬賽粒子物理研究中心,法國 馬賽 13009)
針對桌面網格中出現的應用部署難、作業結果差異大、系統可擴展性差等問題,基于虛擬化技術提出一種桌面網格架構。利用虛化技術的隔離性和封裝性,通過面向應用的作業調度策略以及有限生命周期的虛擬機控制方式,實現一個易于擴展且易于部署的桌面網格架構。分析及測試結果表明,該架構適用于大規模應用場景,架構中所采用的面向應用的調度策略以及虛擬機控制方式是有效可行的。
海量數據;桌面網格;架構;虛擬化技術;面向應用;虛擬機控制
隨著社會的進步,在科研領域里有很多學科,如高能物理、分子生物學計算中都面臨著一個相同的問題:海量數據的處理。例如,LHC實驗一年的原始數據可達15 PB,即使相對較小的BESIII實驗,一年的數據量也可達200 TB。還有當前的生物信息領域,一個最小的微生物基因組測序后需要處理的數據量基本上都是GB級別的,更不要說更高級生命形態的真核生物了。為了能處理這些數據,科學家們也正在求助于各種各樣的計算資源,包括超級計算機、計算集群、網格甚至云計算,而使用低端桌面計算機空閑資源的桌面網格以其可以提供大量計算資源的特點越來越受到科學家們的重視。
桌面網格指的是由分屬于不同組織或者地點的計算資源組成的系統,其主要目的是使分屬于不同組織的用戶能共享計算資源。在這里計算資源是指由處于同一組織或者地點(常被稱為站點)桌面計算機中的空閑計算資源。不同于文獻[1],這里沒有把桌面網格等同地認為是志愿計算(公共計算),而是認為它是在志愿計算以及傳統網格技術[2]的基礎上發展而來的。相比較于志愿計算,桌面網格中的站點形成一個很清晰的網絡。一般來說,站點內部由局域網聯通,站點之間則使用Internet聯通,這類似于傳統的網格。桌面網格與傳統網格最大的區別則是它們使用的資源。就資源的穩定度、可信度以及可管理度來說,桌面網格使用的資源要低于傳統網格,而其資源異構程度則遠超過傳統網格。在傳統網格中,一個站點中的資源一般來說都是同構的,而在桌面網格中同一站點的資源往往都是異構的。總而言之,桌面網格對參與資源的要求非常低,可以把傳統網格中不可用的計算資源整合起來,從而獲取到大量的計算資源。
對桌面網格架構的研究,可以分為基于中心服務器和基于P2P這2個方向。對于前者,常用的中間件有BOINC (Berkeley Open Infrastructure for Network Computing)[3]、Condor[4]、XtremWeb[5],其中,BOINC使用得最為廣泛;另外一個十分流行的中間件平臺OurGrid[6]以及在文獻[7-8]中的相關研究則屬于后者。這些系統往往都面臨著應用部署難、平臺差異所導致的作業結果差異大和可擴展性差等問題。
文獻[9]基于BOINC提出了一個中心層次化的桌面網格架構。此架構具有很靈活的站點擴展性,同時還開發出3D-bridge為用戶提供很好的作業訪問接口,但對于另外 2個問題則沒有很好地解決。而虛擬化技術提供的隔離性、應用封裝性正好可以解決這2個問題。
與本文類似,文獻[10]提出了一個基于虛擬化技術的桌面網格架構,很好地解決應用跨平臺部署以及作業結果差異大這2個問題。但它的實現基于2個前提:(1)節點之間不會相互攻擊;(2)站點之間以高速互聯網連接,與實際環境的差異性、相對復雜的安裝配置和作業提交方式都很大地限制了它的實際推廣與應用。另外,系統的可擴展性由于第2個前提也被很大地限制了。總體來說,它的可用度并不高,面向的只是單個的小站點。
本文綜合現有桌面網格系統中的優缺點,基于虛擬化技術提出了一種易部署、易擴展、易管理、易實現與其他資源整合的桌面網格架構。在實現該架構時,系統采用了較優的面向應用的作業調度算法以及有限生命周期管理的虛擬機控制方式。
桌面網格架構如圖1所示,總體可以分為4層,每一層都封裝一定的核心功能,為上層(或用戶)提供合適的服務。

圖1 基于虛擬化技術的4層桌面網格架構
各層具體的功能如下:
(1)用戶管理與用戶功能管理。該層主要面向網格用戶,提供用戶注冊、授權管理以及用戶作業管理的接口。
(2)作業管理與調度。負責用戶作業管理與調度的各個部分。特別要說明的是,模型沒有采用像PBS等一些調度系統的Push調度模式,而是采用Pull模式。使用Pull模式的主要原因就是作業調度相對簡單,擴展底層資源相對 容易。
(3)虛擬機管理。實現硬件資源的虛擬化,為相應的作業提供合適的虛擬運行環境。
(4)物理機管理與授權。整合站點內可以利用的空閑資源,并為了保證整個網格的安全,對站點內的所有機器進行認證與授權。
基于現有的系統DIRAC(Distributed Infrastructure with Remote Agent Control)[11]、BOINC和Jarifa[12]實現第2節提出的桌面網格架構。DIRAC是一個可以通過一種非常完整并且非常簡單的方式為網格中用戶提供服務的中間件。用戶通過它可以完全透明地使用后端具體的計算資源。這里之所以使用DIRAC,主要是因為它可以很好地實現用戶交互、作業調度等,并且可以很容易地實現桌面網格資源與其他資源的整合。需要強調的是,DIRAC創新性地使用了代理控制(Pilot代理)的方式來實現作業調度,即Pilot先被運行在具體資源節點上,檢查節點資源情況,使用Pull方式向DIRAC作業調度服務請求真正的用戶作業并最終運行在該節點上。這樣做可以有效地屏蔽底層資源的脆弱性,提升底層資源的利用率。BOINC在這里主要負責整合所有零散的桌面計算機,Jarifa則負責網格中桌面計算機的認證與授權。
在實現的桌面網格架構中,作業運行流程如圖2所示。

圖2 作業運行流程
具體作業運行流程如下:
(1)用戶提交作業到DIRAC維護的作業隊列。
(2)SiteDirector掃描前述作業隊列,與BOINC服務器中SOAPer守護進程通信,把Pilot作業腳本打包為相應的Pilot工作單元(在BOINC中作業常被稱為工作單元)并提交到BOINC服務器上。
(3)BOINC客戶端向BOINC服務器發送請求,請求運行一個作業單元。
(4)獲取到合適的工作單元后,虛擬機運行控制程序開始運行,啟動虛擬機。虛擬機啟動后在其內部運行Pilot作業腳本。
(5)Pilot啟動后檢查其運行環境,并向DIRAC服務器中的Mather服務請求用戶作業。獲取用戶作業后運行它,同時啟動一個監控進程監控用戶作業直至完成。
(6)返回用戶結果給DIRAC相關服務。
目前在使用簡單的磁盤鏡像文件發布方式以及簡單的授權管理方式的前提下,在法國科學院馬賽粒子物理研究中心成功部署了該類型桌面網格測試環境,大約整合了100臺桌面計算機。另外,在這個系統上成功測試運行了LHCb以及BESIII 2個物理應用。
本文使用HTTPS與SOAP協議并基于C/S的通信模式來實現DIRAC服務器和BOINC服務器之間的通信。基于C/S的通信模式是為了易于實現底層站點資源的擴展,使用HTTPS則是為了實現兩者之間的相互認證。客戶端運行在DIRAC服務器上,可稱之為SiteDirector;服務器端則運行在BOINC服務器,可稱之為SOAPer。
為了能更清楚地說明它們通信所實現的虛擬機調度策略,先給出應用虛擬機尺寸和應用虛擬機類型這2個概念。在一臺有足夠資源(包括磁盤空間、CPU個數、內存)的物理機上運行一臺虛擬機,當某一作業運行在虛擬機上時,其使用的各種資源的最小臨界值被稱為該作業的虛擬機尺寸。最小臨界值是指當虛擬機給定的資源小于它時,相應作業運行完成所耗費的時間就會急劇上升,而大于這個值也不會縮短作業運行時間。某一應用所有可能作業的虛擬機尺寸的最大值稱為該應用的虛擬機尺寸。可以運行應用作業的虛擬機的操作系統類型被稱為該應用的虛擬機類型。
在作業隊列一定、資源一定的前提下,一般都希望運行作業所分配虛擬機的資源越小越好,因為這樣可能獲取到較大的并行度,進而可以縮短總的運行時間;然而也不是越小越好,當分配的資源小于最小臨界值時,單個作業運行時間可能會急劇上升,較大的并行度也未必能補償這種損失,最終導致總的運行時間增加。
本文在系統實現時使用了面向應用的虛擬機調度策略,即不同應用的作業運行在不同配置的虛擬機中,配置參數使用的就是應用虛擬機尺寸和應用虛擬機類型。通過面向應用的多隊列模型來具體實現該調度策略,如圖3所示。用戶指定作業所屬應用,并把作業提交到由DIRAC的JobQueue服務維護的主隊列。然后SiteDirector則會掃描主隊列,提交一個面向應用的Pilot到相應應用的隊列中。最終SiteDirector會掃描所有的應用隊列,通過與SOAPer通信把Pilot啟動腳本以及所屬應用等信息發送給SOAPer,由SOAPer做最終處理。

圖3 面向應用調度的多隊列實現
總體來說,SiteDirector和SAOPer守護進程通信實現的功能有:(1)獲取BOINC服務器上的工作單元情況并判斷是否可以提交新的工作單元。如果可以提交新的工作單元,SiteDirector掃描所有的應用隊列,通過與SOAPer通信把Pilot啟動腳本以及所屬應用等信息發送給SOAPer,由SOAPer把Pilot啟動腳本、應用虛擬機尺寸和應用虛擬機類型打包為一個相應的Pilot工作單元。(2)獲取已提交工作單元的狀態。若工作單元的狀態為完成,則獲取相應的 輸出。
本文采用2個應用來測試上述調度策略的效果,一個是LHCb應用,另一個則只是簡單地運行ls命令,可稱之為ls應用。由于在后面復雜隊列測試中,仍舊使用這2個作業,因此可以簡單地將作業的虛擬機尺寸等同于應用的虛擬機尺寸。另外,為了簡單,這里只針對內存進行了測試,其他資源的值都取了相對大的值。圖4給出了2個應用作業在不同內存中虛擬機運行所需的時間值(這里主要包括虛擬機啟動時間、作業運行時間、虛擬機關機時間)。基于前面的假設,可以近似地給出這樣的結論:LHCb虛擬機尺寸的需求內存為512 MB,而ls應用的則為256 MB。

圖4 LHCb應用和ls應用作業虛擬機尺寸的內存測試
圖5給出針對不同的隊列情況使用面向調度策略和固定尺寸調度策略的測試結果。其中,在使用固定虛擬機尺寸調度(所有的作業都使用相同的虛擬機尺寸)時,分別測試了3種情況:9 GB磁盤,1個CPU,1 GB內存;9 GB磁盤,1個CPU,512 MB內存;9 GB磁盤,1個CPU,256 GB。在使用面向應用調度的情況下,分別預設2個應用隊列: 9 GB磁盤,1個CPU,256 MB內存,面向ls應用;9 GB磁盤,1個CPU,512 MB內存,面向LHCb。作業隊列為不同數目的ls作業和LHCb作業混合而成。為了測試簡單,這里規定1個Pilot只獲取并運行一個用戶作業,而且只使用一臺桌面計算機貢獻資源,其貢獻的資源為1 GB內存,100 GB磁盤,4個CPU。這樣成為計算的瓶頸就不會是磁盤空間和CPU,而只能是內存。另外,所有測試使用的應用虛擬機類型都是32位Scientific Linux 5.5。從圖5可以看到,面向應用的調度策略是一種可行的調度策略,它總是可以取到最短的總運行時間。

圖5 不同策略的測試結果
虛擬機控制主要涉及2個部分,一個是運行在BOINC的服務器端,SOAPer守護進程依據Pilot的需求,指定需求的虛擬機的尺寸,生成相應的BOINC的工作單元;另一個是運行在桌面計算上的虛擬機運行控制程序。
這里介紹第2部分的實現。圖6給出了虛擬機運行控制程序的流程。

圖6 相應各階段的虛擬機運行控制程序流程
這個程序是直接運行在桌面計算機上,不同的操作系統有不同的版本,當前可支持Windows、Linux和Mac OS系列。這里使用的虛擬機監控器是VirtualBox。分4個階段來描述虛擬機運行控制程序:
(1)配置準備階段。依據給定的配置文件配置指定需求的虛擬機。
(2)啟動階段。判定當前的虛擬機是否是斷點重啟。若是,則重啟動即可;否則,準備首次啟動需要的共享目錄,拷貝Pilot作業運行所要求的數據到該目錄,然后啟動虛擬機。當啟動完成后,啟動Pilot作業。
(3)運行階段。主要處理3個情況:是否做斷點記錄(這里使用VirtualBox支持的快照功能實現它),Pilot作業運行是否完成以及虛擬機是否已處于關閉狀態。
(4)停運階段。發送Pilot的輸出結果到BOINC服務器。
現有系統從作業提交、作業調度、虛擬機運行、作業運行到作業結果回傳都實現了基本運行,但還存在諸多問題。其中一個問題是虛擬機磁盤鏡像的分發與訪問。在當前系統中采用的還是服務器與客戶端之間點對點傳輸文件的方式,這對于穩定性差、傳輸速度相對較低的Internet來說,絕對是一個不可接受的方式。文獻[13]中的CVMFS系統則采用了軟件和基本鏡像分離的方式來解決該問題。該方法雖然在一定程度上可以解決該問題,但并未對磁盤鏡像文件實現有效的管理,在大規模的桌面網格中的應用并不理想。當前基于志愿存儲以及文件分塊的思想設計了一個VDIFS(Virtual Disk Image File System)共享文件系統來解決該問題。該系統現正在進行詳細設計與開發中。另外一個問題就是對底層桌面計算機的授權,現有的授權模式采用的是一種弱認證模式:基于Jarifa系統的郵箱認證。這種認證方式的缺陷是可能會有一些不在站點內的機器也加入網格內,進而影響甚至可能危及整個網格系統的運行。下一步將考慮加入基于各站點IP管理服務器的授權方式來解決這個問題。
本文提出了一種基于虛擬化技術的桌面網格架構,并基于現有中間件DIRAC、BOINC、Jarifa實現了該架構,致力于解決在桌面網格中常面臨的應用部署難、作業結果差異大以及可擴展性差等問題。本文架構使用DIRAC和BOINC嵌套的2層模式實現了可擴展性,而使用虛擬機技術解決了另外2個問題。從部署運行測試結果來看,所提出的架構解決了桌面網格架構常會遇到的3個問題,該架構可用于大規模部署。另外,所使用的面向應用的調度策略也是高效可行的,其總是可以獲取到最優的作業運行總時間。系統當前還有虛擬機磁盤鏡像發布困難和簡單認證方式有漏洞等問題,這些都是將來要重點研究和解決的問題。
[1] Lalloo M. Desktop Grids: Connecting Everyone to Scien- ce[EB/OL]. (2012-12-15). http://www.e-sciencetalk.org/brief ings/EST-Briefing-19-DesktopGrid-w.pdf.
[2] Foster I, Kesselman C, Tuecke S. The Anatomy of the Grid: Enabling Scalable Virtual Organizations[J]. The International Journal of High Performance Computing Applications, 2001, 15(3): 200-222.
[3] Anderson D P. BOINC: A System for Public-resource Comput- ing and Storage[C]//Proc. of the 5th IEEE/ACM International Workshop on Grid Computing. Pittsburgh, USA: [s. n.], 2004.
[4] Tannenbaum T, Wright D, Miller K, et al. Condor——A Distributed Job Scheduler[M]. [S. l.]: MIT Press, 2002.
[5] Cappello F, Djilali S, Fedak G, et al. Computing on Large- scale Distributed Systems: XtremWeb Architecture, Program- ming Models, Security, Tests and Convergence with Grid[J]. Future Generation Computer Systems, 2005, 21(3): 417-437.
[6] Walfredo C, Francisco B, Nazareno A, et al. Labs of the World, Unite!!![J]. Journal of Grid Computing, 2006, 4(3): 225-246.
[7] Kacsuk P, Jozsef K, Zoltan F, et al. SZTAKI Desktop Grid (SZDG): A Flexible and Scalable Desktop Grid System[J]. Journal of Grid Computing, 2009, 7(4): 439-461.
[8] 韋父代. 基于非結構化對等網絡的分散式桌面網格平臺[J]. 計算機工程與設計, 2011, 32(1): 92-95.
[9] 張學鋒, 徐勝超. 基于混合式非結構化對等網絡的桌面網格平臺[J]. 計算機應用與軟件, 2011, 28(7): 41-45.
[10] Wang Dongping, Gong Bin. SUCSI: A Light-weight Desktop Grid System Using Virtualization for Application Sandbox- ing[C]//Proc. of International Conference on Network Computing and Information Security. Guilin, China: [s. n.], 2011.
[11] Tsaregorodtsev A, Bargiotti M, Brook N, et al. Dirac: A Community Grid Solution[EB/OL]. (2012-12-15). http://iop science.iop.org/1742-6596/119/6/062048/pdf/jpconf8_119_062048.pdf.
[12] González D L. The Project Jarifa[EB/OL]. (2012-12-15). https://github.com/teleyinex/jarifa/wiki.
[13] Buncic P, Sanchez C A, Blomer J, et al. CernVM——A Virtual Software Appliance for LHC Applications[EB/OL]. (2012- 12-15). http://iopscience.iop.org/1742-6596/219/4/042003/pdf/ 1742-6596_219_4_042003.pdf.
編輯 任吉慧
Application-oriented Virtualization Desktop Grid Architecture
WU Jie1,2, KAN Wen-xiao1, DU Ran1, LI Sha1, WU Wen-jing1, Andrei Tsaregorodtsev2, CHEN Gang1
(1. Computer Center, Institute of High Energy Physics, Chinese Academy of Sciences, Beijing 100049, China; 2. Center for Particle Physics of Marseilles, French National Centre for Scientific Research, Marseilles 13009, France)
In this paper, a desktop grid architecture is proposed with virtualization technologies to solve the problems of porting cross platform applications, discrepant results from heterogeneous platforms and system scalability. Based on the isolation and encapsulation of virtualization technology, with application-oriented job scheduling policy, a finite virtual machine controlling method, scalable and easily- deploying desktop grid architecture is achieved. The test results demonstrate that this new architecture well applies to large-scale scenarios, and the application-oriented scheduling policy and virtual machine control method are effective and feasible as well.
massive data; desktop grid; architecture; virtualization technology; application-oriented; virtual machine controlling
1000-3428(2014)03-0088-05
A
TP301.6
國家自然科學基金資助面上項目(11179020);2011年國家留學基金資助項目。
武 杰(1984-),男,博士研究生,主研方向:分布式計算;闞文梟、杜 然、李 莎,博士研究生;伍文靜,副研究員;Andrei Tsaregorodtsev,高級工程師;陳 剛,研究員、博士生導師。
2012-12-21
2013-01-28 E-mail:wujie@ihep.ac.cn
10.3969/j.issn.1000-3428.2014.03.018