应用开发

简介

集群

集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。

更详细的说,集群(一组协同工作的计算机)是充分利用计算资源的一个重要概念,因为它能够将工作负载从一个超载的系统(或节点)迁移到集群中的另一个系统上。其处理能力是与专用计算机(小型机,大型机)可相比,但其性价比高于专用计算机。常见的硬件有:结点,网络,存储。软件有:机群系统,节点系统,应用支撑软件。

Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上的任一故障发生时,客户都将能很快连接到新的应用服务上。

集群的优点:

(1)高可扩展性:添加删除节点。

(2)高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效。

(3)高性能:负载平衡集群允许系统同时接入更多的用户。

(4)高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。

分类

高可用(High Availability)集群

这类集群致力于提供高度可靠的服务。就是**利用集群系统的容错性对外提供724小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。

负载均衡集群

负载均衡集群:使任务可以在集群中尽可能平均地分摊不同的计算机进行处理,充分利用集群的处理能力,提高对任务的处理效率。

在实际应用中这几种集群类型可能会混合使用,以提供更加高效稳定的服务。如在一个使用的网络流量负载均衡集群中,就会包含高可用的网络文件系统、高可用的网络服务。

 性能计算(High Perfermance Computing)集群

在这种集群上运行的是专门开发的并行应用程序,它可以把一个问题的数据分布到多台的计算机上,利用这些计算机的共同资源来完成计算任务,从而可以解决单机不能胜任的工作(如问题规模太大,单机计算速度太慢)。

这类集群致力于提供单个计算机所不能提供的强大的计算能力。如天气预报、石油勘探与油藏模拟、分子模拟、生物计算等。

高可用集群

衡量标准

通常用平均无故障时间(MTTF:mean time to failure)来衡量系统的可靠性,用平均故障维修时间(MTTR:Mean Time Between Failures)来度量系统的可维护性。

**于是可用性被定义为: HA=MTTF/(MTTF+MTTR)100%。即使用时间/总时间

高可用集群 - 图1

高可用集群实现原理

高可用集群实现分三步:

  • 自动侦测(Auto-Detect)阶段:由主机上的软件通过冗余侦测线,经由复杂的监听程序。逻辑判断,来相互侦测对方运行的情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据库引擎及其它应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。
  • 自动切换(Auto-Switch)阶段:某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务。
  • 自动恢复(Auto-Recovery)阶段:在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。整个回复过程完成由EDI-HA(电子数据交换)自动完成,亦可依据预先配置,选择回复动作为半自动或不回复。

分类

双机热备

从广义上讲,双机热备就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。

从狭义上讲,双机热备就是使用互为备份的两台服务器共同执行同一服务,其中一台主机为工作机(Primary Server),另一台主机为备份主机(Standby Server)。在系统正常情况下,工作机为应用系统提供服务,备份机监视工作机的运行情况(一般是通过心跳诊断,工作机同时也在检测备份机是否正常),当工作机出现异常,不能支持应用系统运营时,备份机主动接管工作机的工作,继续支持关键应用服务,保证系统不间断的运行。双机热备针对的是IT核心服务器、存储、网络路由交换的故障的高可用性解决方案。

 组建方式

有主要的两方式可以借鉴考虑:

  • 第一种,双机热备它的工作原理是使用两台服务器,一台作为主服务器(Active),运行应用系统来提供服务。另一台作为备机,安装完全一样的应用系统,但处于待机状态(Standby)。当Active服务器出现故障时,通过软件诊测将Standby机器激活,保证应用在短时间内完成恢复正常使用。
  • 第二种,双机互备方式则是在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,这种方式实际上是双机热备方案的一种应用。

多节点热备

客户拥有多台服务器(两台或两台以上)以及共享存储设备(一般情况下为磁盘阵列柜),服务器同时连接至共享存储,根据实际服务器应用情况,将服务器规划为N台主服务器与一台备用服务器,形成N+1的服务器热备份形式,一旦运行应用的主服务器发生故障,规划中的备用服务器将自动接替故障主服务器的业务应用,保证客户核心业务7*24小时不间断运行。

高可用集群 - 图2高可用集群 - 图3

当任意主服务器发生故障(如服务器宕机、掉电、网络故障、应用意外崩溃等),备用服务器将自动接替服务,保护业务不间断运行,同时利用虚拟IP技术,用户的访问IP也不会发生变化。

多节点共享存储

没找到专门的介绍,不过HA是基于共享存储的,双机热备,多节点热备都需要用到共享存储。

当共享存储可用,每个节点可以被用于故障转移。

共享存储热备

名词解释

 集群节点

集群存在所有主机都称为节点,每个HA集群最低要求需有2个节点;正常来说,节点数最好为奇数。在生产环境中,HA集群的节点数至少为3个,可以降低发生脑裂的概率。

集群服务与资源

集群服务通常包括多个资源,多个资源组成某种集群服务。如mysql高可用服务,其资源包括vip、mysqld、共享存储等。资源是启动一个服务需要的子项目。例如启动一个httpd服务,需要ip,也需要服务脚本,还需要文件系统(用来存储数据的),这些我们都可以统称为资源。对于集群服务的管理,实际上就是对资源的管理。

共享存储

高可用集群多节点都需要访问数据,如果各节点访问同一个数据文件都是在同一个存储空间内的,就是说数据共享的就一份,而这个存储空间就共享存储。如Web或Mysql高可用集群,他们的数据一般需要放在共享存储中,主节点能访问,从节点也能访问。

脑裂

脑裂是指因某种特殊原因造成集群分裂成两个小集群,而这两个小集群互相不能正常通信,此时,就会发生脑裂(Brain Split)现象。

软件产品

RedHat 公司的RHCS

RHCS 全称是RedHat Cluster Suite,实际上是一个套件,除了现在提到的高可用集群软件,还包含了一个基于LVS的负载均衡软件。RHCS包含的集群软件,是GPL协议下开放源代码的集群系统。RHCS是一个独立的产品,不包括在RedHat Enterprise Linux当中,无论是购买还是下载,都是单独存在的。

中兴新支点的Newstart HA

Newstart HA由中兴子公司“新支点”研发,是国内具有代表性的一款成熟的高可用集群软件。NewStart HA无需改变任何服务和应用,即可保证系统故障和部件故障时应用不中断;可以自动监控服务器、网卡、浮动 IP 、存储和业务,生产中心失效会自动切换到灾备中心;可实现数据实时同步,切换时间为秒级,因此可以提供电信级,高达 99.999% 的高可用性。

Novell公司的Novell Cluster Service

Novell收购SuSE公司之后,将原来在Novell netware操作系统上的大量企业级应用移植和整合到了SuSE Linux Enterprise Linux平台,Novell 当时名震集群领域的Novell Cluster Service也被整合移植到了Linux平台。Novell Cluster Service是一个商业系统,并非开放源代码产品。

Steeleye公司的Lifekeeper for Linux

Steeleye公司是集群行业非常著名的公司,他们的集群系统最早是AT&T 贝尔实验室开发的,后来被卖给了金融行业著名的IT公司NCR公司。Lifekeeper集群的历史非常悠久,后来Steeleye又得到了几个从当时的巨头DEC跳槽而来的核心开发人员,因此Lifekeeper的架构和品质都是有非常好的口碑的。

Keepalived高可用集群软件

Keepalived 集群软件是一个基于VRRP协议来实现的LVS(四层协议)服务高可用方案,可以避免单节点故障。LVS服务需要有2台服务器运行Keepalived服务,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外只有一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,备份服务器认为主服务器宕机并会接管虚拟IP提供服务,从而保证了服务的高可用性。

案例

电网风、光功率预测系统

助力新能源,NewStart HA为电网风、光功率预测系统的运行保驾护航

中兴新支点双机镜像软件(NewStartHA)专用于解决电信级的高可用性需求。通过慎重方案筛选及客户现有资源等因素综合考虑,某新能源公司最终采用了中兴新支点基于数据镜像的业务连续性产品,将功率预测系统前端业务平台和后台mysql数据库组成镜像热备方案保护业务连续工作。

原来的功率预测服务器作为业务系统主节点服务器运行,在机房增加1台服务器作为备份节点服务器,配置上同一个业务和mysql数据库作为备机,在软硬件环境准备就绪后,通过中兴新支点数据镜像解决方案搭建基于数据镜像的热备集群。主节点与备份节点之间通过远程数据镜像专线进行数据同步。

高可用集群 - 图4

正常情况下,主节点服务器通过活动IP对外提供服务,采集数值气象预报数据、实时气象站数据、实时输出功率数据、逆变机组状态等数据,并把产生的数据会直接写入主机的本地磁盘,同时通过中兴新支点数据镜像解决方案,将实时捕获到的变动数据,通过远程数据镜像专线实时传输到备机,从而保证主节点服务器和备份节点服务器两台服务器数据的一致性。

在此基础上,如果主节点出现故障(服务器宕机,应用系统故障,网络故障等情况),导致所保护的应用程序无法继续对外提供服务,主机会在保证数据一致性前提下,通过中兴新支点数据镜像解决方案将mysql数据库切换到灾备中心备用服务器运行,继续对外提供服务,确保生产管理系统持续运营工作,避免了服务器失效对整个机构的正常作业造成影响。

地铁综合控制中心

中兴新支点NewStartRDR在某市地铁综合控制中心应用案例

控制中心网管系统通过对地铁沿线网元设备的监控,来保证各条线路各个车站的车辆位置、到站情况及客流量信息等信息能正确无误。

高可用集群 - 图5

NewStartRDR高可用集群系统通过网络实现数据的复制,主节点的数据实时同步到异地备份节点,并对服务器节点、工作链路、应用程序、浮动IP、系统负载和性能等资源进行检测、控制和容错,在故障发生时,及时进行以资源包为单位的节点迁移,保障控制中心的网管系统不间断对外提供服务。

其他

各种需要长时间响应的系统,例如银行,淘宝,交通购票等等。

高可用集群的发展方向

随着企业信息系统的广泛应用和深入发展,用户的核心应用数量越来越多。在这种分布式多应用系统构架下,高可用多节点集群日益被用户接受和广泛使用,集群软件也从Unix平台的高端应用向基于Linux/Windows的平台发展。伴随着企业需求的改变,高可用集群软件市场也表现出了新的发展方向:

应用系统多样化

高可用集群的应用系统正朝多样化趋势发展,不仅局限于一般业务,还表现出一些特殊的应用模式。例如在制造业生产线系统中,通过将生产线计算机系统进行集群构筑,来提高系统整体的高可用性;又如在银行等需要保障关键业务运行的行业,为实现系统宕机时间的最小化,甚至有采用容错服务器为平台,配合使用高可用软件来构筑集群系统的案例,这种硬件+软件的“超强阵容”,将系统可用性大大提高。

用途多样化

除通常意义上对业务应用的保护外,集群软件还将被用于越来越多的领域中。这里重点谈谈在远程容灾方面的应用。

企业为了业务的持续发展,必须规避在各种灾难发生时的损失,因此,在远程容灾方面的需求不断增加。通过集群技术实现的远程容灾方案,其最大的优势是即使不具备特别的知识,只要对集群的配置有所了解,就能实现灾备。此外,有些用户还会有在较近距离内(如4、5公里左右)兼做大容量数据备份的需求;甚至如果网络链路容许,还可将备份系统建立在异地数据中心进行托管。

运行形态多样化

随着CPU多核技术的发展,在处理能力提高的同时,利用虚拟化技术进行服务器整合的需求急增。据统计,在一些发达国家,目前VM市场正在以每年50%的速度增长。但是服务器虚拟化后,必须解决作为虚拟机载体的物理服务器发生单点故障的问题,而且由于虚拟服务器的故障往往与重大故障的发生紧密相关,就更要求系统必须具备高于一般服务器之上的可用性,使得高可用性对虚拟平台的支持成为一种必然。

配置及可操作性方面的要求提高

随着高可用集群技术的发展,高可用集群软件的功能变得越来越多,带给客户更多实惠的同时,也带来了配置及可操作性方面的复杂性。因此,简便的配置及可操作性成为一种必然的需求。

参考资料

高可用集群概念及工作原理详解 - 知乎 (zhihu.com)

集群(cluster)和高可用性(HA)的概念 - 知乎 (zhihu.com)

双机热备概念原理及实现步骤

中兴新支点Newstart HA等5款主流高可用集群软件介绍