ha
分类:
2011-07-25 14:04:38
OS:CentOS5.4 32bit
安装时选择了集群组件,所以就使用这个自带的ipvsadm
LVS Server:
Eth0:192.168.1.43/255.255.255.0/192.168.1.254
Eth0:1:10.1.5.46/255.255.0.0
Real Server A:
Eth0:10.1.5.33/255.255.0.0/10.1.5.46
RealServer B:
Eth0:10.1.5.34/255.255.0.0/10.1.5.46
首先,在两台Real Server上启动需要负载均衡的服务,例如Tomcat,也就是HTTP-8080。
需要注意的是如果RealServer同时也有与LVS Server一样的公网地址的话(本例中为192.168.1.0网段),那么会造成访问失败,这里有些路由的知识,不再赘述。如果你觉得只有内网IP的RealSever访问起来不方便,那么可以在LVS Server上配个VPN嘛
然后,配置LVS Server:
Lvsup.sh:
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
iptalbes -t nat -F
iptalbes -t nat -X
iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -o eth0 -j MASQUERADE
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.1.43:8080 -s lc -p 600
$IPVSADM -a -t 192.168.1.43:8080 -r 10.1.5.33:8080 -m -w 1
$IPVSADM -a -t 192.168.1.43:8080 -r 10.1.5.34:8080 -m -w 1
效果说明:
1. RealServer 通过 LVS Server访问外网,所有有了那句iptables的配置。其重要原因是我tomcat里跑的应用需要主动访问公网的一些资源,才可以返回结果页面,如果你的应用不需要,那么可以去掉这一句,LVS-NAT也会工作的很好
2. 按照lc方式调度后面的两台服务器,即最少连接模式,且有600秒的回话保持
3. 这个lvsup.sh是个shell脚本,放在哪里都行,只要能运行,其中的ipvsadm -C命令,会在每次运行这个脚本式把现有lvs服务规则清空