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/attachment/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
主上停止heartbeat服務
service heartbeat stop
本文轉自 sykmiao 51CTO部落格,原文連結:http://blog.51cto.com/syklinux/1741455,如需轉載請自行聯系原作者