一、LVS负载均衡简介

       互联网主流可伸缩网络服务有很多结构,但是都一个共同的特点,它们都需要一个前端的负载调度器(或者多个进行主从备份)。实现虚拟网络服务的主要技术指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。

       已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。

      在分析VS/NAT的缺点和网络服务的非对称性的基础上,可以通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。

总体来说IP负载均衡技术分为:VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术

二、负载均衡软件LVS概念剖析

1、LVS(Linux Virtual Server)Linux虚拟服务器集群,1998年5年章文嵩博士对外开放的版本,得到互联网企业广泛的使用;

2、LVS工作原理?工作流程?

        用户请求LVS服务器的VIP地址,请求到达LVS服务器,LVS服务器根据转发方式和算法,将用户的请求转发到后端服务器(均衡池),后端服务器接收到用户的请求,会进行响应和处理,然后将数据返给用户,对于用户来讲是看不到后端集群真实情况。

3、LVS负载均衡转发方式:NAT模式、DR模式、TUN模式,描述一下三种模式的具体工作流程,你们公司用哪种呢?公司推荐使用DR(Direct Router)直连路由模式。

4、NAT模式工作原理&特点剖析

1)NAT模式工作原理

       用户请求LVS服务器的VIP地址,LVS服务器收到用户的请求之后呢,将请求报文的目标IP地址修改为后端一台Realserver的IP,端口也会修改为后端相应的端口,然后请请求报文发送给Realserver,后端Relaserver服务器接收请求并且响应请求,Realserver将处理之后的数据返回给LVS服务器,LVS服务器将数据内容返回用户(客户端);

2)NAT模式特点

      可以隐藏后端服务器的真实IP;

      可以节省IPV4公网IP地址;

      流量进出都要经过LVS服务器,可能成为瓶颈;

      生产环境后端Realserver不建议超过20台(配置内网IP);

       Realserver服务器的网关IP设置为LVS服务器内网IP;

5、DR模式工作原理&特点剖析

1)DR模式工作原理

       用户请求LVS服务器的VIP地址,LVS服务器收到用户的请求之后呢,将请求报文的目标MAC地址修改为后端一台Realserver的MAC,请求的目标IP保持不变(VIP),然后请请求报文发送给Realserver,后端Relaserver服务器接收请求并且响应请求,Realserver将处理之后的数据直接返回给用户,或者通过路由器网关将请求返回用户;

2)DR模式特点

       要求LVS和后端Realserver(100台、1000台)必须物理网段;

       比较浪费公网IP,可以通过其他方式解决(LVS+Realserver部署内网,VIP内网IP,通过前端路由器NAT映射-内网VIP 80);

       用户请求只需要流入经过LVS,返回数据无需经过LVS;

       转发性能比较高、满足大规模高速访问(后端Realserver无限制);

        LVS+后端Realserver服务器配置同一个VIP地址,而且后端机器配置在lo网卡;

       只有LVS服务器的VIP能够响应路由器发起ARP广播响应,后端Realserver禁止ARP广播响应;

       arp_ignore=1 #抑制lo网卡回应ARP请求,只回应目标IP(VIP)是本地物理网卡配置上的IP;

       arp_announce=2 #当Realserver接收到请求之后,此时的源IP(VIP),网卡不能出去的,请求回应时,可以通过本机其他的网卡将数据发出,可以忽略源IP地址,尽量匹配跟目标机器能够联通的网卡IP;

6、LVS+Keepalived负载均衡+高可用:

      Keepalived实现LVS的高可用;

      Keepalived实现LVS后端机器监控检测;

三、LVS负载均衡原理

       LVS均衡算法包括:RR(round-robin)、LC(least_connection)、W(weight)RR、WLC模式等(RR为轮询模式,LC为最少连接模式;

       实现LVS负载均衡转发方式有三种,分别为NAT、DR、TUN模式;

       LVS NAT原理:用户请求LVS VIP到达director,director将请求的报文的目标IP地址改成后端的realserver IP地址,同时将报文的目标端口也改成后端选定的realserver相应端口,最后将报文发送到realserver,realserver将数据返给director,director再把数据发送给用户。(两次请求都经过director,所以访问大的话,director会成为瓶颈),如图所示:

                      

pgpool负载均衡 ip负载均衡原理_pgpool负载均衡

NAT原理详解图

       LVS DR原理:用户请求LVS VIP到达director,director将请求的报文的目标MAC地址改成后端的realserver MAC地址,目标IP为VIP(不变),源IP为用户IP地址(保持不变),然后Director将报文发送到realserver,realserver检测到目标为自己本地VIP,如果在同一个网段,然后将请求直接返给用户。如果用户跟realserver不在一个网段,则通过网关返回用户,如图所示:

                       

pgpool负载均衡 ip负载均衡原理_服务器_02

 LVS DR原理详解图

         LVS TUN原理:用户请求LVS到达director,director通过IP-TUN加密技术将请求的报文的目标MAC地址改成后端的realserver MAC地址,目标IP为VIP(不变),源IP为用户IP地址(保持不变),然后Director将报文发送到realserver,realserver基于IP-TUN解密,然后检测到目标为自己本地VIP,如果在同一个网段,然后将请求直接返给用户。如果用户跟realserver不在一个网段,则通过网关返回用户。如图所示:

                       

pgpool负载均衡 ip负载均衡原理_pgpool负载均衡_03

LVS TUN原理详解图