Lvs-DR+Heartbeat+ldirectord+web實現高可用性羣集

Lvs-DR+Heartbeat+ldirectord高可用性羣集


Heartbeat 四個層次

1messaging layer 心跳探測測 /etc/ha.d/ha.cf

2ccm 成員管理 /etc/ha.d/authkeys

3crm 羣集資源管理 /etc/ha.d/haresources 控制腳本

4.resources



155411277.jpg

首先請保證各個節點之間的物理連通性。試驗目的:實現HA高可用性羣集系統,LSA-DR直接路由進行負載均衡以及Directory和RealServer的健康探測。


一、配置Directory1:

1、確保director能夠相互解析到對方的DNS需要編輯vim /etc/hosts.

155428322.jpg

2.配置director1的本地主機名

[root@node1 ~]# vim /etc/sysconfig/network

155453921.jpg

3.配置eth0地址,及eth1來作爲兩個director之間的心跳探測.

155508425.jpg

4掛載本地光盤,配置本地YUM

155530595.jpg

155544913.jpg

5.安裝Heartbeat的軟件包

heartbeat-2.1.4-9.el5.i386.rpm

heartbeat-devel-2.1.4-9.el5.i386.rpm

heartbeat-gui-2.1.4-9.el5.i386.rpm

heartbeat-ldirectord-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


//下載地址:http://yunpan.cn/QbFZ4REqCjP8w


[root@node1 ~]# cd Heartbeat //存放Heartbeat的軟件包目錄

[root@node1 heartbeat]# #yum localinstall *.rpm --nopgpcheck


155621735.jpg

155637730.jpg

6配置Heartbeat服務

① 從模版中拷貝配置文件到Heartbeat對應的/etc/目錄下

[root@node1 heartbeat]# # cd /usr/share/doc/heartbeat-2.1.4/

[root@node1 heartbeat]# # cp ha.cf /etc/ha.d/

[root@node1 heartbeat]# # cp haresources /etc/ha.d/

[root@node1 heartbeat]# # cp authkeys /etc/ha.d/



155700626.jpg

② 編輯Directory的心跳探測配置文件ha.cf

[root@node1 ha.d]# vim ha.cf 第一層


155715697.jpg



155729529.jpg

③ 配置驗證密鑰(位了實現雙方身份驗證)

[root@node1 ha.d]# vim authkeys 第二層


155746711.jpg

[root@node1 ha.d]# chmod 600 /etc/ha.d/authkeys


//注意:如果不修改權限的話,啓動Heartbeat就會出錯。


④ 編輯Heartbeat資源管理器:(用於管理Directory上的服務,如web,ftp,多個資源之間需要用“::來分隔”)

[root@node1 ha.d]# vim haresources 第三層


155800785.jpg

安裝ipvsadm服務:

注意在前面,使用yum安裝所有的rpm時,其中一個軟件包heartbeat-ldirectord.rpm會依賴與ipvsadm,所以ipvsadm也就安裝了。如果無法確定是否安裝,可以使用命令查看:

[root@node1 heartbeat]# # rpm -qa |grep ipvsadm

[root@node1 ~]# rpm -ivh /mnt/cdrom/Cluster/ipvsadm-1.24-10.i386.rpm


⑤ 配置ipvs轉發表

155817630.jpg

//保存ipvs規則

[root@node1 ~]# service ipvsadm save

[root@node1 ~]# chkconfig --list ipvsadm

//禁止ipvs開機自動起來

[root@node1 ~]# chkconfig ipvsadm on

//將ipvsadm的控制腳本複製到heartbeat資源管理目錄,爲了使heartbeat能對ipvsadm進行控制

[root@node1 ~]# cp /etc/init.d/ipvsadm /etc/ha.d/resource.d/ 第四層

[root@node1 ~]# service heartbeat start

//啓動heartbeat服務

//通過查看日誌文件,來觀察heartbeat運行狀況


155837420.jpg


//ifconfig來觀察現在的VIP地址192.168.2.100是否在node1上


155854485.jpg

二、配置動態的ipvs規則表以及Directory之間的健康探測

在前面的試驗中,我們使用的手動添加Directory的ipvs規則表。這樣在Directory中的ipvsadm中就好永久保存,可是有的時候後方的RealServer可能會出現宕機,如果使用的輪詢機制的話,Directory會輪流的將用戶的請求轉發給後方的RealServer,可是某個Server此時不能工作。這樣以來,效率就會大大降低。爲了實現ipvs規則表的動態更新(當某個Server宕機後,Directory會主動刪除該Server的規則,當它又恢復之後,主動添加這個規則),我們可以使用Heartbeat中的一個插件ldirectord服務。


[root@node1 ~]# rpm -ivh heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

① 刪除手動添加的ipvsadm規則條目

[root@node1 heartbeat]# rm /etc/sysconfig/ipvsadm

關閉heartbeat服務:

[root@Directory1 heartbeat]# service heartbeat stop

拷貝ldirectord的控制腳本到heartbeat資源控制目錄中

[root@node1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/(相當於ldirectord的配置文件)

[root@node1 ~]# vim /etc/ha.d/ldirectord.cf


155916694.jpg


//注:靜默模式指的是不管後方有沒有apache服務器ipvs鏈表都會顯示後方服務器鏈表,這裏我們需要把靜默模式更改爲no,


[root@node1 ha.d]# vim haresources


155934937.jpg

[root@node1 ha.d]# chkconfig ldirectord off


三、配置Directory2

說明:Directory2上的配置和Directory1基本一樣。需要注意的地方是:

Directory2的主機名

Directory2的本地DNS

Directory2上不用配置eth0:0

1、編輯Heartbeat資源管理器:

[root@Directory2]# vim /etc/ha.d/haresources

155951428.jpg

2、安裝完Heartbeat後,啓用Heartbeat服務:

[root@Directory2]# service heartbeat start

[root@Directory2]# ipvsadm -ln

160006723.jpg

//Directory2處於備份狀態,所以ipvs中雖然配置了轉發規則,但是目前並未啓用。


四、配置apache服務器


160021538.jpg



160035981.jpg

1、安裝httpd

[root@Server1]# mkdir /mnt/cdrom

[root@Server1]# mount /dev/cdrom /mnt/cdrom

[root@Server1]# rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm

2、創建Server1測試頁面;

[root@Server1]# cd /var/www/html

[root@Server1 html]# echo “Server1”>index.html

3、啓動httpd服務:

[root@Server1]# service httpd start

4、探測頁面

[root@localhost ~]# vim /var/www/html/.test.html

寫入OK



五、配置apache2服務器


160053317.jpg


160106985.jpg

說明:Server2的配置和Server1的配置基本相同。

[root@Server2]# cd /var/www/html

[root@Server2 html]# echo “Server2”>index.html

[root@Server1]# service httpd start

探測頁面

[root@localhost ~]# vim /var/www/html/.test.html

寫入OK




測試:

30

160125928.jpg


//注:如果探測頁面沒有探測出後方服務器,則ipvs鏈表是無法顯示後方服務器地址


160205979.jpg

160239367.jpg










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章