网格观点: 改进数据访问的性能

摘自: IBM developerWorks China  被阅读次数: 675


yangyi 于 2007-06-15 23:27:31 提供


级别: 初级

Matt Haynos (mph@us.ibm.com), 项目总监,Grid Technology and Strategy, IBM

2007 年 5 月 24 日

在本文中我们将探索在分布式环境中用来智能地管理数据所使用的技术、方法和总体发展趋势。作者 Matt Haynos 介绍了网格用户用来在计算中集成数据和进行动态资源管理所使用的一些技术和方法,还阐述了网格业界的一些有趣的发展趋势。

与网格相关的很多信息都不可避免地要涉及数据、信息和在分布式基础设施上对二者进行智能化处理。但是通常来说,数据在以计算为重点的网格中仅能占据次席,至少从大众的观点来看是如此。

这是为什么呢?通常,那些熟悉网格计算的人都可以引证一些流行的网格活动,例如 Berkeley 的 SETI@Home 或 IBM 的 World Community Grid。当 World Community Grid 在 2004 年年末启动时,ComputerWorld 报道说 IBM 以及业界领先的健康机构已经 “开展了一个全球的网格计算项目,其目标是利用目前尚未使用的全球计算能力来帮助解决各种健康问题和科学问题。”

但是正是数据才引起了这么多的问题。如果 SETI 没有发现智能生命,那么很少有人会关注它们使用了多少计算资源:“噢,我们在 X 星球上发现了生命,但是更为重要的是,我们使用了地球上 13 万亿 MIPS 的资源来发现这些生命!”

在本文中,我们将重点介绍网格业界中用来在分布式网格环境中对数据进行智能化管理所使用的技术、方法和整体发展趋势。组织可以采用很多技术和方法;当试图判断到底哪种技术和方法最适合您的情况和环境时,如此众多的方法可能会产生一些混乱。我们将介绍网格用户将数据集成到计算中和进行动态资源管理时所采用的一些技术和方法,并揭示市场中一些有趣的发展趋势。尽管本文对这个主题的介绍并不全面,但是依然十分广泛,可以为读者提供有关基于网格的数据管理的坚实知识基础。

从很多方面来说,数据访问、移动和转换的智能管理对于成功部署网格来说都非常关键。随着网格不断发展、新程序和用户不断增加以及规模不断增大,这种结论就变得尤其正确。数据变得越来越关键。在某些行业中,例如电子行业,数据总量是如此巨大,以至于数据的架构、流动以及网络设计都成为网格设计所要考虑的主要内容。

那么您认为自己存在数据共享的问题吗?

现在已经撰写了很多有关 LHC(瑞士的 CERN 在 2007 年要开始启用的大型强子对撞机(large hadron collider))以及相关应用程序(真实实验)和 LHC 计算网格的文章。但关键的一点是,我们已经从数据共享和数据访问的角度首先构建了 LHC 计算网格。我们要把从对撞机中产生的海量数据输出到网格中并提供给全世界的科学家使用。

这个网格的体系结构使用了一种层次化的方法来在遍布全球的站点的多个层次之间分阶段处理数据。考虑到它的规模,这是一件好事:

  • 现在,网格上大约有 13,000 个处理器。
  • 在 2007 年,随着网格上线,将增加到 130,000 个处理器(很可能会超过这个数字)。
  • 这个对撞机在接下来的 10 年中每秒会产生 1.5 GB 的数据。

根据我的统计,这大约是 675,000,000 张 CD 或 8070 亿篇小说 —— 这些书的厚度足以在地球与月球之间来回 13 次了!

我们在本文中强调 LHC 非常重要,这是因为这个系统重点关注体系结构的重要性,以及为什么要在网格设计的最初阶段就必须开始考虑并理解数据的问题。

所涉及的技术

在分布式网格环境中可以使用无数的核心数据技术。就它们本身来讲,并没有解决网格中的数据访问和数据共享问题,但是采用一种仔细设计的体系架构可以解决这些问题。在这种体系架构中,在适当的地方有效地充分利用数据的技术对于增强网格操作来说是至关重要的。这些数据技术都是一些类似的工具;您需要知道何时从工具包中选择适当的工具。

适合在网格环境中应用的技术包括:

  • 复制
  • 缓存
  • 高效地移动数据
  • 数据转换
  • 全局命名

下面让我们较详细地介绍其中的几种技术。

分布式文件系统

尽管我们没有明确地将分布式文件系统 作为一种适用技术,但是它们在一个综合的包中提供了很多核心技术。使用分布式文件系统作为分布式计算的核心技术,网格就更有意义了,这是因为用户不需要为很多子技术的实现和集成操心了。

分布式文件系统可以对用户隐藏底层技术细节,这会使其变得非常方便。这样可以提供一定程度的抽象和便利,在具有很多应用程序和数据源的分布式网格环境中,这是非常具有吸引力的。

很多复杂的网格环境都是在分布式文件系统基础上构建起来的。例如,IBM 的系统和科技开发组的很多技术都是依赖于 General Parallel File System(GPFS)和 Network File System(NFS)以及 Andrew File System(AFS)来支持一些真正复杂的微处理器和需要使用大量数据的系统设计。我们使用底层文件系统来支持数据在远程网络上的缓存,并提供一种通用的方法对文件进行命名和引用。TeraGrid 是一个连接 U.S. 超级计算中心的网格,它采用了很多文件系统(包括用来处理并行文件访问的 GPFS-WAN)来支持试验和模拟。

另外还有很多文件系统。其中有些是针对集群环境设计的(用来在一些集群节点之间共享信息),另外一些设计为具有很多高级特性的完整分布式文件系统。

然而,NFS 一直都是 “标准的” 分布式文件系统,用来在众多的物理文件系统之间实现一个一致的文件系统。在可能使用多种物理文件系统(在一台机器或一组机器上运行)的大型企业中,这是非常重要的。在 Version 4 的协议中,采用了供应技术来支持更复杂的数据性能和安全性技术。在之前的版本中,这是一个问题;但是在 Version 4 中,对于一种称为客户机委托(client delegation) 技术的支持让实现者可以提供缓存功能。随着 NFS V4 的不断成熟,它在网格使用的分布式文件系统领域将成为一项关键的技术。

分布式内存缓存

分布式内存(distributed memory)应用程序缓存(application caching) 是在网格中非常流行的一项非常有趣的技术。有些人甚至把应用程序缓存就当作是网格。这类产品可以极大地提高底层存储设备的吞吐量,并减小总体数据库事务的瓶颈。

诸如 IBM WebSphere® ObjectGrid、GigaSpaces 的 Enterprise Application Grid 和 Tangosol Coherence 之类的产品都是分布式内存缓存的例子。它们都是基于软件的缓存解决方案,这与基于工具的缓存解决方案 不同(后者我们稍后就会介绍)。这些解决方案在企业之间更容易进行扩展,因为无需购买其他工具了。它们可以非常容易地插入到分布式网格系统中,这是因为它们实际上为底层的远程数据提供了一个代理(以及在此基础上的一个很好的执行环境)。大部分工具都可以在异构环境的应用服务器、数据库和存储之间很好地工作。

使用这种技术的缺点是对缓存必须进行管理,因为这是一个单独的实体,它是分布式计算环境中的另外一个组件。

此外,使用这种技术的一个关键考虑元素是:对于底层数据存储来说,访问接口本质上应该是相同的。不管应用程序或用户正在访问的是实际数据还是缓存版本,都希望过程是透明的。

数据转换

数据转换可能看起来并不像是一种核心技术,但是这对底层数据源提供真正的虚拟化来说是至关重要的。

数据转换(Data transformation) 是将来自多个系统的信息进行统一处理,并使其对新应用程序更有用的过程。对于网格来说,这尤其显得重要,因为物理网格上可能存在很多数据源,而且应用程序或用户可能会请求以各种格式提供数据。

为了在网格上真正实现虚拟化,也有很大可能必须进行数据转换。实际上,在典型的提取 - 转换 - 加载(extract-transformation-load)(ETL)项目中,数据转换要消耗项目工作量的 45%。

让我们来考虑一下这个问题。当考虑到任何典型的应用程序都要花费一些努力来对数据进行维护,并将数据从一种格式转换成另外一种格式时,这个问题就很容易理解了。诸如 WebSphere DataStage 和 DataStage Tx 之类的产品都用来自动管理和维护数据转换。这都是非常值得投资的。

要考虑的方法

现在让我们来看几个要考虑的方法,包括:

  • 区域数据中心
  • 数据划分
  • 广域文件系统

区域数据中心

用来帮助减少对分布式信息访问的问题的一种实用方法是,将数据和计算资源定位于某个物理位置上。网格计算的大型用户,例如制药公司和电子公司,都支持采用多个区域数据中心 或全球网格。

这些数据中心的网格可能会有数千个处理器,通常都有一个高度优化的存储域网络基础设施,可以支持快速访问底层的物理数据。这样用户就可以使用一种瘦客户机机制来提交作业并查看结果了。

从某种意义上来说,这些公司都在试图完全避免分布式数据访问的问题。利用诸如缓存和复制之类的技术可以减少需要关心的问题。然而,其缺点是它们并不真正具有虚拟化的全球网格(在这种环境中用户需要知道到哪里寻找资源),然而这是用来缓解数据访问和传输问题的一种非常有效的方法。

数据划分

根据某种机制或布局来进行数据划分 是一种用来改进系统整体吞吐量和性能的架构性方法,这种方法已经使用了很长时间,完全可以适用于分布式网格环境。

通常,划分布局会创建对立的数据集,这些数据集使用网格基础设施中的特定资源。这样就可以将对特定信息的请求定位到适当的资源。这种方法的优点是可以在划分好的数据及其相关资源之间进行优化,这样可以极大地改进数据的吞吐量。

这种方法的缺点是:为了有效地划分数据,需要了解数据结构方面的知识。在数据访问和吞吐量方面获得了显著改进,但其代价是降低了灵活性。

广域文件系统

广域文件系统(WAFS)包含另外一类在业界中最近蓬勃发展起来的技术。Cisco Systems 公司、Brocade Communications Systems 公司、Tacit Networks 公司和 Riverbed Technology 都开发了这个领域中的一些产品。

WAFS 产品用来对从数据中心到远程位置的 WAN 上的文件访问进行优化。用户在中枢数据中心和每个远程位置都安装 WAFS 工具。这样通过 WAN,对于数据中心中文件的访问就可以通过 WAFS 服务进行管理了。

广域文件系统的工作方式是减少数据中心与远程位置之间不必要的通信;它们还采用了智能缓存。这些工具的缺点是它们是硬件解决方案,因此对于每个远程位置来说,都需要使用一个新的工具。另外,它们也只能适用于文件,但是由于网格中的大部分数据都是由同一种文件格式组成的,这稍微减少了我们的担心。适当使用时,WAFS 产品可以改进对分布式网格环境中文件数据的访问。

发展趋势

下面让我们来了解几个正在出现的趋势,它们试图解决网格环境中所面临的一些数据访问和性能挑战。

拥有自己的网络(光纤)

对于跨越多个位置的大型全球网格的用户来说,一种正在出现的非常有意义的趋势是购买专用的光纤网络,而不是与服务供应商签订网络服务合同。利用光纤的带宽和性能,这种用来解决网格数据问题的方法似乎投资太大了。但是如果您了解一下自己的网络策略以及光纤成本正在不断降低的事实,就会觉得进行这项重要的投资可能是有意义的。另外,由于公司不再依赖于网络服务提供商了,因此新的网络服务就可以在几个小时或几天之内提供了,而不是像原来一样需要几周甚至几个月的时间。

对于很多用户来说,这种投资的回报是非常值得的。“我认为这是公司需要了解的一种策略”,George Surdu(Ford Motor Co. 基础设施总监)说,“公司需要实现自己的业务环境。虽然我并不认为我们是第一家这样想的公司,但是我可以肯定我们不是最后一家这样的公司。” 这种方法的缺点是带来了与运行自己网络有关的管理成本。

数据感知的调度

任务负载调度器是网格中的一个重要组件,它通常在把作业分发到分布式网格上进行执行时并不考虑数据的位置。在提供最好的数据访问和性能的资源上执行作业才更有意义。因此我们看到的一种趋势是,调度器正在开始考虑所需要的数据的位置。这需要采用一些方法来将所需要的数据(输入或输出)及其位置关联到给定的可执行文件或作业上。

网络感知的应用程序

UC San Diego 的 Larry Smarr 所倡导的一种趋势是网络感知 应用程序的概念。“网络感知应用程序有望成为一种新的概念,其中应用程序能够了解网络的状态,从而可以适应不同的环境来达到可接受且可预测的性能。”

由于分布式网格中的网络会不断变化,在应用程序中应用网络感知方面的智能就变得有意义了。这种方法的问题是采用什么编程模型以及能够实现何种程度的简化,从而让应用程序开发人员可以简单地在自己的应用程序中集成网络智能。

结束语

在本文中,我们介绍了可以用来在网格环境中改进数据访问性能和吞吐量的一组技术、方法和趋势。在网格设计的早期阶段就开始思考如何应用这些技术是至关重要的,因为数据的问题很快就会成为在网格计算中获得成功的重大障碍。采用这些技术,我们就可以减少数据移动、访问和吞吐量方面的问题。



参考资料

学习

获得产品和技术

讨论


关于作者

author

Matt Haynos 是 IBM Grid Strategy and Technology 小组的程序主管,这个小组的总部位于纽约 Somers。他在该小组中负责多项工作,包括与构建 IBM 网格计算业务相关的广泛构想。他在 IBM 的应用程序开发、程序指导和业务开发领域拥有多个技术和管理职位。他拥有罗彻斯特大学的计算机科学/应用数学和认知科学的学士学位,以及佛蒙特大学的计算机科学硕士学位。他与妻子和两个儿子居住在美国康涅狄格州。




原文链接: http://www.ibm.com/developerworks/cn/grid/gr-access/index.html