四层负载均衡分析: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实现。
➡️