Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1134263
  • 博文数量: 113
  • 博客积分: 2422
  • 博客等级: 大尉
  • 技术积分: 1393
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-25 17:54
文章分类
文章存档

2016年(1)

2014年(8)

2013年(7)

2012年(13)

2011年(42)

2010年(26)

2009年(6)

2008年(6)

2007年(4)

我的朋友

分类:

2007-04-15 18:08:44

 

 

 

高可用性集群多处理软件(HACMP

最佳实践

20053

 

白皮书

 

 

 

 

 

 

 

 

 

内容                           页号

 

概述                         2

设计高可用性                 2

集群部件                        3

参考                                7

有关作者                  7


概述

 

IBM 高可用性集群软件(High Availability Cluster Multiprocessing (HACMPTM)) 支持广泛的配置,为集群管理员提供了非常高的灵活性。这种灵活性带来了多种的选择:有许多可行的集群配置可以通过一般的审核以及上线运行,但是却没有优化以提供应有的可用性。本文讨论了集群设计人员可以做出的选择,从可选方案中提出建议,以帮助最高的可用性级别。

 

设计高可用性

 

HACMP是高可用性集群。从根本上讲,它通过在集群中使用冗余硬件,当发生一个硬件或软件失效时使备用部件上线,从而达到高可用性的目的。从这点上延伸,应该适当地遵循一个原则,即任何一个保证应用运行的集群元件都应该有一个相同型号的备份。我们经常把这称作-不应该存在单点故障(single point of failure)”,即在集群中不应存在没有备份的硬件或软件元件。

 

即使没有单点故障的原则已经被广泛接受,但有时候仍然被有意无意地违反。当设计者忽略某个特定部件的失效性推断时,容易无意间违反。而当设计者由于某种原因选择不增加某冗余硬件时,则会有意违反此原则。最常见的例子如发现集群节点不具备足够的插槽以容纳足够的冗余适配器。这种选择往往是自相矛盾的:表面看好像是节省了成本,实际上既然实施了集群,其价格当然远远高于单机的方案,而此集群却又无法提供应有的高可用性。

 

一个集群应该被仔细地规划,以使每一个集群元件具有备份。最佳实践除了参考本文提供的建议以外,还包括使用在线计划工作单,并将其存档,以作为此系统目前和未来实施的重要资料。

 

集群部件

以下推荐信息用于重要的集群部件:

 

节点

 

HAMCP支持最多32个节点的集群,包含任意活动和备用节点的组合。当需要所有结点都运行应用时(相互接管配置),最具可靠性和可用性的集群应有至少一个备用结点 一个在正常情况下不运行任何应用的结点,它可用于接管任何一个其它的活动结点。

 

此外,应该对周围环境加以足够的重视。这一点非常重要。譬如,当多个节点被安装于一个机柜中时,不应将各节点都连接到同一个供电单元上。同样,允许在测试环境中实现运行于一个物理处理器上的多逻辑分区(LPAR)集群,当却不应在生产环境中使用此方案。

 

应该选择具备足够I/O插槽的节点,以安装冗余网络及存储适配器。应避免使用那些只有少量插槽的机型。在最佳实践中不应使用不具备冗余适配器的节点。刀片服务器是体现这一原则的一个突出的例子。同样,正如每个集群资源应该有备份,每个节点的根卷组(root vg)都应该被镜像。

 

高可用性集群中节点的工作能力应该大于单机工作高峰时所需的能力,以使剩余能力可以用于HACMP的运行,并接管其它服务器。计算能力包括CPUI/O带宽等。应该仔细测算或模拟生产应用所需能力,选择节点时应确保其在正常情况的最大工作负载不超过其能力的85%

 

需要注意的是备份节点应该考虑适应所有可能的工作负载:如果是采用一备多的方案,备份服节点应该能够支持多个工作负载。在支持动态逻辑分区(DLPAR)的节点中,HACMP可以被配置为将处理器和内存分配给正在接管任务的备份节点,并根据其能力需求配备足够的资源。不管怎样,这部分资源必须真正可用,或从按需能力升级(CUoD - Capacity Upgrade on Demand)得到。在规划中要准备应付最坏的情况,譬如,所有的应用都被一个备份用节点接管并运行。

 

网络

 

 

网络和适配器是HACMP在节点间传输心跳的途径。对此而言,多就是好;最可靠的集群中可能有三个或更多的网络,以确保不会发生与之结合的软硬件失效时导致心跳连接不通畅。

 

HACMP强烈建议在两节点间至少需要一个非IP网络。在多于2个节点的集群中,最为可靠的配置为每节点包含2个非IP网络。非IP连接的距离限制通常为RS-232连接 常常使这一需求难以实现。硬盘心跳允许在无须增加硬件的情况下方便地建立多条非IP网络。一个不具备每节点至少一个非IP心跳路径的集群不应被称为最佳实践的方案,它仅仅是一个可行的方案。

 

(IP心跳连接的目的常常被误解。此需求来自于如下情况:HACMPIP网络心跳上传输的是UDP协议包。这意味着如果一个节点或网络发生拥挤,可能造成心跳包丢失。如果只有IP网络,并且这一拥挤发生的时间足够长,此节点将被视为发生失效,HACMP可能就此发起接管。而其实此节点仍然是活动的,HACMP接管会导致两个节点同时使用同一个IP地址,并引起两个节点争抢共享磁盘的主导权和发生实际访问。这种情况有时被称为精神分裂。在这种状况下不可避免地会导致对数据的破坏。)

 

在实施一个安装时,将经常发现在HACMP集群中需要访问某个特定的节点,如在运行报告或诊断时。为支持这项工作,最佳实践是为每一个节点定义一个节点假名。这样可以利用HACMP的一个优势技术,即在单独适配器失效时保持IP地址的可用性。而这需要在相关网络上保持备用的适配器。经验显示设计者经常喜欢用启动(boot)地址或待命(standby)网卡兼用于此用途。而这是必须避免的。如此使用一个启动或待命网卡-常用于TELNET操作-将干扰HACMP对其的使用,非常可能引起接管的失效。

 

适配器

 

每个指定用于HACMP的网络至少需要在每个节点上准备2块网卡。虽然使用更少的卡建立集群是允许的,但是其后果是由于卡失效引起不必要的资源组迁移 不得不迁移到另一个节点。AIX 5L™ V5.2提供一个网络接口备份工具(Network

Interface Backup - NIB),可以用来对卡失效提供特别快速的响应。这需要在HACMP集群中小心设置,并作好适当的存档工作。当实施完成后,它将提供针对卡失效的最高级别的可用性。

 

许多IBM ~® pSeries® 机型包含内置的以太网适配器。如果节点在物理位置上相邻,就有可能将2个节点的内置以太网接口用对绞线互连,在2节点间建立一个便宜的以太网心跳连接。请注意这并不能替代非IP网络心跳。

 

有些适配器提供多个端口。此网卡的一个端口并不能用来备份同一卡上的另一个端口,因为这块网卡本身就是一个单点故障点。对于大多数~ p5p系列机型,以及现有的刀片来说,集成的多个以太网端口仍同属于一个通用适配器。即便使用内置的以太网卡,最佳实践仍然建议在此节点中使用一块额外的网卡,以提供冗余备份。

 

应用

 

理解一个应用软件正常运行所依赖的物质环境是为其准备HACMP集群的重要环节。这包括HACMP直接管辖的操作IP地址,卷组和文件系统 以及那些非直接管辖部分 如配置信息。 后者通常是集群产生问题的源头所在:如果配置信息没有被保存于共享卷组中,在发生变更时会常常忘记同时修改所有节点上的相关信息。这将导致应用不能在备份节点上正常启动和工作。因此,最佳实践在此将以在一个共享的卷组上保存此应用的所有配置信息为首任。

 

以上的建议可能对于某些应用和安装是不可能的。如果是这样,可以利用HACMP V5.2的文件收集(File Collections)工具来保存相关的配置信息,使其在跨集群的范围内同步。

 

HACMP提供监控一个应用的能力。这可以被用来检查死进程,或运行一个用户补充的监控方法。当应用提供某种模式的交易处理时,后者的作用尤其显著。- 一个监视器可以运行一个空交易以确保应用是可用的。对于应用来说,最佳实践将适当地采用死进程监控和用户自定义应用监控。

 

HACMP提供一系列的工具来帮助客户化,如事先和事后事件脚本。需要仔细使用那些HACMP同时用于供给 mam page使用的工具 那些工具将确保其上层的兼容性。

 

如果没有很好的维护,再仔细的集群计划和配置都会出现问题。HACMP集群最佳实践包括很大一部分与维护软硬件变更相关的初始化工作,以确保正常的集群工作状态。

 

测试

 

简单地说,对于测试,最重要的事情是实际运行。

 

一个集群应该在开始生产前被彻底地测试,并以没有错误和报警的状态进入生产运行。这意味着每个集群节点以及HACMP使用的每一个接口都应该被停止和再次启用,来验证HACMP像预期的那样响应。对于集群的每一个变更,最佳实践将以同样的级别实施测试。HACMP v5.2提供一个集群测试工具,可以在集群进入生产状态前运行于此集群上。它将核实应用是否能够在节点、网络和适配器失效后使应用重新上线。这个测试工具应该作为全面集群测试工作的一个部分来运行。

 

此外,应该计划常规的测试。这是一个常规的安全建议,就像家里每年要作2次烟雾探测器检查一样。类似的,如果企业能够制定计划时间表,应该每年进行2次节点接管的切换测试。这些测试可以至少显示出有没有问题的衍生,并且帮助及早纠正,防止集群在生产状态下宕机。在更加正规的安全计划中,应该运行HACMPclverify。不仅仅是报错信息,即便是警告信息也应同样认真对待,并且在第一时间纠正。(HACMP V5.2每天自动运行clverify。在此级别的安装应该例行检查每天的日志,并对任何警告或错误报告作出反应。)

 

 

维护

 

在任何对集群节点做出变更之前,作出HACMP快照(snapshot)。如果此变更涉及安装HACMPAIX5L或其它软件的补丁,应该做一个mksysb备份。为了成功地完成此变更,使用SMIT显示集群配置,打印并保存smit.log文件。可以用在线计划工作单(Online Planning Worksheets)工具产生一个集群配置报告。如果企业内有多个相同或近似相同的集群,则最好准备一个与生产环境相同配置的测试环境。所有对于应用、集群配置、或软件的变更应首先在测试环境中得到验证,然后再实施于生产环境。可以用HACMP v5.2集群测试工具对此操作部分地实现自动化。

 

软件维护或升级(AIX5L,HACMP或应用软件)应该首先在备用节点上实施(在上面提到的备份措施后)。此节点重新启动后 (重新启动的步骤不可省略,不论特定的维护措施指南中有没有要求), 应该把资源组移交给这个节点。一旦发生困难,则可以把应用重新转移回原先运行的生产节点。如果应用运行没有出现明显的问题,则可以允许继续在此备用节点上运行,直到生产节点完成升级。虽然HACMP可以运行在不同版本的AIX5LHACMP的混合环境中,但其最终目标仍然应该是在所有节点上运行相同版本的AIX5LHACMP及应用软件。此外,在集群中出现HACMP版本不一致的情况下,HACMP会阻止集群配置的变更。

 

变更控制在一个HACMP集群中具有生死攸关的重要性。在某些组织内,数据库、网络和集群等的管理是由相互分隔的人员或小组负责的。当任何小组计划维护一个集群节点时,应该与其它相关人员取得协调。应该告知所有的变更信息,以避免产生问题。组织层面的策略必须排除单方面地更改某集群节点的行为。此外,在HACMP集群内的变更控制需要确认一个目标,即使所有集群节点达到同样的版本。仅仅升级与某个应用软件相关的节点是不够的。

 

最后,最佳实践使用HAMCP C-SPOC工具管理任何对于共享卷组(VG)的变更。如果安装在集群节点上使用AIX5L口令控制(NISLDAP不兼容),也应该使用C-SPOC管理所有用户和组信息变更。HAMCP将确保集群中所有节点的变更得到适当的反应。

 

监控

 

HACMP提供丰富的工具用来监控一个集群。实际使用的工具可以按照企业策略被适当地设置。(如:Tivoli可被用来监视所有企业系统)。如果没有制定此类策略,可以使用clstat。它应该全程运行,以方便地确定集群状态。此外,HACMP可以在集群事件发生时调用通知方法(诸如一个发消息或e-mail的程序),甚至发送一个页面。最佳实践应该准备好某些通知的形式,以备用于所有与软硬件失效相关的集群事件。

 

IBM HACMP 软件首先发布于1991年,如今已经逐步演进到它的第14个版本。已经有超过6万个处于生产状态的HACMP集群运行与全球。它被公认为是强壮的,高度成熟的可用性软件产品。要获得更多的有关HACMP的信息,请联系您的IBM业务代表,或访问:

 


参考

 

IBM Web 页面:

HACMP for AIX 5L Version 5.2

ibm.com/servers/aix/products/ibmsw/high_avail_network/h

acmp.html

 

IBM 培训服务:

pSeries Logical Partitioning (LPAR) for AIX 5L, 课程号 Q1370

HACMP System Administration I: Planning and Implementation, 课程号 Q1554

HACMP System Administration II: Maintenance and Migration, 课程号Q1557

HACMP System Administration III: Problem Determination and Recovery, 课程号 Q1559

HACMP System Administration II: Master Class, 课程号 Q1556

 

有关作者

Tom Weaver

Tom Weaver 1994年以来就作为HACMP产品设计师。在此工作中,他负责定义HACMP产品的内容和方向。他以其职业生涯关注于提高IBM产品的可靠性,可用性和可服务性。

阅读(2764) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~