京东基于京东基于DPDK技术的高性能四层负载均衡器技术的高性能四层负载均衡器SKYLB
摘要
随着京东业务的高速增长,作为应用入口的负载均衡,大流量大并发带来的挑战越来越严峻。本文主要介绍了京东商城设计和
实践的一套高可靠,高性能的负载均衡器,我们命名为SKYLB。是一个使用intel DPDK报文转发库,实现运行在通用X86服务
器上自研的分布式负载均衡服务。配合网络路由器的OSPF或者BGP协议,组成承担京东数据中心核心四层负载均衡的集群。
最大限度的发挥普通X86服务器硬件资源的性能,实现一套适合于京东商城业务的低成本,分布式,高性能,可扩展的智能负
载均衡系统。
介绍
京东商城目前是国内最大的电商企业。京东的机房内部的流量爆炸式快速的增长。早在2016年初京东商城已经将所有的业务
系统全部迁移到容器平台JDOS,线上百万+容器实例稳定运行。大流量的负载均衡的分配显得至关重要,也是京东商城新一
代软件定义数据中心的关键基础服务设施之一。
负载均衡器一般介于网络上的路由器与后端服务器之间,负责将每个数据包通过一定的服务匹配,将其转发到后端服务器节
点。充分考虑到京东商城数据中心全容器及全三层BGP组网的模型。以及基于DPDK的几乎达到网卡限速的性能,我们在设计
负载均衡时,仅考虑实现了FULLNAT模式,即出向和入向的流量均通过负载均衡器,基本数据流程图如下图1所示:
图1负载均衡流程图
一般根据业务及流量的规模的不同阶段来选择使用不同的负载均衡,通常我们在负载均衡的选择上大致有以下两个方向:1)硬
件负载均衡,如F5。CitrixNetscaler等;2)软件负载均衡,如基于LVS,Haproxy,Nginx等开源软件来实现的负载均衡。对于
上述两种负载均衡的选择,各有优缺点,如下:
1)硬件负载均衡
可扩展性受限,无法跟上业务流量增长的需求。以及如618、双十一大促等瞬间流量高峰。
虽然可以成对部署避免单点故障,但是一般只能提供1+1冗余。
缺乏互联网快速迭代的灵活性,升级成本昂贵。
一般只能根据网络的情况来设定负载均衡,无关乎实际系统和硬件的情况。
成本较高。
2)基于开源软件的负载均衡
可以根据实际系统和应用的状态来合理的负载,迭代、扩容和部署相对方便。
单台负载均衡性能相对较差,需要用集群来支撑负载均衡的整体性能。
性价比较低。
我们的目标:
1. 设计实现一套高可靠、高性能、易维护及性价比高的L4负载均衡系统,。
2. 基于通用X86_64服务器框架,以及支持DPDK网卡硬件,易开发和移植。
3. 方便部署、删除和维护,集成到京东软件定义数据中心(JDOS2.0)系统,作为京东下一代软件定义数据中心的基础组
件。
4. 负载均衡下的服务器基于系统应用负载流量均摊,负载均衡器提供N+1 冗余,借助OSPF/BGP控制负载均衡器的流量负
载。
5. 基于系统应用级别的探活,自动故障检测及流量快速恢复。