来源:天极网
随着整个社会的信息化程度不断提高,社会生活逐渐与计算机系统密不可分。人们越来越关心计算机系统的可用性。所谓计算机系统的可用性,一般定义为计算机系统正常工作时间与计算机系统总运行时间之比。对于某些执行关键使命的计算机系统,要求系统能够长时间稳定运行,即具备365*24不停顿运行的能力。对于这类系统,暂时的停机都会导致数据的丢失和灾难性的后果。
高可用集群系统采用冗余的可脱离的部件和专门的软件,可以在系统出现单点故障的情况下降级运行,大大提高了系统的可用性。心跳机制是高可用集群的重要技术之一。心跳周期性地检测集群中结点机器的工作状态,当节点机器的工作状态变化时,能够通知集群软件的其它部件。该文将根据高可用集群技术在Linux 操作系统上的两个典型实现,探讨Linux 高可用集群的心跳机制。
Heartbeat是由Linux 高可用项目开发的集群软件包,目前支持两个结点(主/从模式),实现了串行线、UDP光宝、UDP多播等心跳传输方式,以及IP地址接管和资源管理机制。
Heartbeat集群软件实现了两种类型的心跳:环形心跳和广播心跳。对于环形心跳,节点和相邻节点通过串口连接构成环形网络。节点把心跳信息转发给自己相邻的节点,两个不相邻节点必须依靠中间节点才能获得对方心跳。对于节点数量超过& 个的集群,如果有! 个以上节点失效,集群会被分割成两个不同的子网。广播心跳适用于支持广播的网络,节点把自己的状态封装在数据包里,通过广播发送到集群中,集群中的其它节点可以直接接收到心跳信息。环形心跳由于使用串口传输,可靠性较高。广播心跳会因网络过载而延迟或丢失,但是它没有环形心跳可能产生的网络分割问题。

