LVS- NAT,DR模型详解

LVS- NAT,DR模型详解

作者:admin |  时间:2014-03-15 |  浏览:791 |  0 条评论

************ LVS-NAT模型 ****************

Image

NAT模型实现负载均衡的工作方式,
NAT模型其实就是通过网络地址转换来实现负载均衡的,,下面来说说NAT模型的工作方式或者说NAT模型是怎么实现负载均衡的,根据上图,
1.用户请求VIP(也可以说是CIP请求VIP)
2,Director Server 收到用户的请求后,发现源地址为CIP,请求的目标地址为VIP,那么Dorector Server会认为用户请求的是一个集群服务,那么Director Server 会根据此前设定好的调度算法将用户请求负载给某台Real Server ,假如说此时Director Server 根据调度算法的结果会将请求分摊到Real Server 1上去,那么Director Server 会将用户的请求报文中的目标地址,从原来的VIP改为Real Server 1的IP,然后再转发给Real Server 1
3,此时Real Server 1收到一个源地址为CIP,目标地址为自己的请求,那么Real Server 1处理好请求后会将一个源地址为自己,目标地址为CIP的数据包通过Director Server 发出去,

4.当Driector Server收到一个源地址为Real Server 1 的IP 目标地址为CIP的数据包,此时Driector Server 会将源地址修改为VIP,然后再将数据包发送给用户

************* LVS-DR模型 **************

Image

DR模型实现负载均衡的工作方式,
上面说了NAT模型的实现方式,那么NAT模型有个缺陷,因为进出的每个数据包都要经过Director Server,当集群系统负载过大的时候Director Server将会成为整个集群系统的瓶颈,那么DR模型就避免了这样的情况发生,DR模型在只有请求的时候才会经过Director Server, 回应的数据包由Real Server 直接响应用户不需要经过Director Server,其实三种模型中最常用的也就是DR模型了,下面来说DR模型具体是怎么实现负载均衡的,根据上图,
1, 首先用户用CIP请求VIP, 
2, 根据上图可以看到,不管是Director Server还是Real Server上都需要配置VIP,那么当用户请求到达我们的集群网络的前端路由器的时候,请求数据包的源地址为CIP,目标地址为VIP,此时路由器会发广播问谁是VIP,那么我们集群中所有的节点都配置有VIP,此时谁先响应路由器,那么路由器就会将用户请求发给谁,这样一来我们的集群系统是不是没有意义了。那我们可以在网关路由器上配置静态路由指定VIP就是Director Server,或者使用一种机制不让Real Server 接收来自网络中的ARP地址解析请求,这样一来用户的请求数据包都会经过Director Server,
3,当Director Server收到用户的请求后根据此前设定好的调度算法结果来确定将请求负载到某台Real Server上去,假如说此时根据调度算法的结果,会将请求负载到Real Server 1上面去,此时Director Server 会将数据帧中的目标MAC地址修改为Real Server1的MAC地址,然后再将数据帧发送出去,
4,当Real Server1 收到一个源地址为CIP目标地址为VIP的数据包时,Real Server1发现目标地址为VIP,而VIP是自己,于是接受数据包并给予处理,当Real Server1处理完请求后,会将一个源地址为VIP目标地址为CIP的数据包发出去,此时的响应请求就不会再经过Director Server了,而是直接响应给用户。

********************************

转载:http://ant595.blog.51cto.com/5074217/949342

本文标签:

相关推荐

Sphinx分布式搜索配置
Posted on 02月25日
正确计算linux系统内存使用率
Posted on 04月27日
Mysql INSERT DELAYED语法
Posted on 02月14日
Redis scan操作总结
Posted on 04月10日

发表评论

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>