什么是 DB2 pureScale?

让 DB2 获得极限的可伸缩性和可用性

本文从技术角度介绍了 DB2 pureScale 的基本知识。
来自 IBM Data Management Magazine中文版。

Paul Zikopoulos, 程序主管 - DB2 推广者, IBM

Paul C. Zikopoulos 拥有 BA 和 MBA 学位,是 IBM DB2 Evangelist 团队的程序主管。他是一位获奖作家和演讲者,有 14 年以上的 DB2 经验。Paul 撰写了关于 DB2 的 230 多篇杂志文章和 11 本书,包括 Information on Demand: Introduction to DB2 9.5 New FeaturesDB2 9 Database Administration Certification Guide and Reference (6th Edition)DB2 9: New FeaturesInformation on Demand: Introduction to DB2 9 New FeaturesOff to the Races with Apache DerbyDB2 Version 8: The Official GuideDB2: The Complete ReferenceDB2 Fundamentals Certification for DummiesDB2 for DummiesA DBA's Guide to Databases on Linux。Paul 是一位 DB2 认证的高级技术专家(DRDA 和集群方面),以及 DB2 认证的解决方案专家(BI 和 DBA 方面)。在空闲时间,他喜欢各种体育活动,与他的狗 Chachi 一起跑步,与他的女儿 Chloë 一起玩儿。



Chris Eaton, 产品经理,DB2 竞争技术, IBM

Chris Eaton 是 DB2 技术推广人和高级产品经理,主要从事规划和战略。他是一名获奖的演说家,曾在国际 DB2 会议上演讲,他还撰写了很多 DB2 书籍。Eaton 还拥有 Web 上最流行的关于 DB2 的博客之一,他的博客地址是 http://it.toolbox.com/blogs/db2luw。



2010 年 3 月 25 日

阅读本文的交互式数字版格式!(英文)

2009 年 10 月,IBM 宣布了一项新技术,该技术名为 IBM DB2 pureScale,主要针对在线事务处理(online transaction processing,OLTP)向外扩展(scale-out)集群。 DB2 pureScale 是一种新特性,它为在 Power Systems 服务器上的 AIX 上运行的 IBM DB2 提供向外扩展的主动-主动服务。它的设计是为了提供最高级别的分布式可用性和可伸缩性,这种分布式可用性和可伸缩性包装在经过深思熟虑的构建-运行式的路径中,操作起来比其他集群数据库系统容易得多。在本文中,我们将从技术角度介绍 DB2 pureScale 的基本知识,展示 DB2 pureScale 如何同时提供透明的应用程序可伸缩性和极高的可用性。

我看到你在那里做了什么

如果您熟悉 DB2 for z/OS 上的数据共享,那么 DB2 pureScale 架构看上去非常熟悉,因为它就是那样的! IBM 采用 DB2 for z/OS 数据共享的基本原则,并将这些原则与最新的 分布式技术相结合,从而为分布式平台提供空前的可用性和可伸缩性服务。 在此要注意一点: System z 服务器上运行的 DB2 已经能够提供一流的可用性。 例如,Toronto Dominion Bank (TD Bank)连续 10 年保持客户信息 100% 的可用性,期间还包括两次 DB2 for z/OS 升级。连我们最大竞争对手的 CEO 也这样说 DB2 for z/OS:“它是一项一流的技术。”

图 1 显示 DB2 pureScale 环境的一个例子。 每个属于 pureScale 集群的 DB2 服务器被称作一个成员。每个成员可以同时访问 相同的数据库,包括读和写操作。目前,pureScale 集群的最大成员数是 128。

图 1

图 1:在 DB2 pureScale 集群中,每个成员可直接对 PowerHA pureScale 服务器的集中式锁和缓存服务进行基于内存的访问。

IBM PowerHA pureScale 服务器提供集中式锁管理服务、用于数据页的集中式全局缓存(也称组缓冲池)等等。 DB2 pureScale 数据共享组中的每个成员都可以通过 InfiniBand 网络直接与 PowerHA pureScale 服务器交互,InfiniBand 网络使用 User Direct Access Programming Library(uDAPL)协议,这是一种 非消息传递基本协议,它为每个成员提供与集中式锁和缓存服务之间的点对点连接。


本地代理,集群范围

透明的应用程序伸缩意味着应用程序不必知道集群,便可以真正利用向外扩展的架构。为了 提供这种伸缩,除了 PowerHA pureScale 技术外,DB2 pureScale 使用远程直接内存访问(remote direct memory access,RDMA)技术,以消除成员之间为了锁管理和全局缓存服务而进行的通信。

RDMA 使集群中的每个成员可以在数微秒内直接访问 PowerHA pureScale 服务器中的内存,反之亦然。例如,假设图 1 中 Member 1 要读取不在它本地缓冲池中的数据页。 DB2 指定一个代理(或线程)来执行该事务。 然后,这个代理使用 RDMA 直接写到 PowerHA pureScale 服务器的内存中,以表明它对某个页感兴趣(这被称作读-注册请求)。如果 Member 1 要读取的页已经在全局集中式缓冲池中,那么 PowerHA pureScale 服务器将直接把那个页 push 到 Member 1 的内存中,而不是让那个成员上的代理 对磁盘执行 I/O 操作来读那个页。RDMA 有效地使成员的代理只需执行看似本地内存复制的操作, 而此时的实际目标是远程计算机的内存地址。

这些轻量级远程内存调用以及集中式缓冲池和锁管理功能,意味着应用程序不必连接到数据所在的成员,从而获得可伸缩性。 无论集群大小如何,集群中的任何成员只需从全局缓冲池接收数据页。大多数 RDMA 调用非常快,以致于进行调用的 DB2 代理在 等待响应的时候甚至不必让出 CPU。例如,为了通知 PowerHA pureScale 服务器有一行要更新(因而请求一个 X 锁),某成员的代理通过将锁信息直接写到 PowerHA pureScale 服务器的内存中,执行一个 Set Lock State(SLS)请求。这个 SLS 操作的整个来回只需不到 15 微秒的时间,所以代理很可能不需要让出 CPU。


集群知道页面在哪里吗?

DB2 pureScale 使可用性达到一种全新的水平。如果 DB2 pureScale 集群中的某一个成员出故障,DB2 会提供 对不需要恢复的每个数据页的完全访问。而且,不必执行任何 I/O 操作,DB2 总是知道需要恢复的特定页面。 这是怎么做到的?每当一个成员将一个页读入它的缓冲池时,PowerHA pureScale 服务器不仅跟踪成员的这种“兴趣”, 而且跟踪成员对更新那些页上的行的请求。每当应用程序提交事务时,脏页被直接写到 PowerHA pureScale 服务器。如果任何成员出故障,PowerHA pureScale 服务器有一个列表,其中包括出故障的成员正在更新的页,以及出故障的成员更新和提交,但是还没有写到磁盘的页。

当共享磁盘集群上出现故障时,关键是没有集群中的其他节点从磁盘读取或更新尚未恢复的页。由于 PowerHA pureScale 服务器知道哪些页面正在被出故障的节点更新,PowerHA pureScale 服务器在它的集中式缓冲池中已经有那个成员提交的脏页,当它锁住需要恢复的页时,DB2 pureScale 不需要阻塞其他成员继续处理事务。

而且,DB2 pureScale 中的恢复动作非常快。 如果出现故障,每个成员都有闲置但是就绪的进程。 当一个成员出故障时, 这些恢复进程中的一个将被激活。由于这些进程已经存在, 因此操作系统不需要浪费宝贵的时间来创建进程、为之分配内存等等。 这个恢复进程立即开始将脏页从集中式缓冲池预取到它自己的本地缓冲池。 大多数情况下,这种恢复不需要额外的 I/O 操作,因为需要恢复的页很可能已经在集中式缓冲池中, 可以使用 RDMA 在数微秒内传输完毕。与此同时,所有其他成员上的其他应用程序继续在不需要恢复的页上处理事务, 而不必从磁盘恢复和读取页,因为 PowerHA pureScale 服务器知道磁盘上的哪些页是干净的,哪些页需要恢复。

对于通常的事务性工作负载,从成员出故障到页面被恢复并可供另一个事务使用,通常只需 20 秒甚至更少的时间。 注意,这个恢复时间包括故障检测时间,很多供应商在提到恢复时间时将这部分时间排除在外。

最后,值得注意的是,集群中的各组成部分,包括 PowerHA pureScale 服务器本身,是冗余的。 DB2 pureScale 允许双重 PowerHA pureScale 服务器功能,锁信息和共享缓存信息存储在两个不同的位置,以防出现重大故障。


结束语

在此我们只是对 pureScale 作了肤浅的描述。幕后有很多事情在发生, 所以请务必访问参考资料侧边栏中的链接。最终, 在向外扩展的主动-主动配置中,对于需要最高级别可用性的应用程序,DB2 pureScale 提供了最先进的功能来提高业务的连续性。 而且,有了透明的应用程序可伸缩性,不再需要构建知晓集群的应用程序,便可以向外扩展到更大数量的服务器。

参考资料

学习

  • 通过访问 developerWorks 中国 Information Management 专区的 DB2 pureScale 专题 获得更多 DB2 pureScale 相关的介绍性文章、教程和多媒体课件等学习资源。
  • 通过访问 developerWorks 中国 Aix 专区 获得更多 Aix 相关的文章、教程和多媒体课件等学习资源。
  • 通过访问 DB2 V9.7 信息中心 , 了解 DB2 V9.7 的基本概述。
  • 通过访问 DB2 for z/OS 数据库 产品专题,了解 DB2 for z/OS 数据库相关的产品和文档、教程等技术资源。
  • 通过访问 DB2 最佳实践专题,了解 DB2 全方位的管理、开发相关的最佳技术资源。

获得产品和技术

  • 现在可以免费使用 DB2 。下载 DB2 Express-C,这是为社区提供的 DB2 Express Edition 的免费版本,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。
  • 下载 IM 软件试用版,体验信息管理软件强大的功能。

讨论

  • 通过访问 alphaWorks 获得更多 IBM 的前瞻性技术和资源。
  • 通过访问 IBM Database Magazine 站点 community 专题 获得更多用户体验和交流信息。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=477628
ArticleTitle=什么是 DB2 pureScale?
publish-date=03252010