zoukankan      html  css  js  c++  java
  • LVS 介绍

    LVS 介绍

    说明:
    • LVS是Linux Virtual Server的简称
    • LVS是一个实现负载均衡的开源软件项目
    • LVS效率要高于Nginx
    • LVS工作在ISO的第4层(传输层)
    LVS架构有三层:
    • 最前端的:负载均衡层(Loader Balancer)
    • 中间的:服务器群组层(Server Array)
    • 最底层的:数据共享存储层(Shared Storage)

    LVS三种工作模式:

    • NAT:调度器将请求的目标IP即vip地址改为Real server的ip,返回数据包也经过调度器调度把原地址改为vip
    • TUN:调度器将请求来的数据包封装加密通过ip隧道转发到后端的real server上,而real server 会直接把数据返回给客户端,不再经过调度器。
    • DR:调度器将请求来的数据包的目标mac地址改为real server的mac地址,返回的时候也不经过调度器直接返回给客户端。

    LVS八种算法:

    • 轮叫调度(Round Robin)(简称rr):平均分发给每个请求
    • 加权轮叫(Weighted Round Robin)(简称wrr):定义某个机器的轮询次数
    • 最少链接(least connection)(简称LC):判断哪个机器处理链接少(处理请求快)就多发送请求。
    • 加权最少链接(Weighted Least Connections)(简称WLC):在最少链接的基础上,加入权重。
    • 基于局部性的最少链接(Locality-Based Least Connections)
    • 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
    • 目标地址散列(Destination Hashing)
    • 源地址散列(Source Hashing)

    LVS的体系架构如图:

     


    LVS三层架构

    负载均衡层

      Load Balancer层:位于整个集群系统的最前端,有一台或者多台负载调度器(Director Server)组成,LVS模块就安装在Director Server上,而Director的主要作用类似于一个路由器,它含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给Server Array层的应用服务器(Real Server)上。同时,在Director Server上还要安装对Real Server服务的监控模块Ldirectord,此模块用于监测各个Real Server服务的健康状况。在Real Server不可用时把它从LVS路由表中剔除,恢复时重新加入。

    服务器群组层

      Server Array层:由一组实际运行应用服务的机器组成,Real Server可以是WEB服务器、MAIL服务器、FTP服务器、DNS服务器、视频服务器中的一个或者多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接。在实际的应用中,Director Server也可以同时兼任Real Server的角色。

    数据共享存储层

      Shared Storage层:是为所有Real Server提供共享存储空间和内容一致性的存储区域,在物理上,一般有磁盘阵列设备组成,为了提供内容的一致性,一般可以通过NFS网络文件系统共享数 据,但是NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系统,例如Red hat的GFS文件系统,oracle提供的OCFS2文件系统等。


    LVS工作模式

    NAT模式

      特点:防火墙的转发、不同网段通信、数据流量消耗比较大。

      LVS/NAT: 即(Virtual Server via Network Address Translation)也就是网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。可以看出,在NAT方式下,用户请求和响应报文都必须经过Director Server地址重写,当用户请求越来越多时,调度器的处理能力将称为瓶颈。

    TUN模式

      特点:更改目标的IP地址、服务端接收请求数据后直接交给客户端,不通过调度器。

      LVS/TUN :即(Virtual Server via IP Tunneling) 也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。

    DR模式

      特点:更改目标mac地址、服务端接收请求数据后直接交给客户端,不通过调度器。

      VS/DR: 即(Virtual Server via Direct Routing) 也就是用直接路由技术实现虚拟服务器。它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。


  • 相关阅读:
    管理之道
    Swagger-editor安装启动及错误处理,注意事项
    装箱 拆箱 枚举 注解 多态
    Spring Security 内置过滤器表
    Spring Boot入门 and Spring Boot与ActiveMQ整合
    消息中间件解决方案JMS
    网页静态化解决方案-Freemarker demo+语法
    spring-data-radis错误
    java基础总结
    swift oc 混编的头文件
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/8426965.html
Copyright © 2011-2022 走看看