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
说明:aming为主节点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
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
[root@ha ha.d]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e7:f8:90 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.122/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.125/24 brd 192.168.1.255 scope global secondary eth0:0
inet6 fe80::20c:29ff:fee7:f890/64 scope link
valid_lft forever preferred_lft forever
ps aux |grep nginx
11)测试1
iptables -I INPUT -p icmp -j DROP
12)测试2
主上停止heartbeat服务
# service heartbeat stop
yum install openssh-clients 没有scp下载这个包