High-Availability-Logo

Linux下搭建Heartbeat高可用性web服务

下面主要介绍如何在Linux下搭建Heartbeat高可用性web服务,即High Availability(HA) Web Service

开始

两台ubuntu机器Kylin 14.04, 一主一从
主: allen-VirtualBox (10.4.64.109)
从: allen-VirtualBox-Test (10.4.64.120)
子网掩码: 255.255.252.0
默认网关:10.4.64.254

安装heartbeat

sudo apt-get install heartbeat
复制配置文件
cd /usr/share/doc/heartbeat/
gunzip ha.cf.gz haresources.gz
sudo cp ha.cf authkeys haresources /etc/ha.d/

修改配置文件

cd /etc/ha.d/
sudo vim /etc/ha.d/ha.cf
#日志文件路径
logfile /var/log/ha-log
#心跳时间
keepalive 2
#死亡时间  how long-to-declare-host-dead
deadtime 30
#配置节点使用哪个网卡传递udp广播消息与其它节点通信
bcast   eth0
#配置节点通过指定网卡传递udp单播消息与其它节点通信,这里设置为与从机通信 ,在从机上需要设置为主机ip 10.4.64.109
ucast eth0 10.4.64.120
#节点
node allen-VirtualBox #主机
node allen-VirtualBox-Test #从机
#网关
ping 10.4.64.254

修改认证文件

sudo vim /etc/ha.d/authkeys
#认证方式,crc不需要key,sha1被认为是最好的,md5其次
auth 1
1 crc

修改完后,需要设置权限为600,否则无法启动heartbeat

sudo chmod 600 authkeys
sudo vim /etc/ha.d/haresources

修改资源配置文件

#主机名 虚拟vip/子网/网卡 服务
#虚拟vip的值可以自行任意设置,但最好与主机,从机在同一网段内
allen-VirtualBox 10.4.64.168/22/eth0 nginx
传送配置文件到从机
sudo scp ha.cf authkeys haresources allen@allen-VirtualBox-Test:/home/allen
移动从机上的配置文件
sudo cp ha.cf authkeys haresources /etc/ha.d/
修改从机配置文件及文件权限
启动主机及从机的heartbeat
sudo /etc/init.d/heartbeat start

=================测试===================

显示当前是主机allen-VirtualBox在提供服务
主从机同时工作时
主从机同时工作时
关停主机heartbeat服务
sudo /etc/init.d/heartbeat stop
再次访问虚拟vip http://10.4.64.168:8080/index.php
显示当前是从机allen-VirtualBox-Test在提供服务,说明从机接管了资源
主机停止服务时
主机停止服务时
重新启动主机heartbeat服务
sudo /etc/init.d/heartbeat start
再次访问虚拟vip http://10.4.64.168:8080/index.php
显示当前又回到主机allen-VirtualBox提供服务,说明主机从从机接管了资源
主机恢复服务时
主机恢复服务时
查看主机heartbeat日志,可以清楚的了解整个过程
tail -f /var/log/ha-log
关停主机服务时
主机日志-主机停止服务时
主机日志-主机停止服务时
1.开始停止服务
2.开始释放所有HA资源
3.释放allen-virtualbox 10.4.64.168/22/eth0 nginx资源组
4.释放所有HA资源完成
11.停止服务
与此同时从机日志显示
从机日志-主机停止服务时
从机日志-主机停止服务时
5.从allen-virtualbox收到关停提醒
6.从allen-virtualbox获取资源
7.获取本地HA资源
8.获取本地HA资源成功
9.获取资源组allen-virtualbox 10.4.64.168/22/eth0 nginx
10,启动资源组allen-virtualbox 10.4.64.168/22/eth0 nginx
12.启动nginx服务
———————————————————————
重新启动主机 heartbeat服务时
主机日志显示
主机日志-主机重新启动服务时
主机日志-主机重新启动服务时
1.检查配置,启动heartbeat
2.绑定端口等
3.设置本机状态为”上线”
4.通知网关和从机allen-virtualbox-test,主机”上线”
6.远程资源转移成功,本机资源获取成功
7.allen-virtualbox-test转为备用
11.从allen-virtualbox-test获取资源
13.获取资源组allen-virtualbox 10.4.64.168/22/eth0 nginx
15.启动nginx服务
与此同时,从机日志显示
从机日志-主机重新启动服务时
从机日志-主机重新启动服务时
5.收到allen-virtualbox的heartbeat服务重启,上线信息
6.远程资源转移成功
7.allen-virtualbox-test转为备用
8.allen-virtualbox可以获取所有资源
10.放弃所有HA资源
12.释放资源组allen-virtualbox 10.4.64.168/22/eth0 nginx
14.停止nginx服务
%1 $ S

发表回复