推广 热搜: 系统  无线覆盖  弱电系统  WMS  弱电  信息  网络  解决方案  行业  息系统 

HACMP的概念和原理

   日期:2015-03-31     浏览:387    评论:0    
核心提示:容灾冗余,灾备

 HACMP的概念和原理

关键业务的连续性可以通过以下三个层次的方法实现:

磁带备份

磁带备份是实现基本的业务连续的通用方法。信息先备份到磁带上,然后送到另外的地点保存。这种方法的问题在于磁带备份往往需要较长的时间来记录数据。另外,在数据备份过程中或者做数据备份前的系统或环境故障很可能造成数据丢失。而且,从备份磁带上恢复数据也需要很长的时间,数据存储得越多,恢复的时间越长。

高可用系统

高可用系统一般是在一个地点,通过高可用软件将一组服务器连接在一起,组成一个群集。IBM的HACMP for AIX和HP的MC/ServiceGuard就是这样的群集产品,通过快速地将用户、应用和数据从发生硬件或软件故障的机器切换至其它机器来提供高可用计算环境。

容错系统

容错系统依赖于冗余的硬件设备和软件来实现关键业务的连续性。虽然容错系统是避免宕机和数据丢失的有效方法,但是购买、操作和维护容错系统都是非常昂贵的。另外,系统的升级也需要很大的代价。
用户可以根据自己的应用情况选择适合自己的方法实现关键业务的连续性。

HACMP简介

IBM公司的HACMP for AIX软件是基于AIX平台的,在高可用系统层次实现关键性任务计算环境的工具软件。HACMP应用于RS/6000系列的单处理器机型、对称多处理器机型或SP的节点,可以检测系统故障并快速恢复服务,使最终用户只感受到很小的中断时间。HACMP(High Availability Cluster Multi-Processing)有两个主要的组成部分:高可用技术(HA)和群集多处理技术(CMP)。

高可用技术(HA)
在HA产品出现之前,在UNIX领域实现高可用性的最有效途径是通过容错技术。容错技术依靠专门的硬件设备检测到硬件的故障,然后立即切换至冗余的硬件设备上,不管故障设备是处理器、内存板、电源、I/O子系统还是存储子系统。尽管这种切换能够无缝地提供不间断的服务,但却在硬件费用和性能上付出了很高的代价,因为冗余的设备不能处理事务。更重要的是,容错系统不能处理软件故障,而这却是宕机的最常见的原因。
高可用技术并不是通过将可用性当作一系列重复的物理设备来实现高可用性,它将高可用性看作是一个全系统范围的、共享的资源的集合,这些资源相互协作来保证关键的服务。高可用技术将软件和工业标准的硬件结合起来,在系统、设备或应用发生故障时通过快速恢复关键服务来使宕机时间减至最小。尽管不能立即切换,恢复服务也是很快的,通常在1分钟之内。
容错技术和高可用技术的区别在于服务中断的时间。当硬件发生故障时,容错环境没有宕机时间,而高可用环境有很小的宕机时间。但是,在容错环境中,由于软件故障无法被检测,有可能造成系统的严重破坏。而在高可用环境中,软件故障只会造成很小的宕机时间。
现在,大多数的公司都愿意忍受一小段的宕机时间,采用高可用技术,而不愿意花费高得多的代价采用只能检测硬件故障的容错技术。另外,在高可用配置中,备份机还可承担其他应用。

群集多处理技术(CMP)
群集多处理技术是指一组松散耦合的机器,通过网络连接在一起,共享磁盘资源。在群集中,多个服务器协同工作,为用户提供一组服务或资源。
将两个或多个服务器组成群集来备份关键应用是一个划算的高可用性解决方案。用户可以使用更多的技术能力,同时确保关键应用在硬件或软件故障后能够快速恢复正常工作。
群集多处理技术还为客户提供了灵活的扩展途径。客户可以很容易地在群集中增加处理器以分担不断增加的工作量,还可以对群集中的处理器进行升级。而在容错环境中,则必须同时增加两个处理器,其中一个作为冗余备份,在正常工作时不进行任何处理。

1.1 HACMP中术语的定义

群集(Cluster):
多个服务器节点一起工作,使用TCP/IP进行通讯,每个节点上运行Cluster Manager进程。

节点(Node):
群集中的每个运行Cluster Manager进程的独立的机器。节点是HACMP的核心部分,节点上运行AIX操作系统和HACMP for AIX软件。在HACMP群集中,每个节点有一个唯一的节点名。一个节点可能拥有一组资源??――磁盘、卷组、文件系统、网络、网络地址和应用。节点上一般运行着访问共享磁盘上数据的“后台”应用。

资源(Resources):
由一个节点控制的实体,当节点发生故障时能够被其它节点接管。可以被当作资源的实体有:
1、磁盘、卷组、文件系统
2、NFS输出的文件系统
3、IP地址
4、应用程序

关键应用(Critical Application):
由HACMP控制其启动和停止的应用程序,例如数据库的后台进程。

事件(Event):
群集中发生的一些事情,即群集状态的改变,包括节点up/down,网络up/down,网卡故障等等。

行为(Behavior):
事件发生时群集的响应动作。事件是由shell脚本控制的。

重聚(Reintegration):
将故障节点、网络、网卡重新带回群集的过程。

1.3  HACMP群集的硬件组成

节点、共享磁盘设备、网络和网卡、客户机

节点机型:

HACMP for AIX软件支持RS/6000单处理器和SMP机型作为群集的节点。在HACMP中,SMP系统和单处理器机型一样,都被当作单一节点。采用SMP系统是提高整个群集吞吐量的有效途径。群集中的每个节点都可以是一个大的SMP系统,使得群集系统远远超过单个系统的处理能力,可以支持成千上万个客户机连接到单一的数据库系统。

共享磁盘设备

群集中的每个节点都需要配置内置硬盘来存储AIX操作系统、HACMP软件和应用程序。另外,每个节点都应连接到一个或多个外置的共享磁盘上。
共享磁盘是指物理上连接到多个节点的磁盘设备,共享磁盘上存放着关键任务的数据,通常采用镜像或RAID技术来提供数据的冗余保护。
HACMP的共享磁盘设备支持SCSI-2 Differential磁盘、SCSI-2 Differential磁盘阵列和串行磁盘。
HACMP支持两种对共享磁盘的访问方式:非并发访问和并发访问。
在非并发访问环境中,每个时间点上只能有一条活动的连接,保持活动连接的节点拥有磁盘,当此节点离开群集时,它拥有的磁盘被其他节点接管。
在并发访问环境中,共享磁盘同时与多个节点保持活动连接,因此当节点故障时,不需要接管磁盘。并发访问要求SSA或RAID作为外置共享磁盘。
共享硬盘应该单独放在一个机柜中,不应和机器混放。

网卡
一个节点至少应有两块网卡连接每个网络:一块服务网卡(service adapter)和一块备份网卡(standby adapter)。如果配置IP地址接管,还应配置启动网卡(boot adapter)。启动网卡并不需要单独的物理网卡,而是配置在服务网卡上的不同的IP地址。
HACMP for AIX采用网卡标识(adapter label)来识别网卡。对于TCP/IP网络,网卡标识是在文件/etc/hosts中关联某一IP地址的名字。一个节点可以定义多个网卡标识和IP地址。

网络

HACMP使用LAN来监视网络,网卡和其它节点的状态,HACMP支持AIX支持的大多数基于TCP/IP 的网络,如 Ethernet、Token-Ring、FDDI、ATM等等。HACMP中定义了三种类型的网络:公用网络(public network)、私用网络(private network)和串行网络(serial network)。

公用网络
在HACMP环境中,公用网络连接多个节点并允许客户机服务群集节点。Ethernet、Token-Ring、FDDI、ATM等网络可以被定义为公用网络。

私用网络
HACMP群集中的节点必须相互通讯以实现对数据的连续访问。私用网络提供两个节点之间的点到点通讯,但不允许客户机访问。HACMP使用私用网络来传输锁的信息,只有在没有定义私用网络时才使用公用网络来传输锁的信息。
私用网络一般用于并发访问磁盘的情况。Ethernet、Token-Ring、FDDI、ATM等网络可以被定义为私用网络。

串行网络
串行网络是两个节点之间的点到点连接。HACMP在TCP/IP子系统发生故障时,使用串行网络来传输控制信息和心跳信息。串行网络可以是一条SCSI-2 Differential总线或一条RS232串行线。

网络名称
网络名称用于标识HACMP群集中的网络,群集进程使用网络名称信息来确定哪些网卡连接在同一物理网络上。网络的命名是任意的,但必须保持一致。如果多个网卡连接在同一物理网络上,定义这些网卡时必须使用相同的网络名称。

客户机

客户机是指能够访问群集中节点的机器。客户机通过公用局域网络与节点通讯,其上运行“前端”程序或客户机应用来访问群集节点上的服务器应用。HACMP for AIX为群集节点上的关键性的数据和应用提供高可用性环境,但不负责客户机的高可用性。


1.3  AIX与HACMP

AIX是第一个,也是最为成熟的第二代UNIX操作系统,具有很多先进的特征,保证UNIX系统的可靠性和高性能,IBM公司引入到UNIX中的LVM逻辑卷管理和JFS日志文件系统,使AIX更容易使用和管理。AIX满足几乎所有的工业标准和事实标准,是真正的开放系统。
AIX包含许多承袭IBM大主机等级的优异特性,诸如系统集成性、系统管理及系统可用性。除了具有当系统损毁时可以快速修复的文件系统外,IBM运用自身在计算机领域45年的经验,增加了逻辑卷管理和日志文件系统等功能,支持三份能够同步写入及错误区块重新配置的系统镜像功能,用以确保您高价值的数据。
IBM在设计RISC/6000的AIX操作系统时,针对UNIX系统的弱点,重新改写了UNIX的内核,清除200个编程缺陷。在系统功能稳定性、可靠性和可管理性方面做了极大的改进,使UNIX从一个主要面向科技市场的操作系统,发展成为能够承担关键任务的成熟的操作系统。
AIX具有动态可扩展内核,用户装卸设备时可联机动态配置,无须关机和重新启动,具有实时的扩展功能。所有硬件设备均可随时动态增加、更换而不影响文件系统及其数据。
AIX中的许多功能和HACMP紧密配合,为用户提供更高的可用性。以下介绍AIX中与HACMP相关的几项功能:LVM、JFS、ODM、SMIT和SRC。

逻辑卷管理器LVM(Logical Volume Manager)
LVM逻辑上将多个硬盘当作单一实体进行管理。使用LVM可将存储空间分区为“逻辑卷”,可以指定其存放位置,以获得优化的性能和可用性。逻辑卷(文件系统)可以动态扩展而不需重新配置整个逻辑硬盘子系统。逻辑卷可以镜像,避免磁盘的单点故障。
LVM使磁盘资源很容易被其他节点接管。

日志文件系统JFS(Journaled File System)
在传统Unix中,文件系统恢复需要很长时间且文件系统的完整性不能得到保证。AIX使用日志文件系统,所有对文件系统的更新在写到文件系统之前先记入一个日志之中,当系统故障后JFS日志可以被重新执行,文件系统的更新可以根据日志前滚或回滚(roll forward/back)。AIX很少用到fsck命令进行整个文件系统的恢复,所以故障后恢复文件系统的时间大大减少,也就大大减少了文件系统接管的时间。

ODM(Object Data Manager)
ODM是一个面向对象的数据库,其中存放着系统的配置信息。采用ODM管理使配置信息更加安全,可以免受偶然的或故意的损坏。ODM库一般通过SMIT、高级命令或应用程序进行访问。
所有的HACMP配置信息都存放于ODM库中。
HACMP for AIX使用“Global ODM”,可以在一个节点上做配置,然后传到群集内的所有节点。这样可以减少配置的工作量,并保证各个节点上配置信息的一致性。

SMIT(System Management Interface Tool)
AIX中绝大部分系统管理功能都可以通过SMIT完成(95%以上)。使用SMIT减少了偶然使用错误命令或错误选项的可能性,增加了系统的可用性。
HACMP全部用SMIT管理,快捷路径是smit hacmp

SRC(System Resource Controller)
SRC是一个AIX进程,用来管理其它的进程。使用startsrc和stopsrc命令来启动、停止由SRC控制的一组进程。如果SRC控制的一个进程非正常终止,SRC会自动执行一个特定的程序来响应。
HACMP的进程都是由SRC控制和监视的。

1.5 HACMP群集的软件结构

HACMP for AIX软件由以下部分组成:

Cluster Manager、Event Scripts、Cluster Lock Manager、Clinfo、Clsmuxpd

Cluster Manager
Cluster Manager运行在群集中的所有节点上。它的主要任务是监视和响应群集状态的变化,包括:节点故障和恢复、网络故障和恢复、网卡故障和恢复。它负责同步和协调群集内部的动作,发现错误征兆,诊断问题,并做出适当的反应。它还负责执行Event Scripts(事件脚本)来影响群集状态的变化 。

Event Scripts
Event Scripts 定义了为响应群集事件所需执行的动作。HACMP包括了大多数情况下的Event Scripts,这些Event Scripts是用标准shell编写的,使用标准AIX命令和HACMP功能,且可以客户化。

Cluster Lock Manager
用于并发访问环境,使多个节点可以同时访问相同的数据。应用程序必须用Cluster Lock Manager API来登记、申请、释放锁。Lock Manager协调和排序对共享数据的访问,防止数据的不一致和错误。

Clinfo & Clsmuxpd
Clinfo是Cluster Information进程。Clinfo API允许应用程序来确定群集现在的状态和释放动作响应变化,每当群集内有事件发生时Clinfo发布信息。
Clinfo的通讯基于SNMP依靠SNMP的代理(clsmuxpd)接收群集状态的改变。
Clinfo是可选的。

1.6  HACMP群集资源

HACMP for AIX软件通过以下途径提供高可用性环境:
定义一组必须的群集资源,资源可以是硬件,也可以是软件。
定义群集节点访问这些资源的关系。这些关系确定哪个节点控制资源以及当该节点放弃资源的控制权后哪个节点接管资源。当一个节点离开群集时,Cluster Manager能够将这个节点的资源转移到群集中的其它节点上。

资源的类型
应用、磁盘、卷组、文件系统、NFS文件系统、IP地址

资源怎样做到高可用
应用:
由HACMP启动,如果节点发生故障,则在另一节点重新启动。

磁盘、卷组、文件系统:
磁盘物理上与多个节点相连。在非并发环境中,一个节点控制磁盘资源,如果该节点发生故障,它控制的磁盘资源由其它节点接管。在并发环境中,多个节点同时控制磁盘资源,一个节点发生故障并不影响其它节点。

IP地址:
如果服务网卡发生故障,由本机的备份网卡接管其地址,称为“网卡切换”。如果整个节点故障,由另一个群集节点的备份网卡接管其地址,称为“IP地址接管”。

 资源组
每个HACMP的高可用资源都必须被分配在某个资源组中。资源组允许您将相关的资源结合成一个单一的实体,便于配置和管理。
HACMP共有三种类型的资源组,分别是Cascading资源组、Rotating资源组和Concurrent资源组。在一个群集中可以有多个不同类型的资源组。定义资源组的类型实际上就是定义了群集的故障恢复策略。

Cascading资源组可以被一个或多个节点接管:
所有被指定参与接管一个资源组的节点都是该资源组的资源链的一部分,每个参与的节点都被指定了接管优先级,优先级代表了接管可用资源的顺序。
当接管发生时,具有最高优先级的活动节点将获得资源组。如果该节点不可用,则由具有次高优先级的节点获得资源组,依此类推。
当对该资源组具有更高优先级的节点重新回到群集后,它将取回它的资源组。

一个Rotating 资源组和一组节点相关联。资源组在所有被定义的节点之间轮转。每个节点可以拥有一个资源组。
开始时,第一个加入群集的节点获得第一个资源组,第二个加入群集的节点获得第二个资源组,依此类推,直到所有的资源组都被节点获得。剩余的节点作为备份节点。
当一个控制资源的节点故障时,可用节点中对资源组具有最高优先级的节点将接管资源组。当故障节点重新加入群集后,成为备份节点,不再取回资源组。

Concurrent 资源组由多个节点共享。所有并发访问资源组的节点在加入群集后都获得该资源组。节点之间没有优先级的区别。
由于AIX JFS 不支持并发访问,应用就必须用生设备(逻辑卷)。因此Concurrent 资源组的资源只能有应用、磁盘和卷组。
Concurrent 资源组的共享磁盘必须是SSA盘或RAID盘。

资源链
每个能访问资源组的节点都必须被列为参与节点,参与节点的列表就建立了资源组的资源链。这样,这几个节点都可以参与维护资源组的可用性。
对于Cascading资源组或Rotating 资源组来说,这也就建立了资源链中各节点的优先级。
对于Cascading资源组,当前在资源链中具有最高优先级的活动节点将从故障节点处获得资源组。
对于Rotating资源组,当前在资源链中具有最高优先级且具有可用连接(网络、网卡、IP地址)的节点将从故障节点处获得资源组。接管节点可能是已经拥有资源的节点,也可能是备份节点。

HACMP对资源组的位置有如下假定:
Cascading:具有最高优先级的活动节点控制资源组。
Rotating :具有与Rotating资源组相关的服务地址的节点控制资源组。
Concurrent:所有活动节点都拥有资源组。

1.6 建立高可用系统——避免单点故障

高可用系统的主要特点是具有检测和响应可能影响到关键服务的事件的能力。HACMP for AIX软件使群集在遇到系统的关键组件(例如网卡)发生故障的情况下仍能继续对外提供服务。
HACMP for AIX软件通过避免单点故障的方式建立高可用的和可扩展的群集。单点故障点是指一个关键的群集功能只由单一的组件提供,当这个组件故障时,群集没有其它的途径提供关键的服务。
在群集中,有可能出现单点故障的群集组件是:
节点、网络和网卡、磁盘和磁盘控制卡、应用
HACMP可以检测和响应三种类型的故障:节点故障、网卡故障和网络故障。

 节点故障
指处理器硬件或操作系统故障。当发生节点故障上,其它节点可以配置为:
接管共享磁盘、Vary-on卷组、Mount文件系统、Export NFS文件系统、接管IP地址、重启应用。
磁盘物理上与多个节点相连。在非并发环境中,一个节点控制磁盘资源,如果该节点发生故障,它控制的磁盘资源(包括卷组、文件系统等)由其它节点接管。在并发环境中,多个节点同时控制磁盘资源,因此不需要磁盘接管。
IP地址接管使另一节点可以获得故障节点的网络地址。当提供给客户机的服务绑定到一个特定的IP地址时,必须配置IP地址接管。如果只接管磁盘,客户机将无法访问服务器的IP地址。
当关键应用的节点离开群集时,接管节点重新启动这个关键应用,使服务得以继续。

 网卡故障
HACMP软件能够处理服务网卡和备份网卡的故障。当服务网卡故障时,Cluster Manager将同一节点的服务网卡和备份网卡进行切换,服务网卡的故障是透明的。Cluster Manager检测到备份网卡故障时只是记入日志,并不进行其它操作。

 网络故障
当群集中连接所有节点的网络故障时,由于网络配置各不相同,所以HACMP无法定义响应动作。此时系统在主控台上显示信息,事件被记入日志。用户可以根据实际情况自己编写脚本程序来响应网络故障。
在大多数配置中,网络都是单点故障点。为避免发生网络单点故障,建议在配置HACMP时配置双网络。

 其它类型的故障

 磁盘和磁盘控制卡故障
HACMP自己不能直接处理磁盘和磁盘控制卡故障。但是数据可通过AIX的LVM 镜像或磁盘阵列的RAID功能处理。
如果共享磁盘使用SCSI-2 Differential磁盘或SSA磁盘,磁盘故障可通过AIX的LVM 镜像处理。此时需要跨磁盘进行LVM镜像。单一磁盘故障就不会影响数据的可用性。如果磁盘配置卡发生故障,数据可通过跨总线的LVM镜像来复制。
如果共享磁盘使用磁盘阵列,磁盘阵列自己负责数据的冗余保护。在连接RAID磁盘阵列时应采用多总线,避免磁盘配置卡的单点故障。

 其他硬件故障
在HACMP中没有直接支持,但可通过AIX Error Notification功能来捕获特定错误并执行响应命令,例如:当发生关键硬件故障时可以shutdown,由另一个节点接管。

 应用程序错误
可以自己编写应用监视程序监视应用程序的错误信息或进程状态,也可以通过AIX的SRC功能进行管理。

HACMP错误
HACMP的主进程发生错误时,可升级为节点故障进行处理。

 电源故障
不要将同一设备的电源连接到一个电源上,最好使用UPS。

1.7 哪些情况下不适合使用HACMP

HACMP并不是万能的,以下应用环境不适于采用HACMP来实现高可用性:
应用程序不在检查点(Check-Point)时将数据写入磁盘。这样会造成节点故障时,无法保证数据的完整性。
系统崩溃后,应用程序不能自动恢复其数据。
哪怕几秒钟的岩机时间都是不可接受的。
内存里的内容不能丢失
对于最后两种情况,建议采用容错系统。

 
打赏
 
更多>同类方案
0相关评论

 
最新方案
点击排行

网站首页  |  付款方式  |  版权隐私  |  使用协议  |  联系方式  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  RSS订阅  |  违规举报  |  京ICP备11008917号-2  |