Lvs-DR+Heartbeat+ldirectord高可用性羣集
Heartbeat 四個層次
1)messaging layer 心跳探測測 /etc/ha.d/ha.cf
2)ccm 成員管理 /etc/ha.d/authkeys
3)crm 羣集資源管理 /etc/ha.d/haresources 控制腳本
4.)resources
首先請保證各個節點之間的物理連通性。試驗目的:實現HA高可用性羣集系統,LSA-DR直接路由進行負載均衡以及Directory和RealServer的健康探測。
一、配置Directory1:
1、確保director能夠相互解析到對方的DNS需要編輯vim /etc/hosts.
2.配置director1的本地主機名
[root@node1 ~]# vim /etc/sysconfig/network
3.配置eth0地址,及eth1來作爲兩個director之間的心跳探測.
4掛載本地光盤,配置本地YUM
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
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/
② 編輯Directory的心跳探測配置文件ha.cf
[root@node1 ha.d]# vim ha.cf 第一層
③ 配置驗證密鑰(位了實現雙方身份驗證)
[root@node1 ha.d]# vim authkeys 第二層
[root@node1 ha.d]# chmod 600 /etc/ha.d/authkeys
//注意:如果不修改權限的話,啓動Heartbeat就會出錯。
④ 編輯Heartbeat資源管理器:(用於管理Directory上的服務,如web,ftp,多個資源之間需要用“::來分隔”)
[root@node1 ha.d]# vim haresources 第三層
安裝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轉發表
//保存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運行狀況
//ifconfig來觀察現在的VIP地址192.168.2.100是否在node1上
二、配置動態的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
//注:靜默模式指的是不管後方有沒有apache服務器ipvs鏈表都會顯示後方服務器鏈表,這裏我們需要把靜默模式更改爲no,
[root@node1 ha.d]# vim haresources
[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
2、安裝完Heartbeat後,啓用Heartbeat服務:
[root@Directory2]# service heartbeat start
[root@Directory2]# ipvsadm -ln
//Directory2處於備份狀態,所以ipvs中雖然配置了轉發規則,但是目前並未啓用。
四、配置apache服務器
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服務器
說明: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
//注:如果探測頁面沒有探測出後方服務器,則ipvs鏈表是無法顯示後方服務器地址