580 likes | 800 Views
第 12 章 网格操作系统的雏形 —— GLOBUS. 本章知识点: 12.1 网格简介 12.2 Globus 初探. 网格( Grid )技术以计算资源的广域分布、网络技术的不断发展为基础,迎合了不断增长的对资源共享的需求。 网格通过网络的连接,形成一个集成的资源环境,利用网格提供的计算能力来求解问题,就是所谓的网格计算( Grid Computing )。 网格计算也可以理解为分布式计算( Distributed Computing )的一种延伸。. 12.1 网格简介.
E N D
第12章 网格操作系统的雏形——GLOBUS 本章知识点: • 12.1 网格简介 • 12.2 Globus初探
网格(Grid)技术以计算资源的广域分布、网络技术的不断发展为基础,迎合了不断增长的对资源共享的需求。网格(Grid)技术以计算资源的广域分布、网络技术的不断发展为基础,迎合了不断增长的对资源共享的需求。 • 网格通过网络的连接,形成一个集成的资源环境,利用网格提供的计算能力来求解问题,就是所谓的网格计算(Grid Computing)。 • 网格计算也可以理解为分布式计算(Distributed Computing)的一种延伸。
12.1 网格简介 • 网格技术是近年来兴起的一种重要信息技术,它的目标是在网络环境上实现各种资源的共享和大范围协同工作,消除信息孤岛和资源孤岛,利用聚沙成塔而成的计算能力廉价的解决各种问题。 • 网格发展的最终目的,就是要向电力网供给电力、自来水管网供给自来水一样,给任何需要的用户提供充足的计算资源和其他资源。“一插就亮,一开就流,然后,一算就有,即用即算,而且随算随用”。 • 这种模式下,用户没有本机的概念,运算能力和效率不由本机的芯片、存储、软件决定。用户使用它,不用考虑其后隐藏的任何细节,只需要提出运算要求,然后获得结果,虽然这个结果很可能是在地球的另一端得出的。
12.1.1 网格的特点 网格被称为新一代的Internet,作为一种新兴的基础设施,它具有以下特点: 1. 分布性 • 这一点是网格最主要的特点,除了早期在实验室中为了研究目的构成的网格,投入商业应用的网格必定是建立在资源广域分布的基础之上。而网格资源在物理上的分布,又决定了网格计算必然是一种分布式计算,而不可能是集中式的。 • 有必要强调的是,网格资源的离散分布不应该影响对资源的共享,这是建立的网格的基本目标。分布是资源的物理特征,而共享则可以由网格软件的逻辑构造来保证。
12.1.1 网格的特点 2. 动态性与多样性 • 网格里的资源不是一成不变的,他们可能因损坏、迁移、故障等原因而不可用,同时也可能不断有新的资源加入进来。动态性意味着资源的增加或减少。 • 网格包含的资源多种多样,而且是异构的。因此,解决好不同结构不同类别的计算机系统之间的通信和共享问题是网格软件包的一个重要任务。
12.1.1 网格的特点 3. 自相似特性 • 所谓自相似性,指的是局部的很多地方可以发现全局的影子,而全局的特征在局部也有体现。 • 我们可以把一个大的网格看成是许多小的子网格叠加的结果,大的网格比子网格拥有更多的资源,需要更强有力的管理。当然,这种叠加不是简单的1+1=2,大的系统往往要比小系统面对更多的实际问题和困难。
12.1.1 网格的特点 4. 管理的多重性 网格的目的是发挥闲散资源的能力,因此资源的控制与管理权是双重的,既应该承认资源拥有者对资源的所有权,也要强调在资源空闲而被网格利用时,网格对资源的管理权。
12.1.2 网格的体系结构 要实现一个网格,我们必须了解它的基本组成部分,每一部分的作用,这些部件之间存在的关系等。而所谓的网格体系结构,就是包含了上述信息,并且描述了怎样建造网格及支持网格有效运转的技术。
12.1.2 网格的体系结构 1.几个重要的概念 在开始介绍网格体系结构的有关模型之前,有必要先理解下面一些概念: • ① 协议:在分布式系统的各个组成部分确定一种通用的交互方式。实际上就是定义了一种“相互交流的规范--协议”。而所谓的标准协议,就是将协议按统一规则标准化的结果。 • ② 服务:我们将协议实现的功能称之为服务。由标准协议定义的标准服务增强了提供服务的能力,抽象掉了与资源相关的细节。 • ③ API/SDK:应用程序接口(Application Programming Interface)和软件开发包(Software Development Kits),可以使开发人员跳过对于互操作、协议、服务这些低级的开发,而直接针对高级应用进行工作 • ④ 共享:网格中的共享,更侧重于对于包括硬件软件在内的各种资源的直接访问。 • ⑤ 虚拟组织:基于某些共享规则,由一些个人或团体形成的集合体。
12.1.2 网格的体系结构 2.五层沙漏结构 五层沙漏结构是一个以协议为中心同时强调服务和API/SDK重要性的结构,但它并不侧重于协议的具体定义,而是着重于协议的描述,因此它非常容易理解。
12.1.2 网格的体系结构 五层结构示意及与TCP/IP协议对比 :
12.1.2 网格的体系结构 • 五层结构之所以被称为漏斗,是因为每个层次所包含的协议数量是不相等的。 • 有一部分协议称为核心协议,这类协议需要在所以支持网格技术的地点都被支持。上层协议向核心协议的映射以及核心协议向下层协议的映射都应该可以实现。 • 核心协议部分形成了沙漏的瓶颈部分
12.1.2 网格的体系结构 3.OGSA体系结构 • 开放网格服务结构OGSA(Open Grid Services Architecture)是一种以服务为核心的结构,这与五层沙漏模型以协议为中心的结构形成鲜明对照。 • 五层沙漏模型中强调的是资源的共享,而OGSA则强调服务的共享,这里的服务概念是广义的,不仅指由资源提供的服务,也包括资源本身。 • 为了使OSGA中的服务的含义更清晰和明确,出现了网格服务(Grid Service)的概念:网格服务是Web Service的一种,提供了由良好定义的接口构成的集合,以及遵循特殊的、为支持网格而制订的规范。
12.1.2 网格的体系结构 • OSGA将一切都视为服务,因此网格在这里也可以看成可扩展的网格服务构成的集合。 • 五层模型的构造过程更多的是基于协议本身的需要,即更注重实体对象本身;而OGSA强调的则是与协议对应的服务,即更注重实体对象所表现出来的行为特征。 • OGSA以下三个方面的特点值得我们注意: • ① 面向服务的体系结构(Service-oriented Architecture)。 • ② 与Web Service技术的联系。 • ③ 和商业应用需要的紧密联系。
12.1.2 网格的体系结构 • 在OGSA体系中存在两种服务,临时性服务(TransientServices)和持久服务(PersistentServices),但是临时服务占了绝大多数。针对这一特点,OSGA具备了相应的基本结构: • A) 使用标准WSDL规范及其扩展来描述和对服务结构化。在Web Service中,WSDL用来描述服务、实现接口以及完成访问的方法。为了适应网格服务中临时服务居多的特点,OGSA对WSDL进行了必要的扩展。
12.1.2 网格的体系结构 网格服务的结构:
12.1.2 网格的体系结构 • B) 为了进一步提高效率,增强为虚拟组织用户服务的能力,OGSA针对核心服务定义了一些标准接口和行为: • 命名和绑定:每一个服务实例都有唯一的名字——网格服务句柄GSH(Grid Service Handle),以方便发现其支持的绑定。 • Factory接口:这个接口定义了CreateService操作,通过这个操作可以创建一个新的GS(Grid Service)实例,并且返回一个GSH。 • GridService接口:这是唯一一个在OGSA所有服务中都必须包含的接口。通过这一接口,我们实现了对于临时服务的生命周期管理。
12.1.2 网格的体系结构 • Registry接口:用来发现服务实例的集合,主要作用是注册一个GSH。 • Service Data:它是服务数据元素的集合,包括基本的内部信息、接口的特殊信息和应用的数据,其实质是一个XML片段,封装在标准容器中,可以通过FindServiceData操作来查询这些信息。 • Notification接口:负责对服务的存在(如创建一个新的服务实例)和数据的变化进行通知。
12.1.3 网格技术 网格技术大致可以分为以下几类: • 应用技术:包括分布式超级计算、数据密集型计算等等。 • 编程技术:在合适编程工具和编程环境的支持下,实现在网格上进行程序设计。 • 核心管理技术:连接网格底层和高层的纽带,协调整个网格运转的中枢。 • 底层支撑技术:网格最底层所需的支撑技术,是构建网格的基础。包括计算节点的构建技术、网络协议等。
12.1.3 网格技术 1. 任务分配与调度技术 • 网格上有大量共享资源的应用,任务分配与调度技术的主要目的就是使得这些运行的应用获得最高的性能。 • 首先,要在空间上对数据和资源进行分配,将它们分配给需要的任务。 • 然后,在时间上进行定序,这里既包括对于同一资源上的不同任务的排序,也包括不同任务间通信的排序。
12.1.3 网格技术 2. 资源管理技术 • 与高性能计算侧重响应时间长短不同,存在一种侧重整个系统效率的计算——高吞吐率计算(High Throughput Computing)。高吞吐率计算关注的是在一段时间内,系统完成的任务或者资源能够提供的服务的多少。这种高吞吐率计算特别适合于网格计算环境。 • 而要发挥高吞吐率计算的长处,就必须重视资源管理技术。
12.1.3 网格技术 3. 性能数据搜集、分析与交互 • 在调度与分配技术中,要获得网格的动态信息,就必须借助于性能数据搜集技术。我们除了要能从操作系统、处理机、应用程序等一般性目标中获取数据外,还要求能从网格的各个层次各个节点获取全面的数据。 • 获得数据后,进一步的工作就是要分析。分析包括定量分析、自动性能诊断和扰动分析等。我们进行分析的主要目的在于建立性能数据与初始源代码之间的联系。 • 分析得到的结果,不能仅仅让机器明白是什么意思,必须进行可视化的转化。 • 性能数据的搜集、分析与交互这三个环节密切相关。
12.2 GLOBUS初探 • 在所有与网格计算相关的项目中,Globus是目前最有影响力的项目之一。该项目的主要研究目标有两个: • 其一是网格技术的研究; • 其二是相应软件的开发和标准的制定。
12.2.1 Globus工具包 GlobusToolkit主要实现了以下的内容: 1. 网格资源管理 • 在网格环境中,需要不同于局域网的、更高层次的资源管理技术。 • Globus资源分配管理GRAM(GLOBUS Resource Allocation Manager)是网格环境中的任务执行中心,它负责远程应用的资源需求处理、远程任务的分配与调度以及远程任务的管理,并根据资源的实时情况报告把资源的更新信息发送给元计算目录服务MDS。 • 资源描述语言RSL(Resource Specification Language )的主要作用是传递应用程序对资源的请求,把这些请求交给GRAM进行分析和处理
12.2.1 Globus工具包 GRAM中有两个最重要的组成部分: • ① Gatekeeper:位于远程计算机上的一个进程,主要负责处理任务分配请求。它具有单一的入口地点,在收到客户(client)的任务分配请求以后,它将和客户互相进行安全认证,若客户通过认证,则将被Gatekeeper映射到本地安全环境,同时,启动一个具有本地权限的任务管理者JobManager,并把RSL中包含的任务分配参数传递给JM。
12.2.1 Globus工具包 • ② JobManager:任务管理者,由Gatekeeper创建。主要负责在本地系统中启动和管理任务,以及与其他用户间通信。任务管理者主要有两个部分组成: • 机器相关组件,负责实现诸如本地系统调用,向MDS传递信息等一些本地环境中的内部API; • 通用组件,主要负责把Gatekeeper发出的信息转变为机器相关组件可执行的内部API,并把机器相关组件发出的信息转化为应用管理者可以理解的信息格式并传送给管理者。
12.2.1 Globus工具包 资源管理示意图:
12.2.1 Globus工具包 除了以上两个最重要的部分,GRAM的组成部分还包括: • resource:这里指可代表用户运行一个或多个进程的主体; • client:调用客户端资源分配API的进程; • job:根据一个任务请求而产生的进程; • job request:发给Gatekeeper的请求,用于创建一个或多个任务进程; • resource monitor:用于监视本地调度系统和资源系统; • application manager:通过多个资源管理者实现对一个在不同资源上运行的应用的集中式管理。
12.2.1 Globus工具包 2. 网格信息管理 • 在广域网条件下,如何在网格中发布资源信息,以及对资源信息如何查询和定位,是有效使用各种资源的前提条件。 • 好的信息管理,应该能够提供对系统组件动态或静态信息的访问,能够对动态信息进行有效管理,这也是动态和异构环境下进行适应性配置的基础。 • Globus中的信息管理由元计算目录服务MDS来完成。
12.2.1 Globus工具包 MDS(Metacomputing Directory Services)是一种基于网格计算环境的信息服务框架,主要通过轻量目录管理协议LDAP(Lightweight Directory Access Protocol)对信息进行访问和存储,在由LDAP服务器组合构成的分布目录中访问信息 MDS简要逻辑结构:
12.2.1 Globus工具包 MDS服务器包括以下的两类,它们都是使用LDAP作为查询协议: • ① 网格资源信息服务GRIS(Grid Resource Information Service)。这是一个由MDS提供的可配置的信息服务者组件。它是一个分布的信息服务,支持多个信息提供器,通过将它配置在网格的各个角落,提供某一特定资源的信息。 • ② 网格目录信息服务GIIS(Grid Index Information Service)。这是一个由MDS提供的可配置的集合目录组件,它提供从多个GRIS服务器搜集得到的信息集合。GIIS还可以将多个GRIS服务器中来自同一虚拟组织的信息映像成一个连贯的网格资源系统。它也具备发现并找到某一特定资源的能力。
12.2.1 Globus工具包 • MDS作为网格中的信息服务中心,处理的信息主要包括网格环境中的各种资源、服务以及其他主体的描述。它的任务,是完成对这些信息的发现、描述、监视等工作,根本目的就是要提供对于网格环境的真实、动态的反映。 • 截至目前,MDS存在的不足有: • 应该提供更丰富、更全面的GRIS及信息提供器; • 基于LDAP目录的方法不能有效支持数据目标数目的增长,尤其是数据对象之间的复杂关系的描述,同时不能有效支持数据修改和复杂查询(在关系数据库中); • Schema也需要进一步完善。
12.2.1 Globus工具包 3. 网格安全 • 网格是基于Internet环境建立的,其安全保障实质是以下两个方面的内容: • 对资源的访问控制; • 通信安全保护。 • 同时,网格环境具有它自身的特点: • 网格中的用户和资源数量惊人而且是动态可变的; • 计算过程及其包含的进程都能动态的创建和执行; • 网格的资源可支持不同认证,用户可属于不同组织,同一个用户在不同资源中可有不同标识。
12.2.1 Globus工具包 • 站在不同角度,对网格安全的要求有不同侧重点,如下表所示:
12.2.1 Globus工具包 • 网格环境的安全主要由网格安全基础设施GSI(GLOBUS Security Infrastructure)来保障。 • GSI建立在公钥加密技术的基础上,采用X.509证书和SSL(Secure Sockets Layer)通信协议,通过对它们的扩展实现了单一系统登陆和委托(Delegation)功能,并支持用于安全系统的标准API:GSS-API(Generic Security Service API)。 • GSI的主要应用有: • 交换证书,授权与代理; • 检查网格映像文件; • 执行诸如JobManager的服务程序; • 检查服务。
12.2.1 Globus工具包 为了实现以上的功能,GSI采用了以下技术手段: • ① 保密通信。 • ② 私钥保护。 • ③ 安全认证。GSI的安全证书基于X.509规定的证书格式,包括了以下四个方面的信息: • 主体名称:用来明确标识用户或资源的身份; • 属于该主体的公钥:用来通过基于X.509的认证; • 签署证书的认证中心的标识; • 签署证书的认证中心的数字签名:用于对认证中心合法性的确认。
12.2.1 Globus工具包 • ④ 安全身份鉴别。 在双方都有安全证书,且对双方的认证中心都信任的情况下,双方就可以完成彼此的身份鉴别工作。
12.2.1 Globus工具包 • ⑤ 安全委托。 每个代理都将获得一个由用户(注意:不是认证中心)签署的证书,证书内容包括: • 新的公钥和私钥; • 用户的标识; • 代理的标识; • 标识代理有效期的时间标记。
12.2.1 Globus工具包 4. 网格数据管理 网格环境中的数据管理,涉及的主要功能包括: • 远程数据的高速、可靠访问,以及传输; • 管理数据的复制,自动发现“最好”的数据拷贝; • 对计算、网络和存贮的协同调度; • 加强对数据的访问控制。
12.2.1 Globus工具包 为了实现上述的功能,GT主要包括了以下这些组件: • ① Grid FTP。 Globus提出的这个机制以FTP协议为基础,进行了必要的扩展,能够以一个统一的界面提供对多种存储系统的高速、安全访问。 • ② 网格二级存储服务GASS(Globus Access to Secondary Storage)。这是一个支持网格远程文件I/O的中间件,与GRAM配合使用,用来实现文件和执行代码的I/O重定向。GASS下列网格环境中常用I/O模式提供了支持: • 只读访问:最简单的访问模式; • 共享写:多个用户写一个文件; • 只添加; • 无限制读写:只允许一个用户对文件进行操作。
12.2.1 Globus工具包 • ③ Globus复制管理GRM(Globus Replica Management) 它集成了Replica Catalog(跟踪复制的文件)和Grid FTP(数据移动),可以与信息服务相结合实现有选择的复制。 Replica Catalog是复制管理的核心部分,用来维护文件和文件集合的逻辑名字与对应的一个和多个物理存储地址的映射,由此,RC也支持将部分相关数据智能的放置在离应用程序最近的位置,以方便程序的快速存取。
12.2.1 Globus工具包 5. 其他方面的内容 还有一些服务也是GT中所包含的(有的在新版本中已废弃),这里我们不做详细介绍: • 通信管理NEXUS:用于提供单点和多点的通信服务; • 健康和状态管理HBM(Heart Beat Monitor):监控系统构件的健壮情况和状态; • 执行管理GEM (GLOBUS executable management):构建、缓存及定位执行。
12.2.2 Globus与五层沙漏模型 • 本节中,我们将对GT中个部分的功能与五层结构模型各层次的对应情况做一个介绍,以加深对GT和沙漏模型的理解。注意:这里主要指的是GT2.x版本,GT3.0则是基于OGSA模型的。
12.2.2 Globus与五层沙漏模型 1. 构造层 • Globus中的资源管理组件位于这一层,Globus使用构造层中已有的组件,包括资源提供方支持的协议和界面,若提供方不提供必要的构造层行为,Globus将提供缺省的功能。 • 需要提及的是,GARA通过 “插槽管理”可以为本不具备预约功能的资源提供预约功能。
12.2.2 Globus与五层沙漏模型 2. 连接层 • Globus中的安全基础设施位于这一层,基于公钥机制和X.509证书格式的GSI协议可以实现认证与授权机制,通信的保护与保密,支持不同安全方案的集成,采用基于用户的信任机制。 • Globus可以通过授权工具包控制授权行为,运行资源拥有者通过GAA(Generic Authorization and Access)提供的界面来将网格某个局部包含的所有安全策略集成。
12.2.2 Globus与五层沙漏模型 3. 资源层 • 在Globus中已被采用的协议有: • GRIP (Grid Resource Information Protocol)和GRRP(Grid Resource Registration Protocol); • 基于http的GRAM协议:用于分配计算资源并且监视和控制这些资源上的行为; • Grid FTP数据访问管理协议:实现远程数据传输的管理; • LDAP协议:用于文件目录的访问。 • 在客户端,Globus提供了这些协议的C和JAVA语言的API/SDK接口;而在服务器端,Globus也提供了这些协议的SDK接口和实现(如GRIS和GSS)。
12.2.2 Globus与五层沙漏模型 4.汇聚层 • Globus中的信息管理组件位于这一层,负责将资源的逻辑特征统一管理,协调解决各个资源间的问题和冲突。 • 元目录服务MDS中的GIIS支持任意资源以子集形式操作,从而实现对资源的灵活配置和管理。 • 网格复制管理GRM提供的目录复制和复制管理可以实现网格环境中的数据复制。 • Globus也提供一种称为“信任仓库”的机制,用来对可信任的代理进行安全存储。 • DUROC的协同分配库为资源的动态协同分配提供了必要的API/SDK接口。
12.2.2 Globus与五层沙漏模型 • Globus提供的是支持应用与开发的软件包,因而它在应用层没有对应功能。 • 实际上,Globus与五层模型的对应关系并不绝对,比如: • 主要再连接层中发挥作用的安全基础设施GSI在应用层中同样发挥着重要的作用; • 主要在资源层中运转的GRAM也可对构造层中某些资源的管理提供必要的支持。
12.2.3 Globus与OGSA模型 GlobusToolkit的早期版本主要是围绕协议来设计的,但是人们在实践中发现,有些服务很难把它清晰的分解为几个协议来完成,因此人们提出了面向服务的概念,并进一步提出了开放式网格服务体系OGSA,GlobusToolkit3.0正是融合了OGSA和Web Service两项技术而产生的,它于2003年7月1日正式发布。
12.2.3 Globus与OGSA模型 GT3结构简图: