IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Grid computing  >

使用 Storage Resource Broker 构建数据网格

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Vladimir Silva (vladimir_silva@yahoo.com), 软件工程师, Consultant

2006 年 5 月 12 日

圣地亚哥超级计算中心 (SDSC) 的 Storage Resource Broker (SRB) 中间件平台为通过网格连接异构数据源提供了一个接口。SRB 设计用于构建数据网格和访问远距离上分布的复制数据集。在本文中,我们将学习使用 SRB 开发自己的分布式数据网格的基本知识,可以将 SRB 用于开发,也可以在组织内部使用它。

网格的两种类型:计算网格和数据网格

计算网格的目标是解决复杂的科学和工程问题,例如天气预报、股票分析管理和医疗诊断。这些问题有很多都超出了人们的解决能力,因此需要依赖于计算机的能力来增强计算。数据网格是一个分布式数据管理系统,它可以支持分布式数据集的管理、协作共享、发布和保护。计算网格根据一些计算问题的解决方法来寻找复杂问题的解决方案,数据网格提供了访问组织内部分布式数据集的能力。

在理想的环境中,数据网格应该提供计算网格执行操作所需要的骨干。目前数据网格和计算网格之间已经有了很大的差距。然而,这种差距正在因为中间件(例如 Globus 和 SRB)的使用而不断缩小。

SRB 架构

SRB 是为在网格环境中实现数据管理而设计的一个分布式文件系统,它提供了以下功能:

  • 透明复制
  • 实现缓存、数据同步和备份
  • 异构存储特性
  • 容器和聚合数据移动
  • 大量数据的提取
  • 第三方操作,例如复制、移动
  • 版本控制和数据划分管理

SRB 被划分成三个逻辑层:客户机、Metadata Catalog (MCAT) 以及 SRB 代理。SRB 的核心部分是 MCAT。

MCAT

MCAT 是一个用来跟踪名称空间和数据对象到联邦中存储资源的映像的系统。可以使用 MCAT 来确定将给定数据对象所加载的地方、文件的属性、元数据、访问控制列表、存储资源属性和用户数据。通过查询 MCAT,客户机可以简单地查找分布的数据对象,对数据进行复制、传输或同步,执行复杂的查询请求,以及实现其他功能。

集合与存储资源

集合非常类似于文件系统中的文件夹或目录。它是一个包含其他集合或数据对象的对象。可以使用集合将数据组织成用户易于访问和理解的逻辑层次。数据对象与最终的物理存储之间的映射关系是通过资源来实现的。资源类型有三种:

  • 物理资源 (Physical resource) 表示数据对象的物理存储位置,例如 UNIX® 或 Linux® 文件系统、关系数据库(如 Oracle 或 DB2®)、磁带驱动器、FTP 或 Web 服务器,等等。
  • 逻辑资源 (Logical resource) 用来对一个或多个物理资源进行分组,从而使数据的存储位置信息透明。这样可以实现透明的数据存储。
  • 集群资源 (Cluster resource) 可以对幕后的集群文件系统进行有效管理。集群文件系统可以连接物理资源,也可以不连接任何物理资源。在进行故障恢复时,集群资源非常有用,此时集合可以从一台失效的服务器上转换到另外一台服务器上,这样就可以让它们共享同样的数据了。

SRB 快速入门

对于这个示例安装来说,我们创建了一个由两节点组成的数据集群,这两个节点是两台运行 RLAS V3.x 的 i386 机器。MCAT 使用的数据库是 PostgreSQL。我们也可以使用其他 RDMBS 系统,例如 MySQL、Oracle 或 DB2,不过 PostgreSQL 是最容易配置的一个。另外,这也是 Globus Toolkit 所选择的操作系统。这使我们可以更容易地对长期运行的数据网格和计算网格进行集成。

在继续安装 SRB 之前,我们需要以下软件:

  1. SRB 安装包(SRB3.4.0.tar,可以从 http://www.sdsc.edu/srb/ 中下载)。SRB 源代码可以以加密的形式提供给教育和政府领域使用。要获得密钥,请与 SDSC SRB 小组联系。
  2. PostgreSQl 安装包(postgresql-7.4.7.tar)
  3. Postgres ODBC API(psqlodbc-07.03.0200.tar)
  4. SRB 自动安装 Perl 脚本(install.pl)

要解密 SRB tar 包,请运行下面的命令(需要密钥):

openssl enc -d -bf-cbc -in SRB3.4.0relg_bf.tar -out SRB3.4.0.tar
password:

将所有需要的文件放入安装目录中(例如 /opt/SRB/3.4.0)。编辑自动安装脚本 install.pl:


清单 1. 完成 SRB/MCAT 安装需要对 install.pl 进行的更改
                
(131) $SRB_FILE="SRB3.4.0.tar";   # The SRB tar file
(136) $SRB_FILE_ALREADY_DECRYPTED=1;    # Set this to 1 if the SRB Tar file is

(145) $POSTGRES_FILE="postgresql-7.4.7.tar.gz"; # the postgres release file
(146) $ODBC_FILE="psqlodbc-07.03.0200.tar.gz";  # the odbc release file
(147) $DB_NAME="MCAT";                  # Name of the Postgres database to create

(149) $YOUR_ADMIN_NAME="srbAdmin";      # Change this to the name for the srb-admin
(156) $YOUR_ADMIN_PW="secret";          # Change this to a password you want to use

(162) $YOUR_DOMAIN="NCC";         # Change this to the SRB domain name you
                                  # would like to use.
(164) $YOUR_ZONE="nccZone";       # Change this to the local zone name you
                                  # would like to use.
(166) $RESOURCE_NAME="nccResc";   # Name of the local SRB resource to use

有了这些脚本和文件,就可以使用清单 2 所示的命令来执行安装过程。


清单 2. MCAT 安装过程记录
                
[vsilva@ebony 3.4.0]$ ./install.pl
Perl rindex error detected; retrying
testchar=:s:
initial i=29, retry i=31
rindex workaround succeeded (it appears), continuing
This script is install.pl version 3.x, last updated October 31, 2005
This host is ebony
This host full network name is ebony.rtpnc.epa.gov
This host full network address is 134.67.66.53
Your home directory is /opt/home/vsilva
running: ./configure --prefix=/opt/home/vsilva/SRB/3.4.0/pgsql
--enable-odbc --without-readline > /opt/home/vsilva/SRB/3.4.0/installA3.log

...

running: ps -el | grep srb | grep -v grep
If the srb server is running OK, you should see srbMaster and srbServer here:
1 S  3089  6604     1  0  85   0    -  2864 schedu ?        00:00:00 srbMaster-3.4.0
0 S  3089  6607  6604  1  85   0    -  3160 pipe_w ?        00:00:00 srbServer
chdir'ing to: /opt/home/vsilva/SRB/3.4.0/SRB3_4_0/MCAT/bin
Step F 6 completed.
...
Step G 1 completed.
running: ./utilities/bin/Szone -M nccZone
	ebony '' 'srbAdmin@NCC' '' 'Created Thu Jan  5 16:49:49 EST 2006' 
	/opt/home/vsilva/SRB/3.4.0/installG2.log
Step G 2 completed.
REMOTE_ZONE not defined, skipping remote zone installation
running: ./utilities/bin/Sexit
...
For man pages (csh):
	alias Sman 'man -M /opt/home/vsilva/SRB/3.4.0/SRB3_4_0/utilities/man'
All done

[vsilva@ebony 3.4.0]$

测试 MCAT 安装

要测试 SRB 守护进程现在是否正在运行,可以使用以下示例 install.pl 脚本:

install.pl ps

这个命令的输出如清单 3 所示。


清单 3. 测试 SRB 服务器进程
                
[vsilva@ebony 3.4.0]$ ./install.pl ps
Perl rindex error detected; retrying
testchar=:s:
initial i=29, retry i=31
rindex workaround succeeded (it appears), continuing
This script is install.pl version 3.x, last updated October 31, 2005
This host is ebony
This host full network name is ebony.rtpnc.epa.gov
This host full network address is 134.67.66.53
Your home directory is /opt/home/vsilva
Note: SRB_DIR determined to be SRB3_4_0
Running srb server processes:
1 S  3089  6604     1  0  75   0    -  2864 schedu ?        00:00:00 srbMaster-3.4.0
0 Z  3089  6794  6604  0  79   0    -     0 ct    ?        00:00:00 srbServer defunct
0 S  3089  6797  6604  0  81   0    -  3159 pipe_w ?        00:00:00 srbServer
Running postgres server processes:
0 S  3089  6181     1  0  75   0    -  4371 schedu pts/5    00:00:00 postmaster
1 S  3089  6185  6181  0  75   0    -  2071 schedu pts/5    00:00:00 postmaster
1 S  3089  6186  6185  0  75   0    -  1823 schedu pts/5    00:00:00 postmaster
1 S  3089  6606  6181  0  85   0    -  4593 schedu pts/5    00:00:00 postmaster
1 S  3089  6798  6181  0  80   0    -  4593 schedu pts/5    00:00:00 postmaster
Done listing processes at ./install.pl line 504.

一旦安装完成,对环境进行测试的最简单方法就是使用 S 命令,它提供了一组与 UNIX 命令类似的命令行客户机程序。在测试 S 命令之前,需要使用类似于清单 4 的 shell 脚本来正确设置环境。


清单 4. SRB 环境 shell 脚本
                
SRB_ROOT=/opt/home/vsilva/SRB/3.4.0

export SRB_DIR=$SRB_ROOT/SRBInstall
export SRB_INSTALL=$SRB_ROOT/SRB3_4_0

export PATH=$SRB_INSTALL/utilities/bin:$PATH
export MANPATH=$SRB_INSTALL/utilities/man:$MANPATH

配置好这个环境之后,清单 5 中给出的命令就会在 SRB 中放入 3 个日志文件。


清单 5. 使用 S 命令来测试 MCAT
                
[vsilva@ebony 3.4.0]$ Sinit
[vsilva@ebony 3.4.0]$ Sput installA1.log
[vsilva@ebony 3.4.0]$ Sput installA2.log
[vsilva@ebony 3.4.0]$ Sput installA3.log
 [vsilva@ebony 3.4.0]$ Sls
/nccZone/home/srbAdmin.NCC:
  installA1.log
  installA2.log
  installA3.log
[vsilva@ebony 3.4.0]$ Sexit

SRB 命令行客户机配置

SRB S 命令由两个环境文件控制的:.MdasEnv 和 .MdasAuth。它们位于用户主目录的 .srb 目录中。文件 .MdasEnv 中包含了用户名、主集合、域名、SRB 主机、端口和身份验证模式。文件 .MdasAuth 包含一行在安装 MCAT 主机时用来表示密码的数据(关于 .MdasEnv 的语法,请参见清单 6)。


清单 6. MCAT/Agent 环境文件 .MadsEnv
                
# SRB MCAT Installation parameters
# The password resides in .MdasAuth
mdasCollectionName '/nccZone/home/srbAdmin.NCC'
mdasCollectionHome '/nccZone/home/srbAdmin.NCC'
mdasDomainName 'NCC'
mdasDomainHome 'NCC'
srbUser 'srbAdmin'
# MCAT Host
srbHost 'ebony.rtpnc.epa.gov'
#srbPort '5544'
defaultResource 'nccResc'
# Authorization Schemes
#AUTH_SCHEME 'PASSWD_AUTH'
#AUTH_SCHEME 'GSI_AUTH'
AUTH_SCHEME 'ENCRYPT1'

SRB 代理快速入门

有了 MCAT 之后,添加代理或分布式数据节点/资源就会非常简单:只需要在源发行版中运行下面的配置脚本即可:

	$ ./configure --enable-installdir=PATH_TO_DIRECTORY
	$ make
	$ make install

在安装完成之后,就可以告诉代理假定连接到哪个 MCAT 上。这可以通过编辑 $SRBINSTALL/data/mcatHost 文件实现:


清单 7. Agent/MCAT 配置文件
                
[srb@misora8 data]$ more mcatHost
# The MCAT enabled host file.
# Line 1 is the host address of the MCAT enabled host.
rtpmeta.epa.gov
# Line 2 is the AUTH_SCHEME used to connect the MCAT enabled server.
# Valid schemes are : PASSWD_AUTH, SEA_AUTH, SEA_ENCRYPT,
# GSI_AUTH, GSI_SECURE_COMM
ENCRYPT1
# Line 3 is the DN of the MCAT enabled server (If using GSI).
/C=US/O=NPACI/O=DICE/UID=srb/CN=Storage Resource Broker

要启动 SRB 节点,请运行 $SRBINSTALL_DIR/bin/runsrb 命令。

关于示例输出,请参见清单 8。现在可能因为没有成功编辑 MCAT 配置文件 mcatHost 而导致出现错误。


清单 8. 代理启动脚本
                
findServerExec: found "/lhome/srb/srbInstall/bin/srbServer" using argv[0]
logFile: ../data/srbLog opened successfully.
getAndQueHostName: gethostbyname error for mda-18.sdsc.edu ,errno = 29
LocalHostName:  misora8,
localhost, misora8.rtpnc.epa.gov, 134.67.248.92, Port Num: 5544.
Local storage vault conf:
storSysType: 0, vaultPath: /lhome/srb/Vault/
Local Zone :
ZoneName = nccZone  HostName = rtpmeta.epa.gov  PortNum = 5544
Remote Zone :
NOTICE:Jan 20 09:13:53: srbMaster version SRB-3.3.1 is up.
findServerExec: found "/lhome/srb/srbInstall/bin/./srbServer" using argv[0]
srb  9741     1  0 09:13 ?    00:00:00 ./srbMaster-3.3.1 -d 1 –S

SRB 代理请求

该代理的测试过程与 MCAT 的测试过程相同。S 命令可以用来连接 SRB,并将一些测试文件放入 SRB 空间中。但是,MCAT 需要通过创建新位置和物理资源来了解代理的存在。

对 MCAT 使用的代理配置

构建这个数据网格的最后一个步骤是通过创建新位置和物理资源(它指向远程节点上的一个文件系统)来使用 MCAT 注册新代理。在使用 SRB MCAT Java™ Administration 工具的 Windows® 或 Linux 系统(参见图 1)上,很容易实现这一点。请在命令行窗口中运行下列命令:

java -jar SRB3_4_0/MCAT/java/mcatAdmin.jar


图 1. Java MCAT Administration 工具
Java MCAT Administration 工具

Resources 菜单中选择 Add new Location,然后填上位置信息:名字、远程主机的地址、父位置、服务器域名和用户 ID。有些值是在安装过程中定义的(参见图 2)。


图 2. 添加位置对话框
添加位置对话框

在新位置成功创建之后,请选择 Resources > Add Physical Resource (参见图 3),添加一个物理资源来表示远程主机上的 UNIX 文件系统,然后填写所需要的信息:资源名、远程文件系统路径、位置(前面创建的位置)、资源类型(UNIX 文件系统)和资源类型(缓存)。


图 3. (在这个位置中)创建资源对话框
(在这个位置中)创建资源对话框

图 4 给出了为这个两节点的数据网格创建的新位置参数的例子。图 5 给出了为新位置中的物理资源选择的示例参数。


图 4. 新位置示例参数
 新位置示例参数

图 5. 示例物理资源参数
示例物理资源参数

故障诊断

This host full network name is ebony.rtpnc.epa.gov
This host full network address is 134.67.66.53
Your home directory is /opt/home/vsilva
There is another postgres already running on this host and
this script is not configured to use (or ignore) an existing one.
Aborting, cannot install a second postgres system at ./install.pl line 407

现在有另外一个 PostreSQL 实例正在运行吗?如果有,请切换成超级用户,并关闭其他 Postgre 实例:

[vsilva@ebony 3.4.0]$ ps -ef | grep post
postgres  4972     1  0  2005 ?    00:00:00 /
/usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data -i
postgres  4974  4972  0  2005 ?     00:00:00 postgres: stats buffer process
postgres  4975  4974  0  2005 ?     00:00:00 postgres: stats collector process

[vsilva@ebony 3.4.0]$ sudo -s
Password:
[root@ebony 3.4.0]# service rhdb stop
Stopping PostgreSQL - Red Hat Edition service:             [  OK  ]

SRB 在默认情况下使用的是 PostgreSQL 数据库,不过它也支持其他 DBMS 系统,例如 DB2、Oracle 和 MySQL。如果图省事,建议您最好使用前面介绍的 Postgre 版本。此外,Postgre 也是 Globus Toolkit 使用的数据库,因此如果您计划对数据网格和计算网格进行集成,那么 Postgre 就是所选择的平台。

客户机应用程序

SRB 提供了很多客户机,范围从命令行工具到适合各种环境的 Web 界面:

  • 命令行客户机(S 命令) —— 提供了一个与 UNIX 命令类似的客户机接口。可以使用这台客户机对服务器进行身份验证,显示集合的内容,执行管理任务,维护文件,查询元数据,等等。对于在 shell 脚本中来执行各种 SRB 任务而言,这非常有用。
  • Windows 客户机 (inQ) —— 这是为 SRB 提供的一个新浏览器/查询工具,它提供了早期 SRB 浏览器所具有的传统文件和目录功能,还可以支持集合和数据集上的元数据和嵌套查询。我们可以用 inQ 的与 Microsoft® Explorer 类似的界面来查看集合和数据集的元数据、访问权限和查询。inQ 是多线程的,可以支持拖拽操作(参见图 6)。

    图 6. inQ Windows SRB 客户机
    inQ windows SRB 客户机
  • Web 客户机 (mySRB) —— 允许您使用 Web 浏览器来执行 SRB 普通用户任务的 Web 客户机。这个用户界面非常复杂,需要多执行一些操作,但是它的确可以实现所需要的功能。mySRB 允许您创建共享或本地位置,或在这些地方进行浏览;查看集合或元数据的内容;从 SRB 中提取文件;查看文件内容、浏览器资源和用户(如图 7 中所示)。

    图 7. mySRB 基于 Web 的客户机
    mySRB 基于 Web 的客户机

SRB 与商业软件的比较

虽然 SRB 有一些商业数据系统所不具备的独特特性,但是它也有一些非常严重的实现问题:

  • 没有质量保证小组,这样就可能会产生没有很好实现和测试的软件,在浏览源代码时,这个问题比较明显。
  • 有些 SRB 用户界面非常繁杂,很难使用。服务器端的组件很难安装。深入研究多个组件的源代码之后就会发现这种实现并不是太好。
  • 不够开放的特性阻碍了那些急切希望使用 SRB 和实现数据网格技术的全球开发人员对 SRB 进行改进。

在 2001 年,Nirvana Storage(General Atomics 的一家分公司)获得了 SRB 的商业版权。从那时起,双方都已经发布了几个版本的软件。

表 1 给出了 SRB 与其他商业数据系统的特性对比矩阵。


表 1. 流行网格软件的特性比较(来源:Nirvana Storage,2005 年 6 月)
SRB 3.X Avaki Grid IBM DST
Data Warehouse
Oracle IFS Globus
易于使用
集中管理YYNYY
基于自动策略
数据管理
YNNYN
集成的数据
管理
YYNYY
性能
减少延时YYNYY
大文件操作YNNYN
复制YYYNY
并行 I/OYNNNN
安全性
审计YNNNN
LDAP 兼容性NYNYY
身份验证、授权YYNNY
加密YNNNY
Services
复制、备份、移植YYYYY
数据网格查询YYYYY
数据网格联邦YNNNN
开发
J2EE 集成NYNYY
XML 模式YYNYY
Java、C APIYYNYY

要了解这些特性的详细内容,请向作者咨询。

SRB 与 Globus Toolkit 的集成

在理想的环境中,数据网格为计算网格(例如 Globus)软件提供了数据中枢。SRB 是对这两种软件进行集成的路线图上的第一步:

  • SRB 支持 Grid Security Infrastructure (GSI)。这是集成过程中重要的一步。有了 GSI,客户机和节点可以使用 Globus 用户/主机证书对 MCAT 进行身份验证。但是,服务器需要使用 Globus Toolkit 库进行编译;因此安装和证书配置过程对于新手来说太复杂。
  • 现在已经开始启动了几个集成项目。另外几个 Globus Toolkit V4/SRB 的集成项目也已经展开工作了。有些项目就放在 Globus.org 上。其中比较优秀的有:
    • GridFTP 用于 SRB 的数据存储接口 (DSI) —— 它提供了一个从 GridFTP 到 SRB 存储 (GridFTP on SRB) 的接口。这也是 SRB 发行版中从 SRB 到 GridFTP 的一个接口。这个接口在有些情况下可能会非常有用 —— 不过由于用户正在使用 GridFTP 来获取 SRB 数据,因此很多 SRB 的功能都无法使用。此外,由于数据是通过一个网关进行传输的,因此性能十分有限。SRB DSI 是与 ANL 一起合作创建的。
    • SRB Java Commodity Grid Kit (CoG) 集成 —— 其目标是通过 Globus API 公开 SRB 提供的大部分功能(即数据传输和元数据查询),这些 API 包括 Java CoG、WSRF 传输服务、RFT 和发现服务 (MDS)。

结束语

SRB 是一个数据网格系统,它负责协调在局域网和广域网上分布的客户机和服务器主机,以便对存储资源、数据和元数据提供透明访问。SRB 通过一组统一的 API 提供了对 LAN/WAN 上各种类型的数据存储的访问,并对有关每个存储对象的元数据进行维护。它提供了用来访问数据对象和查询属性的方法,但不必知道这些数据对象的名字和位置。

此外,SRB 还为两个或多个独立的 SRB 系统提供了一些用来对这些 SRB 系统上的数据进行交互或无缝访问的联合设备。



参考资料

学习
  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文

  • 通过阅读 Nirvana Storage whitepapers 了解有关如何使用 Cogito 的详细知识。

  • 在 2001 年,Nirvana Storage(General Atomics 的一家分公司)获得了 SRB 的商业版权。从那时起,双方都已经发布了几个版本的软件。

  • SDSC Storage Resource Broker 是一个用来连接异构数据资源的中间件。

  • 学习更多有关 SRB DSI 的知识。

  • 学习更多有关 Java CoG Kit 的知识。

  • 请访问 developerWorks 网格计算专区,那里提供了可以有助于开发网格技术的丰富信息。


获得产品和技术


关于作者

Vladimir Silva 拥有 Middle Tennessee State University 的计算机硕士学位。毕业后不久,他就加入了 IBM WebAhead 技术智囊团,从事网格计算方面的项目,例如 IBM internal Grid(intraGrid)和 IBM Grid Toolbox。他撰写了 Grid Computing for Developers 和很多网格开发方面的 developerWorks 技术文章




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款