DR模式簡單的說就是客戶端請求數據進來結果ld,而出去的時候不通過ld了,直接去找路由器了,這樣就能夠減小分發器的壓力了,這樣使得能夠調度更多的訪問。算法
特色:server pool中的主機ip爲公有ipbash
ld,real server 都要綁定一個虛ip服務器
real server綁定的虛擬ip,只須要主機知道就好,路由器不須要知道。網絡
配置過程以下:負載均衡
1.client配置ide
#ifconfig eth0 192.168.18.106性能
#route add default gw 192.168.18.254測試
2.router 配置優化
#ifconfig eth0 192.168.18.254url
#ifconfig eth0:0 192.168.19.100
打開轉發:
echo 1 > /proc/sys/net/ipv4/ip_forward
3.分發器的配置:
安裝lvs到分發器上面
配置好yum源,保證可以讀取到介質中的Cluster目錄!
cat /etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=file:///media/Server
enabled=1
gpgcheck=0
[Cluster]
name=cluster
baseurl=file:///media/Cluster
enabled=1
gpgcheck=0
#yum -y install ipvsadm
#ifconfig eth0 192.168.19.200
綁定vip
#ifconfig eth0:0 192.168.19.250 netmask 255.255.255.255 broadcast 192.168.19.250 up
設定正確的路由
route add -host 192.168.19.250 dev eth0:0
設定分發規則
19.200#ipvsadm -A -t 192.168.19.250:80 -s rr
19.200#ipvsadm -a -t 192.168.19.250:80 -r 192.168.19.101 -g
19.200#ipvsadm -a -t 192.168.19.250:80 -r 192.168.19.102 -g
19.200#ipvsadm -a -t 192.168.19.250:80 -r 192.168.19.103 -g
-A 添加服務 -t 服務所使用的虛擬ip地址:端口 (虛擬地址工業環境應該是公網ip) -s 算法 (rr 算法就是你一個,我一個)
注意是 -g 【(-a 添加real server -r real server的ip -g (DR模式)】
算法介紹:
1.rr輪叫調度(Round Robin)
調度器經過「輪叫」調度算法將外部的請求按順序輪流分配至集羣中的真是服務器中,均等的對待每一臺服務器,而無論服務器上面的實際鏈接數和系統負載。
2.wrr加權輪叫(Weighted Round Robin)
調度器經過「加權輪叫」調度算法根據真是服務器的不一樣處理能力來調度訪問請求。這樣能夠保證處理能力強的服務器處理更多的訪問請求。調度器能夠自動詢問真是服務器的負載狀況,並動態地調整其權值。
3.lc最少鏈接(Least Connections)
調度器經過」最少鏈接「調度算法動態的將網絡請求調度到已創建的鏈接數最少的服務器上。若是集羣系統的真實服務器具備相近的系統性能,採用」最少鏈接「調度算法能夠較好的均衡負載狀況。
4.wlc加權最少鏈接(Weighted Least Connections)
在集羣系統中的服務器性能差別較大的狀況下,調度器採用」加權最少鏈接:調度算法優化負載均衡性能,具備較高的權值的服務器將承受較大比例的活動鏈接負載。調度器能夠自動詢問真是服務器的負載狀況,並動態的調度其權值。
5.lblc基於局部性的最少鏈接
6.LBLCR帶複製的基於局部性的最少鏈接
7.DH目標地址散列
8.SH源地址散列
我這裏就不在清楚的介紹其餘的算法了,如今一共支持12中算法,但願大家去了解吧。
real server的配置:
綁定vip
#ifconfig lo:0 192.168.19.250 netmask 255.255.255.255 broadcast 192.168.19.250 up
設置到主機的路由
#route add -host 192.168.19.250 dev lo:0
設置默認路由
#route add default gw 192.168.19.100
保證arp協議在鏈接過程當中,路由器上,只知道網絡中192.168.19.250對應的是分發器
19.101#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
19.101#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
19.101#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
19.101#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
其餘的real server配置同上
綁定VTP:還能夠利用腳原本實現:
#!/bin/bash
VIP=192.168.19.250
ROUTE=192.168.19.100
start() {
ifconfig lo:0 $VIP/32 broadcast $VIP up
route add -host $VIP dev lo:0
route add default gw $ROUTE
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo start;
}
stop() {
route del default gw $ROUTE
route del -host $VIP dev lo:0
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo stop;
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo 'start | stop'
esac
重啓服務
/etc/init.d/httpd restart
開始測試:
18.106#elinks http://192.168.19.250 --dump
102
18.106#elinks http://192.168.19.250 --dump
101