LB负载均衡之DR部署方式
1.1 DR部署方式在LVS-DR 中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装
IP 报文,而是将数据帧的MAC 地址改为选出服务器的MAC 地址,再将修改后的数据帧在与服务器组
的局域网上发送。因为数据帧的MAC 地址是选出的服务器,所以服务器肯定可以收到这个数据帧,
从中可以获得该IP 报文。当服务器发现报文的目标地址VIP 是在本地的网络设备上,服务器处理这
个报文,然后根据路由表将响应报文直接返回给客户。
在LVS-DR中,根据缺省的TCP/IP协议处理,请求报文的目标地址是VIP,响应报文的源地址肯定也是VIP,所以响应报文不需要任何修改,直接返回给客户,对于客户来说只有一台服务器在运行服务器而完全透明。
清除上个实验的配置
OS:CentOS5.4 32bit
安装时选择了集群组件,所以就使用这个自带的ipvsadm
LVS Server:
Eth0:192.168.1.43/255.255.255.0/192.168.1.254
Eth0:1:192.168.1.40/ 255.255.255.255 (VIP)
Real Server A:
Eth0:192.168.1.44/255.255.255.0/192.168.1.254
Lo:0:192.168.1.40/ 255.255.255.255 (VIP)
RealServer B:
Eth0:192.168.1.45/255.255.255.0/192.168.1.254
Lo:0:192.168.1.40/ 255.255.255.255 (VIP)
首先,在两台Real Server上启动需要负载均衡的服务,例如Tomcat,也就是HTTP-8080。
然后,配置LVS Server:
Lvsup.sh:
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
IPVSADM='/sbin/ipvsadm'
VIP=192.168.1.40
RS1=192.168.1.44
RS2=192.168.1.45
ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
route add –host $VIP dev eth0:1
$IPVSADM -C
$IPVSADM -A -t $VIP:8080 -s lc -p 600
$IPVSADM -a -t $VIP:8080 -r $RS1:8080 -g -w 1
$IPVSADM -a -t $VIP:8080 -r $RS2:8080 -g -w 1
最后,配置RealServer(两台一样)
RSup.sh:
#!/bin/bash
VIP=192.168.1.40
ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
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
效果说明:
1.按照lc方式调度后面的两台服务器,即最少连接模式,且有600秒连接保持
2.这个Lvsup.sh和RSup.sh是个shell脚本,放在哪里都行,只要能运行,其中的ipvsadm -C命令,会在每次运行这个脚本式把现有lvs服务规则清空
3.RealServer需要接受VIP为目的地址的数据包,所以有了后面的lo:0配置和ARP的忽略宣告配置
昨天,系花对我笑了一下,乐得我晚上直数羊,一只羊,两只羊,三只羊…… 爱——不是想出来的,爱——是做出来的!! 有竞争才有进步嘛 避孕的效果:不成功,便成“人”。 生,容易。活,容易。生活,不容易。 美女未抱身先走,常使色狼泪满襟。。。。。。
页:
[1]