HeartBeat+LVS+Ldirectord高可用負載均衡解決方案

HeartBeat+LVS+Ldirectord高可用負載均衡解決方案 

1、通過Heartbeat來實現HA羣集,已達到實時監控主Director的運行狀態,一旦主狀態死掉,處於備份狀態的Director立即激活爲主狀態,實現高可用性。

2、通過了ldirectord實時監控Director後方的real server的運行狀態,一旦real server的相關服務死掉,或者網卡壞掉的話,Director將不會再將客戶的請求定向到該real server上。

3、LVSDR

拓撲如下:

Server1ip192.168.2.100   接口lo:0vip192.168.2.1

Server2ip192.168.2.200   接口lo:0vip192.168.2.1

Directoreth0ip192.168.2.10

            Eth1ip192.168.3.1

Directoreth0ip192.168.2.20

            Eth1ip192.168.3.2

Vip 192.168.2.1

Director1的配置

1、分別配置ip地址及主機名

Lo:0接口ip地址的配置

修改Director的主機名

Hostname  director1  及編輯/etc/sysconfig/network

hosts文件如下:

其他的略

2、安裝heartbeat所需的軟件以實現HA如下:

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

yum localinstall -y heartbeat-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 --nogpgcheck

3、將authkeys  haresources  ha.cf這三個文件拷貝到/etc/ha.d/目錄下,並依次編輯如下:

cd /usr/share/doc/heartbeat-2.1.4/

cp  authkeys  haresources  ha.cf  /etc/ha.d/

cd /etc/ha.d/

vim ha.cf

 bcast  eth1    ---指明心跳探測接口

 node  Director1

 node  Director2

vim authkeys 

auth 3

3 md5 0b8e3683637d469bd73abc7e19e2156c  --md5驗證 (後邊的md5密文隨意只要兩個Director的一樣)

chmod 600 authkeys

vim haresources

Director1  192.168.2.1/24/eth0  ldirectord::ldirectord.cf   --Director1 是指明處於主狀態的director192.168.2.1 vip ldirectordheartbeat控制的服務 ,ldirectord.cf ldirectord要調用的參數。  

4、ldirectord.cf拷貝到/etc/ha.d/目錄下

cd /usr/share/doc/heartbeat-ldirectord-2.1.4/

cp ldirectord.cf /etc/ha.d/

cd /etc/ha.d/

vim ldirectord.cf 修改如下:

Fallback=127.0.0.1:80 --real server都死掉的話,vip指向本機

persistent=600    ---這個是持久連接

checktype=negotiate  --檢測類型 negotiate,表示DR發送請求,realserver恢復特定字符串才表示服務正常;connect,表示DR能夠連線realserver即正常。 

Ldirectord通過訪問含有OK內容的.web.html這個web頁面來達到監測後方的real server 的,當後方的server死掉或這是web服務停止,自然就就訪問不到.web.html這個頁面了。

5、確保ipvsadm沒有規則,並處於stop狀態和開機不啓動

ipvsadm -C

service ipvsadm save

service ipvsadm stop

chkconfig ipvsadm off

如果是才按裝ipvsadm執行一下service ipvsadm save就可以了

Director2的配置(2--5步)完全相同,(略)

Real server1的配置

1、安裝httpd,配置好web服務

2、/var/www/html/目錄下新建上述的.web.html文件

cd /var/www/html/

touch .web.html

echo "OK" >.web.html 

3、配置arp_ignorearp_announce參數禁用arp廣播響應

echo "net.ipv4.conf.eth0.arp_ignore = 1" >>/etc/sysctl.conf 

echo "net.ipv4.conf.eth0.arp_announce = 2" >>/etc/sysctl.conf

sysctl  -p

4、配置路由

route add  -host 192.168.2.1 dev eth0

5、開啓httpd服務

Real server2的配置與Real server1的配置一樣

director上依次啓動heartbeat

Director1上增加了eth0:0接口如下:

規則也已啓用

Director2上並沒有這些,因爲它是處於備份狀態的

假如後方的一個serverhttpd服務停了,主Director就訪問不到.web.html這個頁面了,就會將刪除到該server的定向規則。

只是權重變爲了“0”,並沒有將這條規則刪除,需要將靜默模式改爲no如下:

vim ldirectord.cf

quiescent=no

重啓heartbeat 定向到停止httpd服務的規則被刪除了如下:

!!!

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