级别: 中级 Matt Haynos (mph@us.ibm.com), 程序主管, Grid Strategy and Technology, IBM
2005 年 10 月 17 日 从技术的角度来观察网格是由哪些部分组成的,这通常会将网格的一些概念引入我们的视角中。在本文中,作者比较全面地介绍了网格计算幕后的一些技术,目的是为了从技术视角澄清网格的概念。
很多供应商、分析师和其他成员已经进行了大量的努力来试图理解或定义到底网格计算是什么 —— 现在名字中有“网格”这个字眼的产品已经比比皆是了。对于那些已经在利用自己的 ROI 或竞争优势的组织来说,我敢打赌他们并不是太关心网格的确切定义是什么。
然而,对于那些刚刚接触网格或疑惑网格究竟是否适用于自己的人来说,对于这个问题有一个一致的理解是非常重要的。幸运的是,当我们从多个角度(而不仅仅是技术角度)来观察网格时,就可以更容易地定义网格了。在目前这种位和字节统治世界的技术问题中这通常都是正确的,但是它对于在上下文中理解网格周边的内容并将其加入某些观点中非常有用。
理解网格的关键
我们很容易对网格产生误解是由于一个非常简单的原因:网格要利用很多技术才能构成一个解决方案。这需要在构成网格计算的 多个 功能域之间进行交互 —— 这也是为什么很难理解网格供应商会在市场上发布各种消息,以及为什么网格通常会与其他一些活动产生混淆,例如效用计算。
关键是要从一个大的层面来考虑这个问题。您并不需要从一开始就在网格解决方案中安装或构建所有的组件。一个组织可以从小型的网格入手,不断获得经验,实现其价值,然后通过成功插入一些技术来提高网格技术设施的功能。
由于这个原因,标准就在网格的持续扩展中扮演了一个至关重要的角色。它们可以规范不同组件之间的交互操作,让供应商集中精力在自己的实现中提供更高的价值。如果没有网格解决方案框架中的标准,用户就不可能利用一种模块化和协调的方法来为自己的网格环境持续增加能力。网格和 Web 服务标准仍然在继续成熟,组织必须了解标准的发展状态以及他们的供应商采取的策略。
现在看起来这一切都很容易实现,但是对于这个重要的主题来说却不过是夸夸其谈。您可以向供应商了解一下情况。在目前的实现和不断发展的标准之间需要达成一种平衡。如果不这样,就可能会降低灵活性,并丧失集成最佳功能的机会。
在本系列的上一篇文章“网格观点: 在网格基础设施中有效地采用自动化”中,我们介绍了网格和自动技术之间天生的共生关系,例如 provisioning 和 orchestration。在本文中,我会对这个问题进一步放大,从而更加全面地介绍网格计算幕后的一些技术,目的是为了从技术视角澄清网格的概念。
更加全面地了解网格计算
动态配置以及它与作业调度之间的关系,对于从供需的角度来理解网格是一个非常重要的概念。这个概念是说明网格相关内容的一个适当的高级视图:对应用程序提供的资源与用户请求进行匹配和优化。请求可以是任务请求(例如 运行这个作业),也可以是信息请求(我需要这些信息)。这些请求可以来自于用户,也可以通过应用程序编程实现。
这种对任务、信息和资源的匹配和优化在动态计算系统中并不是一件可以简单实现的事情。业界不断开发更为复杂的算法和技术来实现这种功能。幸运的是,从多年的研究成果和运筹学中的经验(考虑一条生产线的优化)中,我们已经找到了很好的方法。
但是网格却不仅局限于此。从供需模型中继承的东西是对资源进行有效 虚拟化 或抽象的能力,对网格计算中的基本概念进行虚拟化。这样可以理解网格到底是什么。图 1 显示了网格计算的组件。
图 1. 网格计算的组件
资源可以是物理的,也可以是逻辑的。系统和存储虚拟化可以利用物理的(计算机和存储)资源,并将其映射为一些逻辑项。
虚拟化可以有一对多的映射或多对一的映射。这是双向的。例如,系统虚拟化产品,例如 XenWorks 或 VMware 分区,都可以将一台 单独的 机器划分成 多台 机器。然而,存储虚拟化产品,例如 IBM 的 SAN Volume Controller,则会将 多个 磁盘存储系统合并为一个 单独的 存储池,可以从一个集中的地方对它进行管理。因此这是一条双向通道。
更进一步来说,我们可以认为网格的核心并不是系统或存储的虚拟化(仿佛这很简单),而是任务负载和信息的虚拟化。这些领域都可以利用并扩展系统和存储虚拟化的概念。这对于从技术角度理解网格非常重要。稍后我们会更详细地介绍这个问题。
正如前面介绍的一样,任务负载和信息虚拟化的概念正是与自动配置技术相对应的,例如 IBM Tivoli® Provisioning Manager 和 Opsware Inc. 的 Opsware。因此自动配置对于网格计算来说是非常重要的。另外,由于网格都是关于资源的(资源的利用或对资源进行虚拟化),因此一种通用资源模型和资源管理对于网格来说就成为关键了。
下面进行一下总结,让我们从四个方面来了解一下网格的交互能力:
- 任务负载虚拟化
- 信息虚拟化
- 资源管理/通用资源表示
- Provisioning 和 orchestration
这四个领域的特性以及之间的交互共同从技术的角度对网格进行了定义。下面我们对每一类都详细进行介绍,从而能够更清晰地了解它们之间的区别。
我还会介绍一些重要的角色资源定义和管理在网格中的作用。您可能会对其他技术的角色感兴趣,例如安全性或存取技术(例如门户)。在本文中我们并不准备讨论这些复杂的问题;无论如何,我们并不认为这些领域可以 定义 网格计算的特性。很多分布式计算解决方案中都包含这些问题;因此,它们并不是我们对网格的技术理解中基本或特有的特性。
通用资源模型和资源管理
在前面的文章中,我曾经提到过网格正在扩充“资源是什么”这个概念。传统上讲,人们认为资源不是微处理器就是存储。这种定义太过简单了。不过网格和整个业界都专注于(资源的)利用,这一切都对这个简单的概念进行了扩充,延伸至包括各种软件许可证和网络设备(例如 VLAN)。因此资源(资源的定义和管理)就成为网格计算的基本元素。
考虑到任务的执行或网格中信息的请求可能要利用多种不同类型的资源。您需要开始理解使用一种通用的视角来观察资源到底是什么,这有多重要。如果网格中的所有资源都使用不同的方法来表示它们是关于什么的以及可以实现哪些功能,那么与这些网格进行交互就会变成恶梦。
幸运的是,现实情况并非如此。现在分布式管理任务组织(DMTF)正在赞助制定一项名为通用信息模型(CIM)的业界标准。CIM 标准宣称:“CIM 为系统、网络、应用程序和服务的管理信息提供了一种通用的定义,可以让供应商对其继续进行扩展。CIM 的通用定义让供应商可以在整个网络上的所有系统之间交换语义非常广泛的管理信息。”
与 CIM 非常接近的一个标准是 Web 服务分布式管理(WSDM),正在由 OASIS 进行制定。如果 CIM 表示的是底层的信息模型,那么 WSFM 就可以认为是为资源定义管理风格。我们并不会详细介绍有关 WSDM 的内容,但是 WSDM 主要由两个规范组成: Management Using Web Services (MUWS)和 Management of Web Services。
有关资源最后还需要说明一点:网格系统需要以一种可以促进灵活性的方式来表示资源。网格中的组件所使用的底层资源模型应该是非常抽象的,足以支持底层资源定义中的变化,并且可以支持定义新类型的资源。网格软件需要始终一致地处理资源(这就是为什么会出现 CIM 的原因),而且不应该对资源的定义或类型产生严重的依赖。虽然现在还无法想象会是什么样子,但是很可能将来会出现新型的 IT 资源,需要定义和使用。
Provisioning 和 orchestration
将大量资源在需要的时候动态配置到所需要的地方,这是网格的一项至关重要的功能。这种功能是由智能配置系统提供的,例如 Tivoli Intelligent Orchestrator 或 Cassatt Collage。在 本系列前面的文章 中已经对此进行了详细的介绍,因此在本文中就不再深入介绍了,不过在定义网格是什么时我们还要强调动态配置的地位。下一篇文章中将会介绍一种循序渐进的方法来实现真正的自治资源管理。
任务负载的虚拟化
人们认为网格最重要的功能是在大型分布式环境中加速和管理任务负载。这通常称为 计算网格。在充分利用各种资源来对任务负载实现最佳的加速比(通常是通过 并行化)方面已经发表了很多文章。虽然这是一个非常重要的成就,并且引发了大家对网格的浓厚兴趣,但是我们需要考虑一些更为重要的内容。
首先是智能管理任务负载和执行作业的能力,而不仅仅是并行化。您并不需要对一个或一组应用程序进行并行化处理来利用这种优点。更高级的想法是以一种智能化的方式来管理 所有的 任务负载。我称之为任务负载的虚拟化。
任务负载虚拟化是对任务负载进行虚拟化的能力,这样就可以将任务负载分割成小片,并能够在一个动态 IT 基础设施中灵活地移动。其主要关注的是动态调度、将任务分发到资源上并根据能力对任务进行分发。
上面的意思是说,将任务负载及运行它的基础设施之间的依赖关系切断。动态配置是动态的,这是因为它的责任是管理运行环境的配置。这种动态调度和任务虚拟化的责任就是,要在适当的时间(根据需要)在正确的资源上智能地执行任务负载。任务负载管理器(例如 IBM 的 Enterprise Workload Manager)会负责实现这种功能,因为在任务被调度器启动之后,任务负载管理器就要负责处理可能出现的任务负载移动操作,但是最初的执行和任务安排操作是作业调度器要负责实现的功能。
随着虚拟化和可扩充的体系架构不断得到认识和应用,调度器已经从单个系统转移到中间件和网络上了。虽然我们常常没有意识到,但是 PC 操作系统上的调度器(对于我们大部分人来说,这就意味着 Microsoft® Windows®)就是它的大脑。这是一个非常重要的元素。但是您通常都不会看到它,也不会意识到它的存在。
调度器要负责在后台执行任务,确保任务能够正确执行,并确保 PC 上的总体操作。如果您理解了这个问题,就会开始意识到任务负载虚拟化和动态调度对于网格计算来说是多么重要。
信息虚拟化
比任务负载虚拟化更强的一个概念是网格环境中所使用的信息虚拟化概念。在分布式网格环境中,能够采用一种一致而统一的方式来查看、访问和管理数据,这样就可能从增强协作和提高生产效率中获益。
网格正在朝集成跨企业数据的方向发展。我们经常会听到 数据网格 的说法(与计算网格相对),但是确切地说,这样将网格划分为两类并没有什么意义。当组织可以将任务负载的虚拟化和信息无所不在的概念无缝地结合在一起时,就可以获得真正的益处。这不是一项简单的任务,但的确是一项非常值得去做的任务。
信息虚拟化 是跨企业使用数据、传输数据、联合使用数据并根据用户或应用程序的需求来匹配服务质量需求的能力。在网格中,用户和应用程序希望能够按照自己感兴趣的方式来访问数据(例如文件或字节流),就仿佛这些信息都在本地一样(不用说,当然要以一种安全的方式)。
这种数据的本地性是非常重要的。并非所有的数据都是本地的,但是我们希望数据看起来似乎就是本地的。因此,业界似乎正在采用智能数据管理技术(例如应用程序到应用程序的缓存)以及 Wide Area File Systems。
有很多不同的技术和功能构成了这个视图,从存储虚拟化到基于文件的虚拟化,再到某些产品所提供的数据虚拟化,例如 WebSphere® Information Integrator。我们在这里看到的有趣的趋势是这些不同的世界正在开始汇集。考虑一下数据格式之间严格的关系,例如关系数据库;其访问协议(例如 SQL);以及支持这些技术所需要的基础设施的投资。如果有些东西是存储在一个关系数据库中的,为什么不能通过除 SQL 和 XQL 之外的其他协议进行访问呢?中间件难道不应该为我们屏蔽这些差异吗?应用程序和用户为什么应该了解自己需要访问的信息的结构呢?
结束语
在本文中我们从一个较高的视角介绍了构成网格计算的因素,从虚拟化和四个主要领域的集成来了解了这个问题:任务负载虚拟化、信息虚拟化、资源定义和管理以及智能自动配置。
这四个领域中的功能以一种和谐的方式一起工作,就是网格的真正含义。组织可以选择最佳的产品,持续构建整个蓝图,并将所有的部分都合并在网格基础设施中。
在这种情况下,标准对于促进集成和提高选择的灵活性来说至关重要。可选的一种方法是购买集成平台,例如 WebSphere Extended Deployment,其中包含了本文中介绍的很多技术和功能。
参考资料 学习
获得产品和技术
关于作者  | 
|  | Matt Haynos 是 IBM 的 Grid Strategy and Technology 小组的程序主管,他在纽约的 Somers 工作。他在这个小组中负责的事情很多,包括与构建 IBM 网格计算业务有关的很多行动。他在 IBM 的应用程序开发、程序方向引导以及业务开发领域都承担了各种技术和管理任务。他拥有 Rochester 大学的计算机科学/应用数学以及认知科学的学士学位,以及 Vermont 大学的计算机科学硕士学位。他现在与妻子和两个儿子居住在 Connecticut。 |
对本文的评价
|