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