LVS/TUN 操作笔记

34 篇文章 0 订阅
1 篇文章 0 订阅

LVS-TUN集群中注意Real Server的内核必须打上修正ARP问题的内核补丁。该方式中 Director将客户请求分配到不同的Real ServerReal Server处理请求后直接回应给用户,这样Director就只处理客户机与服务器的一半连接,极大地提高了Director的调度处理能力, 使集群系统能容纳更多的节点数。另外TUN方式中的Real Server可以在任何LANWAN 上运行,这样可以构筑跨地域的集群,其应对灾难的能力也更强,但是服务器需要为IP封装付出一定的资源开销,而且后端的Real Server必须是支持IP Tunneling的操作系统。

 

DIP:调度器的IP地址

RIP:后台真实服务器(realserver)的IP地址

VIP:就是用于服务提供的虚拟IP

LVS的TUN模式可以说是对其NAT和DR模式的一个折衷方案,和DR一样是采用单网卡模式,它的DIP、VIP既可以和realserver在同一个网段,也可以不在同一个网段,但是它并不是在NAT和DR做的修改(也可以说是在DR上的修改,但是这里不这么说),它是采用的一种全新的隧道模式,当然在路由与交换的范畴这种隧道模式也是IPV4和IPV6两种版本共存的一种解决方案,这里并没有用到,当然TUN的性能也是介于NAT和DR之间的。

具体实现过程可以这么来说:

1、  客户端发来请求报文到达调度器,调度器给报文穿上“外衣“(就是把报文放入特定的隧道)封装成一个新的报文,根据某种调度算法在新报文中把目的地址指向某台realserver,从而把报文传给realserver,同时把这次连接写入缓存。

2、  Realserver端接到报文,脱去“外衣“根据要求做某些处理,处理结束后,根据自身绑定的VIP,直接把回复报文的目的地址指向客户端,源地址就是绑定在隧道模式下的VIP,这样就完成一个请求与回复。

 
 
具体例子:
 
Director IP:10.7.35.53
VIP:10.7.12.245
RS1:10.7.11.144
RS2:10.7.11.121
 

安装了redhat虚拟机3个,网络适配器都是桥连接

Director上的脚本如下:

#!/bin/bash

#LVS script NAT

VIP=10.7.12.245

RIP1=10.7.11.121

RIP2=10.7.11.144

#./etc/rc.d/init.d/functions

case "$1" in

start)

        

        /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up

        /sbin/route add -host $VIP dev tunl0

        /sbin/ipvsadm -C

        /sbin/ipvsadm -A -t $VIP:80 -s rr

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -i      

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -i

        /sbin/ipvsadm
        touch /var/lock/subsys/ipvsadm >/dev/null 2>&1
        echo "start LVS of DirectorServer Tun"
        ;;

stop)

        /sbin/ifconfig tunl0 down

        /sbin/ipvsadm -C
        rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1
		echo "Stop LVS of DirectorServer Tun"
        ;;

status)

           if [ ! -e /var/lock/subsys/ipvsadm ];then
                echo "ipvsadm TUN stoped"
                exit 1
           else
                echo "ipvsadm TUN OK"
           fi
           ;;

*)
          echo "Usage: $0 {start|stop|status}"
          exit 1
esac

exit 0




真是服务器脚本:

#!/bin/bash

#Description start LVS Realserver Tun

VIP=10.7.12.245

#./etc/rc.d/init.d/functions

case "$1" in

start)

       

        /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up

        /sbin/route add -host $VIP dev tunl0

        echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

        echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

        echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
        echo "start LVS of Realserver Tun"
        ;;

stop)

       

        /sbin/ifconfig tunl0 down

        echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo "0">/proc/sys/net/ipv4/conf/all/arp_announce

        echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore

        echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
         echo "stop LVS of RealServer Tun"
        ;;

*)

        echo "Usage:$0 {start|stop}"

        exit 1

esac



运行效果:

压力测试: ab -c 100 -n 10000 http://10.7.12.245/index.html

用命令 watch -n 1 'ipvsadm -Ln'

用浏览器浏览结果:



 

配置完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值