使用 IBM PureApplication System 跨多个站点实现高可用性

本文描述了如何将多个 IBM® PureApplication™ System 机架放置在地理位置分散的数据中心,以便托管要求最高水平可用性和快速灾难恢复的业务关键工作负载。

Andy J. F. Bravery, 高级技术专家组成员,高级 IT 架构师, IBM

Andy Bravery 是一名高级技术专家组成员、高级 IT 架构师和 IBM CIO 办公室 Innovation Engineering 团队的负责人。Bravery 先生在新兴技术领域具有丰富的工作经验。他最近的工作关注于运用云技术来支持企业中的情景应用。Bravery 先生是英国计算机协会的成员,也是 Open Group 认证的高级 IT 架构师,并拥有英国伯明翰大学的物理学荣誉学位。



2013 年 10 月 08 日

简介

PureApplication System 提供了一个灵活的平台来运行云基础架构中的各种不同应用程序工作负载。这个设计旨在让机架上运行的应用程序实现高水平的可用性,从而帮助消除单点故障。

追求最高水平灵活性的企业必须考虑如何跨多个系统和地理上分散的数据中心中运行其工作负载,使得任何硬件、本地网络或电源供应以外的问题都不会造成漫长的服务中断。

本文介绍了一种适用于使用 PureApplication System 的多站点环境的设计,同时描述了跨这两个站点部署的应用程序工作负载如何继续通过一系列可能发生的故障场景提供高可用性。作者在撰写本文时考虑到了基础架构和应用程序架构师的利益,帮助他们理解如何使用 PureApplication System 来满足较为苛刻的非功能性需求。

文章 PureApplication System 的高可用性拓扑结构 介绍了一些用来实现运行在 PureApplication System 机架上的应用程序和多机架设置的高可用性的拓扑结构,建议您先阅读下列这篇文章,然后再继续阅读本文。


建立高可用性 Web 应用程序

真正的高可用性解决方案需要跨越多个地理上分散的数据中心。在本文中,我们将讨论这样一个设计,假设我们使 PureApplication System 机架在两个不同数据中心的同一个应用程序上运行,而且它们之间有一个广域网。网络基础架构包含负载平衡功能,以便跨两个站点平均分配应用程序的用户请求。

在进一步讨论我们的设计之前,需要选择一个要关注的应用程序类型。在设计支持高可用性的拓扑结构的时候,应用程序基础架构是一个关键的考虑因素。诸如拓扑数据存储在应用程序的什么位置,以及使用什么方法处理应用程序中的连续用户请求,这类问题都将影响如何实现高可用性服务的选择。例如,如果用户的购物车状态保存在连续用户请求之间的内存中,那么高可用性基础架构必须考虑需要执行的行为(如果该组件受到运行中断的影响)。通过选择一个简单常用的示例应用程序基础架构,并做出一些相关假设,我们可以提供该主题的简要介绍。

我们主要关注一个由应用程序服务器组成的典型的三层 Web 应用程序基础架构,该服务器已经配置了一个 Web 服务器,并且受到数据库的支持。为了进一步简化讨论,我们假设所有应用程序数据都存储在数据库中,而应用程序层中未存储数据。这样,我们将重点关注如何实现在 PureApplication System 上运行的应用程序的高可用性,同时不会使得围绕数据复制和并行的讨论变得更加复杂。这些重要主题将在后续文章中进一步讨论。

我们还假设应用程序的数据库组件在 Web 应用程序的单独基础架构上进行管理,这是大多数用户环境的惯例。当然,数据库也应该是高度可用的,所以在 PureApplication System 上运行的应用程序将从每个数据中心远程连接到高度可用的数据库基础架构。最后,我们假设客户端有冗余的负载平衡,作为核心网络功能的一部分,可以跨远程数据中心分配请求。

图 1 展示了一个样例设置概述,该样例包含我们介绍的特性。

图 1. 一个样例多站点设置的概述
一个样例多站点设置的概述

这个基础架构允许机架位于地理上分散的数据中心,并且这些机架将在 "Active-Active" 模式下进行操作。这意味着两种机架都可以处理用户在正常操作环境中的实时生成需求。如果机架或数据中心出现故障,那么用户请求会被路由到操作机架并继续获得服务。在解决问题之后,将由这两个机架重新处理负载。


跨两个系统部署的应用程序

我们来详细介绍该设置中的 PureApplication System。因为我们重点关注的是 Web 应用程序,所以需要一个 Web 服务器、一个应用程序服务器和应用程序本身,这些都安排在支持高可用性的拓扑结构中。这对于讨论实际应用程序非常有用,所以我们以 TradeLite 为例进行说明。

样例 Web 应用程序和数据库

TradeLite 是 IBM WebSphere® Application Server 端到端基准测试程序和性能样例应用程序。设计并开发基准测试程序是为了了解 WebSphere 的广泛编程模型。这提供了一个促进 Java Platform Enterprise Edition 1.4 和 Web 服务的 WebSphere 实现的实际工作负载,包括关键 WebSphere 性能组件和特性。

TradeLite 并不依赖任何需要在应用程序服务器层上维护的状态,其相关数据库可在与样例设置设计完全吻合的远程数据库服务器上运行。

要实现高可用性服务水平,应用程序需在集群应用程序服务器上运行,因此,在每个机架上,应用程序请求都可以通过多个节点获得服务。要在 PureApplication System 上实现这点,可以选择一个 WebSphere 模式作为提供这种集群功能的标准 – WebSphere 集群模式

WebSphere 集群模式

WebSphere 集群模式是一种虚拟系统模式。要了解虚拟系统模式的详细信息以及 PureApplication System 中可用的其他模式,请参阅文章 为 IBM PureApplication System 做好准备,第 1 部分: 应用程序迁移概述

图 2 展示了 PureApplication System 模式编辑器中的自定义 WebSphere 集群模式。

图 2. 自定义的 WebSphere 集群虚拟系统模式
自定义的 WebSphere 集群虚拟系统模式

WebSphere 集群模式包含构建一个 WebSphere 集群的组件,比如,部署管理器节点、自定义节点和 Web 服务器节点。通过配置模式来部署两个自定义节点和两个 Web 服务器节点,您可通过排除潜在的单点故障来帮助实现高可用性。

模式中的脚本包将自动化配置任务,比如安装和配置数据库驱动程序、调优 Java 虚拟机 (JVM) 以及安装 TradeLite 应用程序。

将该模式部署到这两种机架,以便创建分别在各自 PureApplication System 上运行的相同但独立的副本。虽然应用程序实例之间没有联系,但该模式允许这两种配置访问同一个数据库来实现数据访问和存储。图 3 展示了部署到 PureApplication System 的模式并介绍了五个虚拟机,可以实例化这些虚拟机来创建运行 TradeLite 应用程序的集群,并创建连接到已配置好的外部数据的连接。

图 3. 部署到 PureApplication System 的 WebSphere 集群模式
部署到 PureApplication System 的 WebSphere 集群模式

模式设计师可获取创建这种应用程序配置的所有专业知识。不熟悉 WebSphere 集群配置的用户现在可部署该模式,而且每次都可实现一致的部署。


高可用性场景

本小节介绍了一些展示 PureApplication System 功能的场景。

常规操作

在正常情况下,应用程序的用户请求分布在两个 PureApplication System 机架上,这些机架在独立的 WebSphere 集群中运行应用程序的相同副本,如图 4 所示。

图 4. 正常处理的应用程序工作负载
正常处理的应用程序工作负载

负载平衡器帮助支持这种场景,两个机架上服务的请求数量大致相等,而且只要检测到这两个应用程序实例处于健康状态下,它们就会继续支持该场景。


操作故障转移场景

本小节主要探讨一些可能出现的故障场景,并检查多站点设置如何处理这些场景以及如何继续为用户请求服务。本小节的目的是让人们相信 PureApplication System 能够提供一系列功能,帮助最大程度地减小对这些可能故障的业务的影响。

集群成员故障

如果 WebSphere 集群成员在机架上出现故障,那么应该由其他集群成员和另一个机架上的集群来继续处理该请求。这是标准的 WebSphere 集群功能。在理想情况下,预计对任何用户都无明显影响,只会损失少量带宽。

其他模式可用于包括 WebSphere Version 8.5 Intelligent Management 功能在内的 PureApplication System。这些模式包含弹性伸缩,在这种模式下,可通过自动启动一个新的集群成员来补偿故障集群成员。这对那些带宽和性能非常重要的企业很有帮助。如欲了解关于 Intelligent Management features of WebSphere V8.5 的更多信息,请参阅 WebSphere Application Server V8.5 中的新功能

集群故障

如果整个集群发生故障,那么负载平衡器会检测到集群是否处于非健康状态,并让事务远离故障集群。该事务继续由另一个机架上的集群提供服务,同时,如果容量允许并且系统能恰当配置和维护的话,用户会发现这通常对性能没有什么影响。

计算节点故障

PureApplication System 的高可用性特性有助于维护计算节点未发生单点故障的状态。PureApplication System 会自动取消故障计算节点上的工作负载并将其引入操作节点。这些恢复功能依赖于正确配置的系统,该系统由至少包含两个计算节点的云资源进行操作。

根据故障的性质,故障应在对用户没有明显影响的情况下发生,因为集群成员是跨多个计算节点分布的。即使计算节点瞬间发生故障,另一个节点上的成员依然可以继续进行服务。在高可用性设置中,另一个机架上的集群也可以享受服务。

机架故障

如果机架发生故障,负载平衡器会注意到请求无法被响应,同时将工作负载发送到另一个机架上,参见图 5。

图 5. 尽管机架运行中断但仍然可处理应用程序工作负载
尽管机架运行中断但仍然可处理应用程序工作负载

用户可能注意到服务发生了中断,具体中断情况视应用程序而定。例如,如果用户已登录,那么他们可能发现自己必须重新登录。在建立与另一个机架的新会话时,未写入数据库的临时数据将会丢失。除此之外,还要维护服务,尽管这会减少带宽。机架上的弹性伸缩和充足空间容量能够缓解故障,例如,可启用其他集群成员来增加负载。


结束语

本文介绍了一个在地理上分散的 PureApplication System 机架上运行 Web 应用程序的样例设计,帮助用户实现关键业务工作负载的高可用性。该设计描述了有助于满足这些高可用性服务水平需求的方法,还提供了应对组件故障和整个数据中心的损失的弹性机制。

PureApplication System 是该设计的基础,由它采用了基于模式的部署方法,所以设置和维护多机架、多站点环境会比较简单,而且是可重复的,在理想情况下不会出现重大错误。PureApplication System 以及 WebSphere 集群技术的弹性和可伸缩性,为现在的企业构提供了运行其业务关键应用程序工作负载的优秀平台。

虽然本文主要介绍的是高可用性设置的设计以及它在各种操作场景中的表现,但是还应考虑以下情况:在了解如何支持企业的 IT 环境时,企业需考虑应用程序的生命周期。一个需要考虑的关键因素是,在维护高可用性服务水平时,如何将维护有效 地应用于操作系统、中间件和应用程序。

PureApplication System 有许多可用于流线化应用程序、中间件和操作系统维护的设备,同时还能提升业务应用程序的高可用性。本文的续篇,操作维护期间的高可用性,将会详细地介绍了这些设备。

致谢

作者想要感谢 Peter Van SickelShaun MurakamiSimeon D. MonovVenkata Gadepalli 为本文所做的贡献。还要感谢 Kyle BrownJeffrey CoveyducSusan Holic 对本文出版所做的审校。

参考资料

学习

讨论

条评论

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=Cloud computing, WebSphere
ArticleID=947610
ArticleTitle=使用 IBM PureApplication System 跨多个站点实现高可用性
publish-date=10082013