HA集群配置
前期准备
设置主机名
主master;从slave
vim /etc/sysconfig/network
先关闭主从防火墙
http://www.cnblogs.com/hyit/articles/4740646.html
再设置主从心跳IP、vip(这里的主从外网ip未给出),这里的外网ip网卡和心跳ip网卡是同一块网卡,不安全;心跳ip和外网ip的网卡名称需一致
主(服务器1心跳ip):192.168.11.160
从(服务器2心跳ip): 192.168.11.20
vip(虚拟ip):192.168.11.110 #对外提供服务的IP、不需要手动配置;实际的外网IP用户是不知道的,
设置主从/etc/hosts
查看有无heartbeat包,有(yum list | grep heartbeat)
没有就安装扩展源(yum install -y epel-release)
安装heartbeat(yum install -y heartbeat* libnet nginx)
开始实验
主上配置
一、配置authkeys认证文件,用于两个节点的认证。主从节点的验证方式及验证密码必须一致
cd /usr/share/doc/heartbeat-3.0.4/ cp authkeys ha.cf haresources /etc/ha.d/ cd /etc/ha.d/ vi authkeys
说明:
auth 3 #取消注释,将其改成以下验证算法前的序号 #1 crc #只作校验,开销最小 #2 sha1 HI! #加密强度最大,开销最大,后面的"HI!"为验证密码 3 md5 Hello! #取消注释 ,使用md5进行验证,加密强度比sha1稍弱,但开销也比sha1小,,后面的"Hello!"为验证密码
chmod 600 authkeys #不改权限不能启动heartbeat
二、配置vip
cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0 ifcfg-eth0\:1 vi !$
service network restart #重启网络服务
查看网卡eth0新绑定的IP
三、配置haresources资源文件,用于指定双机系统的主节点、VIP、子网掩码、广播地址及启动的服务等集群资源
nginx为heartbeat监控的服务
vim /etc/ha.d/haresources
master 192.168.11.110/24/eth0:0 nginx
四、配置ha.cf文件,heartbeat的主配置文件
vim /etc/ha.d/ha.cf
debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 #多长时间探测一次 deadtime 10 #如果30秒ping不通了,就认为死掉了 warntime 10 #10秒ping不通会发出警告 initdead 60 #防止对方服务器重启预留一段时间 udpport 694 #心跳线通讯端口 ucast eth0 192.168.11.20 #配置对方指定的IP auto_failback on node master #主 node slave #从 ping 192.168.11.1 #裁判 respawn hacluster /usr/lib/heartbeat/ipfail #检测网络连通性的
五、主从上均安装包openssh-clients才能使用scp
yum install -y openssh-clients cd /etc/ha.d/ scp authkeys ha.cf haresources slave:/etc/ha.d
六、主上配置拷贝到从上(主上操作)
从上操作
vi /etc/ha.d/ha.cf
debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 #多长时间探测一次 deadtime 10 #如果30秒ping不通了,就认为死掉了 warntime 10 #10秒ping不通会发出警告 initdead 60 #防止对方服务器重启预留一段时间 udpport 694 #心跳线通讯端口 ucast eth2 192.168.11.160 #配置对方指定的IP auto_failback on node master #主 node slave #从 ping 192.168.11.1裁判 respawn hacluster /usr/lib/heartbeat/ipfail #检测网络连通性的
七 启动heartbeat(先主后从)
测试:
[root@master ~]# echo "111111master" >/usr/share/nginx/html/index.html
[root@slave ~]# echo "222222slave" > /usr/share/nginx/html/index.html
[root@master html]# service heartbeat stop
测试成功