HA概论
高可用集群,英文原文为High Availability Cluster,简称HA Cluster,是指以减少服务中断如因服务器宕机等引起的服务中断)时间为目的的服务器集群技术。简单的说,集群cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点node)。
高可用集群的出现是为了使集群的整体服务尽可能可用,从而减少由计算机硬件和软件易错性所带来的损失。它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。如果某个节点失效,它的备援节点将在几秒钟的时间内接管它的职责。因此,对于用户而言,集群永远不会停机。高可用集群软件的主要作用就是实现故障检查和业务切换的自动化。
只有两个节点的高可用集群又称为双机热备,即使用两台服务器互相备份。当一台服务器出现故障时,可由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续对外提供服务。双机热备只是高可用集群的一种,高可用集群系统更可以支持两个以上的节点,提供比双机热备更多、更高级的功能,更能满足用户不断出现的需求变化。
从这个定义可以看出,集群必须检测节点和服务何时失效,何时恢复为可用。这个任务通常由一组被称为“心跳”的代码完成。在Linux-HA里这个功能由一个叫做heartbeat的程序完成。
Heartbeat是Linux-HA工程的一个组件,自1999年开始到现在,发布了众多版本,是目前开源Linux-HA项目最成功的一个例子,在行业内得到了广泛的应用。
Heartbeat通过插件技术实现了集群间的串口、多播、广播和组播通信,在配置的时候可以根据通信媒介选择采用的通信协议,heartbeat启动的时候检查这些媒介是否存在,如果存在则加载相应的通信模块。这样开发人员可以很方便地添加新的通信模块,比如添加红外线通信模块。
HA高可用集群
用来解决架构中单点故障。
活动节点:在HA集群中,当前提供服务的节点。
备用节点:在HA集群中,作为备用的节点,但活动节点出现故障,备用节点就会取代故障节点,成为活动节点,对外提供服务器。
主节点:在HA集群中,如果节点是健康的,那么该节点优先取得资源对外提供服务,成为活动节点。
例子:使用heartbeat实现简单的web的HA集群
目标:实现解决单点故障,实现故障迁移。
生成网络
|---------------|
node1 node2
|---------------|
准备:
给节点设定FQDN主机名、静态IP
并且相互绑定到hosts文件
设定网关
node1.upl.com
eth0 192.168.29.11
eth1 192.168.89.11
gw 192.168.29.1
node2.upl.com
eth0 192.168.29.12
eth1 192.168.29.12
gw 192.168.29.1
/etc/hosts文件绑定:
....
192.168.29.11 node1.upl.com node1 <---心跳数据包就会在该网络进行发送
192.168.29.12 node2.upl.com node2
OS: rhel6
yum配置
[Base]
name=Base
baseurl=file:///soft/el63
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=file:///soft/el63/LoadBalancer
enabled=1
gpgcheck=0
[HighAvailability]
name=LoadBalancer
baseurl=file:///soft/el63/HighAvailability
enabled=1
gpgcheck=0
<
