多核 IPsec 网关自适应负载均衡技术解析
1. 多核 IPsec 网关静态负载分配
在多核 IPsec 网关中,静态负载分配用于将负载分配到每个核心。传统的静态负载均衡利用哈希函数计算目标负载节点的索引编号,然后将流分配给该节点。对于多核负载均衡,考虑到许多哈希算法的分布均衡性和时间消耗,Toeplitz 哈希是最合适的。
Toeplitz 哈希使用 Toeplitz 矩阵来计算哈希值,其中同一对角线上的元素值相等。一个 n 行 m 列的 Toeplitz 矩阵可用于将长度为 m 的序列哈希为长度为 n 的另一个序列。RSS(接收端扩展)是一种网卡驱动技术,它能使接收到的数据包在多个 CPU 之间高效分配,其采用的负载均衡算法就是 Toeplitz 哈希,可根据流的索引将流均匀分配到不同的工作节点。
具体来说,可以在基于 DPDK 的多核网关上部署 Toeplitz 哈希。设计一个流重定向信息表(FRIT),它以哈希表的形式存储流与处理核心之间的对应关系。对于新的入站流,使用 Toeplitz 哈希获取一个处理核心来处理该流,然后将这种关系添加到 FRIT 中。对于后续的数据包,通过搜索 FRIT 可获取该流对应的处理核心信息,然后将数据包发送到该核心进行处理。
2. 自适应负载均衡算法
Toeplitz 哈希在多租户环境中无法解决负载不平衡问题,因此设计了自适应负载均衡算法来提高多核 IPsec 网关的性能。该算法补充了基于 Toeplitz 哈希的静态负载均衡,并通过实时量化每个处理核心的负载来实现负载迁移。
2.1 多核动态自适应负载均衡
基于 Toeplitz 哈希的静态负载分配试
超级会员免费看
订阅专栏 解锁全文
9973

被折叠的 条评论
为什么被折叠?



