`
Brooke
  • 浏览: 1180537 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
阅读更多
一、高可用性集群系统

集群技术(Cluster技术)就是将多台服务器用集群软件连接在一起,组成一个高度透明的大型服务器群的计算机系统,作为一个整体为客户端提供服务,客户端能共享网络上的所有资源,如数据或应用软件等,同时客户端的用户并不关心其应用Server运行在那台服务器上,只关心其应用Server是否能连续工作。当集群系统内某一台服务器出现故障时,其备援服务器便立即接管该故障服务器的应用服务,继续为前端的用户提供服务。

从客户端看来,集群中的所有服务器是一个系统,就像一台大型的计算机系统,其上运行着客户端需要的应用服务。由于集群系统能够保证用户的业务是连续的并且具有持续可用的特性,即具有7x24的可用性。在一年之内可达99.99%可用性时,这样的集群系统我们称为高可用性的集群系统。

在高可用性的集群系统中,由于是多台服务器在高可用性的集群系统软件的管理下为客户端提供服务,故每一个计算机的部件都有冗余备份,如服务器的主板、网卡、网络、电源系统、风扇系统、应用软件、存储设备 (Disk Array)等等,其中最重要的是数据存放的介质要有冗余保护,一旦某个部件出现问题,冗余部件会自动接管故障部件的工作,也就是说某台服务器出现故障,则备份服务器将在集群软件的指挥下自动接管故障服务器的工作,从而消除了此故障对整个系统的影响。

现在常用的双机热备系统仅仅是只有两个节点的、最简单的集群系统,是高可用性集群系统的特例。

高可用性的集群系统主要包括以下几方面硬件组件:

服务器组:在高可用性的集群系统中每个节点的服务器必须有自己的CPU、内存和磁盘。每个服务器节点的磁盘是用于安装操作系统和集群软件程序。

对外提供服务的网路:集群系统中的服务器一般采用TCP/IP网络协议与客户端相连。每个服务器上都有自己的应用服务,客户端必须通过集群服务器中的网络通路来得到自己的服务。心跳信号通路:在高可用性的集群系统中每个节点必须有心跳接口,用于服务器节点之间互相监视和通信,以取得备援服务器的工作状态。常见的心跳信号可分别透过串行通讯线路(RS232)、TCP/IP网络和共享磁盘阵列互相传递信息。心跳线路最好使用二条不同的通迅路径,达到监视线路冗余的效果。

数据共享磁盘:在高可用性的集群系统中由于运行的都是关键业务,故使用的存储服务器都应是企业级的存储服务器,这些存储服务器应具有先进技术来保障其数据安全。一般数据放在企业级的存储服务器的共享磁盘的空间中,它是各服务器节点之间维持数据一致性的桥梁,各服务器节点在集群软件的控制下不会同时访问共享磁盘。

集群系统易与容错系统混淆。容错系统在服务器内部的CPU主板上有单点故障,而集群系统是一个安全、稳定而可靠的系统,集群系统不光有集群软件,还有整个硬件平台的冗余,即整机备份。它是一个高可用、无单点故障的系统。集群系统对于客户端是一个整体,其内部不同的应用运行在不同的服务器中,每台服务器上有自己的CPU和内存来支持应用。而容错系统是一个具有冗余部件的计算机系统,所有的应用都运行在CPU主板上不同CPU上,内存共享。

二、高可用性集群技术的用户群

企业的信息化程度越高,数据的可用性、安全性、可靠性和高效管理就越重要。目前,按照人们对服务器设备的可用性方面的需求,将用户群分为三大类。

第一类用户,使用单个的服务器作为整个网络的中心,他们一般不要求服务器具有高容错性和高可靠性,只要能提供服务即可。

第二类用户,也使用单个的服务器作为整个网络的中心,但对中心服务器的高容错性和高可靠性有一定要求。如中心服务器具有冗余电源、冗余风扇、冗余硬盘等功能,在一定的条件下,能保证服务器的可用性。

第三类用户,对企业的中心主服务器群的要求较高。他们需要自己的业务系统具有7x24的高可靠性及高可用性的保证,由于其业务需要连续可用,使得他们在选择业务服务器群时,要考虑到99.99%的高可用性,这样,他们在采购服务器群时,提出了每台服务器内部所有的部件必须要有冗余的设计,如双CPU或更多的CPU、双网卡、双电源、双风扇、双光纤接口卡等等,也就是服务器要有整机备份。同时,他们还希望多台服务器连接在一起,形成一个集群系统,每台服务器之间又有一种相互备份的关系。如某台服务器运行某个应用,另一台服务器又是它的备份机,同时它又是其他服务器的备份机。这种多台服务器之间协同工作,作为一个整体为前端业务机提供服务的工作模式正是集群系统能解决的问题。

从上面对三类用户的分析中可知,只有企业中运行关键业务的数字化信息系统,并且他们的业务需要7x24的高可用性,如各企业中的主数据库服务器、对外发布信系的服务器等,才需要采用集群技术,以保证数据永不丢失和系统永不停机 (Non-stop)。

三、高可用性集群技术

1.高可用性

可用性:当用户需要数据和服务时,计算机能够根据请求完成响应则定义为可用性。可用性是以百分比形式表示的一种系统正常工作的时间。

高可用性系统: (high availability system)是由集群软件监控、具有多台服务器互相冗余的系统。此系统通过集群软件提供的故障监测和故障处理能力,可提供业务连续性的能力。高可用性系统的主要目的是将计划内及计划外宕机时间减少到最少;其次是减少恢复一个失败系统的时间,即应在最短的时间内恢复系统的运行。高可用性即确保计算机系统的运行时间达到99.999%。

容错系统: (Fauh Tolerance system)是由一台计算机系统采用专用的、昂贵的和有复制功能的设备组成的系统。如计算机内部采用特殊的双主机板、CPU锁步运行、冗余磁盘、专有的操作系统等。它是为防止系统出错、获得较高可用性的一种方法。容错性是整个操作系统统筹设计的一个功能,系统完全自发、自动响应系统故障,并提供不间断服务。

高可用性(high availability)并不等同于容错(Fauh Tolerance)。容错仅仅是设计高可用性系统的一方面,并不能说明恢复系统错误的时间。

单点故障: (Single Points of Failure,简称SPOFs)是当某一个硬件或软件组件出故障时将引起整个系统不能为用户提供服务的故障。

最终的高可用性系统应该是无单点故障的(Single Points of Failure,简称SPOFs)系统。

2.大容量存储服务器

在硬件技术飞速发展的今天,我们现在使用的存储服务器(即硬盘阵列柜)已不是单盘的概念。在存储服务器中我们总是将许多单棵硬盘按照某种原则组织起来,形成一个或多个大的逻辑硬盘来为用户服务。在高可用性集群系统中一定会使用到大容量的存储服务器。

大容量的存储服务器是指将存储服务器中的多棵硬盘通过RAID的技术,按RAID LEVEL组合成更大容量的逻辑硬盘空间(也称为LUN),一般从100GB、800 GB或到更大的5000 GB(5TB)不等。这样的超大容量的存储服务器(磁盘阵列)系统与服务器相连时,从主机端的操作系统上来看磁盘阵列的容量时,是一棵或多棵超大逻辑硬盘,而不是安装在存储服务器中的物理硬盘的数量和容量。这些逻辑硬盘与单个物理盘一样的可以分成不同的分区。现在用户的需求由目前的Gigabytes(GB)到Terabytes(TB,1TB=1000GB)进而到Petabytes(PB,1PB=1000TB),相当于10的15次方位元。

3.常用的双机热备的工作方式

一般常见的集群是二个节点,常见的二个节点的工作模式有三种方式:并发访问模式(concurrent)、互备模式(Active/Active)、热备模式(Active/Standby)。

并发访问模式:针对Oracle Parallel Server环境设计,允许多个节点在同一时刻访问同一块数据,不支持AIX的JFS,因此应用必须建立在裸逻辑卷(“raw’’logicalvolumes)上。

互备模式:正常情况下,二台服务器均为前端客户提供各自的应用服务,并互相监视对方的运行情况。当一台服务器出现故障情况,不能对客户端提供正常服务时,另一台服务器将接管对方的应用,继续为客户端提供正常服务,从而保证信息系统的业务不间断。

热备模式:正常情况下,一台服务器是工作机,另一台服务器为备份机。工作机在为信息系统提供服务时,备份机在监视工作机的工作。当工作机出现故障,不能对前端客户提供服务时,备份机接管工作机的应用,继续为客户端提供正常服务,从而保证信息系统的业务不间断。当工作机修复后,可重新接人系统要回自己的应用。

四、高可用性集群技术在信息系统的建设中的重要性

要保证数字信息系统业务连续性,就必须先保证高可用性。而要保证高可用,就必需使用高可用性的集群技术。

业务连续性是高可用性的最高级别,也是系统中最难实现的部分。业务连续性的实现要依赖系统的高可用性和系统的灾难恢复功能的实现,而系统中没有单点故障是保证业务连续性最基本的手段。对于数据的保护,应从数据的安全性和数据的可用性方面进行保护。在保护数据安全存放时,应考虑到我们通常选用的介质是否有很好的安全性,如,一级存储(硬盘介质),我们常选用具有数据安全保护措施的企业级存储服务器;二级存储就是我们经常使用的光盘、磁带等介质。在数据的可用性方面,我们常采用集群系统来保证数据的高可用性,对于二台的服务器,我们常常使用双机热备系统来保证系统的高可用性。

五、集群技术的结构选择

正是由于现在信息系统建设的飞速发展,数据信息正在以前所未有的速度迅速地积累起来。为了将宝贵的数据信息能安全的存放,同时在需要它的时候,能快速的提取,我们建议集群系统及存放数据的存储服务器使用Open SAN的架构,这样将为今后的扩容提供巨大的空间。同时也为数据的集中管理和存储备份提供便利的条件。图1为某国土局设计的一种Open SAN架构的方案,其中的2台数据库服务器采用了双机热备的集群技术的设计。



在使用的二套集群,一套为Oracle数据库系统的双机热备系统,另一套为Web发布系统的双机热备,这二套双机热备系统都是处于Open SAN.的架构中。

六、常用的高可用性集群技术软件

现在市场上流行的高可用性集群软件的品种比较多,较常见的为:IBM公司出产的IBM HACMP、Legato公司的Legato Automated Availability Manager(LAAM) Engreprise、SUN公司的SUN Cluster、Veritas公司的Veritas Cluster Server、 Microsoft公司的Microsoft Cluster Server(MSCS)、SteelEyeTechnology公司的LifeKeeper等高可用性集群软件和EDI公司的EDI High Availability System双机热备系统等等。

1.IBM HACMP

高可靠性集群系统软件HACMP(High Availability Cluster Multi-Processing)是一种运行在RS/6000服务器上的高可用的集群软件。此集群技术支持并行数据访问,能够帮助提供冗余和容错恢复能力,完全满足关键性商务应用的需求。HACMP包含基于图形用户界面的工具,可以帮助方便有效的管理群集系统,对集群系统进行安装、配置。

HACMP的配置和使用十分灵活。单处理器和对称多处理器(SMP)都可以加入到具有高可用性的群集系统之中。可将不同规模的RS/6000服务器与磁盘阵列的系统混合在一起,以满足各种应用需求。

按照用户所使用的不同的应用,HACMP集群软件可以配置为多种模式,并发访问模式比较适合的环境是所有的处理器必须工作于同一工作负荷并共享数据;互备模式是处理器共享工作负荷并相互备份;热备份模式允许一个节点备份群集中任何其它的节点。无论选择哪种模式,HACMP都将提供数据访问和备份计划,帮助您优化应用程序的执行和扩展性,同时还可避免代价高昂的系统故障和停机时间。HACMP同样支持服务器针对应用恢复/重启进行配置,以便为关键性的商务应用提供保护。

2. HACMP/ES和RS/6000集群技术

总体系统故障时间中有很大一部分是由计划内的故障时间引起的。HACMP可以通过以并行方式执行硬件、软件和其它维护活动,使计划内的故障时间最小化,与此同时应用程序依然持续运作于其它节点上。服务可能会从某一集群节点上转移至另一个节点,当维护活动完成后再转回该节点。

集群软件HACMP能够做到当某台服务器的应用出现故障时立即自动将应用切换到其它服务器,而且能够做到当一台服务器运行的多个应用中的一个出现故障时,只将此应用切换到其它服务器上而其它应用仍可在原服务器上继续运行;同时,要有针对应用系统的实时监测功能,当硬件出现故障时能及时向管理员报告。

通过使用RSCT,HACMP/ES可以对整个软件基础架构提供保护。HACMP/ES可以对这类故障进行监控、检测和响应,使系统具有持续运作的能力。通过对HACMP/ES进行配置,可以响应数以百计的系统事件。除了这种高级保护之外,RSCT还允许HACMP/ES支持多达32个节点的集群系统。

在具有高可用性的环境中,HACMP的并行资源管理器提供多达8路的共享磁盘并行访问能力,可以在接管期间采取不同的设计,可满足不同的应用。

HACMP可与各种并行数据库产品,诸如IB—MDB2、Oracle通用数据库等协同工作,以便建立起松耦合的并行集群,提供高水平的系统可用性。HACMP可创建复杂的并行访问集群,在该集群中,通过使用多达八台有效系统,并运行相同的应用、共享相同的物理资源,故障恢复启动的时间延迟能够达到最小。它可使用户无需中断工作流程,进行系统升级和维护。它可建立灵活的、面向集群的应用,以用于分布式网络,并通过集群管理器工具套件对网络活动进行监控。通过与AIX的逻辑卷管理器磁盘镜像相融合,改进磁盘的可用性。通过使用本地和远程的管理实用工具,对系统级的硬件错误进行检测和补偿。

HACMP能够诊测并响应以下三种类型的故障:网卡故障、网络故障和节点故障。

(1)网卡故障

在HACMP的集群结构中,除了TCP/IP网络以外,还有一个非TCP/IP网络,即为RS232连线也称为“心跳”线,是专门用来诊测节点死机还是仅仅发生了网络故障。如图2所示,节点加入了cluster(即该节点上的HACMP已正常运行)中,该节点上的各个网卡、RS232串口、SSA卡或光纤接口卡就会不断地接收并发送Keep-Alive信号包,K-A的参数是可调的,针对以太网,当处于正常状态时,将每隔0.5秒发送一个K—A包,如果12个包丢失后HACMP确认对方网卡、或网络、或节点发生故障。因此,有了K-A后,HACMP可以很轻易地发现网卡故障,因为某块网卡发生故障,发往该块网卡的K-A就会丢失。此时node A上的cluster—manager(HACMP的“大脑”)会产生一个swap-adapter的事件,并执行该事件的script。HACMP中提供了大部分通用事件的scripts,它们是用标准的AIX命令和HACMP工具来写的。



每个节点上至少两块网卡,一块是提供对外眼务service网卡,另一块是standby,它的存在只有clustermanager知道,应用和client并不知道。一旦发生swap-adapter事件后,clustermanager将原来的service的IP地址转移到standby上,而standby地址转移到故障网卡上,同网络上其他节点进行ARP的刷新。网卡互换(swap-adapter)通常在几秒内就可完成,以太网为3秒,并且这种转换对应用和client来说是透明的,只发生延迟但连接并不中断。

(2)网络故障

如果发往node A上的service和standby网卡上的K-A包全都丢失,而RS232上的K-A仍然存在,那么HACMP软件断定node A仍然工作正常,是网络发生故障。此时HACMP执行一个networkdown的事件script,通常这个script并不做什么事,只提供一个用户自行定义其行为的接口,用户可以根据自己的网络结构,用户数,是否有替代路径,使用的通讯软件,应用软件等来自行设计网络发生故障后应采取的行为。

(3)节点故障

如果网络上的K-A全部丢失,而且RS232上的K-A也丢失,那么HACMP软件断定该节点发生故障,一个node-down事件发生。此时将发生资源接管,即放在共享磁盘陈列上的资源将由备份节点接管,接管包括一系列操作:IP地址的漂移、接管共享硬盘、挂上逻辑卷、安装上文件系统、重新启动应用等等,其中,IP地址接管和应用的重启是由HACMP来实现,而其它是由AIX来完成。

当节点A发生故障时,HACMP将故障节点的servicelPaddress转移到备份节点上,网络上的client仍然使用这个IP地址,这个过程称为IP地址接管,如图3所示。



当一个节点宕掉后,如果设置了IP地址接管,网络上的clients会自动连接到接管节点上;同样,如果设置了应用接管,该应用会在接管节点上自动重启,系统能继续对外提供服务。对于要实现接管的应用,只需在HACMP中把它们设置成“applicationserver”,并告诉HACMP启动这
个应用的startscript的全路径名和停止该应用的stopscript的全路径名。应用接管的配置在HACMP中十分简单,重要的是要正确编写startscript和stopscript脚本。用户一定要对自己的应用非常了解。

综上所述, HACMP只全权负责诊断网卡故障、网络故障和节点故障这三大类故障,并负责实现IP地址转换或接管,以及整个系统资源(硬件、文件、应用程序等)的接管。对于其他故障,结合AIX基本功能和HACMP提供的一些机制,如ErrorNotificationFacility,clinfo APl等,同样可以实现对故障的监控并促使AIX或者HACMP采取相应措施。
分享到:
评论

相关推荐

    redis集群学习

    Redis集群通过分区来提供一定程度的可用性:即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。

    一种基于机器学习的Spark容器集群性能提升方法.pdf

    一种基于机器学习的Spark容器集群性能提升方法.pdf

    tomcat集群手把手学习

    手把手学习tomcat集群,找到 server.xml 配置文件中的另一个相应“ Connector ”配置项目,并进行修改。 ? 修改前内容如下: connectionTimeout = "20000" redirectPort = "8443" /> ? TC6_A 中修改后内容如下...

    docker、docker-compose 安装redis集群 (一台虚拟机上安装的伪集群,学习使用)

    docker、docker-compose 一键安装redis集群 (一台虚拟机上安装的伪集群,学习使用,可以修改文件配置相关参数,非原创,亲测可用) 第一步 /usr/local/下依次建docker、redis目录“/usr/local/docker/redis” 第二步 ...

    跟老男孩学Linux运维:Web集群实战(高清完整PDF版)

    本书针对中小规模网站集群的搭建、部署、优化进行了详细讲解,全书可分为三大部分,其中第一部分讲的是Linux相关的基础且重要的知识,第二部分针对当下流行的Web环境架构(LNMP)的搭建及企业级Web优化等进行了讲解...

    从零开始一步步介绍如何搭建Hadoop集群

    从零开始一步步介绍如何搭建Hadoop集群

    kubeadm,k8s集群学习环境搭建

    unbuntu16.04环境,kubeadm搭建k8s集群脚本,aliyun源 参考文档如下 1.https://time.geekbang.org/column/article/39724 2.https://my.oschina.net/u/2306127/blog/1843053 3....

    集群和负载均衡相关知识

    集群是这样一种技术:它包括至少将两个系统连接到一起,使两个服务器能够像一台机器那样工作或者看起来好像一台机器。例如,一个有2台服务器生成的web服务器集群系统,它对每个终端用户是透明的,而且看起来完全就像...

    RabbitMQ高可用集群部署1

    摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理一般来说,如果只是为了学习RabbitMQ或者验证业务工

    集群多机器人系统建模研究的发展与展望_王常虹.pdf

    :凭借高效、鲁棒、应用广泛的特性,集群多机器人系统已经成为当今研究的热点课题之一, 具有重要的实用价值。首先简述了自顶而下和自底而上两种多机器人系统研究思路的当前研究 概况。然后从拟生物集群系统模型引入...

    Zookeeper集群无状态平滑升级、迁移1

    1、前言前面我们学习的了Zookeeper的集群搭建和管理,也学习和探讨了它的选举原理,我们这一章节来学习zookeeper集群的升级和迁移在学习集群的升级和迁

    全程实操从零学习掌握HDP集群视频教程

    从零学习HDP集群环境的安装和配置,通过一步步的实操和讲解带领学生掌握对应的技术。 课程亮点 1,专项攻破HDP集群的安装和配置。 2,生动形象,化繁为简,讲解通俗易懂。 3,全程实操,边操作边讲解,不再只听概念...

    快速配置JBoss集群

    说起JBoss集群好像很高深的样子,其实一点也不恐怖,建立一个集群很简单,难的是怎么针对具体的应用优化服务器和实现负载均衡(学习中^o^)。本文将带领大家在JBoss的default目录下建立一个简单的Web方面的JBoss集群...

    redis一键部署集群脚本

    1. redis一键部署集群脚本,建议参照文档使用 2. 脚本实现在一台服务器一键部署redis集群到多台服务 3. 脚本学习方便,灵活改造

    weblogic管理学习-集群配置

    教您如何配置一个完整的weblogic跨域(主机)集群。weblogic.9.2版本

    Spark+hadoop+scala 完全分布式集群搭建过程及启动过程

    对于想学习 Spark 的人而言,如何构建 Spark 集群是其最大的难点之一, 为了解决大家构建 Spark 集群的一切困难,Spark 集群的构建分为了五个步骤,从 零起步,不需要任何前置知识,涵盖操作的每一个细节,构建完整...

    拥有了PMP,“职人”项目集群经理还可以往哪里发展?).doc

    答:从工作内容上来说,从单项目管理,项目集群管理,项目组合管理,项目管理办公室,一个从初级到高级的过程,对于从业人员来说,对应不同的级别,可以去学习相应的知识体系(比如:项目集群经理可以系统学习项目...

    MYSQ主从集群简单搭建的部署方案

    自己练习学习搭建mysql主从集群,形成一份word便于记录和后续优化

    spark集群构建:第二步:构造分布式 Hadoop 集群;

    对于 90%以上想学习 Spark 的人而言,如何构建 Spark 集群是其最大的难点之一, 为了解决大家构建 Spark 集群的一切困难,家林把 Spark 集群的构建分为了四个步骤,从 零起步,不需要任何前置知识,涵盖操作的每一个...

Global site tag (gtag.js) - Google Analytics