数据中心 频道

IBM TWS LoadLeveler使用交叉网格域

  【IT168 资讯】TWS LoadLeveler 是 IBM 开发的一个作业调度系统,用于为大型计算作业实现资源利用率和吞吐量的最大化。它最初是为 AIX 开发的,不过现在也可以在 Linux 上运行。本文说明了如何使用 Globus Toolkit 从外部管理域启用对 TWS LoadLeveler 特性和资源的访问。Globus Toolkit 允许用户通过 Globus 客户机与 TWS LoadLeveler 进行交互。其他的调度系统也可以使用 Globus 基础设施与远程 TWS LoadLeveler 集群协调工作。

TWS LoadLeveler 概述

  TWS LoadLeveler 管理一群或一组机器,以提供一个高吞吐量的计算环境。用户向 TWS LoadLeveler 提交作业,而它会将作业请求与可用资源匹配,使作业吞吐量和资源利用率最大化。它会对作业需求和可用资源进行检查,看哪些资源可以满足作业需求,从而为作业找到适当的资源。TWS LoadLeveler 根据优先级、资源需求和资源的可用性对作业进行调度。它可以处理与运行在分布式资源集上的作业相关的管理、执行和记帐。

Globus 概述

  Globus Toolkit 是一个开放源码的软件项目,它为开发分布式计算系统提供 Web 服务组件。它提供支持向远程资源提交作业的服务。Globus Toolkit 不提供的是根据定义的一套策略为作业进行资源匹配的调度程序。您需要一个调度程序,它可以在一组资源中控制作业的执行管理。调度程序要考虑资源属性和可用性,并利用这些信息,根据作业需求、当前资源约束和定义的调度策略,做出为作业匹配适当资源的智能的决定。

  Globus Toolkit 与一些提供这种功能性的网格调度程序集成。这些调度程序包括 Platform Load Sharing Facility(LSF)、Portable Batch System(PBS)和 TWS LoadLeveler。应用程序可以使用 Globus 的 Grid Resource and Allocation Manager(GRAM)服务以一种标准格式与这些调度程序通信。

Globus GRAM

  Globus 的 GRAM 服务使跨管理域的虚拟组织的作业提交、监视、管理和控制更容易。GRAM 提供了一套 WSRF 兼容的 Web 服务,来帮助用户在分布式计算环境中提交和管理作业。GRAM 帮助管理用于作业提交的凭证、监视作业进展和控制作业的执行。GRAM 服务为协调不同的调度系统提供了一种标准的方法,专门优化在复杂环境中的作业执行管理。

GRAM 调度程序

  网格是通常是分布式的资源的集合。这些资源由一个资源管理程序或者调度程序 控制。这个调度程序优化资源的使用,以在定义的调度策略下高效地执行网格作业。有很多类型的调度程序可用,包括 LSF、PBS 和 TWS LoadLeveler。GRAM 把标准作业描述翻译成这些调度程序可以执行的命令。

集成 Globus 和 TWS LoadLeveler

  本文中,我们主要关注 Globus Toolkit V4 (GT4) 与 TWS LoadLeveler 的集成。这种集成允许用户使用 GT4 客户机在远程 TWS LoadLeveler 集群中提交、监视和控制作业。这里提供的示例使用了 TWS LoadLeveler Linux distribution V3.3.2 和 Globus Toolkit V4.0.2。TWS LoadLeveler-GT4 包中包含了支持 GT4 和 TWS LoadLeveler 的集成的工具,这个包随 TWS LoadLeveler V3.3.x 一起分发。

  注意:LoadLeveler 已经被增加到 Tivoli Workload Scheduler 产品的 Tivoli 家族中。Tivoli Workload Scheduler 用于调度分布式系统上的工作负载。它可以与 Tivoli Workload Scheduler for z/OS® 一起使用,来管理 IBM zSeries® 主机上的工作负载。LoadLeveler 已作为 Tivoli Workload Scheduler LoadLeveler 加入该套件。

  为了集成 TWS LoadLeveler 与 GT4,GT4 应该已经安装并且运行。最新的版本在 Globus.org 上。GT4 的安装和配置在 GT4 管理指南 中有详细说明,该指南也在 Globus.org 上。

  在尝试集成 GT4 与 TWS LoadLeveler 之前,必须先安装和配置 TWS LoadLeveler V3.3.x。AIX 5L 和 Linux(RHEL 或者 SuSE)支持 TWS LoadLeveler。名为 “Workload Management with LoadLeveler” 的 IBM 红皮书详细描述了 TWS LoadLeveler,包括安装和配置过程。

下面概述的过程假设已经安装并正确配置了 TWS LoadLeveler V3.3.x 和 GT4。作为 Globus Toolkit 安装和配置的一部分,环境变量 $GLOBUS_LOCATION 被定义来反映 Globus 安装目录。为了 Globus Toolkit 的正常运行必须设置这个环境变量,而且与 TWS LoadLeveler 的集成也需要这个环境变量。GT4 TWS LoadLeveler 集成组件位于 TWS LoadLeveler 发行版的 lib 目录下一个名为 llgrid.tar 的文件中。对于 Linux 系统,路径为 /opt/ibmll/LoadL/full/lib。

  准备开始,将 llgrid.tar 归档文件的内容解压到一个目录。如下所示,我们使用 /tmp。

$ cd /tmp

$ tar xvf /opt/ibmll/LoadL/full/lib/llgrid.tar
 


  解压 tar 文件的内容将在文件 globus-loadleveler.conf 所在的位置创建并填充一个 gt4 目录。这个文件为 Scheduler Event Generator(SEG)设置变量 log_path。SEG 使用 Job State Monitor(JSM)监控调度程序,并将作业状态更改报告回 Managed Job Service。因为调度程序有多种实现,所以每一个资源管理程序或者调度程序类型都有一个 SEG。LSF 和 PBS 的 SEG 随 Globus Toolkit 一起发布。TWS LoadLeveler 的 SEG 包含在 TWS LoadLeveler 发行版中,即上一步解压的 llgrid.tar 文件中。该归档文件为 AIX 和 Linux 包含 SEG 的二进制发行版。因为提供了 SEG 源代码,所以可以为其他平台编译 SEG。文件 globus-loadleveler.conf 中的变量 log_path 指出 SEG 日志文件的位置。默认位置是 /var/llglobus/globus-loadleveler.log。

  把该位置改为 $GLOBUS_LOCATION/etc/globus-loadleveler.log,如下所示。

[globus@blade31 etc]$ cat globus-loadleveler.conf

log_path=/usr/local/globus-4.0.2/etc/globus-loadleveler.log
 

  这表明日志文件在 $GLOBUS_LOCATION/var 目录下,其他的 Globus 容器日志文件也在这个目录下。文件 globus-loadleveler.log 将包含作业标识符和状态信息。清单 1 显示了文件 globus-loadleveler.log 的内容示例。

清单 1. 示例 globus-loadleveler.conf 文件
[globus@blade31 var]$ cat globus-loadleveler.log

001;1149181338;blade31.austin.ibm.com.44.0;2;0
001;1149181338;blade31.austin.ibm.com.44.0;8;0
001;1149181541;blade31.austin.ibm.com.45.0;2;0
001;1149181543;blade31.austin.ibm.com.45.0;4;0
001;1149186611;blade31.austin.ibm.com.46.0;2;0
001;1149186611;blade31.austin.ibm.com.46.0;8;0
001;1149188055;blade31.austin.ibm.com.47.0;2;0
001;1149188055;blade31.austin.ibm.com.47.0;8;0
 

  文件 globus-loadleveler.conf 是惟一一个必须为集成而更新的文件。在相同的 gt4 目录下有一个部署脚本会将集成文件复制到适当的位置。运行部署脚本并且提供启动 Globus 容器的用户名。这个用户一般是 globus,如清单 2 所示。

清单 2. 部署集成文件
[root@blade31 gt4]# ./deploy.sh globus

Installing Loadleveler scheduler files...

Installing filesystem mapping config file...

Installing SEG library for Linux...

Creating log file for Loadleveler scheduler \
at /usr/local/globus-4.0.2/var/globus-loadleveler.log...

DONE
 

  检查下列文件在 $GLOBUS_LOCATION 识别的 Globus 安装目录下,来验证部署脚本是否成功复制了必要的文件,见清单 3。

清单 3. 验证集成文件
$GLOBUS_LOCATION/lib/perl/Globus/GRAM/JobManager/loadleveler.pm

$GLOBUS_LOCATION/etc/gram-service/globus_gram_fs_map_config.xml

$GLOBUS_LOCATION/etc/gram-service-Loadleveler/jndi-config.xml

$GLOBUS_LOCATION/etc/grid-services/jobmanager-loadleveler

$GLOBUS_LOCATION/etc/globus-loadleveler.conf

$GLOBUS_LOCATION/libexec/globus-scheduler-provider-loadleveler
 

  一旦验证了部署的正确性,就要重启 Globus 容器,即用 $GLOBUS_LOCATION/sbin/globus-stop-container 或者 $GLOBUS_LOCATION/sbin/globus-stop-container-detached 停止容器,然后用 $GLOBUS_LOCATION/sbin/globus-start-container 或者 $GLOBUS_LOCATION/sbin/globus-start-container-detached 启动容器。

  祝贺!您已经完成 GT4 TWS LoadLeveler 的集成。

0
相关文章