文档库 最新最全的文档下载
当前位置:文档库 › 广域网环境下的网格试验床的设计与实现

广域网环境下的网格试验床的设计与实现

广域网环境下的网格试验床的设计与实现

赵晓春杨寿保王育峰陈昕

(中国科学技术大学计算机科学技术系,合肥,230026)

摘要: 利用Globus网格系统软件,设计并实现一个跨地域的网格环境, 建立了兩个CA认证域,研究多个认证域下的资源访问和认证授权机制,实现了多个认证域下的互操作,保证了网格环境的安全;设计了符合该网格环境的信息服务模型,实现多个认证域下的分布式信息查询,并对网格实验床的性能进行了评测。

关键词:网格,Globus,CA,MDS

中图分类号:TP393

The Design and Implementation of Grid Testbed in WAN

Xiaochun Zhao,Shoubao Yang, Yufeng Wang, Xin Chen

(Dept. of Computer Science, University of Science and Technology of China, Hefei 230026) Abstract:Using Globus, we have designed and implemented a Grid test-bed in WAN. We constructed two CA centers and studied the mutual certification between multi-CA-domain. So we insured the security of the Grid testbed. At the same time we designed an information service model and realized the distributed information service. Further more we test the performers of our Grid testbed.

Keywords: Grid , Globus, CA , MDS

1.引言

随着计算机网络的迅速发展,被普遍认为是下一代Internet形态的网格(Grid),已经成为当今的研究热点之一。网格即指把地域分布、系统异构、相对独立的计算机用高速网络互连起来,将它们各自的计算资源、存储资源、通信资源结合起来,形成一种开放式的环境,以此来解决科学领域的大规模高性能计算和其它领域的大规模应用。网格最终将会发展成一种新型的资源平台为公众提供更为便捷的服务[1]。

目前比较好的网格系统软件有Globus,Legion等[2,3]。Legion是一个基于对象的网格系统软件,它将所有组件封装成对象,拥有一般面向对象系统所具有的优点。但是Legion是一套从下到上的完整的网格操作系统,封装比较完整,使开发人员难于进一步开发,所以它的可移植性较差。

Globus网格系统软件对网格计算提供了最全面的尝试。Globus采用了非常适用的方法来支持网格计算所需要的服务,它将底层实体的服务抽象成完整的API,提供服务的实体可以在不改变基本服务的前提下进行更新,这使其具有很长的生命周期。Globus是按层次化的结构构建而成,开发人员可以在Globus提供的基本的本地核心服务之上建立一个高级的全局服务[2]。Globus因其结构的灵活性高而受到开发人员的青睐,这也是我们选取Globus网格系统软件进行网格研究的依据。

本文利用Globus网格系统软件,设计并实现了一个跨地域的网格环境,以期实现一个资源共享和协同工作的平台,为网格研究以及开发具有特色的网格应用打下基础,并为进一步的理论研究提供实验的环境。

2.Globus网格系统软件简介

Globus网格系统软件是芝加哥大学Argonne国家实验室开发的,它提供了一种软件基础,使得应用程序能够在单一的虚拟机上处理分布和异构计算资源。Globus系统的核心是模块化的Globus计算工具包GMT(Globus Manage Toolkit ),这个工具包包含一套实现基本服务的部件,

这些服务有:

资源分配和进程管理(GRAM),

单路和多路通讯服务(Nexus),

认证和相关的安全服务(GSI),

对结构和状态信息的分布式访问(MDS)

监控系统健康和状态(HBM)

通过串行和并行接口对数据的远程访问(GASS)

构建、缓存和执行定位(GEM)

文件的远程传输(GridFTP)

由于Globus 提供了灵活的网格系统平台,因而在世界上很多科研机构的网格实验床上得到广泛应用,如:NPACI(National Partnership for Advanced Computational Infrastructure)网格试验床

[12]、NCSA(National Center for Supercomputing Applications)的GiB(Grid in Box)网格试验床[13]、ED(European DataGrid)网格试验床[11]。

3.广域网环境下的网格实验床的设计与实现

我们与有关单位合作建立了一个跨地域的网格试验床。各节点采用的操作系统为Linux Redhat 7.2版本,网格系统软件为Globus2[7]。我们在中国科学技术大学东西校区建立了两个VO(Virtual Organization)域,这两个VO 域用千兆校园以太网连接,并通过Internet 与中国科学院的网格实验床相连接,实验床的拓扑结构如图1所示。因此。整个试验床环境由三个VO 域构成,包括兩个认证中心CA ,CA 采用Openssl 作为支撑软件;设计实现了网格信息的分布式查询,信息服务采用Openldap 作为支撑软件。同时,各网格节点通过中国科学技术大学网络中心的时间服务器进行时钟同步。 校区GIIS服前端机

曙点(普)间服务前端机

曙GIIS服前端机V O 2VO 1

图 1 广域网格实验床的拓扑图

3.1多认证域的设计与实现

Globus 的安全服务主要是在GSI(Grid Security Infrastructure)上实现的[1]。GSI 作为Globus 一个模块,使用RSA 加密算法和相关的公钥和私钥,由用户目录(LDAP)提供X.509证书[4,10]及其它相关信息来定位资源。同时,GSI 通过与现有的各本地安全策略兼容来实现安全的认证,而不改动各自治域的安全策略,有效地实现了用户与资源的相互认证。在GSI 中引入了用户代理UP(User Proxy)与资源代理RP(Resource Proxy)的概念来实现用户一次性登录(Single sign-on)机制。即用户如果要使用多个资源时只需登录一次,创建一个用户代理;当多个资源与用户交互认证时用户无需多次登录,而由这个用户代理代替用户的身份与资源相互认证。因此在基于Globus 网格系统软件的网格环境中一般要求各节点拥有统一的证书,但Globus 本身支持多认证域间的相互认证。我们为了进一步研究多认证域下域间访问、域间控制和域间授权等课题而建立了兩个相互信任的CA 中心,实现了多认证域下的通讯。

为了减少相互认证过程中的延迟,我们将CA中心的证书即根证书同时放在各节点相应的目录下,并在对应目录下创建*.signing-policy文件,*号代表兩个根证书的前缀部分。该文件实际是一个EACL (Extend Access Control List)控制,通过修改其中的EACL规则,便可实现多个认证域间的节点的相互认证。我们在*.singing-policy文件中加入允许进入的用户的证书必须具备的subject值,如下所示:

# EACL entry #1|

access_id_CA X509 '/C=CN/O=USTC/CN=USTC Grid CA'

access_id_CA X509 ‘/C=XC/O=USTC/CN=USTC NIC Grid CA’

pos_rights globus CA:sign

cond_subjects globus '"/O=XC/O=USTC/*""/O=USTC/O=Grid/*“ "/C=CN/O=USTC/*"'

# end of EACL

该EACL文件说明只有证书发布者“/C=CN/O=USTC/CN=USTC Grid CA”和“/C=XC/O=USTC/CN=USTC NIC Grid CA”签发的证书才允许进入。

各节点均应拥有以root身份申请的标识gatekeeper服务的证书。同时,由于在Globus网格系统中,用户除了拥有一个有效的证书外,还要有共享资源节点的授权,只有资源节点同意用户使用某种服务并将其定义,用户才能使用共享节点的资源。这在Globus网格系统中通过各节点由管理员创建一个用户到资源的映射列表grid-mapfile实现。该文件定义了可使用该资源的用户的全局标识(证书头标subject值)到本地(资源节点)的用户名。如下所示:

#Distinguished name local user name

“/O=Globus/O=Grid/OU=ustc/CN=ly” user1

“/O=Globus/O=Grid/OU=ustc/CN=edward” user1

“/O=Globus/O=Grid/OU=ustc/CN=xc ” user2

… …

左边是用户的证书中的subject值,右边是该用户在节点上对应的用户名(不同的用户如user1和user2对应的权限可能不一样,这由管理员具体决定)。用户在节点上对应的用户名是由节点的管理员指定的,用户并不一定要知道在节点上对应的用户名,这就是资源节点的授权。图2是用户向节点(资源)提交作业前的交互认证过程。

图2 认证过程示意图

如图2所示,首先,用户使用代理证书通过过程1向资源提出申请并请求认证,资源在接到申请后根据EACL控制规则判断该证书所在的域是否是可信任CA中心签发的,如是则确认证书的真实性,然后通过过程2映射到映射文件查看该用户是否有对应的资源入口。如有则通过过程3返回确认信息,并请用户认证自己的合法身份。在双方都验证身份后作业的提交和资源的分配才开始进行。

3.2信息查询服务的设计与实现

在网格环境中对资源信息的查询是很重要的,通过信息查询获得环境中存在的共享资源及其可用性。在Globus网格环境中,信息服务由MDS[4-6]提供。MDS是GMT信息基层结构的一部分,它利用LDAP(Lightweight Directory Access Protocol)协议[4],创建自己的schema,并能够存储专属于网格环境下的对象的静态和动态信息,把网格中查询到的各种系统信息统一起来,在网格中建立统一的名字空间。如主机名为https://www.wendangku.net/doc/e73274337.html,的主机,如果属于名为

GGI的VO(Virtual Organization),GGI VO又向名Grid的VO注册,则在MDS中查询到的标识该主机的名为:“dn: Mds-Host-hn=https://www.wendangku.net/doc/e73274337.html, GGI Grid”

MDS实现了对结构和状态信息的分布式访问,它隐藏了潜在的资源、它们的规则及其当前的可用性。同时MDS和GSI(Globus Security Infrastructure)安全机制相结合,保障了网格环境下信息查询的安全性。MDS服务都有标识自己身份的证书,证书的subject中的CN为ldap/hostname。

MDS服务分为GRIS(Grid Resource Information Service)服务和GIIS(Grid Information Index Service)服务。为了实现网格环境下的分布式信息查询服务,我们设计了一个分布式的GIIS(Grid Information Index Service)服务模型,如图3所示。节点可向任意一个GIIS服务器注册,但为了保证信息的全局可获得性,我们要求任何节点都必须向网络中心的GIIS服务器注册。同时采用了基于Web方式的LDAP Explore[6,8]实现了信息的web方式查询。

在网格环境中节点间的同步显得格外重要,在节点与GIIS服务器的互联和节点间任务的协同执行都需要时间的同步。我们利用NTP(Network Time Protocol)协议[9]实现网格环境下的同步问题。

1

点3节

点4节点6

G R I S向GI I S注册:

G I I S间的互相注册:

如果v o2没有向v o3注册时

节点3单独向vo2注册:

图3 分布式信息查询 MDS流程图

下面来分析一下MDS分布式查询系统的流程:

图4表明了GRIS和GIIS的关系。GRIS提供对本地即自身的查询。如果用户已经知道资源(节点1、2、3)的地址信息,则可利用Globus提供的查询工具grid-info-search直接查询资源的信息。如果用户不知道资源的存在,可通过查询GIIS服务器获得资源的信息。上述区别在用grid-info-search查询信息时是根据参数的不同以区别用户是GRIS查询还是GIIS查询。如果是GRIS查询,则需加上Mds-vo-name=local参数,如果是GIIS则需Mds-vo-name =GIIS服务器名。VO的划分定义为一个GIIS服务所包含的范围成为一个VO,一个用户可同时向多个GIIS服务器注册,因此一个用户也可成为多个VO的成员,这样我们的信息服务一共由三个VO域组成,也就是由三个GIIS服务域组成,如图3所示。这种将本地查询和全局查询分开的优点是资源向GIIS服务器注册的信息和本地的信息分开,可以为特定用户提供定制的服务。

同时,MDS有效地实现了信息服务的灵活性,GRIS向GIIS的注册和GIIS的查询服务是基于soft-state的模式,即:一旦GRIS选定要注册的GIIS服务,只需在globus_info_resource_ register.conf文件中加入注册信息,启动GRIS服务,GRIS会调用globus_info_register命令向GIIS服务器注册,并每经过一定时间(由用户设定)向GIIS服务器注册,以告知GIIS服务器它的存在。而GIIS服务器也只将GRIS向它注册的信息缓存一定的时间(一般是GRIS向它注册间隙时间的兩倍),缓存时间已过而GIIS没有进一步收到对方的注册请求,则GIIS会认为对方退出该VO域,并将缓存的信息释放。GIIS采用这种机制有效地保证了资源的动态加入与释

G RIS向

信息

图4 GIIS&GRIS关系图

放。同时,用户可同时向多个VO域注册,避免了单点失效后资源的不可获得性,并保证了网格环境的可扩展性。

一个用户向一个GIIS服务器的注册配置如下所示:

# register this server GRIS to this server GIIS

dn: Mds-V o-Op-name=register, Mds-V o-name=GGI, o=grid

regtype: mdsreg2

reghn:https://www.wendangku.net/doc/e73274337.html,

regport: 2135

regperiod: 200

type: ldap

hn: https://www.wendangku.net/doc/e73274337.html,

port: 2135

rootdn: Mds-V o-name=local, o=grid

ttl: 1200

timeout: 30

mode: cachedump

cachettl: 1200

3.3 并行计算环境的实现

为了在网格环境下提供并行计算的环境,我们采用了MPI-G2[14],它是由Northern Illinois University大学的高性能实验室开发的,是与Globus网格系统兼容的MPI库。它提供以Globus 作为底层的资源发现,资源分配和调度等功能的并行程序的MPI函数库,应用程序经过编译后通过mpirun调用Globus提供的服务完成并行化应用程序的需求。在mpirun调用Globus时要采用RSL语言对资源的要求、作业运行状态、计算结果的返回等信息进行描述,具体情况详见参考文献[14]。

4 试验床性能评测

测试程序为一个计算pi的程序cpi。在基于Globus网格系统的作业提交前要先用RSL语言描述任务的需求,网格系统则根据RSL描述为任务分配资源。实验得到的数据如表1所示。

表1 用cpi测试Globus网格系统结果表

程序名 CPI ——总耗时(s) Wall clock time(s) 加速比

本地、单CPU(celeron1.1G)8.04262 0.088070 ——

远程、单CPU(celeron1.1G)8.06212 0.108747 ——

多CPU(4个)( celeron1.1G) 9.56623 0.065772 -1.64 从测试的结果可以看到,对于计算量小的应用,网格系统并不能体现其计算速度上的优势,相反一开始还有明显的延迟。因为Globus网格系统采用的基于X509证书的安全认证,认证过

程的影响使程序在执行前有明显的延迟。而且在并行计算时的加速比也不大,这是因为计算量较小,通讯的时耗就显得明显,随着计算量的增大,加速比将呈上升趋势。从测试结果来看,直接在Globus网格系统上运行作业还需管理员在RSL描述时手动分配资源节点,因此需要在Globus网格系统软件的基础上开发相应的中间件即Portal, 利用Portal屏蔽底层的调度,这是目前网格以应用驱动研究的重要课题之一。

5 展望

本文阐述了基于广域环境下的网格试验床的设计与实现,以期实现一个资源共享、协同工作的网格运行平台,为网格研究以及开发具有特色的网格应用打下基础,并为进一步的理论研究提供试验的环境。我们已经在实验床上进行了相应的测试,并针对具体的应用,利用GPDK[15]提供的开发Portal的工具来开发良好的用户接口,以应用推动网格技术的进一步的发展。

参考文献:

[1]. I.Foster, C.Kesselman, Steven Tuecke. The Anatomy of the Grid. https://www.wendangku.net/doc/e73274337.html,/ research/anatomy.pdf

[2] https://www.wendangku.net/doc/e73274337.html,/security

[3] Legion 1.8 System Adminstrator Manual. https://www.wendangku.net/doc/e73274337.html,

[4] Henze.Johner, Larry Brown. Understanding LDAP. https://www.wendangku.net/doc/e73274337.html,

[5] Hierarchical GIIS(pdf). https://www.wendangku.net/doc/e73274337.html,/mds/

[6] https://www.wendangku.net/doc/e73274337.html,/mds/getmdsdata/cmdsdata.html #mds explore

[7] https://www.wendangku.net/doc/e73274337.html,/gt2/install/index.html

[8] https://www.wendangku.net/doc/e73274337.html,.au/LDAPExplorer/

[9] https://www.wendangku.net/doc/e73274337.html,/UserInfo/Grid/GiB/Server/ntpd.html

[10] Carlton R.Davis 周永彬等译,IPSec VPN 的安全实施,清华大学出版社

[11] https://www.wendangku.net/doc/e73274337.html,/research/testbeds.html

[12] https://www.wendangku.net/doc/e73274337.html,/About_NPACI/index.html

[13] https://www.wendangku.net/doc/e73274337.html,/

[14] https://www.wendangku.net/doc/e73274337.html,/mpi/

[15] https://www.wendangku.net/doc/e73274337.html,/projects/GPDK/

联系地址:

赵晓春 zhaoxc@https://www.wendangku.net/doc/e73274337.html,

杨寿保 syang@https://www.wendangku.net/doc/e73274337.html,

安徽合肥中国科技大学网络中心 230026

电话:0551-3603029

传真:0551-3603143

作者简介:

赵晓春,女,四川人,硕士研究生,主要研究方向为网络安全,计算网格。

杨寿保,男,上海人,教授,博士生导师,主要研究方向为计算机网络,密码学,信息安全和计算网格。

王育峰,男,陕西人,硕士研究生,主要研究方向为网络安全,计算网格。

陈昕 ,女,安徽人,硕士研究生,主要研究方向为网络安全,计算网格。

相关文档
相关文档 最新文档