最近对LVS技术相当痴迷,相应的技术这里我就不在赘述了,有兴趣的朋友可以去LVS的官网上去看,哪里写的很详细,这里我仅把我的配置心得写出来,有不正确的地方还望各位看客指出
首先说下我的配置环境
大环境:vmware6.0,centOS4.4
LVS架构:
LB-2.187(vip:2.186)
| |
| |
| |
RS01 RS02
(2.188) (2.189)
实现目的:
1,简单实现负载均衡
2,不对后端服务器进行健康检查
IPVS安装
可以到这里下载最新的ipvsadm软件,下载后执行以下操作
ln -s /usr/src/kernels/2.6.9-42.EL-i686/ /usr/src/linux
rpmbuild –rebuild ipvsadm-1.24-6.src.rpm
rpm -ivh /usr/src/redhat/RPMS/i386/ipvsadm-1.24-6.i386.rpm
LB上的配置
在/usr/local/bin下建立startlvs.sh脚本,加入如下内容
|
然后将脚本加入到/etc/rc.local中以便开机自动运行
Realserver上的配置
在/usr/local/bin下建立starttunl.sh,加入如下内容:
|
如此,已经简单的lvs就配置完成了,我使用webserver stress tool进行的模拟用户访问,realsever上启动lighttp,在LB上执行ipvsadm -l,显示如下:
|
webserver stress tool返回的结果如下
URL No. | Name | Clicks | Errors | Errors [%] | Time Spent [ms] | Avg. Click Time [ms] |
1 | 250 | 0 | 0.00 | 3,695 | 15 |
如果此时我将后端的RS服务停一台会看到如下显示结果:
|
ipvsadm依然会把请求投递到后端RS
来看下webserver stress tool的结果
URL No. | Name | Clicks | Errors | Errors [%] | Time Spent [ms] | Avg. Click Time [ms] |
1 | 492 | 242 | 49.19 | 1,865 | 7 |
很明显已经能看到有一半的errors了
几点说明:
1,此lvs并支持健康检查,一但后端有一台服务停了,LB并不会知道,依旧会把服务投递到后端
2,我是用的VS/TUN的方式实现的LVS
3,策略我使用的rr方式,如需要其他策略,请自行更改