Linux-lvs-调度算法-总结

LVS调度算法

ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态

分为两种:静态方法和动态方法

静态方法

仅根据算法本身进行调度

  • RR:     roundrobin, 轮询,较常用
  • WRR:  weighted RR ,加权轮询,较常用
  • SH:   source hashing,实现session sticky,源IP地址hash;将来同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
  • DH:    Destination Hashing ;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡:web缓存

动态方法

主要根据RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度

  • LC:  least connections 使用于长连接应用
  • WLC: weighted LC,默认调度方法较常用
  • SED:    shortest expection delay, 初始连接高权重优先,只检查活动连接,而不考虑非活动连接
  • NQ:     Never Queue,第一轮均匀分配,后续SED
  • LBLC:     Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理,实现Web Cache等
  • LBLCR:  LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制 到负载轻的RS,,实现Web Cache等

内核版本 4.15 版本后新增调度算法:FO和OVF

  • FO(Weighted Fail Over)调度算法,在此FO算法中,遍历虚拟服务所关联的真实服务器链表,找到还未 过载(未设置IP_VS_DEST_F_OVERLOAD标志)的且权重最高的真实服务器,进行调度,属于静态算法
  • OVF(Overflow-connection)调度算法,基于真实服务器的活动连接数量和权重值实现。将新连接调度 到权重值最高的真实服务器,直到其活动连接数量超过权重值,之后调度到下一个权重值最高的真实服 务器,在此OVF算法中,遍历虚拟服务相关联的真实服务器链表,找到权重值最高的可用真实服务器。,属 于动态算法

一个可用的真实服务器需要同时满足以下条件:

  • 未过载(未设置IP_VS_DEST_F_OVERLOAD标志)
  • 真实服务器当前的活动连接数量小于其权重值
  • 其权重值不为零

算法调用选项

选项:
lvs类型:
    -g: gateway, dr类型,默认
    -i: ipip, tun类型
    -m: masquerade, nat类型        
-w weight:权重

 

ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.8:8080 -m -w 3

 

posted @ 2022-05-28 16:08  goodbay说拜拜  阅读(52)  评论(0编辑  收藏  举报