修订版:前两天我的说法是错的。LB集群可以用LVS(linux virtial server linux虚拟服务器)来实现,而实现lvs最重要的组件之一便是ipvsadm。
先画出简单的实验原理图:

lvs server vip:192.168.0.200 供外部访问用的地址
lvs server rip:192.168.0.202 供内部通信的地址

real server 1:192.168.0.204
real server 2:192.168.0.205

这里两台 real server 是两台apache服务器,上边都开启apache服务,为了体现出LVS负载均衡的特点,特将两个服务器设置不同的主页。
--------------------
lvs server 端的设置:
ifconfig eth0 192.168.0.202 绑定 dip
ifconfig eth0:1 192.168.0.200 netmask 255.255.255.0 绑定 vip(一块网卡上绑定两个ip,下边real server设置的时候是一样的,注意子网掩码的区别)
ipvsadm -C 清空原来规则
ipvsadm -A -t 192.168.0.200:80 -s rr
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.204 -g
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.205 -g
-g 指使用直接路由方式。
--------------------
real server 的设置:(两台real server都要设置哦,这里我省略了一个的设置,因为都是一样的。纯体力劳动)
ifconfig lo:1 192.168.0.200 netmark 255.255.255.255 有了 rip 设置 vip,(注意子网掩码的区别)
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore 关闭 arp 响应。
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce 关闭 arp 响应。
route add default dev eth0 gw 192.168.0.1
service httpd start
---------------------
测试:
找一台同局域网的计算机,对其vip进行访问,即访问http://192.168.0.200
一个劲的刷新,可以看到页面会在两个apache服务器各自的主页间来回切换。说明。ipvsadm的分发过程是轮询的。

测试结果:

LVS负载均衡:
ab -c 1000 -n 1000 http://192.168.0.200/
Time per request:       1.723 [ms] (mean, across all concurrent requests)
Transfer rate:          234.43 [Kbytes/sec] received

未使用负载均衡的:
ab -c 1000 -n 1000 http://192.168.0.204/
Time per request:       2.012 [ms] (mean, across all concurrent requests)
Transfer rate:          200.78 [Kbytes/sec] received

由于我是用的虚拟机做的实验,实验效果不是很明显,但是也有点提升吧。但是在真机环境下,我试验过3台real server,速率确实是提升了3倍,响应时间缩短了3倍。效果是很明显的。但是同样有最后的瓶颈。也就出现在网络上。也就不细讲了。仔细准备明天的heartbeat 负载均衡集群。好了,今天就先简单的记到这里,希望对大家有帮助。呵呵。