天天看點

高可用叢集HA(heartbeat)

HA 即 (high available)高可用,又被叫做雙機熱備,用于關鍵性業務。 簡單了解就是,有兩台機器A和B,正常是A提供服務,B待命閑置,當A當機或服務宕掉,會切換至B機器繼續提供服務。

下面我們使用heartbeat來做HA叢集,并且把nginx服務作為HA對應的服務。

試驗準備:

兩個機器, 都是centos6.5,網卡eth1 ip如下:

master  192.168.11.24

master1  192.168.11.23

1. hostname 設定好,分别為master  和 master1

2. 關閉防火牆 iptables-F; 

    關閉selinux: setenforce0

3. vi /etc/hosts   // 增加内容如下: 

192.168.11.24 master  

192.168.11.23 master1

4. 安裝epel擴充源:

rpm -ivh 'http://www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_32.noarch.rpm'

5. 兩個機器都安裝heartbeat /libnet

yum install -y heartbeat*  libnet  nginx

6.  主上(aming)配置

cd /usr/share/doc/heartbeat-3.0.4/

cp  authkeys ha.cf   haresources   /etc/ha.d/

cd /etc/ha.d

vi authkeys  //加入

3 md5 Hello!

chmod600 authkeys

vi haresources  //加入

master 192.168.11.10/24/eth1:0  nginx  

vi 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 eth1 192.168.11.23

auto_failback on

node   master

node    master1

ping  192.168.11.1(可以為網關)

respawn hacluster /usr/lib/heartbeat/ipfail

7.  把主上的三個配置拷貝到從上:

cd /etc/ha.d/

scp authkeys  ha.cf  haresources  master1:/etc/ha.d/

8. 到從上(aming1) 編輯ha.cf

vi /etc/ha.d/ha.cf   //隻需要更改一個地方

ucast eth1 192.168.11.23 改為   ucast eth1 192.168.11.24 

9.  啟動heartbeat :

先主,後從

service heartbeat start

10. 檢查測試

ifconfig 看是否有 eth1:0

ps aux |grep nginx  看是否有nginx程序

11.  測試1

主上故意禁ping

iptables -I INPUT -p icmp -j DROP

12. 測試2