IPVS-DR+keepalived實現高可用負載均衡集羣

IPVS-DR+keepalived高可用負載均衡集羣方案前端的負載調度器採用雙機熱備方式,Keepalived主要用來監測RealServer的健康狀態以及主負載均衡器和備份負載均衡器之間的故障轉移,一旦主負載調度器恢復正常工作,主負載調度器重新恢復對集羣的資源管理。
系統平臺:Redhat 5.4
網絡拓撲如下:
服務器IP規劃如下:
所需軟件包:
1.ipvsadm-1.24-10.i386.rpm (RHEL 5光盤自帶)
2.keepalived-1.2.2.tar.gz(目前最新版)
下載地址:http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
一.主負載均衡器(MASTER)的配置
1.修改/etc/hosts文件,增加以下兩行內容:
[root@localhost~]# vi /etc/hosts
200.10.1.1 MASTER
200.10.1.2 BACKUP
2.修改主機名,編輯/etc/sysconfig/network文件:
HOSTNAME=MASTER
以上兩步非必要步驟。
3.配置本機IP。(略)
4.設置VIP腳本:
[root@lvs-master~] # vi vip.sh
#!/bin/bash
VIP=200.10.1.10
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
5.給vip腳本設置可執行權限:
[root@MASTER~] # chmod a+x vip.sh
運行vip腳本並設置爲開機啓動:
[root@MASTER~]# ./vip.sh
[root@MASTER~]# echo “/root/vip.sh”>> /etc/rc.local
6.安裝與配置並啓動ipvsadm:
[root@MASTER~] #rpm –ivh ipvsadm-1.24-10.i386.rpm
[root@MASTER~] # ipvsadm –A –t 200.10.1.10:80 –s rr –p 600
[root@MASTER~]# ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.3:80 –g -w 1
[root@MASTER~]# ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.4:80 –g -w 1
[root@MASTER~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@MASTER~]# service ipvsadm start
7.安裝與配置keepalived:
[root@MASTER~]# tar zxf keepalived-1.2.2.tar.gz
[root@MASTER~]# cd keepalived-1.2.2
[root@MASTER~]# ./configure && make && make install
[root@MASTER~]# find / -name keepalived //查看keepalived安裝後產生的相前目錄和文件的位置
[root@MASTER~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@MASTER~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@MASTER~]# mkdir /etc/keepalived
[root@MASTER~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@MASTER~]# cp /usr/local/sbin/keepalived /usr/sbin/
7.1.修改keepalived.conf配置文件
[root@MASTER~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
200.10.1.10
}
}
virtual_server 200.10.1.10 80 {
delay_loop 6
lb_algo rr
lb_kind DR
# nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 200.10.1.3 80 {
weight 3
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 200.10.1.4 80 {
weight 3
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
7.2.啓動keepalived服務
[root@MASTER~]# service keepalived start
二.備份負載均衡器(BACKUP)的配置
1.IP配置(略)
2.主機名和VIP腳本設定(同MASTER一致)
3.需要安裝的軟件同MASTER一致,ipvsadm配置一致。
4.keepalived.conf需要修改的地方:
state MASTER #備份服務器上將MASTER改爲BACKUP
priority 100 # 備份服務上將100改爲99
三.Realserver1(Web)的配置(已經安裝好apache)
1.添加以下腳本:
[root@localhost~] # vi lvs.sh
#!/bin/bash
VIP="200.10.1.10"
/sbin/ifconfig eth0 200.10.1.3/24
/sbin/ifconfig lo:0 $VIP braodcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl –p
2.給腳本增加可執行權限,然後啓動並設置爲開機啓動:
[root@localhost~] # chmod a+x lvs.sh
[root@localhost~] # ./lvs.sh
[root@localhost~] # echo “/root/lvs.sh”>> /etc/rc.local
3.創建測試頁面並啓動web服務:
[root@localhost~] # echo “This is Realserver1”> /var/www/html/index.html
[root@localhost~] # service httpd start
四.Realserver2(Web)上的配置(已經安裝好apache)
1.添加以下腳本:
[root@localhost~] # vi lvs.sh
#!/bin/bash
VIP="200.10.1.10"
/sbin/ifconfig eth0 200.10.1.4/24
/sbin/ifconfig lo:0 $VIP braodcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl –p
2.給腳本增加可執行權限,然後啓動並設置爲開機啓動:
[root@localhost~] # chmod a+x lvs.sh
[root@localhost~] # ./lvs.sh
[root@localhost~] # echo “/root/lvs.sh”>> /etc/rc.local
3.創建測試頁面並啓動web服務:
[root@localhost~] # echo “This is Realserver2”> /var/www/html/index.html
[root@localhost~] # service httpd start
五.測試及驗證
1.分別在兩臺PC上打開瀏覽器,輸入“http://200.10.1.10”,如果看到的是不同的頁面,說明LVS配置成功!

2.可以使用命令ipvsadm –L查看lvs服務器是否正常。
3.tail –f /var/log/message 監聽日誌,查看狀態。
4.停卡MASTER上面的ipvsadm和keepalived服務,看BACKUP是否正常接管MASTER的工作,然後再恢復MASTER的服務,看MASTER是否恢復工作。

參考文章:NetSeek http://www.linuxtone.org
利用LVS+Keepalived 實現高性能高可用負載均衡
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章