返回列表 发帖

网格计算:关键组件是什么?

利用网格计算来实现应用程序
级别:入门
网格计算逐渐受到 IT 业界的大量关注。虽然学术和科研社区使用网格计算已有一段时间,但是允许企业使用网格计算并从中获益的标准、支持技术、工具箱和产品正逐步开始使用。和许多新兴技术一样,您会发现,关于网格计算,每个人都有自己的定义。但是,创建和管理网格环境最常用的工具箱之一是 Globus Toolkit。在本文中,我们将向您概述组成网格环境的关键组件,并且将在 Globus Toolkit 环境中提出我们的大多数信息和概念。
网格计算的高级概述
对网格计算最常见的描述将其比喻成电力网格。当您给电器或其它用电设备接入电源时,您希望可以使用正确电压的电力,但并不知道该电力的实际来源。当地的公用事业公司提供了接入由发电机和电源组成的复杂网络的接口,并且(在大多数情况下)为满足您的能源需求提供了满意的服务质量。不需要每家每户或邻近地区使用和维护他们自己的发电机,电力网格基础设施提供了虚拟的发电机。该发电机高度可靠,并根据客户的要求来适应客户的电力需求。
网格计算的前景与此类似。一旦合适类型的基础结构就位,用户就可以访问可靠并且适应用户需求的虚拟计算机。这个虚拟计算机将由各种计算资源组成。但是这些单个的资源对于用户将是不可见的,就象用电户不知道他们的电是怎样产生的一样。要实现这种前景,就必须有网格计算标准,它支持构建安全而又健壮的基础结构。诸如开放网格服务体系结构(Open Grid Services Architecture,OGSA)之类的标准和诸如 Globus Toolkit 提供的那些工具,提供了必要的框架。最初,企业构建了自己的基础结构(我们可以称之为内部网格),但是随着时间的推移,逐渐将这些网格互连起来。诸如 OGSA 之类的标准将使这种互连成为可能,而被比喻成电力网格的网格计算将成为现实。
网格的类型
可以用各种方式使用网格计算来满足各类应用程序需求。通常,网格是根据它们处理得最好的解决方案的类型来分类的。以下总结了三种主要的网格类型。当然,这些网格类型之间并没有严格的界限,并且网格常常有可能是其中两种或多种类型的组合体。但是,当考虑开发可能要在网格环境中运行的应用程序时,请记住您将要使用的网格环境的类型将影响您的许多决策。
计算网格
计算网格着重于专门留出用于计算能力的资源。在这类网格中,大多数机器都是高性能的服务器。
拾遗网格(Scavenging grid)
拾遗网格最常用于大量桌面系统。机器上可用的 CPU 周期和其它资源被收集起来。通常授予桌面系统主人控制其资源何时可以加入网格的权利。
数据网格
数据网格负责容纳和提供对跨多个组织的数据的访问。用户只要有权访问数据,就不必关心数据位于哪里。例如,可能有两所大学都正在从事生命科学研究,各自拥有独一无二的数据。数据网格允许这两所大学共享其数据、管理数据并管理诸如谁有权访问什么数据之类的安全性问题。
另一种常与网格计算相关联或混淆的常见的分布式计算模型是对等计算。实际上,有人认为对等计算是另一种形式的网格计算。有关网格计算和对等计算的更详细的分析和比较,请参阅由 Ian Foster 和 Adriana Iamnitchi 所著的文章 On Death,Taxes,and the Convergence of Peer-to-Peer and Grid Computing。(请参阅参考资料。)
Globus 项目
Globus 项目(请参阅参考资料)是来自世界各地关注网格计算概念的部分研究人员和开发人员共同努力的成果。它是围绕四种主要活动来组织的:
研究
软件工具
试验台
应用程序
Globus Toolkit V2.2
Globus Toolkit V2.2 提供了:
网格计算所需的一组基本工具:
安全性:单点登录、认证、授权和安全的数据传输
资源管理:远程作业提交和管理
数据管理:安全而健壮的数据移动
信息服务:可用资源及其状态的目录服务
上述工具的应用程序编程接口(API)
构建和编译程序所需的 C 绑定文件(头文件)
这些元素被认为是该工具箱的核心。此外,也可以使用补充这些工具或在这些工具之上构建的其它组件。例如,Globus 提供了称为 CoG(Commodity Grid)的快速开发包,它支持诸如 Java、Python、Web 服务、CORBA 等技术。今天,Globus 所提供的工具可以用来构建网格和支持网格的应用程序。现已构建了许多此类的环境。但是,在构建此类适合于商业环境中使用的基础结构时,还有其它一些考虑事项是 Globus Toolkit V2.2 尚未完全解决的。例如,您可能需要诸如生命周期管理、记账和拒付(charge back)系统之类的服务。当前构建网格环境时的另一个注意事项是与未来出现的其它网格进行互连的能力。要使可能采用不同技术的不同组织开发的网格之间能够互连,需要实现和采用一些标准。
OGSA 和 Globus Toolkit V3
开放网格服务体系结构(OGSA)是一个得到了大量业界支持且不断发展的标准。Globus Toolkit V3(现在可以使用 beta 测试版)是用于 OGSA 的参考实现。OGSA 解决了我们在前一节中讨论的两个问题。首先,它更改了编程模型,使编程模型逐渐支持用作 Web 服务的各种工具的概念。这将会提供多种好处,包括:
一组使用诸如 SOAP 和 XML 之类的标准来访问各种网格服务的公用的且基于开放标准的方法。
以无缝方式添加或集成诸如生命周期管理之类的附加服务的能力
在新的网格服务变为可用时,查找、标识和利用它们的标准方法
除了上述这些好处之外,OGSA 将为可能用不同底层工具箱构建的网格之间提供互操作性。正如先前提到的,Globus Toolkit V3 将成为 OGSA 的参考实现。尽管编程模型会发生变动,但大多数可用于 Globus Toolkit V2.2 的实际 API 将保持原样。因此,目前为实现网格环境和支持应用程序而做的工作将仍是不可缺少的。
OGSA 和 OGSI
OGSA 为网格环境中要提供的总体结构和服务定义了标准。同时还有开放网格服务接口(Open Grid Services Interface,OGSI)规范,它是定义在网格环境中各种服务之间使用的接口和协议的标准。OGSI 是一种将在使用 OGSA 设计的网格之间提供互操作性的标准。
网格组件:高级透视图
在本节中,我们从较高层次来描述网格环境的主要组件。根据网格的设计及其预期用途,其中某些组件是可有可无的,在某些情况下有可能合并一些组件以形成混合组件。但是,按照我们在此处对组件角色的描述来理解它们将有助于您理解在开发支持网格的应用程序时的考虑事项。
门户网站/用户界面
正如消费者将电力网格看作墙上的插座一样,网格用户不应该看到计算网格的任何复杂性。尽管用户接口可以有许多形式并可以是特定于应用程序的,但出于讨论的目的,让我们把它看作一个门户网站。现今大多数用户都理解 Web 门户网站的概念,其中用户的浏览器提供了用来访问大量信息源的单一界面。网格门户网站为用户提供了启动应用程序的接口,该应用程序将使用网格所提供的资源和服务。通过这个透视图,用户将网格看作虚拟的计算资源,就象用电户将插座看作虚拟发电机的接口一样。
图 1. 可能的网格用户视图


Globus Toolkit 目前不提供任何生成门户网站的服务或工具,但可以使用诸如 WebSphere Portal 和 WebSphere Application Server 之类的工具完成这一任务。
安全性
网格计算的主要需求之一是安全性。在任何网格环境的基础部分,都必须有提供安全性的机制,安全性包括认证、授权以及数据加密等。Globus Toolkit 的网格安全性基础结构(Grid Security Infrastructure,GSI)组件提供了健壮的安全性机制。GSI 包括 OpenSSL 实现。它还提供了单点登录机制,这样,一旦认证了用户,就创建代理证书,并在网格内执行操作时使用该证书。在设计网格环境时,可以使用 GSI 登录来授予对门户网站的访问权,也可以有自己的门户网站的安全性。然后,该门户网站将负责使用该用户的凭证或使用该门户网站所有已被授权用户的一组通用凭证登录到网格。
图 2. 网格环境中的安全性

代理程序
一旦被认证了,用户就会启动一个应用程序。根据该应用程序(以及该用户可能提供的其它参数),下一步是确认网格中可用的和适合使用的资源。可通过代理功能来完成该任务。虽然 Globus 未提供代理程序的实现,但有一个基于 LDAP 的信息服务。这个服务称为网格信息服务(Grid Information Service,GIS),或通常称为监控和发现服务(Monitoring and Discovery Service,MDS)。这个服务提供了关于网格中可用资源及其状态的信息。可以利用 MDS 开发代理程序服务。
图 3. 代理程序服务


调度程序
一旦确认了资源,从逻辑上讲,下一步就是调度在这些资源上运行的单个作业。如果要彼此互不相干地执行一组独立作业,那么可能并不需要专门的调度程序。但是,如果希望保留某个特定的资源或确保应用程序中的各个作业并发地运行(例如,如果它们需要进程间通信),那么就应该使用作业调度程序来协调这些作业的执行。Globus Toolkit 没有包含这样的调度程序,但是有几个在 Globus 网格环境下已经过测试并能够使用的调度程序。还要注意到,网格环境内可能有不同级别的调度程序。例如,群集可以表示为单个资源。而群集可能有自己的调度程序来帮助管理它所包含的节点。较高级别的调度程序(有时称为元调度程序)可能被用来调度要在群集上完成的工作,而群集的调度程序将处理群集的单个节点上实际的调度工作。
图 4. 调度程序

数据管理
如果任何数据(包括应用程序模块)都必须移到应用程序作业执行所在的节点上,或者必须使这些节点可以访问这些数据,那么就需要有安全而又可靠的方法来将文件和数据移到网格中的各个节点上。Globus Toolkit 包含了提供此类服务的数据管理组件。这个组件称为对辅助存储器的网格访问(Grid Access to Secondary Storage,GASS),它包含了诸如 GridFTP 之类的工具。GridFTP 构建在标准 FTP 协议之上,但是它添加了其它功能并利用 GSI 进行用户认证和授权。因此,一旦用户拥有了经过认证的代理证书,他就可以使用 GridFTP 工具来移动文件,而不必在所涉及的每个节点上都要执行一遍登录过程。这个工具提供了第三方文件传送,这样一个节点就可以启动另两个节点间的文件传送。
图 5. 数据管理


作业和资源管理
在我们刚才适当地讨论过其它所有工具之后,现在,我们要研究网格环境中帮助执行实际工作的一组核心服务。网格资源分配管理器(Grid Resource Allocation Manager,GRAM)提供了实际启动某个特定资源上的作业、检查其状态并在其完成后检索其结果的服务。
图 6. GRAM

其它工具
您的网格环境中可能需要包括其它工具,当您设计和实现应用程序时要考虑这些工具。例如,进程间通信和记帐/拒付服务是两个经常需要用到的通用工具。
网格环境中的作业流
在前面几节中,我们提供了网格环境的一些主要组件的简明高级视图。当您开始考虑使应用程序适用于网格环境时,记住这些组件以及它们彼此之间是如何联系和交互的,这一点很重要。根据您的网格实现和应用程序需求,可以用许多方法将这些组件组合起来以创建一种解决方案。
结束语
随着诸如 OGSA 和 OGSI 之类的关键技术和开放标准的出现和成熟,网格计算正在成为企业中可行的选择。在本文中,我们提供了组成网格环境的关键工具的高级概述。

返回列表 回复 发帖