APP下载

一种面向边缘环境的服务链线上部署系统

2023-12-07邓泽平曾旺刘畅

电脑知识与技术 2023年30期
关键词:链路边缘部署

邓泽平,曾旺,刘畅

(怀化学院,湖南 怀化 418000)

0 引言

对比云计算领域的数据中心(Data Center,DC) ,边缘计算网络更靠近底层用户,因而能通过提供低延迟的服务来满足工农业物联网实时控制的需求。不同层次的边缘计算(如移动边缘计算和微云)通常用于协助处理高带宽或低延迟的任务,并将高性能计算卸载到云,从而形成从设备、边缘网络到数据中心的多级服务模型[1]。当下,网络功能虚拟化(Network Function Virtualization,NFV) 框架下的服务链(Service Function Chain,SFC) 作为一种高效灵活的网络流处理模型受到了工业界广泛的关注和研究。基于地理隔离的多DC 网络,学界提出了许多针对不同约束条件和优化目标SFC 部署模型与算法[2],但较少讨论在边缘网络的实现。不同于现代DC广泛采用的Clos网络架构,边缘网络具有故障率高、延迟敏感和用户流量难以预测等特点[3]。软件定义网络(Software Defined Network,SDN) 通过分离控制层和数据层为网络的实时精细化管理提供了技术支持。笔者拟针对边缘环境,研究如何将SDN 关键技术嵌入NFV 框架内,从而实现统一和可靠的服务链部署。

1 系统架构

系统参考ETSI 架构[4]自上而下分为服务管理层、操作层和基础设施层(如图1) 。管理层根据一定策略发出SFC请求,操作层进行解析并实现。其中节点监控模块部署各VNF,网络管理模块随后完成流量引导。SFC 代理模块(SFC Agent) 作为安装在每个边缘物理主机内的代理服务,管理和监控本地虚拟计算和网络资源,并通过定义远程过程调用(Remote Process Call,RPC) 协议对上层提供统一的基础设施管理操作。控制器分布于各边缘设备之中,连同其中的专有应用和北向接口共同辅助SFC 网络的构建。需要强调的是,图1中所示路径均同时包含南向控制和北向监测信息,如SFC Agent向上返回的服务器内部信息。除SFC Agent 绑定本地接口外,其余模块都采用松耦合的远程调用与控制,使得整个系统能支持不同类型的网络接入,亦有利于水平方向的扩展。

图1 系统架构

2 网络架构

2.1 网域划分

为了平衡成本和复杂度,系统网络(如图2) 被划分为管理网络、私有网络和公共网络。管理网络承载了所有的控制流,如RPC 和OpenFlow 信道等。由于控制模块之间均为松耦合,且对时延和带宽不太敏感,所以管理网络只要求三层可达。

图2 网络架构

私有网络和公共网络均承载了业务流量,并与管理网互不交叉,故而保证了系统控制和流量波动互不影响。地理位置靠近且易搭建物理信道的边缘服务器之间依靠私有网络进行通信。私有网络是一个用若干交换机组成的二层交换网,并独立地分布在不同位置,保证了其内部高速低延迟的通信。公共网络是一个三层路由网,是所有边缘节点相互通信最后保障。

2.2 流量隔离

服务链整合了不同服务器的资源,但也导致其业务流量和风险的集中,因此必须对不同业务流量进行隔离。在物理服务器内部,所有VNF 端口均以access模式连接于虚拟网桥br-int,并被分配了不同的VID(Virtual Local Area Network Identifier) 。进入私有网络的帧被虚拟网桥br-eth1重新分配了VID,而公共网络的数据包因属于不同VXLAN(Virtual Extensible Local Area Network) 隧道而相互隔离。在SFC的部署阶段,网络模块统一为所有VNF 构建了虚拟网络并分配了独立ID,以保证系统的稳定性。

2.3 通信实现

1) 服务器内部通信。如图2 所示,VNF_01 的帧从指定虚拟端口进入br-int 后会被加上“VID=11”标记,再受网络模块预设流表项(flow entry) 指示替换成标记“VID=21”,最后发送到VNF_02指定的端口。

2) 跨私有网络的通信。主机1 内的br-int 根据VID 和目的MAC 地址将来自VNF_01 的帧经由trunk模式下的patch port 转发至br-eth1。br-eth1将其VID从10 替换为100,目的MAC 替换成主机2 的br-eth1相应端口地址,并从物理网卡eth1 发送至私有网络。主机2 上br-eth1 网桥被设置为允许接收VID 为100的帧,并根据自身流表替换VID 和MAC 并送入brint,并经由指定端口进入VNF_03。

3) 跨公共网络的通信。当两个不同服务器内的VNF间无私有交换网络相互可达时,系统会为其在公共网络中构建独立的VXLAN隧道用于流量传输。如图2,来自VNF_02 的帧在进入br-tun 后,会根据目的MAC 分配到相应的隧道(VNI=100) ,并封装成UDP 数据包发送到HOST2上的隧道对端,待解封成帧后发送到VNF_04对应端口。

3 服务链部署

3.1 部署概览

当系统被部署到若干服务器并启动时,管理机会尝试连接各控制器和SFC Agent来获取相关信息。例如,SFC Agent需要返回服务器的CPU、内存、虚拟化支持状况以及公共网络拓扑、带宽和延迟测试结果等。同时,管理机会尝试进行一些基础组件安装、虚拟网络骨架的构建和镜像迁移等准备工作,并反复验证直至全部通过,随后正式进入SFC部署流程(如图3) 。

图3 SFC部署流程

用户SFC 请求采用YAML 格式,管理层会对其进行合法性检查并在部署过程中根据环境和策略不断添加对用户透明的相关内部信息(如VNF 位置、链接配置等)。例如图4展示了一条由两个位于不同服务器的节点构成的SFC。vnfs和links分别代表该SFC的节点和链路信息,in_aps和out_aps分别代表起始和终止位置。显然,由于使用了接口和流表来区分进出VNF的流,系统天然支持SFC有向图的部署。

图4 SFC配置示例

3.2 全局状态监控

系统完成SFC 部署和路由调整均需实时获取各物理节点和链路状态,这主要依赖于控制器和SFC Agent 模块。控制器采用Ryu[5]作为框架,通过Open-Flow 信道的packet_in 和packet_out 实现链路发现,并给所有交换机注入自学习转发的流表项。监控模块是Ryu中的一个协程,并在控制器启动后独立地监控链路信息、保存到本地字典和提供查询接口(如图5) 。SFC Agent 是一个开机自启的systemd 服务,其调用Docker、libvirt、OVS、Bash 和系统调用等接口,在此基础上定义和封装了计算和网络资源的远程管理函数。

3.3 部署策略

边缘的异构性对服务链部署的影响有:(1) 对服务延迟非常敏感,进一步要求快速收敛的线上策略;(2) 用户需求和网络拓扑不稳定,流量规模和方向较难预测;(3) 流量规模和算力需求远小于DC,对计算资源的消耗几乎与包速成正比[6]。本文考虑一个由分布在一个地理区域的若干主机节点构成的独立边缘网络,节点间的链路延迟差异较大。限于某些特定的物理条件或安全策略,不相邻主机间通信依赖中间节点的中转。每条到来的SFC请求会规定最大服务时延、长度(VNF数量)、起始和终止物理节点。每个VNF会消耗一定量的CPU 资源,但在服务部署前未知。在SFC请求不可预测的情况下,我们希望在满足时延约束的同时尽量为后续SFC请求保留CPU资源,以提高系统容量。

本文利用SDN 架构实现了对链路状况的全局实时监测,并能细粒度地调整VNF间流量路径。根据前述网络架构,每个物理节点单独分配核心用于包转发,与VNF的资源消耗无关。对于一条路径上的每个节点,可以在满足资源约束下部署任意数量的VNF。多个VNF位于一个主机时,其内部数据交换延迟相比于SFC时延约束可以忽略不计。当不映射VNF时,该物理节点仅转发流量,因而更具灵活性。

整个线上服务链部署过程如下:

1) 估算SFC 请求的CPU 消耗。假设各VNF 对CPU消耗相同,且与入口包速成正比。我们实际测算每台主机的包速-CPU 线性关系,再根据入口位置历史流量分布预测此次SFC请求的包速。

2) 路径选择。为了简化问题以降低响应时间,只搜索从起点到终点的简单路径。定义某路径的CPU余量如下:

路径中包含s个主机,ACi为从SFC代理模块获取的第i个主机的实时剩余CPU余量即为在第i个主机上可映射的VNF数量。当ACi其小于C时,对应的求和项为0,即不映射VNF。借助控制器监测模块搜索出所有满足时延约束的简单路径,并选择其中具有最大CPU 余量的路径作为部署路径。若找不到时延满足的路径,或CPU余量均为0,则拒绝部署。

3) 确定VNF 映射。VNF 与主机间关系为N-1,N可取从0开始的任意整数。因此,在确定物理节点后,VNF 映射转化为装箱问题。为了给未来的SFC 请求尽量保留CPU资源,本系统采用简单的贪婪算法。采用最大堆算法选择具有最大CPU 余量的主机部署VNF,直至所有VNF部署完毕。

4 实验验证

我们在4 台全连接的服务器(32C/64T,64GB) 内建立KVM虚拟机来模拟NSFNet 拓扑(如图6) 。每个虚拟机绑定到4 个物理内核,节点间连通性由Open-Flow流表控制,链路延迟通过物理主机内核流量控制模块进行调节。

考虑到SFC请求和规模的随机性,为了测试系统能否均衡各节点负载以提高容量,我们进行了20轮测试,每轮测试尝试连续部署100 条SFC。每条SFC 请求的长度、负载和端点都是按照均匀分布随机选取。通过取所有测试的平均值得到成功率与SFC 请求次数的关系(如图7) 。对比测试为限制物理节点路径长度不大于VNF数量,这对应于流量通过公共网络跳转的一般情形,而并非本系统直接利用中间节点进行转发。可以看出,系统的SFC 数量小于某一临界值(最大系统容量)时可以将部署成功率可以维持在较高水平附近。系统较之于对比测试能取得更大的系统容量,同时在正常工作区间的部署成功率也提高了约10%。

图7 部署成功率-SFC数量关系

5 结论

针对边缘环境,文章设计了一个基于SDN的虚拟功能服务链部署系统。所有控制层均互相松耦合,能够较好地适应复杂和不稳定拓扑。根据用户需求独立选择三种网络之一传输任意两个节点间流量。通过对链路的全局实时监控,实现了对VNF部署和路径选择的细粒度管理。全局策略对会消耗控制节点较多计算资源,有必要进一步针对更大规模拓扑和流量进行改进。

猜你喜欢

链路边缘部署
家纺“全链路”升级
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
部署
部署“萨德”意欲何为?
基于3G的VPDN技术在高速公路备份链路中的应用
高速光纤链路通信HSSL的设计与实现
在边缘寻找自我
走在边缘
边缘艺术