负载均衡软件LVS 三种实现模式对比
负载均衡集群,顾名思义,就是让多台服务器共同负担压力。负载均衡是企业级大型项目所需的重要模块。
当前实现负载均衡集群的优秀开源软件有LVS、Nginx、haproxy、keepalived等,而优秀的商业负载均衡设备有F5、NetScaler等。商业负载均衡设备稳定性好,但是成本昂贵。
接下来介绍一下负载均衡软件LVS。
一、LVS介绍
LVS(Linux Virtual Server)是由国内大牛章文嵩开发的开源负载均衡软件。它是一款四层的负载均衡软件,即基于OSI模型第四层传输层,TCP/IP协议(IP+端口)的转发和路由。稳定性和效率很高。
LVS架构如图所示,核心角色是调度器LB(Load Blancer),用来分发用户的请求;以及剩下的真实服务器RS(Real Server),用于处理用户请求。
LB为网关服务器,对外服务使用的是公网IP,在集群中也称为VIP(Virtual IP),即虚拟IP,或者浮动IP。服务器靠这个IP对外提供服务,但是这个IP并非是真正处理用户请求的真实服务器RS的IP,因此称之为虚拟的IP。
二、三种LVS模式
LVS根据实现方式不同可以分为:NAT模式、IP Tunnel(IP 隧道)模式、DR模式三种。
(1)NAT模式
NAT(Network Address Translation,网络地址转换),用于解决ipv4地址不足提出来的方案。主要思想是将网络分为公私网,一个局域网由一台网关控制,NAT网关同时拥有公网IP以及内网IP两个网卡,让一个局域网的主机只需使用一个公网IP,减少资源占用。
LVS的NAT模式即使用NAT标准,调度器LB即是一个NAT网关,把用户的请求通过预设的iptables规则,使用交换机/路由器转发给后端的RS。LB拥有两个IP,一个是公网IP,一个是内网IP,而RS只有内网IP。用户访问地址是LB的公网IP,LB收到用户请求后将会把请求使用调度算法进行计算后,转发给内网中的RS,通过LB与RS的内网IP进行源、目标地址转发。
这种模式的好处是节省公网IP,但是LB的性能是瓶颈。
架构如图所示。
(2)IP Tunnel模式
(3)DR模式
原理与Tunnel模式相同。但是不使用隧道技术,不会封装IP,而是将数据帧的MAC地址改为RS的MAC地址。LB与RS必须在一个网段内,才可通过MAC地址直接转发。最后RS将响应结果直接返回给用户。
架构如图所示。
三、总结
NAT模式适合小型的服务器集群,优点节省公网IP。TUN和DR相差不大,都能支撑较大规模的集群,缺点浪费公网IP。