HA 即(high available)高可用,又被叫做双机热备,用于关键性业务。 简单理解就是,有两台机器A和B,正常是A提供服务,
B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务。常用实现高可用的开源软件有heartbeat和keepalived,
其中keepalived有负载均衡的功能。
使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服务。 准备工作:
一个交换机下面有两台机器Web1和Web2,其中Web1为主节点,正常是它在提供服务,而Web2备用节点是闲置的。
Web1和Web2中间有一根心跳线,检查对方的存活状态。流动IP,也叫vip是对外提供服务的ip,正常情况下是配置在Web1上的,
当Web1宕机后,Web2会自动配置该vip,对外提供服务
两个机器, 都是centos6.5,网卡eth0 ip如下:
下面操作1-5步骤都是在两个机器上操作
1) hostname 设置好,分别为ha1和ha2
ha2 192.168.1.123
ha1 192.168.1.122
主上设置hostname
hostname ha1
vim /etc/sysconfig/network
HOSTNAME=ha1
从上设置hostname
hostname ha2
vim /etc/sysconfig/network
HOSTNAME=ha2
2) 主和从上都操作
iptables -F
service iptables save
主和从都关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
3)配置hosts
vi /etc/hosts
192.168.1.123 ha1
192.168.1.122 ha2
4)安装epel扩展源
yum install -y epel-release
5)安装heartbeat
yum install -y heartbeat* libnet nginx
6)主上(ha1)配置
cd /usr/share/doc/heartbeat-3.0.4/
cp authkeys ha.cf haresources /etc/ha.d/
cd /etc/ha.d
vim authkeys
更改或增加一行 3 md5 Hello!
然后修改其权限 # chmod 600 authkeys
编辑haresources文件
vim haresources
加入下面一行 ha1 192.168.1.125/24/eth0:0 nginx
说明:ha1为主节点hostname,192.168.31.110为vip,/24为24网段,eth0:0为vip的设备名,nginx为heartbeat监控的服务,
也是两台机器对外提供的核心服务。
然后编辑ha.cf
vim ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast eth0 192.168.1.123 对方的ip
auto_failback on
node ha1
node ha2
ping 192.168.1.1
respawn hacluster /usr/lib/heartbeat/ipfail
7)把主上的三个配置拷贝到从上
cd /etc/ha.d/
scp authkeys ha.cf haresources ha2:/etc/ha.d/
8)到从上(ha2) 编辑ha.cf
vi /etc/ha.d/ha.cf
只需要更改一个地方
ucast eth1 192.168.1.123改为ucast eth1 192.168.122
启动heartbeat
先主,后从
service heartbeat start
10)检查测试
ifconfig
看是否有 eth0:0
ps aux |grep nginx
11)测试1
用vip访问
yum install openssh-clients 没有scp下载这个包