HA高可用集群

HA即(high avaliable)高可用,又叫做双机热备,用于关键性业务,也就是有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务。常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均衡的功能。

 

Linux 高可用负载均衡集群实践真传 pdf linux高可用集群搭建_nginx

下面,使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服务。

1、试验准备:

两台机器,都是64位centos6.9,网卡 IP如下:
HostA eth0   192.168.1.119

HostB eth1  192.168.1.120

HostA eth1  192.168.153.119

HostB eht2  192.168.153.120

虚拟IP:

192.168.1.122

2、准备部分:

关闭防火墙iptables -F

关闭selinux:setenforce 0

设置hosts:

192.168.1.119 HostA   

192.168.1.120 HostB   

3、安装heartbeat /libnet/nginx

yum install -y heartbeat* libnet nginx

4、主上(HostA)配置

cd /usr/share/doc/heartbeat-3.0.4

cp authkeys ha.cf haresources /etc/ha.d/

cd /etc/ha.d

vi authkeys //加入

auth 3

3 md5 Hello!

chmod 600  authkeys 

vi haresources //加入

HostA 192.168.1.121/24/eth0:0 nginx  #配置虚拟IP

vi ha.cf  //修改、增加如下内容

debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2      #配置心跳检测间隔时间,单位秒
deadtime 30     #超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡
warntime 10      #超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中initdead 120      #重启等待时间,单位秒
udpport 694      #设置广播通信使用的端口,694为默认使用的端口号
ucast eth1 192.168.153.120    #设置对方机器心跳检测的网卡和对方IP
auto_failback on      #主重启后,资源自动恢复给主
node HostA
node HostB           
ping 192.168.153.1     #设置ping
respawn hacluster /usr/lib64/heartbeat/ipfail   #ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接

5、从上(HostB)上配置

使用

rsync -av ha.cf haresources authkeys HostB:/etc/ha.d/

修改haresouces文件:

HostA 192.168.1.121/24/eth1:0 nginx  #因为HostB上第一个网卡是eth1,所以要更改成那个eth1,不更改会导致HostB无法定位到eth0网卡,而无法正常工作;



修改ha.cf文件:

ucast eth2 192.168.153.119  #设置机器心跳检测的网卡和对方IP



6、启动

在主从上启动heartbeat服务:

/etc/init.d/heartbeat start

7、测试

此时,两台机器进程情况如下,HostA中nginx正常启动,虚拟网卡eth0:0正常工作,而HostB中ngixn没有正常启动 ,虚拟网卡也没有工作。

 

Linux 高可用负载均衡集群实践真传 pdf linux高可用集群搭建_nginx_02

 

Linux 高可用负载均衡集群实践真传 pdf linux高可用集群搭建_heartbeat_03

在HostA上封掉PING包:

iptables -I OUTPUT -p icmp -j DROP

等候一段时间后,HostA上nginx进程销毁,eth0:0虚拟网卡消失,同时,HostB上启动nginx进程,出现eht1:0虚拟网卡,测试成功:

 

Linux 高可用负载均衡集群实践真传 pdf linux高可用集群搭建_HA_04

Linux 高可用负载均衡集群实践真传 pdf linux高可用集群搭建_HA_05