LVS负载均衡集群LVS-DR模式demo
一、搭建条件环境:
调度器DR(虚拟服务器)--->必须是linux系统
真实服务器(RS)---->支持tcp协议的任何操作系统
网络:
1)防火墙要开放对应的端口服务(或者直接关闭防火墙)
2)关闭SElinux服务(不确定)
二、配置环境
DR配置:
1)相关配置写入一个脚本文件 lvsDR 如下:
#!/bin/sh
# description: Start LVS of Director server
VIP=192.168.1.200
RIP1=192.168.1.132
RIP2=192.168.1.144
./etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of Director Server"
# set the VirtualIP Address and sysctl parameter
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/ip_forward
#Clear IPVS table
/sbin/ipvsadm -C
#set LVS
/sbin/ipvsadm -A -t $VIP:80 -s rr -p 600
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
#Run LVS
/sbin/ipvsadm
;;
stop)
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ifconfig eth0:0 down
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
将此脚本lvsDR文件放到/etc/init.d下,执行:
# chomd 755 /etc/init.d/lvsDR
最后可以通过下面命令启动或停止LVS服务:
service lvsDR {start|stop}
2)给设备eth0:0(DR上的虚拟IP)指定一条路由
# route add -host $VIP dev eth0:0
到此,DR配置完毕
RS配置:
在lvs的DR和TUn模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户,增加VIP地址的操作可以通过创建脚本的方式来实现,创建文件/etc/init.d/lvsrs,脚本内容如下:
#!/bin/bash
#description : Start Real Server
VIP=192.168.60.200
./etc/rc.d/init.d/functions
case "$1" in
start)
echo " Start LVSofReal Server"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
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
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Director server"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
然后,修改lvsrs有可执行权限:
# chmod 755 /etc/init.d/lvsrs
最后,可以通过下面命令启动或关闭lvsrs
service lvsrs {start|stop}
2)给RS设备lo:0添加一个路由
# route add -host $VIP dev lo:0
由于虚拟ip,也就是上面的VIP地址,是Director Server和所有的Real server共享的,如果有ARP请求VIP地址时,Director Server与所有Real server都做应答的话,就出现问题了,因此,需要禁止Real server响应ARP请求。而lvsrs脚本的作用就是使Real Server不响应arp请求。
对于2.4以下低版本,在Real Server上要安装ARP hidden内核补丁,幸运的是,在2.6内核中通过调整内核参数即可忽略ARP广播回应。
三、配置完毕后对应的环境如下:
DR:
RS:
四、测试负载均衡
这里假定两个real server节点配置www服务的网页文件根目录均为/var/www/html目录,然后分别执行如下操作:
在real server1 执行:
echo "This is real server1">/var/www/html/index.html
在real server2 执行:
echo "This is real server2" /var/www/html/index.html
接着打开浏览器,访问http://192.168.1.200这个地址,然后不断刷新此页面,如果能分别看到“This is real server1”和“This is real server2”就表明LVS正常工作了。
页:
[1]