一些关于Globus的基础知识

陶星波
2023-12-01
一些关于Globus的基础知识
1. Globus相关资源
http://www.globus.org是Globus联盟的官方网站,和Globus相关的资源这里都有。

2. GT版本的选择
目前可用的或者说主流的版本有3个,GT2.4,GT3.2.1,GT4.0.1
GT2.4:是一个成熟稳定的版本,绝大多数代码为C,包括了GRAM2, MDS2, GSI, GridFTP等部分。目前很多网格组织都使用它或它的衍生版本作为网格基础设施。多数组件已经成为相关领域的标准。
GT3.2.1:现在看来,是一个过渡版本,它是第一个OGSA的实现,接口规范为OGSI,由于OGSI的缺欠(或者说Web Service社区对OGSI及Globus联盟的不满),它还没有被人们接受就被淘汰了。它的意义在于提出了网格服务的概念,它采用Java语言移植了 GT2.4的程序。GT2.4的部分被基本上原封不动的放在了GT3.2.1中,称为Pre-WS组件。
GT4.0.1:最新的可用版本,和GT3.2.1的主要区别是OGSI向WSRF的移植,还加入了几个第三方贡献的组件正式加入到GT中,如OGSA-DAI,CSF(my work :-) ),Python-core。推荐使用的版本。
对GT而言,从GT2到GT3是一个大的跨越,GT3到GT4是一个小跨越。

3. 什么是WS组件和Pre-WS组件?
从GT3开始才有这个划分,WS组件即指使用OGSA的那部分,使用了Web Service技术,以GT4为例,GT4 WS组件包括,WS-GRAM,CSF,WS-MDS,RFT,WS-Core等。GT4 Pre-WS组件主要由GT2.4(有小量改动)组成,还新加入了一些不错的程序如myproxy和GSI-OpenSSH。

4. Binary版还是Source版?
Binary版的好处是安装非常快,缺点是软件包在不同操作系统上不兼容。Source版的优缺点正好相反,还有个优点是显而易见的,就是可以读源码了。我的建议是两个版本都下载,安装时用Bin版,还可以读源码。

5. 操作系统的选择
首选Linux。当然如果你有Unix服务器可以用,也可以试一试,不过出现奇怪的问题时,能帮你的人不多。为什么不选Windows?因为Java语言 的跨平台性才有了Globus的Windows版,这个版本即WS-Core,可以说这个版本跟“网格计算”还没有什么直接关系,它仅仅提供了网格服务所 需要的接口支持,你可以把Windows版的GT当作一个不支持安全的客户端。而GT真正有价值的部分GRAM,MDS,GSI,它们从设计到实现,都是 在*nix操作系统上。
注:有一个Windows版的安全组件的第三方的实现,我没有用过,在以前的帖子中有人提到,有兴趣可以去找找。

6. 什么情况下应该选择GT3.2.1?
我只觉得这样的情况才需要使用GT3.2.1,你目前在用的某个程序是基于GT3.2.1开发的,这个程序还正在被使用,或者你正在开发某个基于GT3.2.1的项目,这个项目已经完成了一半,这时候向GT4移植,会造成项目的混乱。

7. Globus Toolkit安全认证的理解
其实CA+证书的体系很好理解,很像现实世界中的身份证系统。Certificate:证书,理解为公民身份证。CA(Certificate Authority):颁发证书的组织,理解为派出所。Proxy,代理证书,就是根据原始证书产生的短期有效的证书,仅从这点特性来看比较像特区证,签 证之类的东西,但Proxy还有其他更有用的功能,实现了Single Sign-On。主要就是这几个概念,虽然从设计目的上看二者很像,但不要生搬硬套,毕竟计算机系统和现实世界还有区别。
Globus的安全认证体系采用GSI,全称Grid Securtiy Infrastructure,详细内容可以参考Ian Foster的经典论文“A Security Architecture for Computational Grids”,GSI采用X.509数字证书,X.509由4部分组成,
1. Subject,用于全球唯一表示某个主体身份的字符串,如 "/O=Grid/OU=GlobusTest/OU=simpleCA-hostA.jlu.edu.cn/OU=jlu.edu.cn/CN=UserA" 可以看出,这个SubjectName标识了一个用户的名字,所属的组织名,使用域名作为标识可以保证全球唯一。(身份证号码)
2. 此主体的公钥。(和身份证没有对应,需要了解PKI,www.pki-page.org
3. CA的Subject。(派出所名)
4. 数字签名。(派出所公章)

8.多CA多主机的安全配置
(1)单CA,单主机的配置。
构建一个网格系统,首先必须配置一个CA,也就是证书颁发机构。较大的公司或科研组织通常都有自己的CA软件,我们可以使用Globus Toolkit自带的SimpleCA,虽然Simple,但功能够用了。
GT4 SimpleCA的安装配置指南:http://www.globus.org/toolkit/docs/4.0/admin/docbook/ch07.html
几个步骤包括,
1 安装SimpleCA,
2 以root申请主机证书,
3 由CA管理员给主机证书签名,(CA管理员就是安装SimpleCA的用户,也就是Globus管理员)
4 以用户身份申请用户证书,
5 由CA管理员给用户证书签名,
6 将用户的Subject Name添加到/etc/grid-mapfile中
(2)单CA,多主机环境的配置。
在安装CA时会产生一个CA软件包globus_simple_ca_Hashcode_setup-0.17.tar.gz,中间的Hashcode会是一个随机8位字符串,其他主机希望和A主机共用一个CA时,需要将CA软件包拷贝到本机上安装并配置。
安装命令是标准的gpt安装,以Globus管理员执行这两个命令
$ gpt-build globus_simple_ca_Hashcode_setup-0.17.tar.gz
$ gpt-postinstall
配置步骤与上面相同,一点区别是需要把待签证书拷贝到主机A上,由主机A上的CA管理员给证书签名。
(3)多CA,多主机的配置。
其实这里涉及的问题就是CA间是否信任,例如:主机A上安装了CA1,主机B也采用CA1,主机C安装CA2,主机D也采用CA2,
如果主机D上的用户UserD1希望使用主机A上的某个资源,前提有2个,1. 主机A信任CA2,2. 主机A给主机D上的用户UserD1相应资源的使用权限。配置的方法:
1. 信任问题,每台机器上都有一个trusted certificates目录,/etc/grid-security/certificates,你会在主机A和B上的这个目录里找到CA1的证书, Hashcode.0,如果希望主机A信任CA2,就需要把CA2的证书拷贝到主机A的这个目录里。需要拷贝的文件有2个,Hashcode.0和 Hashcode.signing_policy。
2. 资源授权问题,上面提到的grid-mapfile,将用户映射到本地拥有权限的用户即可。
 类似资料: