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