首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
网络知识 :: 网络知识

网格基础设施影响应用程序的设计


http://www.gipsky.com/
网格计算环境提供的虚拟计算资源可以用来运行应用程序。当您考虑应用程序的设计和实现问题时,很重要的一点是理解构成这个虚拟计算环境的基础设施。如果要看某个应用程序是否适合于在网格环境中运行,您必须首先理解网格的基础结构,能够提供哪些服务,不能够提供哪些服务,以及它对于应用程序设计产生的影响。一旦您理解了这些问题,就能更好地确定您的应用程序需要使用哪些工具,以及如何使用这些工具。本文的讨论基于与 Globus Toolkit V2.2 相关的一些概念,不过文中谈到的大多数问题也适用于其他网格环境。



  网格基础设施组件



  首先,我们来看看有哪些典型的网格基础设施组件,每一种组件如何对应用程序的架构、设计和部署产生影响。下面是网格基础设施中的一些主要组件:



  安全性。安全性是网格计算中的重要问题。每一种网格资源都可能需要遵从多种不同的安全策略。单点登录认证是一种必不可少的方法。得到普遍遵守的协商授权机制也是很必要的。



  资源管理。当提交一项任务的时候,网格资源管理器需要考虑如何为该任务指派资源、如何监视其状态以及如何返回它的执行结果。



  信息服务。由于网格资源管理器在指派资源之前要经过综合全面的考虑,因此它需要知道哪些网格资源是可用的,以及这些资源的容量与当前使用的情况。这些有关网格资源的知识是通过网格信息服务(Grid Information Service,GIS)维护和提供的,又称为监视与发现服务(Monitoring and Discovery Service,MDS)。



  数据管理。数据管理主要解决任务如何传输数据以及如何访问共享存储的问题。



  下面让我们分别详细讨论一下每一种组件。



  安全性



  如果您是一名用户,要在远程系统上运行一项任务,您会关心远程系统是否安全,是否能保证其他人不能访问到您的数据。如果您是提供资源的一方,用户可以在您的系统中执行任务,那么您必须确信所有的任务都不会遭到破坏和干扰,也不能访问您系统中的其他私有数据。除了这两方面的内容之外,网格环境也面临着一般分布式计算环境中存在的其他所有安全问题。



  网格安全基础设施(Grid Security Infrastructure,GSI)是 Globus Toolkit 的基础,它提供了很多工具,可以帮助我们对网格环境中的安全问题进行管理。在您开发面向网格环境的应用程序时,您的脑子里必须时刻考虑到安全问题,并用 GSI 提供的工具来解决这些问题。网格架构中与安全性有关的功能主要负责完成认证、授权以及实现网格资源之间的安全通信。



  在应用程序中启用网格时的考虑:安全性。当我们设计一个能够使用网格的应用程序时,安全性问题必须考虑在内。下面的列表总结了需要考虑的一些问题:



  单点登录。跨系统的 ID 映射。如上所述,GSI 提供了认证、授权以及安全的通信。然而,您需要对安全性管理及其含义有深刻完整的理解。比如说:您是否可以将多个用户映射到目标系统中的同一个用户 ID 上?是否需要特定的审计机制来确定实际发起应用程序的是哪一个用户?应用程序不应该要求在使用网格上的不同资源时使用不同的用户 ID 映射机制。



  多种平台。尽管 GSI 基于开放的标准化软件,可以在多种平台上运行,然而各种不同的平台其底层的安全机制并不总是一致。比如说,在传统的 UNIX 或基于 Linux 的系统上,读、写、执行等操作的安全机制就与微软的 Windows 环境不同。您应该考虑应用程序可能运行的平台。



  使用 GSI。对于任何应用程序特有的、且可能需要进行认证或特殊授权的功能而言,应用程序的设计应该使用 GSI,这样能够简化开发,并通过维护单一的登录机制,使用户的体验也得到简化。



  数据加密。尽管 GSI 与后文将要讨论到的数据管理工具一起,提供了跨网络的安全通信与数据加密,但是您也应该考虑到,当数据到达目的地的时候会发生什么事情。比如说,如果一些敏感的数据传递到某项资源上供任务使用,随后又以非加密的格式保存到本地磁盘上,那么其他的用户或应用程序也就能访问这些数据了。



  资源管理。网格资源管理器致力于在任务提交时进行资源指派。它的角色就像是异质网格资源的抽象接口。资源管理组件提供的工具可以将任务分配给特定的资源,可以提供一种手段,在任务运行过程中获取任务状态信息,并获取任务完成的信息,还可以提供终止任务或对其进行管理的能力。在 Globus 中,远程任务提交是由 Globus Resource Allocation Manager(GRAM)负责处理的。



  在应用程序中启用网格时的考虑:资源管理。在与资源管理相关的应用程序架构、设计和部署方面,有一些问题需要考虑。GRAM 最简单的形式是用于发出 globusrun 命令,在特定系统上发起一项任务。然而,应用程序必须与 MDS 一起(通常是通过一个代理函数)保证使用了适当的目标资源。下面列出一些需要考虑的内容:



  选择适当的资源。通过与代理联合工作,来保证选择适当的目标资源。这就要求应用程序能够正确地指定所需的环境(操作系统、处理器、速度、内存,等等)。您为排除特定的依赖关系付出的努力越多,找到可用资源完成任务的机率也就越高。



  多子任务。如果应用程序中包含多个任务,您必须理解(并降低)它们之间的相互依赖关系。否则,您就不得不构建一段逻辑来处理下面这些问题:



  进程间通信



  数据共享



  并行任务提交



  访问任务的执行结果。



  如果一项任务返回的是一个简单的状态值,或是输出数据量很少,那么应用程序可以仅仅通过 stdout 和 stderr 来获取这些数据。要是必须获取相当复杂的结果,这时就可能需要将结果写入一个文件,并通过适当的工具,供目标机获取/传输这个文件。



  任务管理。GRAM 提供了查询任务状态的机制,还可以执行诸如终止任务之类的操作。应用程序可能会在必要的时候使用这些功能为用户提供反馈、清除或释放资源的操作。比如说,如果应用程序内有一项任务失败了,其他依赖于这项任务的结果的任务可能就需要终止,以免无端消耗过多资源。



  信息服务。信息服务是网格基础设施中至关重要的组件。它们维护了关于资源可用性、处理能力、当前使用情况的知识。不论在哪个网格中,CPU 和数据资源的情况都是不断变动的,这种变动与其处理任务与共享数据的能力有关。随着网格中的资源不断被释放,资源的状态可以在网格信息服务中得到更新。客户机、代理、网格资源管理器等等综合这部分信息来进行资源的指派。信息服务提供方是指那些为目录提供资源状态信息的程序。下面列出一些如何收集信息的实例:

  静态主机信息。



  操作系统名称、版本号、处理器提供商/类型/版本/速率/缓存大小、处理器数量、物理内存总量、虚存总量、设备、服务类型/协议/端口号等。



  动态主机信息。



  负载水平、队列入口等。



  存储系统信息。



  磁盘空间总量、可用磁盘容量等。 网络信息。



  网络带宽、延迟、是否可测量与可预报。



  高度动态的信息。



  空闲物理内存,空闲虚拟内存、空闲处理器数量等。



  网格信息服务,又称为监视与发现服务,在 Globus 中负责提供信息服务。MDS 使用轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)作为访问资源信息的接口。



  在应用程序中启用网格时的考虑:信息服务。对信息服务来说,需要考虑下面这些问题:



  必须完全理解特定任务的需求,这样才能对查询进行正确地格式化,以返回适当的资源。这一点非常重要。 必须保证 MDS 中保存有适当的信息。在 MDS 中,缺省情况下包含大量关于网格中所含资源的数据。不过,如果您的应用程序要求使用特定的资源或信息,而缺省情况下没有提供,您就需要编写您自己的信息提供方,并把适当的资源加入模式中。这样,您的应用程序或代理就可以进行查询,看特定的资源或请求是否已经存在。



  MDS 可以用匿名帐号访问,或是经由一台已经通过 GSI 认证的代理来访问。应用程序开发人员需要保证,能够在必要的时候通过一台经过认证的代理。您的网格环境可能具有多级别的目录结构。根据环境及其拓扑的复杂程度不同,您应该保证能够访问适当的目录,在其中搜索您所要求的资源。



  数据管理



  当您在构建网格的时候,网格中最重要的资产就是您的数据。在您的设计当中,您将必须确定您对数据的需求,以及如何在整个基础设施中移动数据,要么就是如何用一种安全有效的方式访问所需的数据。您可以通过一组标准化的网格协议与您设计的任何数据资源进行通信。您也可以选择构建一个联邦数据库,创建一个虚拟的数据存储。还有其他一些选择,如存储区域网(Srorage Area Network)、网络文件系统,以及专用的存储服务器等。



  Globus 为网格环境提供了 GridFTP 和 Global Access to Secondary Storage(GASS)两种数据传输机制。此外,它还提供了一种复制管理机制,可以帮助您管理和访问数据集的副本。在应用程序中启用网格时的考虑:数据管理。数据管理问题源自如何最大化地使用有限的存储空间、网络带宽、计算资源等。下面列出一些在应用程序设计和实现中需要考虑的数据管理问题:



  数据集的大小。对于大的数据集来说,要想将它移动到实际运行任务的系统上是不现实,甚至是不可能的。可能的解决方案是使用数据复制、或将完整数据集的一个子集拷贝到目标系统中。地理上分散的用户、数据、计算以及存储资源。如果您的目标网格在地理上是分散的,网络连接的速度也有限,那么您在设计的时候就必须考虑到如何进行慢速和受限的数据访问。



  在广域网上进行数据传输。当您要在 Internet 或者其他的 WAN 上移动数据时,必须考虑安全性、可靠性以及性能等问题。您必须构建一些必要的逻辑来处理数据访问速度慢,甚至被阻断的情况。数据传输的调度。下面两种情况至少要考虑一种:第一个是数据传输的调度,这样当需要某项数据的时候数据就在它适当的位置上了。比如说,如果数据传输需要进行一个小时,而使用这项数据的任务必须在凌晨两点钟开始运行,那么您就应该提前对数据传输进行调度,这样,当需要它的任务运行的时候,数据就是可用的了。第二个是了解进出任何一项资源的任何并发文件传输的数量与规模。



  选择数据副本。如果您使用 Globus Data Replication 服务,也许想向应用程序中增加一段选择适当副本的逻辑,也就是说,您想要选择一个包含所需数据的副本,同时还要满足您对性能的要求。本新闻共2页,当前在第1页 1 2
<< ATM MPEG2=高效的多媒体 2005年网格应用不再概念炒作 >>
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号