Heartbeat實作Web服務的高可用群集
HA群集模型如下:對外的vip是192.168.2.1,處于活動狀态的web的主機名node1,處于備份狀态的web的主機名node2,當主狀态的web死掉,處于備份狀态的web立即變為主狀态。以實作高可用性。(不考慮存儲)
<a href="http://blog.51cto.com/attachment/201301/191732590.png" target="_blank"></a>
Node1的配置
1、配置主機名和ip位址
<a href="http://blog.51cto.com/attachment/201301/191743424.png" target="_blank"></a>
2、編輯hosts檔案,使主備之間能互相解析
192.168.2.100 node1.server1.com
192.168.2.200 node2.server2.com
3、上傳所需的heartbeat軟體包,并安裝
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm -y --nogpgcheck
4、将心跳探測配置檔案、資源管理配置檔案、之間身份驗證配置檔案拷貝到/etc/ha.d/目錄下
cd /usr/share/doc/heartbeat-2.1.4/
cp ha.cf authkeys haresources /etc/ha.d/
5、編輯ha.cf插入如下
bcast eth1 --心跳探測接口
node node1.server1.com --兩個節點
node node2.server2.com
6、編輯authkeys檔案插入如下:
auth 3
3 md5 adf25a5a79c3be8e1df5ff1ac64a21fc --MD5的驗證類型 後面是是密鑰
chmod 600 authkeys
7、編輯haresources檔案插入如下:
node1.server1.com 192.168.2.1/24/eth0 httpd (節點名稱(激活的)-------節點vip---腳本資源)
8、将httpd的控制腳本拷貝到/etc/ha.d/resource.d/目錄下,将有heartbeat控制httpd服務
cd /etc/ha.d/resource.d/
cp /etc/init.d/httpd ./
9、確定httpd現在是stop狀态,且開機不啟動,因為他的控制權以後就交個了heartbeat,并啟動叢集heartbeat
<a href="http://blog.51cto.com/attachment/201301/191752750.png" target="_blank"></a>
啟動群集後多了一個接口位址即vip
<a href="http://blog.51cto.com/attachment/201301/191802766.png" target="_blank"></a>
此時httpd也啟動了
<a href="http://blog.51cto.com/attachment/201301/191814103.png" target="_blank"></a>
即node1.server1.com是處于活動狀态,下面的node2.server2.com就隻能是處于備份狀态了,
将不會産生eth0:0接口,及httpd也處于stop狀态
Node2是配置
與node1(1-9步)的配置基本完全相同,不在叙述
啟動node2.server2.com的群集heartbeat
測試一下
<a href="http://blog.51cto.com/attachment/201301/191822448.png" target="_blank"></a>
活動狀态node1的web
在一個client上長ping vip位址,并将node1.server1.com該為備份狀态,看是否有丢包(在實際中你可以拔掉一根線)
這樣做
cd /usr/share/heartbeat/
./hb_standby -----模拟失效
再測試一下
<a href="http://blog.51cto.com/attachment/201301/191830942.png" target="_blank"></a>
node2的web,此時node2變成了活動狀态
如果node1再搶占位活動狀态執行如下指令
./hb_takeover
這個過程中ping沒有被中斷,高可用群集保證了服務的不間斷。。。!!!
本文轉自 abc16810 51CTO部落格,原文連結:http://blog.51cto.com/abc16810/1107944