Linux下负载均衡解决方案之LVS

LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

LVS集群采用三层结构设计

1,负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

2,服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务可以是web、mail、ftp等

3,共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

LVS常用的应用场景:

Linux下负载均衡解决方案之LVS_第1张图片

LVS常用的两种工作模式

1,DR模式

      当请求数据包到来的时候,LVS会将网络帧的mac地址修改为真实server的mac地址,源IP地址和目标IP地址并未改变,处理请求数据时,会根据mac地址找到真实的server,真实的server处理请求返回数据时,会将源IP修改为目标IP,准确的发送给用户,无需经过lvs的处理。

      DR模式是最常用而且性能最好的一种模式,但是有没有发现一个问题,如果我访问应用的公网ip地址是119.75.218.70,lvs为每台真实服务器分配一个VIP,然后将请求分发到内网IP的真实机上面,那么如果出现内网IP和真实IP冲突怎么办?

首先,我们需要先了解一下arp,地址解析协议,举个简单的例子,ping 192.168.96.76,内部是这样实现的,首先会将这个IP的广播发送到同一网段的所有机器,然后如果是192.168.96.76这台机器收到广播后,会将自己的包含mac地址消息发送给源主机,这样你就可以找到这台机器了

而lvs就是通过设置真实server的arp抑制,来防止他们都能接受到带有vip的数据包

2,NAT模式

NAT是一种外网与内网地址映射技术。请求到来的时候,经过lvs做IP地址转换,将转换后的数据包发给真实的server,真实的server处理后返回的数据包,也要经过lvs做地址转换,将处理后的数据包准确的发送给用户


你可能感兴趣的:(其他)