LVS 简介
LVS –Linux Virtual Server ,Linux 虚拟服务器;LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。
LVS中有三种常用模式,我们对比DR,NAT,TUN三种模式区别,再来简单介绍新转发模式FULLNAT
VS/DR
1、DR模式网络拓扑
VS/DR 利用大多数 Internet 服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过交换机或者高速的HUB 相连。VIP 地址为调度器和服务器组共享,调度器配置的 VIP 址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把 VIP 地址配置在各自的 NonARP 网络设备上,它对外面是不可见的,只是用于处理目标地址为 VIP 的网络请求。
2、LVS-DR工作原理
Diector结合用户的请求,然后根据负载均衡算法选取一台realserver,将包转发过去,最后由realserve直接回复给用户 。
1)、我这里为了方便,client 是与 vip 同一网段的机器。如果是外部的用户访问,将 client 替换成gateway 即可,因为 IP 包头是不变的,变的只是源 mac 地址。下面是IP包头及数据帧头信息:
2)、VS 根据负载均衡算法选择一台 active 的 realserver(假设是 192.168.57.122),将此 RIP 所在网卡的 mac 地址作为目标 mac 地址,发送到局域网里。此时 IP 包头及数据帧头信息如下:
3)、realserver(192.168.57.122)在局域网中收到这个帧,拆开后发现目标 IP(VIP)与本地匹配,于是处理这个报文。随后重新封装报文,发送到局域网。此时 IP 包头及数据帧头信息如下: