古城热线 发表于 2019-1-4 10:11:39

ipvsadm 实现LVS负载均衡

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


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 (mean, across all concurrent requests)
Transfer rate:          234.43 received


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


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






页: [1]
查看完整版本: ipvsadm 实现LVS负载均衡