面向应用的虚拟桌面网格架构

2014-06-02 06:34阚文枭伍文静AndreiTsaregorodtsev
计算机工程 2014年3期
关键词:队列桌面站点

武 杰,阚文枭,杜 然,李 莎,伍文静,Andrei Tsaregorodtsev,陈 刚

面向应用的虚拟桌面网格架构

武 杰1,2,阚文枭1,杜 然1,李 莎1,伍文静1,Andrei Tsaregorodtsev2,陈 刚1

(1. 中国科学院高能物理研究所计算中心,北京 100049;2. 法国科学院马赛粒子物理研究中心,法国 马赛 13009)

针对桌面网格中出现的应用部署难、作业结果差异大、系统可扩展性差等问题,基于虚拟化技术提出一种桌面网格架构。利用虚化技术的隔离性和封装性,通过面向应用的作业调度策略以及有限生命周期的虚拟机控制方式,实现一个易于扩展且易于部署的桌面网格架构。分析及测试结果表明,该架构适用于大规模应用场景,架构中所采用的面向应用的调度策略以及虚拟机控制方式是有效可行的。

海量数据;桌面网格;架构;虚拟化技术;面向应用;虚拟机控制

1 概述

随着社会的进步,在科研领域里有很多学科,如高能物理、分子生物学计算中都面临着一个相同的问题:海量数据的处理。例如,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个前提也被很大地限制了。总体来说,它的可用度并不高,面向的只是单个的小站点。

本文综合现有桌面网格系统中的优缺点,基于虚拟化技术提出了一种易部署、易扩展、易管理、易实现与其他资源整合的桌面网格架构。在实现该架构时,系统采用了较优的面向应用的作业调度算法以及有限生命周期管理的虚拟机控制方式。

2 桌面网格架构

桌面网格架构如图1所示,总体可以分为4层,每一层都封装一定的核心功能,为上层(或用户)提供合适的服务。

图1 基于虚拟化技术的4层桌面网格架构

各层具体的功能如下:

(1)用户管理与用户功能管理。该层主要面向网格用户,提供用户注册、授权管理以及用户作业管理的接口。

(2)作业管理与调度。负责用户作业管理与调度的各个部分。特别要说明的是,模型没有采用像PBS等一些调度系统的Push调度模式,而是采用Pull模式。使用Pull模式的主要原因就是作业调度相对简单,扩展底层资源相对 容易。

(3)虚拟机管理。实现硬件资源的虚拟化,为相应的作业提供合适的虚拟运行环境。

(4)物理机管理与授权。整合站点内可以利用的空闲资源,并为了保证整个网格的安全,对站点内的所有机器进行认证与授权。

3 架构的实现

基于现有的系统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个物理应用。

3.1 DIRAC服务器与BOINC服务器之间的交互通信

本文使用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 不同策略的测试结果

3.2 虚拟机控制的设计与实现

虚拟机控制主要涉及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服务器。

4 未来的工作

现有系统从作业提交、作业调度、虚拟机运行、作业运行到作业结果回传都实现了基本运行,但还存在诸多问题。其中一个问题是虚拟机磁盘镜像的分发与访问。在当前系统中采用的还是服务器与客户端之间点对点传输文件的方式,这对于稳定性差、传输速度相对较低的Internet来说,绝对是一个不可接受的方式。文献[13]中的CVMFS系统则采用了软件和基本镜像分离的方式来解决该问题。该方法虽然在一定程度上可以解决该问题,但并未对磁盘镜像文件实现有效的管理,在大规模的桌面网格中的应用并不理想。当前基于志愿存储以及文件分块的思想设计了一个VDIFS(Virtual Disk Image File System)共享文件系统来解决该问题。该系统现正在进行详细设计与开发中。另外一个问题就是对底层桌面计算机的授权,现有的授权模式采用的是一种弱认证模式:基于Jarifa系统的邮箱认证。这种认证方式的缺陷是可能会有一些不在站点内的机器也加入网格内,进而影响甚至可能危及整个网格系统的运行。下一步将考虑加入基于各站点IP管理服务器的授权方式来解决这个问题。

5 结束语

本文提出了一种基于虚拟化技术的桌面网格架构,并基于现有中间件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

猜你喜欢
队列桌面站点
队列里的小秘密
基于APP在线控制双挤出头FDM桌面3D打印机的研制
基于多队列切换的SDN拥塞控制*
桌面云技术在铁路行业中的应用
基于Web站点的SQL注入分析与防范
2017~2018年冬季西北地区某站点流感流行特征分析
在队列里
桌面装忙
丰田加速驶入自动驾驶队列
首届欧洲自行车共享站点协商会召开