LVS-DR+Heartbeat实现高可用负载均衡服务

HEARBEAT介绍

Heartbeat 是可以从 Linux-HA 项目 Web 站点公开获得的软件包之一。它提供了所有 HA 系统所需要的基本功能,比如启动和停止资源、监测群集中系统的可用性、在群集中的节点间转移共享 IP 地址的所有者等。它通过串行线、以太网接口或者同时使用二者来监测特定服务(或多个服务)的健康状况。当前版本支持两节点配置,使用专门的 heartbeat“pings”来检查服务的状态和可用性。

LINUX heartbeat使用一个心跳协议,心跳协议意味着消息规则的在两个或更多节点之间发送,如果消息没有在给定的节点间接收到,就会认为这个节点是失效的并且运行某种失败切换或恢复动作,LINUX heartbeat使用标准的以太网接口来发送心跳消息。

当LINUX heartbeat被初始化设置好以后,需要选择一个节点作为主节点,当主节点的心跳启动以后,它将分配一个虚拟IP地址给主节点的网络接口,外部的进程和应用等将按照这个方式访问这个节点,如果主节失效,那么在集群中的另一个节点将为这个虚拟IP地址启动一个接口并且用地址转换保证所有访问这个IP的请求都绑定到本机,也就是IP自动漂移到本机,这种就是IP地址接管。

每一个虚拟IP地址都可以被看作是一个资源,它被封装作为程序其工作方式类似于UNIX的INIT脚本,这意味着它能够启动和停止,并且它也能够被查询是否正在运行,用这种方式,LINUX heartbeat能够根据用heartbeat协议,根据节点间通信的状态启动或停止这些虚拟IP。

LINUX HEARTBEAT的配置

三个最关键的修改文件: <"/etc/ha.d/authkeys">

<"/etc/ha.d/haresources">

<"/etc/ha.d/ha.cf">

1 配置/etc/ha.d/ha.cf(只在一个节点上配即可,配好后copy到其它节点)

vi /etc/ha.d/ha.cf

按如下内容进行修改(文件中#开头的行为注释行,更多的选项及选项的详细说明请参考文件中的注释及相关文档)

debugfile /var/log/ha-debug #写debug信息到这个文件中

logfile /var/log/ha-log #写运行日志到这个文件中

keepalive 2 #设置心跳时间为2秒

deadtime 30 #设置离最近一次心跳多长时间没有心跳时表明节点失败

warntime 10 #设置离最近的一次心跳多长时间没有心跳时发出警告

initdead120 #机器重启动或是刚开机时,网络能正确开始工作的时间,最小设置为deadtime的两倍

udpport 694 #bcast/ucast方式心跳通讯所用的UDP端口

#baud 19200 #串口的波特率,使用串口作心跳时需设置

#serial /dev/ttyS0 #串口设备名,使用串口作心跳时需设置

bcast eth0 #使用哪一个设备(网卡)做心跳

#bcast eth1 eth2 #使用多个设备(网卡)做心跳时的设置

auto_failback on #当主节点从失败状态恢复时是否恢复其主节点的身份,即应用是否返回到其自身运行

#on 返回

#off 不返回,其它节点继续作为主节点运行

#legacy 当所有节点都不支持自动返回时,将自身设为自动返回

node gfs132 #节点的主机名或域名,需在/etc/hosts文件或

node gfs133 #所有节点都以node开始的行列出

ping 172.20.16.2 #ping节点,不属于cluster内的节点,通常选一台路由器或交换机作为Ping节点,

#ipfail模块通过此节点来验证网络的连通性,可指定多个Ping节点

respawn hacluster /usr/lib64/heartbeat/ipfail #由heartbeat调用并监视ipfail模块

2 配置/etc/ha.d/haresources (只在一个节点上配即可,配好后copy到其它节点)

vi /etc/ha.d/haresources

按如下内容进行修改(文件中#开头的行为注释行,更多的选项及选项的详细说明请参考文件中的注释及相关文档)

gfs132 172.20.16.99 mysqld mon #设置heartbeat管理的资源或服务

#格式为:主节点主机名或域名 浮动IP 服务名

#主节点主机名或域名为ha.cf中node行中指定的任一节点

#浮动IP 为对外提供访问的IP,主节点失败后会自动漂移到其它节点,继续对外提供服务.

#服务名为 heartbeat管理的服务

#注意,此文件内容所有节点必须保持一致。

相关推荐