LVS/TUN方式实现负载均衡的理解

隧道模式

virtual server via ip tunneling模式
采用NAT模式时,由于请求和响应的报文必须通过调度器地址重写,当客户请求越来越多时,调度器处理能力将成为瓶颈。为了解决这个问题,调度器把请求的报 文通过IP隧道转发到真实的服务器。真实的服务器将响应处理后的数据直接返回给客户端。这样调度器就只处理请求入站报文,由于一 般网络服务应答数据比请求报文大很多,采用VS/TUN模式后,集群系统的最大吞吐量可以提高10倍。
VS/TUN的工作流程图如下所示,它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。而是把客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器。

 

在 VS/TUN 的集群系统中,负载调度器只将请求调度到不同的后端服务器,后端服务器将应答的数据直接返回给用户。这样,负载调度器就可以处理大量的请求,它甚至可以调 度百台以上的服务器(同等规模的服务器),而它不会成为系统的瓶颈。即使负载调度器只有100Mbps 的全双工网卡,整个系统的最大吞吐量可超过 1Gbps。所以,VS/TUN 可以极大地增加负载调度器调度的服务器数量。VS/TUN 调度器可以调度上百台服务器,而它本身不会成为系统的瓶颈,可以 用来构建高性能的超级服务器。

vs               eth0 172.25.12.1                    tunl0 172.25.12.100

客户端 172.25.12.250

rs1              eth0 172.25.12.2                     tunl0 172.25.12.100

rs2              eth0 172.25.12.3                     tunl0 172.25.12.100

vs端:

modprobe ipip   #打开隧道

ip link set up tunl0    #启动tunl0

ip addr add 172.25.12.100/24 dev tunl0    #给tunl0添加vip

yum install ipvsadm                 #安装lvs

ipvsadm -A -t 172.25.12.100:80 -s rr
ipvsadm -a -t 172.25.12.100:80 -r 172.25.12.2:80 -i         #-i就是采用tun模式
ipvsadm -a -t 172.25.12.100:80 -r 172.25.12.3:80 -i         

RS端(都需要做配置):

modprobe ipip   #打开隧道

ip link set up tunl0    #启动tunl0

ip addr add 172.25.12.100/24 dev tunl0    #给tunl0添加vip

yum install arptables_jf

arptables -A IN -d 172.25.12.100 -j DROP            #将访问100的数据包丢弃
arptables -A OUT -s 172.25.12.100 -j mangle --mangle-ip-s 172.25.12.2      #从100进来的数据从172.25.12.2出去

/etc/init.d/arptables_jf save

/etc/init.d/arptables_jf start            #需要将规则写进去并且保存,不然无法启动

sysctl -a |grep rp_filter                 查看net.ipv4.conf.tunl0.rp_filter是否打开
sysctl -w net.ipv4.conf.tunl0.rp_filter=0          

#如果打开了,这个的作用是数据包从eth0网卡进来,那么数据就要从eth0出去,因为我们现在是从tunl0进来从eth0出去,所以需要关闭它

安装httpd

可以在客户端进行 curl 172.25.12.100

可以看到轮询访问

隧道模式是将ip报文进行重新封装,在之前的报文上在进行再次封装,然后将它直接给RS端,如果之前的报文已经达到了最大,那么继续封装就会失败,那么就会丢失

TUN 是IP Tunneling ,IP隧道的简称,它将调度器收到的IP数据包封装在一个新的IP数据包中,转交给应用服务器,然后实际服务器的返回数据会直接返回给用户。

TUN模式可以解决DR模式下不能跨网段的问题,甚至可以跨公网进行。


基本原理和DR有一些相似

猜你喜欢

转载自blog.csdn.net/u010489158/article/details/81292382