加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • Part 01●  ECMP ●
    • Part 02● LVS负载 ●
    • Part 03●  NGINX负载 ●
    • Part 04●  思考和探究 ●
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

五分钟技术趣谈 | 负载均衡技术在算力网络中的应用

2023/09/25
3088
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

作者:蔡伸,单位:中国移动智慧家庭运营中心

在大力建设算力网络的大背景下,随着SDN思潮的深入推进、网络集群的部署,负载均衡成为了一种不可或缺的技术,它在云,网,边都起了至关重要的作用。本文会对常见的几种负载均衡技术进行介绍,同时对各种技术的不足之处进行思考。

Part 01●  ECMP 

ECMP是一个逐跳的、基于流的负载均衡策略,当路由器发现同一目的地址出现多个最优路径时,会更新路由表,为此目的地址添加多条规则,对应于多个下一跳,且可同时利用这些路径转发数据,增加带宽。ECMP算法被多种路由协议支持,例如:OSPF、ISIS、EIGRP、BGP等。在数据中心架构VL2中也提到使用ECMP作为负载均衡算法[1]。

简单来说,ECMP是基于路由层面实现的负载均衡,基于IP层进行负载有许多优点,具体如下:

(1)部署配置简单,可以基于很多协议自身特性实现负载,无需额外配置。

(2)提供多种流量调度算法方式,可以基于哈希也可以基于权重和轮询方式。

简单的方式同时意味着存在许多缺陷,具体如下:

(1)可能加剧链路堵塞。因为ECMP不会判断原先链路是否已经堵塞,都会将流量进行负载,这样子会导致原先堵塞的链路更加堵塞。

(2)很多情况下负载效果不好。ECMP无法区分多条网络后的流量空闲情况以及ECMP在流量差距大的情况下负载性能差。

这种基于网络三层的负载方式虽然易于使用和部署,但是无法满足业务层面的使用,无法保持会话,故下面笔者会介绍几种网络四层以上的负载方式。

Part 02● LVS负载 

LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式【2】。

图1 LVS结构图

与ECMP不同的是LVS是基于会话的四层负载均衡,LVS会基于上下行五元组对不同的流进行会话保持,再结合LVS的长期发展,LVS具有非常多的优势:

(1)抗负载能力强。LVS只在网络四层做分发,不会过多的消耗CPU和内存资源。

(2)配置要求低。简单配置就能够正常使用。

(3)健壮性强。发展时间长,业内的部署方案非常多,稳定性高。

于此同时,LVS也存在许多不足:

(1)功能不够丰富。配置简单的同时导致LVS缺少更多的功能,缺少故障迁移,添加恢复等功能。

(2)NAT模式性能受限,当然这也是很多四层负载所面临的问题,笔者会在后续提出思考。

Part 03●  NGINX负载 

NIGINX除了作为一个高性能的HTTP服务器,同时能够提供反向代理WBE服务器的功能,也就意味着部署NGINX作为一台负载均衡服务器是可行的。当然,业内已经非常广泛的在使用NGINX作为负载均衡服务器,服务集群,主备链路等。

NGINX和LVS类似,都是基于四层以上的负载均衡,能够保持会话。同时因为NGINX工作在网络七层,相比LVS负载,NGINX对网络的依赖会更小。

相比LVS负载均衡,NGINX具有如下优势:

(1)对网络依赖小。只要网络能通就能做负载,不像LVS部分模式需要特定的网络环境。

(2)安装简单,配置部署快。

(3)NIGINX负载可以检测到服务器内部故障。简单来说,上传文件时发生故障,NIGINX会自动将上传切到另一台负载设备处理,LVS无法如此使用。

同样的,NGINX也存在一些缺点:

(1)缺少双机热备方案,多数情况下单机部署存在一定风险。(2)功能调整度高,变相导致它的维护成本和难度高于LVS。

Part 04●  思考和探究 

综合以上几种常见的负载技术的优缺点,其实不难发现各有各的好处,然而在实际使用过程中,笔者发现这几种方式都很难满足高性能跨网负载,即在做FULL-NAT的前提下实现跨城域网的负载,简单来说,就是在实验多节点云化部署时,这些方案都存在一定的性能贫瘠。

基于此,经过查阅相关资料,笔者发现Cisco开源的VPP项目提供了一种高性能负载均衡器的方式,基于DPDK收发包,VPP的高性能处理,经过二次开发可以实现跨网高性能负载,目前已经取得一定成效。下一期将针对这种高性能四层跨网负载均衡技术展开介绍和讨论。

未来,智慧家庭运营中心会在实现高性能跨网负载均衡器上进行更多的研究,欢迎更多的开发架构人员投入到高性能跨网负载均衡器的功能开发和场景探究之中来。

参考文献

[1] 深入看ECMP(详解其实现机制)https://blog.csdn.net/aiaiai010101/article/details/84673687,CSDN, 2018.

[2]  LVS负载均衡(LVS简介、三种工作模式、十种调度算法)https://cloud.tencent.com/developer/article/2054205,腾讯云, 2022.

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
KSZ9897STXC 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下载ECAD模型
$10.66 查看
KSZ9893RNXI 1 Microchip Technology Inc Ethernet Transceiver

ECAD模型

下载ECAD模型
$10.79 查看
KSZ8081RNBIA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC32

ECAD模型

下载ECAD模型
$1.55 查看

相关推荐

电子产业图谱

移动Labs是中国移动的社交化新媒体平台,是面向外部行业及产业链合作伙伴的信息发布、业务发展和产业推进门户。