天天看點

Heartbeat實作Web服務的高可用群集

 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