zoukankan      html  css  js  c++  java
  • LVS负载均衡简介及原理

    一、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原理详解图

  • 相关阅读:
    H5新增——html概述
    H5新增———html5概述
    ASP.NET Web API Demo OwinSelfHost 自宿主 Swagger Swashbuckle 在线文档
    如何写个死循环,既不独占线程,又不阻塞UI线程?
    C# 扩展TaskScheduler实现独立线程池,支持多任务批量处理,互不干扰,无缝兼容Task
    C# async await 异步执行方法封装 替代 BackgroundWorker
    巨坑!
    C# .NET Socket SocketHelper 高性能 5000客户端 异步接收数据
    一个简单的例子看明白 async await Task
    一个非常轻量级的 Web API Demo
  • 原文地址:https://www.cnblogs.com/deny/p/9990991.html
Copyright © 2011-2022 走看看