在上一篇部落格中介紹了LVS 的三個模型分别是:NAT、DR、TUN。在這三個模型中DR模型相對于其餘的兩個有很多的好處。這由DR的模型可以看出來。如圖所示DR的模型:
使用者的請求經過Director伺服器而傳回時,由RealServer伺服器直接傳回給使用者。這樣大減輕了Director的工作壓力。
好了。下面來開始配置一個DR模型的應用。
首先,要用到三台虛拟機,這三台虛拟機分别做,Director伺服器和RealServer1和RealServer2。可以在真實機上作測試。如圖所示的規化。
RealServer1和RealServer2都是web伺服器。
IP的劃分:
1、Director伺服器上
Dip: 172.16.35.10/16 這個位址是在eth0上
Vip:172.16.35.2/16 這個位址是在eth0:1上
2、RealServer1伺服器上
Dip: 172.16.35.5/16 這個位址是在eth0上
Vip: 配置在lo上
3、RealServer2伺服器上
Dip: 172.16.35.1/16 這個位址是在eth0上
Vip: 配置在lo上
下面來配置。
在Director伺服器上
# ifconfig eth0 172.16.35.10/16
# ifconfig eth0:1 172.16.35.2 broadcast 172.16.35.2 netmask 255.255.255.255 up
# route add -host 172.16.35.2 dev eth0:1
# sysctl -w net.ipv4.ip_forward=1 (開啟路由轉發功能)
在RealServer1伺服器上配置
# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# ifconfig lo:0 172.16.35.2 broadcast 172.16.35.2 netmask 255.255.255.255 up
# route add -host 172.16.35.2 dev lo:0
說明:arp_ignore和arp_announce是兩個内參數。
在RealServer2伺服器上的配置
# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# ifconfig lo:0 172.16.35.2 broadcast 172.16.35.2 netmask 255.255.255.255 up
下面在Director伺服器上寫ipvsadm規則
# ipvsadm -L -n (檢視是否有規則)
# ipvsadm -C(清空規則)
# ipvsadm -A -t 172.16.35.2:80 -s rr
# ipvsadm -a -t 172.16.35.2:80 -r 172.16.35.1 -g
# ipvsadm -a -t 172.16.35.2:80 -r 172.16.35.2 -g
下面在浏覽器中輸入:http://172.16.35.2來驗證一下。如圖所示:
這是RealServer1伺服器所提供的網頁。
經過重新整理後就可以在兩個伺服器之間切換。如下圖所示:
如果兩個伺服器所提供的網頁相同就可以實作負載平衡了。
下面來用http自帶的壓力測試來測試一下。
再打開一個虛拟機指令:
# ab -c 10 -n 10000 http://172.16.35.2/index.html
Director伺服器上來檢視一下。
如圖所示:
這裡使用的高度方法是輪詢的方式,是以兩個伺服器所連接配接數量大緻相同。也可以使用其他的排程方式,用上述的方式來驗證。
本文轉自 ZhouLS 51CTO部落格,原文連結:http://blog.51cto.com/zhou123/834742