HA

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下载这个包


你可能感兴趣的:(HA)