1. 负载均衡集群重点分析

image.png

  1. 集群拓扑图(用户通过互联网访问到web服务器,途径负载均衡服务器,它会以轮询的方式将任务发给多个web服务器。图中包括了一个负载均衡集群,一个高可用性集群,一个存储式集群)
  2. 负载均衡集群结构图
    1. 负载调度器
    2. 真实服务器

image.png

  1. 1. 工作层级

image.png

  1. 负载均衡集群原理
    1. 适用场景:c/s,b/s
    2. 四层工作逻辑

image.png

  1. 七层工作逻辑
    1. LVS 工作模式 -1
  2. 工作层级:驱动在内核空间,ipvs是LVS的核心组件,不需要安装,秩序用命令查看是否加载,无法直接加载,需要用工具ipvsadm加载。
  3. 工作模式分类
    1. NAT模式:负载调度器在用户和服务器中间(用户想要访问web服务器,会发送一个数据包源IP和目的IP已知,访问负载路由器的80端口,数据包经过供应商的交换以及路由的传输会到负载路由器,数据包为了到达真实服务器,会用算法改变目的地址为真实服务器<地址转换>;)
      1. D、RS1、RS2、RS3处在同一广播域中
      2. 总结:
        1. 集群节点处于同一个网络环境中
        2. 真实服务器必须将网关指向负载调度器
        3. RIP通常是私有IP,仅用于各集群节点通信
        4. 负载调度器必须位于RS(客户)与DS(服务器)之间,充当网关
        5. 支持端口映射(过去和回来都要端口映射)
        6. 负载调度器必须是Linux操作系统,真实服务器随意
        7. 进出数据报文都要经过负载调度器机器,压力较大
    2. TUN模式:负载调度器、用户、服务器通过公网连接起来(客户端发起数据报文,源IP是公网IP,目的IP是负载调度器IP,发到负载路由器,将目标地址改写为后端服务器地址,数据包二次封装到下个服务器)
      1. 总结
        1. 集群所有节点必须直接/间接拥有公网地址
        2. 真实服务器必须将网关指向真是网关处
        3. 不支持端口映射
        4. DS与RS都必须开启隧道功能
        5. 入站由DS完成,出战由RS完成
        6. 负载调度器必须是Linux操作系统,真实服务器随意
        7. 压力较大(需要大量数据包二次封装和解封)
    3. DR模式:真实服务器、负载调度器在同一个广播域中(数据报文经过交换机传输到负载服务器,会根据IP判断发送到任意一台服务器)
      1. 总结
        1. 集群节点处于同一个广播域中
        2. 真实服务器将网关指向真实路由器
        3. 负载调度器只负责处理入站请求,压力最小
        4. 不支持端口映射
        5. 负载调度器必须是Linux,真实服务器最好是Linux
    4. 通用算法
  4. 固定算法(静态调度算法):只根据算法本身去调度,不考虑服务器本身
    1. RR——轮询:将每次用户的请求分配给后端的服务器,从第一台服务器开始到第N台结束,然后循环
    2. WRR——加权轮询:按照权重的比例实现在多台主机之间进行调度
    3. SH(sourcehash)——源地址散列:将同一个IP的用户请求,发送给同一个服务器
    4. DH(destinationhash)——目标地址散列:将同一个目标地址的用户请求发送给同一个真实服务器(提高缓存的命中率)
  5. 动态算法(动态调度算法):除了考虑算法本身,还要考虑服务器状态
    1. LC(lestconnection)——最少连接:将新的连接请求,分配给连接数最少的服务器活动连接X256+非活雇连接
    2. WLC——加权口少连接:特殊>连接算法,权重越大承担的请求数越多活动连接X256+非活动连接)/权重
    3. SED——最短期望延迟:特殊的WLC算法(活动这接+1)*256/权重
    4. NQ——永不排队:特殊的SED算法,无需等待,如果有真实服务器的连接数等于0那就直接分配不需要运算
    5. LBLC特殊的DH算法:即能提高缓赣中率,又要考虑服务器性能
    6. LBLCR LBLC+缓存:尽可能提高负载均衡和缓存命中率的折中方案
    7. 持久连接(持久化连接优于通用算法)
  6. PCC(持久客户端连接):每客户端持久;将来自于同一个客户端的所有请求统统定向至此前选定的RS;也就是只要IP相同,分配的服务器始终相同example:ipvsadmA~-t172.16.0.8:0-swlc-p120
  7. PPC(持久端口连接):每端口持久;将来自于同一个客户端对同一个服务(端口)的请求,始终定向至此前选定的RS example:ipvsadmA-t172.16.0.8:80-srr-p120
  8. PFMC:持久防火墙标记连接;将来自于同一客户端对指定服务(端口)的请求,始终定向至此选定的RS;不过它可以将两个家不相干的端口定义为一个集群服务
    1. iptables-tmangle-APREROUTING-d172.16.0.8-ptcp~—dport80一jMARK—set-mark10

    2. iptables-tmangle-APREROUTING-d172.16.0.8-ptcp一-dport443-jMARK—set-mark10

    3. serkvliceiptablessave

    4. ipvsadm-A-10-swlc-p120