1
摘要
近年来随着数字化技术的发展,数据中心以及边缘设备的网络带宽需求越来越高。作为部署在服务入口位置的4层负载均衡器,其性能要求也随之水涨船高。为了应对当前的市场需求,充分利用Intel的软硬件技术和优势,针对4层负载均衡器场景,设计了HDSLB(High Density Scalable Load Balancer),即高密度可扩展负载均衡器。
P1: HDSLB市场Marketing Addressing
HDSLB-VPP是一个基于VPP实现的4层负载均衡器软件。它旨在打造一个业界领先的高性能负载均衡器:达到150Mpps级别的吞吐量、100M(1亿)级别的并发连接、每个节点10M级别的CPS和出色的线性扩展能力。HDSLB-VPP基于Fd.io/VPP定制轻量化的框架,充分利用VPP良好的扩展性和灵活性,健壮的协议栈,丰富的高性能网络功能组件,以及众多高性能基础库等优势。HDSLB-VPP为Intel Prosperity License,对客户的商业化落地非常友好。
HDSLB-VPP基于IA特性开发了丰富的负载均衡功能。HDSLB-VPP核心功能在英特尔主流平台(i.e., 第三代及第四代Xeon-SP,及Xeon-D等)进行了深度优化,涵盖了AVX2、AVX512、FDIR以及计划中的DLB,DSA等特性,最终实现支持超过1000M(10亿)级别的并发连接,单核每秒百万级的TCP新建会话能力。HDSLB-VPP是在IA平台上部署负载均衡器解决方案的最佳实践。
2
软件架构及主要功能
HDSLB-VPP 软件架构如图所示:
P2: HDSLB-VPP软件架构
主要功能概述:
HDSLB-VPP整体软件架构分为基础组件框架层、设备层、协议层及负载均衡实现层四大部分。设备层集成了IA平台硬件加速特性和VPP框架提供的诸多收发包插件。以下例举出当前最新HDSLB-VPP 23.04 release支持的全面功能供参考:
基础组件: 主要包括VPP的向量化处理框架,配置调试接口,内存管理,以及一些高性能的基础库。
设备相关部分:提供了系统的输入输出流量。HDSLB-VPP推荐使用VPP Native AVF驱动程序。相较于DPDK插件的驱动程序,Native驱动可以获得更好的性能。HDSLB-VPP整合了丰富的Intel硬件加速技术:例如E810网卡的RSS, Checksum Offload, FDIR等功能,以及CPU的向量化指令,如AVX512。
协议栈部分:以负载均衡业务为核心,提供必须的协议交互如IPv4, IPv6, TCP, UDP, 也支持ICMP等以适配更多的业务场景。
负载均衡功能:HDSLB-VPP是有状态的4层负载均衡器,因此有会话管理功能。HDSLB提供如图所示的丰富的负载均衡功能如FNAT/NAT/DR和IPIP封装,以及支持SNAT协议,为RS提供访问外部服务的能力。RS调度算法支持RR, WRR, WLC和Consistent Hash。
除优秀的负载均衡能力外,在高可用HA方面,结合keepalived,支持主备模式、会话同步以及健康检查。
在以上功能已全部支持之外,HDSLB-VPP在吞吐,新建和并发等性能指标上也有优秀的表现。
3
性能数据总结
HDSLB-VPP具有业界领先的性能表现。下文将从吞吐、每秒TCP新建连接(CPS)和最大并发会话三个方面,与某开源4层负载均衡方案最新的性能数据进行对比。需要特别指出的是,开源负载均衡方案中采用的硬件平台为E5-2650,并发会话量2K-10K,测试流量为 64字节包长UDP协议流量。而HDSLB-VPP采用通用IXIA测试仪在第三代Xeon-SP平台测试1-16 cores的吞吐性能表现,其中每core为10M 并发会话量。从下图中可以看出,HDSLB-VPP在并发会话数量增加10倍的情况下,取得了三倍以上的单核性能优势,且具有更好的线性扩展能力。图中MAX,PDR和NDR分别是在尽力转发,十万分之一丢包率和零丢包率三种丢包模式下进行测试所得到的数据,可以反应出HDSLB-VPP优秀的稳定性。且在NAT/DR/IPIP等其他模式下和FNAT模式趋势一致。
P3: FNAT IPv4吞吐量
P4: CPS每秒TCP新建性能
TCP新建性能方面,HDSLB-VPP在测试中采用IXIA Ixload同时新建老化的方法模拟真实环境测试,从测试结果看,单核每秒新建性能CPS具有五倍以上的性能优势。
HDSLB-VPP基于VPP框架对数据结构内存进行了深度优化,使得HDSLB-VPP在同等内存消耗的基础上,最大并发会话量突破预设的100M(1亿)级别,扩大到FNAT模式的500M(5亿)会话量。在NAT模式下,甚至可以达到1000M(10亿)会话量级别。HDSLB-VPP对于内存方面做的优化及并发会话量的优势,使得HDSLB-VPP在未来IPv6越来越普遍和成熟的场景下,将有更大的实用价值。在达到高性能负载均衡的同时,可以更好地帮助客户节省更多的系统资源用于其他业务的部署。
4
配置推荐
基于不同的客户群体和产品需求,TCO及业务能力要求,推荐以下平台及NIC参考配置。针对网络安全厂商的安全网关产品,通常需要支持1M-10M会话量,吞吐需达到10G-100G,新建能力每秒在10K-500K之间,针对这类网关产品可以使用Atom 5000 及Atom 3000等系列CPU及E810系列网卡(25G或100G)产品组合。当前已有安全厂商和Intel深度合作进行终端产品开发。而针对边缘Edge端和数据中心、云厂商和ISP服务提供商,推荐选用第三代及最新的第四代Xeon-SP系列处理器及E810系列网卡(100G或200G)进行部署。更多业务场景或选型请联系相关Sales团队获取更多详细信息。
P5: 平台推荐
5
总结
综上所述,基于VPP 实现的HDSLB-VPP,是一款能部署在祼金属 x86服务器和多云环境,且具有业界领先的性能和突出的线性扩展能力的4层负载均衡产品。
文中涉及到的特性均已经包含在最新发布的HDSLB-VPP 23.04 release版本中,未来还将提供基于第四代Xeon-SP加速器的大象流处理能力,以及支持QoS、Anti-DDoS等相关安全功能。
HDSLB-VPP是基于Intel Prosperity license开发的产品,旨在让客户能基于该软件方案实现更多商业化场景的落地。暂时不会开源, 如有需要请随时与我们联系。
此外,团队另一款基于DPVS的HDSLB版本,目前已经在开源社区公开, 有专业的技术团队可以提供相应的维保服务。欢迎有兴趣或者有需要的同行共同参与社区的建设和交流。
HDSLB-DPVS开源版本: https://github.com/intel/high-density-scalable-load-balancer。
联系方式:
• Zhang, Pan (pan1.zhang@intel.com )
• Jing, Yiming (yiming.jing@intel.com )
参考资料
火山引擎边缘云采用基于英特尔® 软硬件打造的 HDSLB,深度优化四层负载均衡性能:https://www.intel.cn/content/www/cn/zh/customer-spotlight/cases/volcano-engine-edge-cloud-balance-hdslb.html
Intel® Dynamic Load Balancer (Intel® DLB) - Accelerating Elephant Flow: https://www.intel.com/content/www/us/en/content-details/769116/intel-dynamic-load-balancer-intel-dlb-accelerating-elephant-flow-technology-guide.html
转载须知
DPDK与SPDK开源社区
公众号文章转载声明
推荐阅读
Release notes for VPP 22.06
Release notes for VPP 22.10
点点“赞”和“在看”,给我充点儿电吧~