Heartbeat實現Web服務的高可用羣集
HA羣集模型如下:對外的vip是192.168.2.1,處於活動狀態的web的主機名node1,處於備份狀態的web的主機名node2,當主狀態的web死掉,處於備份狀態的web立即變爲主狀態。以實現高可用性。(不考慮存儲)
Node1的配置
1、配置主機名和ip地址
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
啓動羣集後多了一個接口地址即vip
此時httpd也啓動了
即node1.server1.com是處於活動狀態,下面的node2.server2.com就只能是處於備份狀態了,
將不會產生eth0:0接口,及httpd也處於stop狀態
Node2是配置
與node1(1-9步)的配置基本完全相同,不在敘述
啓動node2.server2.com的羣集heartbeat
測試一下
活動狀態node1的web
在一個client上長ping vip地址,並將node1.server1.com該爲備份狀態,看是否有丟包(在實際中你可以拔掉一根線)
這樣做
cd /usr/share/heartbeat/
./hb_standby -----模擬失效
再測試一下
node2的web,此時node2變成了活動狀態
如果node1再搶佔位活動狀態執行如下命令
cd /usr/share/heartbeat/
./hb_takeover
這個過程中ping沒有被中斷,高可用羣集保證了服務的不間斷。。。!!!