shadema 2012-04-17
开发团队要测试云存储,要求搭建一个tomcat的负载均衡集群,首先考虑使用lvs实现负载,技术实现成本低,做云存储就是为了节约存储硬件设备的成本。因为考虑是测试环境暂时没有对lvs的director做高可用配置,我会考虑在空闲时间做一个
测试环境:rhel4.8 64位系统
集群设备:3台测试机,2台做tomcat单点web应用,1做director(web请求分发器)(3台测试机都在同一交换机、同一网段)
director :inet addr:192.168.2.107 Bcast:192.168.7.255 Mask:255.255.248.0
realserver:inet addr:192.168.3.57 Bcast:192.168.7.255 Mask:255.255.248.0
inet addr:192.168.2.51 Bcast:192.168.7.255 Mask:255.255.248.0
VIP:192.168.2.111
1、环境搭建前的准备,因为系统是4.8的,首先我查看了一下内核是否支持lvs,2.4.23以后版本的内核源代码支持lvs(uname -a查看系统信息),下载ipvsadm地址http://www.linuxvirtualserver.org/software/ipvs.html; 我用的是ipvsadm-1.24.tar.gz
安装ipvsadm
#mv ipvsadm-1.24.tar.gz /usr/local
#cd /usr/local
#tar zxvf ipvsadm-1.24.tar.gz
#cd ipvsadm-1.24(可以阅读一下README文件)
#make &&make install(make时可能会报错,需要做一个软连接,
ln -s /usr/src/kernels/2.6.9-89.EL-smp-x86_64 /usr/src/linux)
2、配置2台realserver的4个内核参数,vip等
ssh连上一台realserver服务器,执行下列命令(另一台服务器也要做相同设置)
#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
#ifconfig lo:0 192.168.2.111 broadcast 192.168.2.111 netmask 255.255.255.255 up
#route add -host 192.168.2.111 dev lo:0
//注释:
arp_announce
限制级别0 1 2值。默认是0
0),所有地址全部告诉
1),尽可能不告诉不在同一网络的地址
2),只告诉最佳网络地址
arp_ignore
0),
1),在哪个网卡收到回复哪个,其他地址不予响应
2),接收到的要与发送方在同一网络才相应,否则不通信
3、配置director
#ifconfig eth0:1 192.168.2.111 broadcast 192.168.2.111 netmask 255.255.255.255 up //设置vip
#route add -host 182.168.2.111 dev eth0:1 //添加路由
#echo 1 > /proc/sys/net/ipv4/ip_forward //开启路由功能
#ipvsadm -A -t 192.168.2.111:8080 -s wlc //设置新的转发服务
#ipvsadm -a -t 192.168.2.111:8080 -r 192.168.2.51 -g -w 20 //转发规则
#ipvsadm -a -t 192.168.2.111:8080 -r 192.168.3.57 -g -w 10 //
//注释:-A添加新的转发服务 ;-s指定dr模型的算法; -rweb应用的真实ip地址;-g指定使用lvs的dr模型 ; -w是web服务器的权重(因为开发没有对持久连接和https服务等作出要求,所以这里就简单地配置一下)