两台主机硬件环境(不必完全一致):
eth0: 对外IP
eth1: 对内IP(HA 专用)
两台主机的eht1 使用双机对联线直接连接。
【二】安装前网络环境设定:
========================================================
node1: 主机名:master.qiangao.com
eth0: 192.168.10.197 //对外IP 地址
eth1: 172.16.1.3 //HA 心跳使用地址
---------------------------
node2: 主机名:slave.qiangao.com
eth0: 192.168.10.198 //对外IP 地址
eth1: 172.16.1.4 //HA 心跳使用地址
特别注意要检查以下几个文件:
/etc/hosts
/etc/host.conf
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/nsswitch.conf
#vi /etc/hosts
node1 的hosts 内容如下:
127.0.0.1 master.qiangao.com master localhost.localdomain localhost
192.168.10.197 master.qiangao.com
192.168.10.198 slave.qiangao.com
::1 localhost6.localdomain6 localhost6
---------------------------
node2 的hosts 内容如下:
127.0.0.1 slave.qiangao.com slave localhost.localdomain localhost
192.168.10.197 master.qiangao.com
192.168.10.198 slave.qiangao.com
::1 localhost6.localdomain6 localhost6
#cat /etc/host.conf
order hosts,bind
#cat /etc/resolv.conf
nameserver 202.96.134.133 //DNS 地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= master.qiangao.com //主机名
GATEWAY="192.168.10.1" //网关
GATEWAY="eth0" //网关使用网卡
ONBOOT=YES //启动时加载
FORWARD_IPV4="yes" //只允许IPV4
---------------------------
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.197
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
TYPE=Ethernet
IPV6INIT=no
---------------------------
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.16.1.3
NETMASK=255.255.0.0
TYPE=Ethernet
[node1] 与 [node2] 在上面的配置中,除了
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。
配置完成后,试试在各自主机上ping 对方的主机名,应该可以ping 通:
[root@master ~]# ping slave.qiangao.com
PING slave.qiangao.com (192.168.10.198) 56(84) bytes of data.
64 bytes from slave.qiangao.com (192.168.10.198): icmp_seq=1 ttl=64
time=0.136 ms
【三】安装HA 与HA依赖包
===========================================================
yum install heartbeat
yum install ipvsadm
yum install libnet
【四】 配置 HA的各配置文件
首先复制配置文件到/etc目录
cd /usr/share/doc/heartbeat-2.1.3
cp ha.cf haresources /etc/ha.d/
cp authkeys /etc/ha.d/
===========================================================
配置心跳的加密方式:authkeys
如果使用双机对联线(双绞线),可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
存盘退出,然后
#chmod 600 authkeys
===========================================================
配置心跳的监控:haresources
创建检测脚本(本处如果没有个监测脚本hearbeat无法启动)
vi /etc/init.d/test(内容如下)
#!/bin/bash
echo "" $>/dev/null
chmod 777 /etc/init.d/test
===========================================================
#vi /etc/ha.d/haresources(配置资源文件)
各主机这部分应完全相同。
master.qiangao.com 192.168.10.200 test
指定 master.qiangao.com 调用预先写好的一个测试脚本,系统附加一个虚拟IP
192.168.10.200 给eth0:0
这里如果master.qiangao.com 宕机后slave.qiangao.com 可以新分配IP
192.168.10.200
===========================================================
配置心跳的配置文件:ha.cf
#vi /etc/ha.d/ha.cf
logfile /var/log/ha_log/ha-log.log ## ha 的日志文件记录位置。如没有
该目录,则需要手动添加
bcast eth1 ##使用eht1 做心跳监测
keepalive 2 ##设定心跳(监测)时间时间为2 秒
warntime 4####警告时间
deadtime 6#########确定服务以死的时间
initdead 30
hopfudge 1
udpport 694 ##使用udp 端口694 进行心跳监测
auto_failback on
node master.qiangao.com ##节点1,必须要与 uname -n 指令得到的结果一致。
node slave.qiangao.com ##节点2
ping 172.16.1.04 ##通过ping 对方来监测心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail(因操作系统而异)
apiauth ipfail gid=haclient uid=hacluster
debugfile /var/logs/ha-debug.log
---------------------------
【五】 HA服务的启动、关闭
[root@master ha.d]# chkconfig --add heartbeat
[root@master ha.d]# chkconfig --levels 2345 heartbeat on
启动HA: service heartbeat start
关闭HA; service heartbeat stop
【六】 防火墙设置
====================================================
heartbeat 默认使用udp 694 端口进行心跳监测。 如果系统有使用iptables 做
防火墙,应记住把这个端口打开。
#vi /etc/sysconfig/iptables
加入以下内容(互相指向对方ip)
-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 172.16.1.4 -j ACCEPT
意思是udp 694 端口对 对方的心跳网卡地址 172.16.1.4 开放。
#service iptables restart
重新加载iptables。
====================================================
设置ipvsadm 的巡回监测
[root@master ha.d]# ipvsadm -A -t 192.168.10.200:80 -s rr
[root@master ha.d]# ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.197:80 -m
[root@master ha.d]# ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.198:80
–m
执行后进行监测:
[root@master ha.d]# ipvsadm --list
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.200:http rr
-> slave.qiangao.com:http Masq 1 0 0
-> master.qiangao.com:http Local 1 0 0