一、LVS的DR模型配置

在上一篇博客中介绍了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    
# route add -host 172.16.35.2 dev lo:0

下面在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服务器上来查看一下。
如图所示:


这里使用的高度方法是轮询的方式,所以两个服务器所连接数量大致相同。也可以使用其他的调度方式,用上述的方式来验证。