天天看點

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

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

1、通過Heartbeat來實作HA群集,已達到實時監控主Director的運作狀态,一旦主狀态死掉,處于備份狀态的Director立即激活為主狀态,實作高可用性。

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

3、LVS—DR

拓撲如下:

<a href="http://blog.51cto.com/attachment/201301/192314326.png" target="_blank"></a>

Server1的ip為192.168.2.100   接口lo:0的vip為192.168.2.1

Server2的ip為192.168.2.200   接口lo:0的vip為192.168.2.1

主Director的eth0的ip為192.168.2.10

            Eth1的ip為192.168.3.1

備Director的eth0的ip為192.168.2.20

            Eth1的ip為192.168.3.2

Vip 為192.168.2.1

Director1的配置

1、分别配置ip位址及主機名

Lo:0接口ip位址的配置

<a href="http://blog.51cto.com/attachment/201301/192323813.png" target="_blank"></a>

修改Director的主機名

Hostname  director1  及編輯/etc/sysconfig/network

hosts檔案如下:

<a href="http://blog.51cto.com/attachment/201301/192331751.png" target="_blank"></a>

其他的略

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 是指明處于主狀态的director,192.168.2.1 即vip ,ldirectord是heartbeat控制的服務 ,ldirectord.cf 是ldirectord要調用的參數。  

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

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

cp ldirectord.cf /etc/ha.d/

vim ldirectord.cf 修改如下:

<a href="http://blog.51cto.com/attachment/201301/192342127.png" target="_blank"></a>

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" &gt;.web.html 

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

echo "net.ipv4.conf.eth0.arp_ignore = 1" &gt;&gt;/etc/sysctl.conf 

echo "net.ipv4.conf.eth0.arp_announce = 2" &gt;&gt;/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接口如下:

<a href="http://blog.51cto.com/attachment/201301/192352308.png" target="_blank"></a>

規則也已啟用

<a href="http://blog.51cto.com/attachment/201301/192403867.png" target="_blank"></a>

Director2上并沒有這些,因為它是處于備份狀态的

假如後方的一個server的httpd服務停了,主Director就通路不到.web.html這個頁面了,就會将删除到該server的定向規則。

<a href="http://blog.51cto.com/attachment/201301/192426977.png" target="_blank"></a>

隻是權重變為了“0”,并沒有将這條規則删除,需要将靜默模式改為no如下:

vim ldirectord.cf

quiescent=no

重新開機heartbeat 定向到停止httpd服務的規則被删除了如下:

<a href="http://blog.51cto.com/attachment/201301/192441306.png" target="_blank"></a>

!!!

本文轉自 abc16810 51CTO部落格,原文連結:http://blog.51cto.com/abc16810/1107946

繼續閱讀