首页 > 代码库 > HA高可用集群配置

HA高可用集群配置

高可用集群

 说明:关键业务节点,需做高可用

 HA==high available heartbeat -->HA

 结构图:

技术分享


1. 准备:需要两台机器,一主一从,同一局域网

  主:192.168.11.160

  从:192.168.11.20

2. 修改下主从主机的hostname,并用bash切换

  主:hostname master ; bash

  从:hostname slave ; bash

3. 关闭主从机器的防火墙,配置文件/etc/selinux/config,修改SELINUX=disabled

  说明:/etc/

  命令iptables -F

4. 编辑主从机器的hosts文件/etc/hosts,写入

  192.168.11.20 master

  192.168.11.160 slave

5. 主从机器上yum安装heartbeat和依赖包libnet

  说明:默认yum没有heartbeat,需下载和安装扩展源

  www.lishiming.net/data/attachment/forum/epel-release-5-4_32.noarch.rpm

  www.lishiming.net/data/attachment/forum/epel-release-5-4_64.noarch.rpm

  www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm

  www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm

  主从:yum install -y heartbeat

  yum install -y libnet


主从配置

1. 主机上拷贝配置文件,进入/usr/share/doc/heartbeat-3.0.4/

  说明:authkey,主从通信验证作用;

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


a. 编辑文件authkeys,并赋予600权限

  说明:启用认证,加密级别为3(md5)

  内容:auth 3

      3 md5 Hello!

b. 继续编辑haresources文件

  说明:主的主机名;虚拟ip,即流动ip,主从共用的对外ip,当主ip挂了,流动ip自动流动到从主

机上,并对外开放;主从服务对象为nginx,主宕机了,切换为从上

  内容:master 192.168.11.110/24/eth0:0 nginx

  注:同一网卡配置多个ip,进入/etc/sysconfig/network-scripts/

  cp ifcfg-eth0  ifcfg-eth0:\1

  编辑ifcfg-eth0:\1,修改设备名为eth0:1,修改ip,注释掉mac和uuid,重启即可添加一个新的ip


c. 继续编辑vim ha.cf文件 ,删除原配置,加入新内容

  说明:日志文件;日志级别;2秒探测一次;30秒探测不到,认为死掉;10秒探测不到,告警至日志文件中;为对方服务器重启预留60秒时间;心跳线通信端口为694;配置对方的ip,也可以使用bcast,广播形式,去搜索ip,这里直接指定ip(实验中心跳网卡和主从网卡共用,不怎么安全,实际线上,最好给心跳独立网卡或用串口通信);当从已经上线了,主从失败又重新上线,从自动下线,主上线;两个节点;仲裁ip,仲裁主从谁在线;以hacluster身份去运行脚本后面的脚本,该脚本用户检测网络连通性,heartbeat自带的断网切换的工具-ipfail,64位系统位置/usr/lib64/heartbeat/ipfail

  内容:

  debugfile /var/log/ha-debug

  logfile /var/log/ha-log

  logfacility local0

  keepalive 2

  deadtime 30

  warntime 10

  initdead 60

  udpport 694

  ucast eth0 172.16.115.166

  auto_failback on

  node master

  node slave

  ping 172.16.115.1

  respawn hacluster /usr/lib/heartbeat/ipfail


2. 将编辑好的三个配置文件拷贝至从上,并只需修改ha.cf文件

  命令 scp authkeys haresources ha.cf  slave:/etc/ha.d/

  说明:修改为主的ip

  命令 vim ha.cf

  修改内容:ucast eth0 192.168.11.160


3. 主从yum安装nginx

  命令 yum install -y nginx


4. 依次启动主、从上的heartbeat,查看ip addr;ifconfig ;ps aux |grep  nginx

  说明:安装的nginx 无需手动启动,先启动主heartbeat,再启动从heartbeat,等一段时间,主

上虚拟ip自动开启,nginx也被自动拉起,从不会立即起来

  命令 /etc/init.d/heartbeat start


5. 主、从上修改nginx默认界面,并Web上ip访问

  说明:先浏览配置文件cat /etc/nginx/nginx.conf-->找到"include /etc/nginx/conf.d/*.conf;"- ->cd /etc/nginx/conf.d/ -->cat default.conf-->找到“root /usr/share/nginx/html”

  说明:重定向首页文件

  主:echo "11111111111master" > /usr/share/nginx/html/index.html

  从:echo "22222222222222slave" > /usr/share/nginx/html/index.html

 技术分享


6. 测试

  a. 主机器上屏蔽掉ping功能

    说明:插入一条iptbales防火墙规则,禁用ping

    命令 iptables -A INPUT -p icmp -j DROP


  b. 主、从上查看日志,发现主heartbeat挂掉;从heartbeat起来接管,并拉起nginx

    主:tail -f /var/log/ha-log

    从:tail -f /var/log/ha-log


  c. Web访问流动ip,已切换为从主机内容

  

  技术分享

  e. 主机器上去掉icmp规则,重新开启ping,Web访问流动ip

    说明:从上释放掉了流动ip,主自动启用,网页重新回到主机器上

    命令 iptbales -D INPUT -p icmp -j DROP


  f. 主机器上停掉heartbeat, /etc/init.d/heartbeat stop,也会自动切换到从机器

  技术分享

HA高可用集群配置