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 Virtual  IP 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 LVS  of  Real 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正常工作了。

 

posted @ 2015-05-26 18:38  喋血润发  阅读(207)  评论(0)    收藏  举报