Heartbeat 是一个基于Linux开源的高可用集群系统。主要包括心跳服务和资源接管两个高可用集群组件。心跳监测服务能够经过网络链路和串口进行,并且支持冗余链路, 它们之间相互发送报文来告诉对方本身当前的状态,若是在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
web
4、Pacemaker集群的分类安全
1.双机热备(Active/Passive)服务器
官方说明:许多高可用性的状况下,使用Pacemaker和DRBD的双节点主/从集群是一个符合成本效益的解决方案。网络
2.多节点热备(N+1)app
官方说明:支持多少节点,Pacemaker能够显着下降硬件成本经过容许几个主/从群集要结合和共享一个公用备份节点。ssh
3.多节点共享存储(N-TO-N)代理
官方说明:有共享存储时,每一个节点可能被用于故障转移。Pacemaker甚至能够运行多个服务。rest
4.共享存储热备 (Split Site)orm
官方说明:Pacemaker 1.2 将包括加强简化设立分站点集群接口
5、Pacemaker内部结构
群集组件说明:
stonithd:心跳系统。
lrmd:本地资源管理守护进程。它提供了一个通用的接口支持的资源类型。直接调用资源代理(脚本)。
pengine:政策引擎。根据当前状态和配置集群计算的下一个状态。产生一个过渡图,包含行动和依赖关系的列表。
CIB:群集信息库。包含全部群集选项,节点,资源,他们彼此之间的关系和现状的定义。同步更新到全部群集节点。
CRMD:集群资源管理守护进程。主要是消息代理的PEngine和LRM,还选举一个领导者(DC)统筹活动(包括启动/中止资源)的集群。
OpenAIS:OpenAIS的消息和成员层。
Heartbeat:心跳消息层,OpenAIS的一种替代。
CCM:共识群集成员,心跳成员层。
功能概述
CIB使用XML表示集群的集群中的全部资源的配置和当前状态。CIB的内容会被自动在整个集群中同步,使用PEngine计算集群的理想状态,生成指令列表,而后输送到DC(指定协调员)。Pacemaker 集群中全部节点选举的DC节点做为主决策节点。若是当选DC节点宕机,它会在全部的节点上, 迅速创建一个新的DC。DC将PEngine生成的策略,传递给其余节点上的LRMd(本地资源管理守护程序)或CRMD经过集群消息传递基础结构。当集群中有节点宕机,PEngine从新计算的理想策略。在某些状况下,可能有必要关闭节点,以保护共享数据或完整的资源回收。为此,Pacemaker配备了stonithd设备。STONITH能够将其它节点“爆头”,一般是实现与远程电源开关。Pacemaker会将STONITH设备,配置为资源保存在CIB中,使他们能够更容易地监测资源失败或宕机。
6、heartbeat心跳传递
HeartBeat运行于备用主机上的Heartbeat能够经过以太网链接检测主服务器的运行状态,一旦其没法检测到主服务器的"心跳"则自动接管主服务器的资源。一般状况下,主、备服务器间的心跳链接是一个独立的物理链接,这个链接能够是串行线缆、一个由"交叉线"实现的以太网链接。Heartbeat甚至可同时经过多个物理链接检测主服务器的工做状态,而其只要能经过其中一个链接收到主服务器处于活动状态的信息,就会认为主服务器处于正常状态。从实践经验的角度来讲,建议为Heartbeat配置多条独立的物理链接,以免Heartbeat通讯线路自己存在单点故障。
串行电缆:被认为是比以太网链接安全性稍好些的链接方式,由于hacker没法经过串行链接运行诸如telnet、ssh或rsh类的程序,从而能够下降其经过已劫持的服务器再次侵入备份服务器的概率。但串行线缆受限于可用长度,所以主、备服务器的距离必须很是短。
以太网链接:使用此方式能够消除串行线缆的在长度方面限制,而且能够经过此链接在主备服务器间同步文件系统,从而减小了从正常通讯链接带宽的占用。
基于冗余的角度考虑,应该在主、备服务器使用两个物理链接传输heartbeat的控制信息;这样能够避免在一个网络或线缆故障时致使两个节点同时认为自已经是惟一处于活动状态的服务器从而出现争用资源的状况,这种争用资源的场景便是所谓的"脑裂"(split-brain)或"partitioned cluster"。在两个节点共享同一个物理设备资源的状况下,脑裂会产生至关可怕的后果。
7、Heartbeat控制信息
"心跳"信息: (也称为状态信息)仅150 bytes大小的广播、组播或多播数据包。可为以每一个节点配置其向其它节点通报"心跳"信息的频率,以及其它节点上的heartbeat进程为了确认主节点出节点出现了运行等错误以前的等待时间。
集群变更事务(transition)信息:ip-request和ip-request-rest是相对较常见的两种集群变更信息,它们在节点间须要进行资源迁移时为不一样节点上heartbeat进程间会话传递信息。好比,当修复了主节点而且使其从新"上线"后,主节点会使用ip-request要求备用节点释放其此前从因主节点故障而从主节点那里接管的资源。此时,备用节点则关闭服务并使用ip-request-resp通知主节点其已经再也不占用此前接管的资源。主接点收到ip-request-resp后就会从新启动服务。
重传请求:在某集群节点发现其从其它节点接收到的heartbeat控制信息"失序"(heartbeat进程使用序列号来确保数据包在传输过程当中没有被丢弃或出现错误)时,会要求对方从新传送此控制信息。 Heartbeat通常每一秒发送一次重传请求,以免洪泛。
上面三种控制信息均基于UDP协议进行传送,能够在/etc/ha.d/ha.cf中指定其使用的UDP端口或者多播地址(使用以太网链接的状况下)。
此外,除了使用"序列号/确认"机制来确保控制信息的可靠传输外,Heartbeat还会使用MD5或SHA1为每一个数据包进行签名以确保传输中的控制信息的安全性。
若是想深刻体验LINUX系统的新手,也能够先下载一个方德Linux软件中心试用一下。
免费下载地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter