ha
分类: LINUX
2011-07-25 15:40:43
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的忽略宣告配置