2018-01-06

负载均衡之LVS/DR模式

DR的负载均衡调度器工作在网络七层协议中的数据链路层,也就是第二层。它通过修改数据包的目标MAC地址,将数据包转发到实际应用服务器上,最重要的是,实际服务器的响应数据包将直接返回给用户端,而不需要经过负载调度器。

一、LVS种基本模式

NAT,[FULLNAT],TUNNEL(隧道),DR(直连路由)

2018-01-06_第1张图片

二、LVS、DR简介

       LVS 是Linux Virtual Server的简称,在实际环境中经常作为B/S结构的网络应用中的负载均衡器来使用,工作在7层网络模型中的,网络层,也就是通常说的IP层,由于数据的处理是在Linux内核态完成的,所以相对反向代理服务器来说,性能一般会高一些; DR 是Direct Routing直接路由的简称,应答包通过单独的路由方法返回给客户端。不需要隧道结构,因此可以使用大多数linux操作系统做为物理服务器。

三、简单的LVS/DR架构图


2018-01-06_第2张图片

首先,用户通过互联网访问LVS上的vip(虚拟ip),进入LVS/DR模式,LVS将数据包提供给dip(反向代理服务器);反向代理服务器最终将请求送给应用服务器;应用服务器完成用户请求之后,通过反向代理服务器直接返回给用户,而不需要通过LVS服务器。

四、操作路程

1、首先,在realsever上配置lo回环网卡,绑定vip。然后设置lo接口的VIP不能响应本地网络内的arp请求。

# ip addr add dev lo192.168.122.100/32

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

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

2、DR分发器设置

# yum -y install ipvsadm

# ipvsadm -A -t 192.168.122.100:80 -s rr

# ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.10 -g

# ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.20 -g

# ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.30 -g

这里的-g就是代表直连路由模式

3、测试

用一台能路由到VIP的机器访问VIP,不断刷新就可以看见结果。

五、总结

1、性能

相对LVS/NAT模式,DR模式不需要把返回的数据,通过负载均衡是被转发,想要他发挥优势,那么就要相应的数据包的数量和长度远远大于请求数据包,幸运的是,大部分WEB服务都具备这样的特点,响应和请求并不对称,因此常用的WEB服务,都可以使用这种模式。

这种方式,负载均衡器不再是系统的瓶颈。如果你的负载均衡器只拥有100M的全双工网卡和带宽的话,通过集群的横向扩展也可以让整个系统达到1G的流量。

来自LVS官方站点的测试结果也告诉我们,LVS-DR可以容纳100台以上的实际应用服务器,对一般的服务而已,这样的表现足够了。

2、缺点

DR模式下不能跨网段转发数据,如果必须要跨网段进行负载,那么就必须使用LVS/TUN模式。当然,这一般都是比较大型的服务了,一般不会用但以的LVS。

你可能感兴趣的:(2018-01-06)