基于软件定义网络和网络功能虚拟化的负载均衡

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于软件定义网络和网络功能虚拟化的
负载均衡
摘要:自从软件定义网络技术(Software Defined Network,SDN)诞生
以来,传统的“尽力而为”型的网络得到变革,使得网络的管理与控制变得更加
的智能,并可以通过编程的方法来定制和控制网络。

软件定义网络技术也逐渐在
数据中心、园区网、运营商网络、广域网等场景中大量得到应用,并在目前火热
的5G核心网建设中大量落地,不断完善技术成熟性。

网络功能虚拟化技术(Network Functions Virtualization, NFV)与软件定义网络技术同期而生、
相辅相成,利用虚拟化技术,将过去通过专用硬件实现的功能,以软件网元的形
式提供服务。

在当前数据中心、工业互联网、边缘计算等场景下网络资源总量有
限的情况下,如何实现负载均衡、网络优化一直是一个持续需要改善和提升的问题。

本文通过软件定义网络中的网络控制器,结合网络功能虚拟化技术提供的虚
拟网元,对链路负载状态进行算法计算,通过开放接口完善对南向设备的控制,
进一步实现路径规划优化。

此类方式可通过网络功能虚拟化的形式部署,降低构
建成本,对于小型数据中心、边缘计算、工业生产等场景的节约化部署具有现实
意义。

关键词:软件定义网络网络功能虚拟化网络控制器负载均衡路径优化
0 引言
在传统的组网架构中,网络由大量的物理设备堆砌而来,软硬件功能高度耦合,同时也意味着功能的固化,无法长远升级。

随着网络规模的不断增长,网络
的运行维护与管理逐渐成为了复杂的问题,并对机房运维人员带来了全新的挑战,尤其在数据中心等复杂网络环境下。

而负载均衡一直是网络中面临的常见问题,
在传统的组网架构下,经过多年的发展与实践,已经有了大量的技术积累,往往
通过预置策略对服务器的负载和网络负载进行动态的调整。

在服务器负载的场景下,通过事先拟定一些匹配策略,在触发时将业务流量分摊到不同的后端设备上,
进而完成服务器层面的负载均衡。

在网络层面,则是通过路由策略,进一步指定具体的链路出口,选路后实现负载均衡[1]。

软件定义网络(Software Defined Network,SDN)与网络功能虚拟化技术(Network Functions Virtualization, NFV)的诞生为网络的发展带来了改变,产生了长足的进步,通过控制与转发分离的思想和可编程的设计实现软硬件功能的解耦[2],结合网络功能虚拟化技术创建的虚拟网元又大大降低了设备部署的门槛,并可实现长远升级更新。

所以为了解决网络场景下负载均衡的问题,本文通过结合软件定义网络技术与网络功能虚拟化技术,探索其在数据中心、工业互联网、边缘计算等落地场景下的应用思路。

1 细分网络场景下负载均衡需求研究
1.1数据中心、工业互联网、边缘计算等场景负载均衡需求特点
伴随着云计算的迅猛发展和公有云业务的大量拓展,越来越多的中小型企业选择了业务上云,这也意味着过去企业内网的OA、财务、FTP等系统都纷纷云化[3],运行在云数据中心中的一台台虚拟机中,并伴随着业务的扩展对虚拟机进行弹性扩容或者资源释放回收。

虚拟机设备往往还需要在不同的后端服务器上根据服务器计算存储等资源的闲置情况进行东西向的动态调度,传统的人工运维已经不能满足这种场景下的实时性需求,此外,数据中心的流量大、负载高,负载均衡出现的需求更加频繁,并伴随着云主机使用者业务的增长而变化,策略无法固定。

而在工业互联网以及边缘计算等场景下,也需要实现负载均衡,对工业内外网和边边系统下的资源调度做优化与支撑。

此类背景下往往不会部署大体量的数据中心,且额外的网络设备也会占用额外的体积、消耗额外的电量,并增加配置与运维的难度。

因此,在传统的模式下负载均衡方法不能很好的支撑新的技术发展趋势和应用场景下对负载均衡的支撑需求,需要探索新的优化方式与解决方案。

1.2基于软件定义网络与网络功能虚拟化实现负载均衡的优势
自斯坦福大学教授Nike McKeown为首的团队提出了OpenFlow以来,基于OpenFlow技术实现网络的可编程成为可能,使得网络具备了软件一样的灵活编程
的能力,软件定义网络技术应运而生。

软件定义网络技术实现了控制与转发分离,使得网元的控制平面在控制器上,由控制器来负责协议计算,产生流表,而网络
设备只需要进行数据转发。

控制器还可以集中对设备进行管理和流表的下发,代
替了原本人工对设备进行逐一操作的做法,更加高效且集中,对控制的配置也大
大降低了运维人员的工作量,而随着新的业务需要或者网络协议的出现,结合可
编程芯片,网络人员可以通过编程和开放接口进一步定义新的网络功能并加以实
现运行[4],通过软件定义网络技术集中控制负载均衡策略,通过流表下发,可以
更加的方便,并可进一步结合一些特定算法对链路路径进行计算,得到最优化的
负载选路并加以实现。

网络功能虚拟化技术则使得原本依赖于硬件实现的专有设备的功能,能够通
过虚拟机灵活在通用设备上实现,如通过虚拟机加载路由器与交换机的网元镜像,使得虚拟机具备此类设备的相关功能,创建灵活、释放方便,部署便捷,并且成
本低廉,更适合用于工业互联网以及边缘计算的场景,并与软件定义网络技术结
合使用,获得更好地效果。

2 基于软件定义网络和网络功能虚拟化的负载均衡功能设计
负载均衡是一种服务器或网络设备的集群技术。

负载均衡将特定的
业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务
处理能力,保证了业务的高可用性。

负载均衡基本概念有:实服务、实服务组、
虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负
载均衡。

基于软件定义网络和网络功能虚拟化的负载均衡功能可以在标准的X86
平台上进行应用设置,兼容目前数据中心常见的各类服务器等硬件设备,安装主
流Linux服务器操作系统,并进一步部署软件定义网络控制器。

软件定义网络控
制器是软件定义网络组网架构中的重要组成部分,作为应用程序而存在,主要功
能是管理流量控制以确保网络的智能化。

软件定义网络控制器是基于如OpenFlow
等南向协议的来运行的,允许网络控制器告诉南向设备数据报文应该如何转发,
类似的南向协议功能各有不同侧重点,如Netconf。

事实上,软件定义网络控制
器也是应用在网络场景下的一种操作系统(OS),并可进一步细分为大网级操作
系统、设备级操作系统等。

网络控制器不控制网络硬件而是作为软件运行,这样
有利于网络自动化管理。

通过基于软件的网络控制使得集成业务申请和网络更容易。

目前开源的网络控制器很多,功能较为成熟,接口较为开放,可以选用主流
软件如OpenDayLight,较为成熟的版本如Carbon。

OpenDaylight网络控制器是Linux基金会负责管理的开源项目,使用JAVA开发而成,并提供一套基于软件定
义网络技术开发的模块化、可扩展、可升级、支持多协议的控制器框架,为推动
软件定义网络技术的创新实施和网络透明化发挥了重要的作用。

而网络功能虚拟
化则可以选择在OpenStack或者其他虚拟化平台上运行,在已有的虚拟化基础上
运行满足规格的虚拟机设备,并加载Qcow2格式的交换机网元镜像,使得虚拟机
可以动态的提供路由器、交换机等各类网络设备,涵盖2层-3层的网络功能。


络控制器对流量路径进行规划,可以通过一些算法如迪杰斯特拉算法进行计算,
迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。

是从一个顶点到其余各顶点的最短路径算法,解决的
是有权图中最短路径问题。

迪杰斯特拉算法主要特点是从起始点开始,采用贪心
算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展
到终点为止[5]。

该算法可在网络拓扑中进行应用,用于计算端到端的路径开销和
损耗。

路径计算完成后,网络控制器通过REST接口,可以将对路径的规划以流表
的形式下发对应的虚拟交换机等设备,设备按流表进行端口转发,从而完成网络
的控制和网络负载均衡。

此外,在工业互联网和边缘计算场景中,往往不具备服
务器等大型设备的部署条件,这种情况下,可以在小型的高集成度的X86网关上,如选择Intel的Atom低功耗平台,支持VT虚拟化技术,或选择Intel Core系
列家用芯片的T后缀型号、具备较多的物理核心数和丰富的指令集,且其集成的GPU性能相对强大,缺点是功耗相对较多,对主动散热的压力较大,容易产生一
定的噪音。

在这两类设备商通过支持的虚拟化功能,也可以同时部署网络控制器
与虚拟的设备网元,完成相关功能。

图1 基于软件定义网络和网络功能虚拟化的负载均衡架构
从长远发展、不间断运行以及功能拓展的角度出发,采用软件定义网络技术与网络功能虚拟化技术实现的负载均衡,在性价比和稳定性等方面也更为突出,在此基础上进行一些改进、优化、或者升级,或可以探索出适合工业互联网和边缘计算场景下的精简化、低成本方案,并产生一定的经济价值与社会收益。

3实验测试
基于以上思路,本文搭建了简单环境进行测试,采用了戴尔R740服务器作为底层硬件环境,配置双路Intel Xeon至强E5 2620V4处理器,提供每路8核心16线程的计算资源,基础主频2.1Ghz,最大睿频3Ghz,缓存20MB,搭配
32GB DDR4 ECC内存4根,合计128GB内存,部署OpenStack云操作系统。

结合OpenLab开放实验室V6.7版本,构建用于测试验证的软件定义组网试验环境,分配2核心2GB的虚拟机,加载OVS交换机镜像,模拟交换机物理硬件设备。

测试环境架构如下:
图2测试环境基本架构
经过测试发现,在各条链路的运行期间,当负载人为发生变化时,控制器会对路径重新计算,链路的权值发生变化,根据计算出的最优链路,会自动发生切换,在此过程中保持ping命令测试,可以看到时延的一些变化。

因此,通过软件定义网络技术结合网络功能虚拟化技术对网络进行负载均衡的方法可行,并且虚拟化后的网元性能和功能均符合具体应用场景下的相关要求。

4结论
综上所述,采用软件定义网络和网络功能虚拟化技术共同构建的负载均衡的方式,可以在云计算时代数据中心的运维管理和工业互联网、边缘计算等新兴场景用途带来全新的解决方案,并在工作效率、智能化等方面实现全新的突破,本文通过提出相关思路并进行实验测试的方式,对思路进行了一定的验证,证明其可行性,未来随着公有云服务的不断完善、企业业务的全面云化和智能制造、边缘计算场景的逐步增加,相关技术将会存在更广阔的应用前景和发展进步。

参考文献
[1]沈耿彪, 李清, 江勇,等. 数据中心网络负载均衡问题研究[J]. 软件学报, 2020, 31(7):24.
[2]魏亮, 李蓉, 吴正东,等. 基于SDN/NFV的未来网络实验平台[J]. 电信科学, 2017, 33(4):9.
[3]翟振辉, 邱巍, 吴倩,等. 业务平台云化集中部署方案研究[J]. 电信工程技术与标准化, 2021..
[4]陈嘉豪. 基于SDN的异构云计算平台调度策略研究与设计[D].暨南大学,2016.
[5]张亚东,李起宏,陆涛涛,冯小辉.基于多源迪杰斯特拉搜索和拥塞协商的详细布线[J].中国集成电路,2022,31(04):53-58+63.。

相关文档
最新文档