专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » broker:使用 Storage Resource Broker 构建数据网格 »正文

broker:使用 Storage Resource Broker 构建数据网格

来源: 发布时间:星期四, 2009年1月15日 浏览:26次 评论:0
  网格两种类型:计算网格和数据网格

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

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

  SRB 架构

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

  透明复制

  实现缓存Cache、数据同步和备份

  异构存储特性

  容器和聚合数据移动

  大量数据提取

  第 3方操作例如复制、移动

  版本控制和数据划分管理

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

  MCAT

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

  集合和存储资源

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

  物理资源 (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 的前我们需要以下软件Software:

  SRB 安装包(SRB3.4.0.tar可以从 http://www.sdsc.edu/srb/ 中下载)SRB 源代码可以以加密形式提供给教育和政府领域使用要获得密钥请和 SDSC SRB 小组联系

  PostgreSQl 安装包(postgresql-7.4.7.tar)

  Postgres ODBC API(psqlodbc-07.03.0200.tar)

  SRB 自动安装 Perl 脚本(.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)编辑自动安装脚本 .pl:

  清单 1. 完成 SRB/MCAT 安装需要对 .pl 进行更改

(131) $SRB_FILE="SRB3.4.0.tar";  # The SRB tar file
(136) $SRB_FILE_ALREADY_DECRYPTED=1;  # Set this to 1 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 do 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]$ ./.pl
Perl rindex error detected; retrying
testchar=:s:
initial i=29, retry i=31
rindex workaround succeeded (it appears), continuing
This script is .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/A3.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/G2.log
Step G 2 completed.
REMOTE_ZONE not d, skipping remote zone ation
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 守护进程现在是否正在运行可以使用以下举例 .pl 脚本:

.pl ps

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

  清单 3. 测试 SRB 服务器进程

[vsilva@ebony 3.4.0]$ ./.pl ps
Perl rindex error detected; retrying
testchar=:s:
initial i=29, retry i=31
rindex workaround succeeded (it appears), continuing
This script is .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 ./.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 A1.log
[vsilva@ebony 3.4.0]$ Sput A2.log
[vsilva@ebony 3.4.0]$ Sput A3.log
[vsilva@ebony 3.4.0]$ Sls
/nccZone/home/srbAdmin.NCC:
 A1.log
 A2.log
 A3.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'
mdasDoName 'NCC'
mdasDoHome '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-dir=PATH_TO_DIRECTORY
  $ make
  $ make


  在安装完成的后就可以告诉代理假定连接到哪个 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 工具

开发
J2EE 集成 N Y N Y Y
XML 模式 Y Y N Y Y
Java、C API Y Y N Y Y

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

  SRB 和 Globus Toolkit 集成

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

  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 系统上数据进行交互或无缝访问联合设备

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: