J.HuazhongUniv.ofSci.&Tech.(NatureScienceEdition)Vol.35Sup.Ⅱ Oct. 2007
网格环境下多集群资源虚拟化的设计与实现
唐 蕾 周兴社 王瀚博 王 涛
(西北工业大学高性能计算研究与发展中心,陕西西安710072)
摘要:针对网格基础平台与多集群的互操作问题,基于西北工业大学校园网格,提出集群资源调节器用以屏蔽集群调度系统的分布性,利用网格技术平台共享资源,消除信息孤岛,并结合调度系统管理作业,使得作业的吞吐量和资源的利用率达到最大化,实现资源虚拟化.通过实现自适应管理机制,准确刻画资源的动态性,提高系统的工作效率.
关 键 词:网格;网格中间件;集群调度系统
中图分类号:TP393 文献标识码:A 文章编号:167124512(2007)S220128204
Researchandimplementationofresourcevirtualizationin
multiclusterundergridenvironmentTangLei ZhouXingshe WangHanbo WangTao(CenterofHighPerformanceComputing,NorthwesternPolytechnicalUniversity,Xi′an710072,China)
Abstract:Itisinfavorofmaximizingjobthroughputandutilizationrateofresourcestocombinewithclusterworkloadmanagement(WLM)schedulingjobbasedongridsharingdistributedresourceincompany.Currently,companyoruniversityhasdistributedclustersystemsmanagedbyvariousWLMs,sothatitismoredifficulttointeractiveoperatebetweengridunderlyingplatformandWLM.
Wedesignresourceadjustor(RA)onNorthwesternPolytechnicalUniversityGridtomaskdistributedWLMs,eliminate“InformationIsland”andimplementresourcevirtualization.ItcanimprovesystemefficiencybyadaptivemechanismofRAwhichdescribesdynamicofresourceaccurately.Keywords:grid;gridmiddleware;workloadmanagementsystem
网格将整个Internet整合成一台巨大的超级计算机,实现计算、存储、数据、信息等的全面共享和协同.Globus[1],EGO(enterprisegridorches2trator)等系统开发目标是有效地使用地理上分布的资源,处理资源发现、定位、安全等问题,以及提供一些构造基础来简化网格解决方案的开发和继承.以集群调度系统在网格基础设施上进行作业管理成为高性能计算机领域的一个热点问题.Condor2G系统[2]就是用来协调Clobus和Con2dor软件的工具,它使用了Condor的作业管理特
管理功能,来简化Clobus对作业的管理和发挥资源管理的优势.
本文就多集群调度系统如何对整个网格中的资源进行虚拟化管理及对用户作业进行调度运行问题,设计并实现了通用的资源调节器,一方面用于屏蔽集群调度系统的多样性和分布性,对底层的网格平台提供统一的接口,对上层多种应用提供信息交互平台;另一方面保留单个集群独立的管理资源和调度作业功能,充分发挥集群调度系统的优势.此外,本系统架构在西北工业大学校园网格上,实现了基于Portal的作业提交及作业监控,方便用户使用.
性,以及GlobusToolkit的资源访问特性,通过Condor提供的监视、控制、通知、容错机制和证书
收稿日期:2007207202.
作者简介:唐 蕾(19832),女,硕士研究生;西安,西北工业大学高性能计算研究与发展中心(710072).
E2mail:tanglei24@mail.nwpu.edu.cn
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
增刊Ⅱ 唐 蕾等:网格环境下多集群资源虚拟化的设计与实现 ・129・
1 网格系统体系结构
图1描述了多集群网格系统的体系结构,主
要由网格Portal、多个集群调度系统、资源调节器RA和网格中间件组成.用户采用基于浏览器的
提交,并启动资源调节器以获取当前网格中的各
种资源和作业的实时信息,并据此确定何时何地运行作业,然后与网格中间件进行协调,从而在所选定的服务提供者上运行作业并指定相关的任务,比如增加和删除节点.服务提供者执行完作业后,执行结果将通过作业管理模块传递给Portlet在作业管理页面显示出来.1.1 网格中间件EGO
PlatformEGO[4]是可提供虚拟化及自动化功能,并为各种应用类型共享所有IT资源的网
方式访问Portal;进入作业提交页面后,用户可以使用具体的应用Portlet[3]提出作业请求并通过规格化处理传递给作业管理模块;根据该作业类型,管理模块选择相匹配的服务提供者,进行作业
图1 网格多集群调度系统结构
格平台.选择EGO的原因在于:a.它实现底层资源虚拟化,通过调用API接口,保证系统的可移植性;b.它实时响应作业的需求变化,保证系统的动态性;c.它不关心资源的应用,能够充分发挥应用程序的优势.
1.2 集群调度系统PBS和LSF
PBS(PortableBatchSystem)[5]提供了一个
申请资源模块PR、释放资源模块DR和实时监控模块RM,提供了远程作业管理的能力,结构如图1所示.RA采用模块化设计,模块内部采用不同
的实现机制和策略,保证系统的可扩展性.其中,RM模块实现以集群内主机节点为单位的较细粒
度的信息收集及处理.它采用轮询和汇报相结合的机制,在保证动态信息敏感度的前提下,减少系统开销.PR模块负责为系统动态加入节点,根据RM汇报的特定作业信息,采用自适应机制,向EGO申请资源,并将资源信息存放到申请资源文
能满足异构计算网络需要的软件包,具备了一个调度系统的基本功能,如支持批处理作业等.同时它的代码开放,免费获取.
LSF(LoadSharingFacility)[6]的主要特点是:支持多种操作系统;支持检查点操作和进程迁移;具有高可用性以及强大的资源管理功能.
件中保存.DR模块激活RM查询节点的状态信息,并进行相应的删除节点操作,保证系统资源的高利用率和负载平衡.其中,PR和DR模块采取用户自定制策略,即用户能够方便地更改源代码以满足自己的需求.
由于支持多种集群调度系统,RA需要提供分级搜索策略选择作业执行节点:根据作业提交主机的集群调度系统标识来匹配相同的系统类别;在前者空缺的情况下,根据当前集群中主机的
2 资源调节器的模块设计
2.1 总体结构
资源调节器RA对EGOAPI进行了封装,为底层网格平台提供了统一的接口,同时封装了
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
・130・ 华 中 科 技 大 学 学 报(自然科学版) 第35卷
实际资源状况和提交的作业特点,自主选择其他
不同的调度系统.
由于存在多种集群调度系统,若采用共享接口机制,则需要开发相应的接口和数据转换程序,导致系统复杂化,也难于扩展.因此设计的集成体系结构采用松耦合整合,各模块之间采用Socket通信和消息队列实现信息和数据的传送,使得集群应用流程、数据转换和集成技术的互相依赖最小化,降低对节点的影响,实现数据无缝集成.2.2 主要功能在本系统中,网格资源数据库维护所有共享资源的信息.系统通过创建ra-start进程来加载模块以及初始化和启动资源调节器RA;在RA与EGO建立可靠连接后,将启动RM模块中的informationcollection进程监控资源和任务状况.PR携带RM传来的信息,对信息进行解析,确定是否需要增加节点,并自动与EGO进行协商,寻找满足要求的资源进行相应的操作.当DR获得的节点信息满足释放条件时,通过更新资源表进行相应处理,并通知EGO将其收回,成为数据库中共享空闲的节点,等待下次分配.
整个工作过程采取自适应机制,在资源供给和需求之间遵循“供小于求分配,供大于求释放”的博弈原则,实现多种集群调度系统之间的资源动态、透明的调节.
RA主要具有以下功能:动态地搜索、分配、增加和删除节点,实现资源虚拟化;支持多种不同集群调度系统之间共享资源;在进程断掉的情况下,利用EGO的容错机制能够自动恢复之前的工作环境;封装了多种集群系统数据的通信接口,使得网格平台按照统一的格式处理请求.
当前作业的执行情况.有了这项服务支持,RM每隔一段时间会查询所有节点,从而获得信息,更新资源列表.查询间隔可由用户自定义设置.作为RA的信息提供方,RM与PR的数据传输采用Socket技术实现,保证了通信的实时性要求.3.2 申请资源模块PR
PR模块的目标是在分布式的集群环境上进
行协同计算,实现远程作业的透明化管理.3.2.1 通信模型
PR与RM模块之间的通信采用TCP套接字通信,遵守既定的协议.由于本应用中Socket服务端的执行相对于实时监控处理能提供足够快的响应时间,因此将其设计为循环服务器,即在一个时刻只能处理一个Client请求.
通过创建服务套接字,主进程S随时准备响应RM模块的请求.一旦接收请求成功,则得到一个已连接的Socket,然后通过协议通信获知请求类型,并派生子进程provisioning进行处理,同时进程provisioning创建子进程p负责侦听客户端的异常退出信号.进程provisioning将结果返回给客户端,由此实现与RM的交互通信.当客户端退出时,需要中止它与服务端的连接,并释放关于该连接的任何资源,保证系统的良性运行.在客户端正常退出状态下,provisioning进程能够得知该连接的中止;而创建进程p进一步地提高了系统的健壮性.3.2.2 算法
PR模块中的核心功能由provision算法实
现,它支持用户自定制,能够根据用户的需求,自适应地为当前集群增加节点,以均衡负载,提高资源的利用率.算法步骤如下(缺省条件是当前存在等待作业):
步骤1 读取ra.conf配置文件,获得用户定制的相关参数:查询间隔sleep-time,算法阈值RA-Threshold-provision;
步骤2 与RM模块交互获得当前集群中等待作业个数N;步骤3 比较作业等待个数N与算法阈值.若N>RA-Threshold-Provision,则转步骤4;否则转步骤2;
步骤4 调用EGO的API,搜寻合适的节点;
步骤5 调用集群控制命令,将节点M加入集群,同时更新资源列表,记录节点M的当前集群调度系统;
步骤6 比较节点M与提交作业节点的调
3 资源调节器RA的实现
基于西北工业大学校园网格Portal之上构
架的多集群系统,充分利用高性能计算中心的硬件和软件平台,以EGO网格平台作为资源分配的底层支撑,以资源调度器为集群代理,最大限度地调动分散资源;同时,各个集群系统自主管理调度,充分发挥各集群调度系统的优势.这种“宏观控制与分而治之”的实现策略,降低了系统的耦合性,保证了更高的安全性和系统稳定性.3.1 实时监控模块RM
RM负责收集各个节点的静态和动态信息以及任务运行状态.由于集群主控节点通过调用相应的控制命令,能够查询到每个节点的状态以及
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
增刊Ⅱ 唐 蕾等:网格环境下多集群资源虚拟化的设计与实现 ・131・
度系统是否一致.若相同,则为节点M创建作业
执行环境;否则调用远程作业执行机制;
步骤7 间隔sleep-time时间,转步骤2.3.2.3 远程作业执行机制
由于支持多种集群调度系统,作业可能需要在不同集群节点上执行,在这种情况下,需要实现不同调度系统之间的作业远程执行机制[7,8].当PR判断节点M与提交节点的调度系统不匹配时,立刻调用远程执行机制,将作业分配到交换节点上,生成作业发送、作业监控和作业格式转换进程来完成跟踪和控制功能(如图2).当所有进程终结时,作业结果将返回给提交节点,这样就避免了提交主机对远程执行的作业失去监控.
安装目录,#EGO安装目录,#集群调度系统类别,#查询间隔时间,#缺省释放节点条件,#缺省增加节点条件,#集群主控节点名,#日志文件目录.每更改一个参数,只要在此配置表中修改一条记录即可,而不必重新启动RA.其中“#”代表注释.
实际环境中在Portal及2个PBS集群和1个LSF集群上进行作业调度和执行部署.Portal提供了作业上传运行和作业管理两个界面.用户只需输入作业信息,后台将自动生成提交脚本和进行作业提交;同时用户也可以查询作业运行的结果、状态或进行删除.在开发后期,RA被应用到EGO系统,并封装为EGO的一个服务,采用特殊服务命令对其进行控制.经测试,系统能够共享多集群资源及刻画资源的动态性,这在一定程度上降低了系统的负载,实现资源虚拟化.
图2 作业远程执行机制的流程图
参考文献
交换节点是为屏蔽不同集群系统之间的不同通信协议而设置的,负责作业格式的转换以及远程执行.在整个系统中,交换节点位于所有集群的交集,并安装了多个集群调度系统,通过调用不同的环境变量来决定节点当前的工作管理系统.3.3 释放资源模块DRdeprovision算法支持用户自定制,自适应删
[1]FosterI.Globus:ametacomputinginfrastructure
toolkit[J].TheInternationalJournalofSupercom2puterApplicationsandHighPerformanceCompu2ting,1997,11(2):1152128.
[2]FeryJ,TannenbaumT,LivnyM,etal.Condor2G:
acomputationmanagementagentformulti2institu2tionalgrids[C]∥Proceedingsofthe10thIEEESym2posiumonHighPerformanceDistributedComputing(HPDC10).SanFrancisco:IEEEPress,2001:55266.
[3]ChenXin,YangShoubao,WangYufeng,etal.Port2
letresearchingridenvironment[C]∥ProceedingsoftheInternationalWorkshoponGridandCooperativeComputingGCC2002.Beijing:PublishingHouseofElectronicsIndustry,2002:2232231.
[4]BaigA.Orchestrationandvirtualizationofcomputer
resourcesforagileIT[R].SantaClara,CA,US:SoftSummit,2006.
[5]雷 州.机群作业管理系统研究[D].北京:中国科学
除节点,保证资源的公平使用.算法步骤如下(缺
省条件是节点持续空闲时间段):
步骤1 设置节点空闲时段Resource-idel-time=0;
步骤2 读取资源列表,获得当前节点状态;若为空闲状态,则查询释放标志;否则间隔sleep-time再次查询该节点状态;
步骤3 若释放标志为true,则计算Re2source-idle-time(Resource-idle-time=n×sleep-time);否则Resource-idle-time=0;
步骤4 比较节点空闲时段和算法阈值,若Resource-idel-time>RA-Threshold-deprovi2sion,则调用集群控制命令,删除该节点;否则间
院计算机技术研究所,1999.
[6]ZhouSongnian,ZhengXiaohu,WangJingwen,etal.
Utopia:aloadsharingfacilityforlarge,heterogene2ousdistributedcomputersystems[J].Software2PracticeandExperience,1993:23(12):135021336.
[7]齐心达.异构多机群系统中作业远程执行机制的设计
隔sleep-time再次查询该节点状态;
步骤5 调用EGO的API,收回该节点;步骤6 间隔sleep-time查询下个节点状态.
3.4 重要配置表说明
与实现[D].长春:吉林大学软件学院,2006.
[8]肖 寒.异构多机群系统中全局调度的设计与实现
[D].长春:吉林大学软件学院,2006.
文件ra.conf用于记录相关的重要参数,在RA初始化时进行配置.内容如下:#资源调节器
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
因篇幅问题不能全部显示,请点此查看更多更全内容