美文网首页Java技术问答
LVS负载均衡面试题

LVS负载均衡面试题

作者: 我是李小胖 | 来源:发表于2019-11-10 20:27 被阅读0次

    LVS负载均衡
    1.lvs 原理
    LVS通过工作于内核的ipvs模块来实现功能,其主要工作于netfilter 的INPUT链上。
    而用户需要对ipvs进行操作配置则需要使用ipvsadm这个工具。
    ipvsadm主要用于设置lvs模型、调度方式以及指定后端主机。

    2.lvs 有哪几种模式,工作过程原理是什么?

    DR模式(直接路由模式)

    DR模式是通过改写请求报文的目标MAC地址,并将请求发给真实服务器,而真实服务器响应后的处理结果直接返回给客户端用户。

    但是要求调度器Lb与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

    简述:lb收到用户请求数据包后,将请求包中目标mac地址转换后端某个rc服务器的mac地址后,将数据包转发出去,rs收到请求包后,直接将响应的内容传给用户。此时要求LB和所有的rs都必须在一个物理段内,且lb与rs群共享一个虚拟ip。

    NAT模式

    客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器,真实服务器的响应报文通过调度器时,报文的原地址被重写,再返回给用户,完成整个负载调度过程

    简述:lb收到用户请求包后,lb将请求包中虚拟服务器的ip地址转换为某个选定rs的地址,然后转发给rs。rs将应答包发给lb,lb将应答包中rs的ip转换为虚拟服务器的ip地址。返回给用户。

    TUN隧道模式

    采用net模式时,由于请求和响应的报文必须通过调度器地址重写,当客户请求越来越多时,调度器处理能力将成为瓶颈,为了解决这个问题,调度器把请求的报文通过ip隧道转发到真实的服务器,真实的服务器将响应处理后的数据直接返回给客户端,这样调度器就只处理请求入站的报文,由于一般网络服务应答数据比 请求报文大很多,采用vs/TUN模式后,集群系统的最大吞吐量可以提高10倍。

    FULL NAT模式

    3.最常用的模式是什么,有什么特点?
    DR

    ①通过调度器上修改数据包的目的MAC地址实现转发,注意,源IP地址仍然是CIP,

    目的IP地址仍然是VIP

    ②请求的报文经过调度器,而RS相应处理处理后报文无需经过调度器LB,因此,并发访问量大时使用效率很高

    ③DR模式是通过MAC地址的改写机制实现转发,因此所有的RS节点和调度器LB只能在一个局域网中

    ④需要注意RS界面的VIP的绑定(lo:VIp/32 lol:VIP/32)和ARP的一致问题

    ⑤抑制ARP是不让RS(real server)相应CS(client server)的ARP请求

    ⑥RS节点默认网关不需要调度器的LB的DIP,而是直接IDC机房分配的上级路由器的IP(这是RS带有外网的

    的Ip地址的情况),理论上讲,只要RS出网即可,不是必须配置外网的IP

    工作中RS要配置外网的IP

    ⑦由于DR模式角度器仅仅进行了MAC地址的改写,因此调度器LB无法改变请求的报文的目的端口

    ⑧LB几乎支持所有的UNIX,linux系统,但是目前不支持winows系统,真实的节点可以是windows系统。

    ⑨总的来说DR模式效率很高,但是配置也比较麻烦,因此访问量不是很大的可以用haproxy/nginx取代,

    日PV 1000-2000W或者并发请求1W以下都是可以考虑haproxy/nginx

    10.直接对外访问的业务,例如:web服务做RS节点,RS最好用公网的IP地址,如果不直接对外的业务,

    例如:mysql,存储系统的RS节点,最好只用内部的Ip地址。

    lvs和nginx的区别?
    lvs的优点:
    1.抗负载能力强,工作在第四层仅做分发之用,没有流量的产生,这个特点也决定了他在负责均衡软件里的性能最强,无流量,同时保证了均衡器IO的性能不会受到大流量的影响。

    2.工作稳定,自身有完整的双机热备方案,如lvs+keepalived

    3.应用范围比较广,可以对所有应用做负载均衡。

    4.配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多的接触,大大减少人为出错的几率。

    lvs的缺点:
    1.软件本身不支持正则处理,不能做动静分离。

    2.如果网站应用比较庞大,lvs/DR+keepalived就比较复杂了,特别是后面有windows server应用的机器,实施及配置还有维护过程就比较麻烦,相对而言,nginx+keepalived就简单一点。

    nginx的优点:
    跨平台:可以linux系统运行,而且windows的移植版本。

    配置简单:非常的简单,容易上手。

    非阻塞并发连接;数据复制时,磁盘io的第一阶段是非阻塞,官方测试能支持5万并发连接,实际生产中能跑2-3万并发连接数。发送报文是,nginx一边介绍web服务器的返回数据,一边把数据发送给客户端浏览器。

    自带简单检查:当有服务器宕机后,新的请求就不会发送到这台机器上了,而是发送到其他节点。

    节省带宽:支持gzip压缩,开启浏览器缓存。

    网络依赖性低,理论上能ping通就可以实现负载均衡,而且可以有效区分内网,外网流量。

    内存消耗小,稳定性高:开启10个nginx消耗内存125m,可以很好的处理静态资源,内存消耗少,宕机率很低。

    相关文章

      网友评论

        本文标题:LVS负载均衡面试题

        本文链接:https://www.haomeiwen.com/subject/bwnabctx.html