通过安装该Linux-HA软件,可以实现Linux双机系统的高可用性解决方案,实现双机系统的热备份,并能够做到双机之间的无缝切换,从而对外

提供稳定可靠的服务,最终实现系统高性能RAS(reliability, availability, and serviceability)。

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


Chumjtest01

eth0 172.31.24.199 

eth0:1   192.168.1.109

VIP: 172.31.24.202

Chumjtest02

eth0 172.31.24.200

eth0:1   192.168.1.110

VIP: 172.31.24.202

实验准备工作

编辑修改hosts文件,将两台服务器的IP添加上,

 关闭防火墙 iptables -F;  关闭selinux: setenforce 0

安装好eprl,安装好heartbeat、libnet


主配置

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_配置文件

配置VIP

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_html_02

配置节点文件

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_03

配置ha配置文件

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_04


从机配置

将主机上的配置文件拷贝到从机上

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_html_05


启动heartbeat

先启动主,在启动从

主机启动情况:

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_配置文件_06

检查下nginx服务有没有启动


[root@chumjtest01 ha.d]# ps aux |grep nginx

root      6989  0.0  0.0 109336  2036 ?        Ss   17:40   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

nginx     6990  0.0  0.0 109760  2704 ?        S    17:40   0:00 nginx: worker process                   

nginx     6991  0.0  0.0 109760  2756 ?        S    17:40   0:00 nginx: worker process                   

root      6995  0.0  0.0 103252   824 pts/1    S+   17:41   0:00 grep nginx

从机启动情况:

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_07

测试

在主机的nginx下写一个简单的html文件,并且访问下

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_08

同样在从机上写下一个简单的html文件

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_09

在测试下VIP访问,说明现在在nginx在主机上运行

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_10

打开防火墙,将主机禁ping

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_11

查看主机chumjtest01的HA日志,看到“We are dead”,表示主机认为自己已经死了,要切到从机上

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_12

查看从机chumjtest02的HA日志,从机启动ngix。

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_nginx_13

在访问下VIP的地址,已经切换到从机上去了。

linux下使用heartbeat做HA集群,把nginx作为HA对应的服务_配置文件_14


注:heartbeat日志在/var/log/ha-log,如果启动有问题请尽量查看日志。

  1. ERROR: Client child command [/usr/lib/heartbeat/ipfail] is not executable说明64位系统,要在ha.cf下的/usr/lib64/heartbeat/ipfail
  2. ERROR: Illegal directive [node ] in /etc/ha.d//ha.cfucast eth0 172.31.24.200 要注意在ha.cf下网络端口是否匹配