四层负载均衡分析:GitHub GLB

💡 原文中文,约3600字,阅读约需9分钟。
📝

内容提要

GitHub的四层负载均衡(LB)设计被称为GLB,与Cloudflare Unimog类似。GLB的连接保持技术创新性强,不需要同步信息。GLB根据TCP连接五元组hash进行转发决策,不保存状态。GLB的转发表生成满足多个条件,使用Rendezvous hashing实现。GLB使用DSR转发架构,封装使用GUE。GLB基于DPDK实现,支持TCP和ICMP,不支持UDP。非数据面流量可通过Flow Bifurcation分流。GLB运行健康检查程序,失败时交换主备RS。RS上的二次转发使用Netfilter和IPtables实现。

🎯

关键要点

  • GitHub的四层负载均衡设计称为GLB,类似于Cloudflare Unimog。
  • GLB的连接保持技术创新性强,不需要同步信息。
  • GLB根据TCP连接五元组hash进行转发决策,不保存状态。
  • 转发表生成满足多个条件,使用Rendezvous hashing实现。
  • GLB使用DSR转发架构,封装使用GUE。
  • GLB基于DPDK实现,支持TCP和ICMP,不支持UDP。
  • 非数据面流量可通过Flow Bifurcation分流。
  • GLB运行健康检查程序,失败时交换主备RS。
  • RS上的二次转发使用Netfilter和IPtables实现。
➡️

继续阅读