一、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 (开启路由转发功能)
# 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
# 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
在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
# 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
# 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