A Survey on Controller Placement in SDN(SDN中的控制器配置综述)

     传统的IP网络通过在网络交换机上运行的-分布式控制和网络协议-进行管理。这种体系结构使网络管理成为一项复杂的任务,因为高级网络策略必须在每个设备上单独实现,并依赖于低级别、特定于供应商的命令传统架构中的控制平面和数据平面在交换机处共存,这不允许灵活的网络管理。

  软件定义网

 络(SDN)可以在网络中引入灵活性和可编程性,并促进动态网络管理。

  SDN控制平面包括一个或多个控制器,这些控制器(a)通过南向协议(Southbound)(例如OpenFlow)与交换机进行通信;(b)通过北向协议(Northbound)与应用程序通信;(c)通过东西向通信协议(east-west)(例如SDNi)相互通信。

SDN架构


对SDN中的控制器放置问题(CPP)的全面综述

针对不同目标的控制器布局解决方案的比较

平均延迟Average Latency):由于交换机与其分配的控制器之间的往返传播延迟,以及控制器处的处理延迟造成交换机控制器通信延迟。控制器位置决定了交换机控制器传播延迟,而交换机-控制器映射会影响控制器负载,从而影响其响应时间。

【图(a)和(d)显示了两种可能的控制器位置。图中对从每个开关到控制器的控制负载进行了颜色编码。负载测量为交换机每秒向控制器发送的流量设置请求的数量。因此,当我们考虑网络中流设置请求所经历的平均延迟时,我们发现位置#2图(d)的延迟比位置#1图(a)低30.22%】

 

弹性(Resilience)(针对控制器故障):图(b)和(e)显示了两种不同的位置。在每个位置,网络由两个控制器管理,每个控制器负责管理一个子网络。每个交换机都分配给其最近的控制器。

【在控制器发生故障的情况下,所有交换机都映射到幸存的控制器。因此,如果控制器C1发生故障,则网络由控制器C2进行管理。我们发现,在C1发生故障时,位置#2(图(e))中经历的最大交换机控制器延迟比位置#1(图(b))低18.19%。因此,从弹性的角度来看,布局#2比布局#1更好,因为它即使在控制器出现故障时也能确保一定程度的性能。】

 

服务质量(Quality of Service (QoS)):如果网络有一个性能要求,即交换机控制器延迟应该是有界的,那么有必要优化控制器的位置以及网络中控制器的数量。

【例如,如果请求所经历的传播延迟的上限是25ms,我们发现图(c)中控制器的位置和数量无法满足这一要求。我们观察到,两个控制器无法满足此QoS要求,并且至少需要三个控制器。图(f)显示了一种可能的布局,其中有三个控制器可以满足QoS要求。】

 

这表明CPP解决方案提供了必要的控制器数量和所述控制器在网络中的位置,这两者都是关键的设计选择。


经典CPP公式及其支持系统模型

经典CPP公式

网络模型Network Model

G (V, E, C)V是SDN交换机的集合,E是互连这些交换机的双向链路的集合,C是控制器的集合。

d(u,v)表示交换机u,v∈V之间最短路径上的延迟。

ρ表示控制器容量(假设所有控制器一致)。

功率集2V表示所有可能的控制器布置的集合。

λi表示从交换机vi到其控制器的控制负载。

ϕ:V→ C返回分配给交换机的控制器,即交换机v分配给控制器ξ(v)。

Δ表示交换机控制器延迟阈值。

经典CPP公式(Classical CPP F ormulation):经典CPP的预期输出是控制器计数、位置和相关的开关控制器映射。假设ci表示与交换机vi共存的控制器,这些决策变量可以表示如下:

这里,xi表示ci是否存在,yij表示交换机vi是否映射到控制器cj。

SDN中CPP的整数线性规划公式(ILP)(它代表了SDN CPP公式的最基本形式):

(1)经典CPP公式的目的是最小化交换机-控制器最大延迟

(2)-(6)中列出了相应的约束条件:

约束(2)捕获控制器容量,这确保映射到控制器的交换机的需求之和不会超过其容量。

约束(3)是交换机-控制器映射约束,它确保每个交换机只分配给一个控制器。

约束(4)保证只有当控制器存在时,交换机才映射到控制器。

约束(5)捕获控制延迟,该约束规定对于每对交换机-控制器映射,交换机与其控制器之间的延迟不超过延迟阈值。

约束(6)捕获主要决策变量的二进制性质

SDN中CPP建模的设计(选择支持系统模型)

制器位置  利用带内SDN控制,大多数关于SDN中CPP的现有文献都将预期控制器位置视为交换机位置的集合(或子集)。这种设计选择使SDN迁移变得容易,传统交换机逐渐被SDN交换机和并置的SDN控制器取代,从而消除对网络布局的更改对SDN控制平面的新链路的需要。然而,一些作者认为,控制器可以放置在交换机位置的整个区域的任何地方,而不一定与交换机并置。控制器与交换机并置被证明可以降低控制延迟,需要更少的控制器,并提高控制器利用率,但是需要额外的交换机控制器链路。

制器类型   大多数作者认为控制器是一个具有固定容量的单个单元,但很少有作者将SDN控制器建模为控制器模块,其中单元数量(因此容量)可以根据网络负载动态(取消)调试。这是使用SDN控制器的虚拟化实例实现的,可以按需打开/关闭。据称,控制器模块可以提供更好的资源利用率、能源和成本节约以及可扩展性,尽管代价是更高的复杂性。

交换机负载   基于SDN的类型,对SDN交换机产生的控制负载的建模各不相同。对于具有单域的网络,来自SDN交换机的控制负载包括其生成的负载中的数据包。对于多域网络,SDN交换机的控制负载被视为其生成的负荷中的数据分组的总和,以及来自属于不同域的相邻交换机的负载

控制器处理延迟  与交换机控制器传播延迟相比,大多数论文忽略了控制器处理时间——这一假设可能对WANs和大规模网络有效,但对数据中心网络无效。有少数作者基于排队理论将其更现实地建模为M/M/1队列(在单个控制器为每个交换机服务的情况下)或M/M/M队列(在交换机的控制负载可以在控制器之间分配的情况下。

交换机之间的距离  对于真实网络和合成网络,交换机之间的距离(或链路权重)通常是随机分配的。虽然一些作者根据最短路径将真实网络中的链路权重近似为连接它们的直线上的最短距离,但这种方法充其量是近似的。很少有涉及大规模真实网络的研究基于Haversine公式精确地对距离进行建模,该公式根据纬度和经度计算球面(而非平面)上两点之间的精确距离。

故障后的场景  在故障后网络运行条件方面,文献中观察到了广泛的假设。在网络故障的情况下,虽然大多数作者认为无控制器交换机继续根据其现有(可能过时)的流表路由流量,但其他作者认为交换机在失去与其控制器的连接时不再路由流量。一些作者假设交换机在故障后将其控制流量重新路由到最近的可用控制器(使用按接近度排序的预先填充的控制器列表),还有一些作者假设,到故障控制器的所有流量都由与故障控制器并置的交换机路由到其最近的控制器。

同步成本

控制器数量

控制器容量

网络流量

最近控制器分配

网络故障


CPP建模选择和相关度量

控制延迟 

SDN中的控制延迟包括交换机和控制器处的传输延迟(基于各自的端口速率)、传播延迟(基于交换机控制器路径长度)、控制器处的排队延迟(基于控制器负载和服务速率)和处理延迟(基于控制器服务速率)。在数据中心网络(data-center networks  DCN)中可能可以忽略传播延迟,但在广域网(WAN)中则不能忽略。与传播延迟相比,控制器处理延迟在WAN中可能不显著,但在DCN中相当大。此外,控制器间延迟也在控制延迟中发挥作用,尤其是在大规模网络中。

a)对于给定数量的控制器,最小化平均情况下切换控制器延迟,类似于k-median问题
b)对于给定数量的控制器,最小化最坏情况下的交换机-控制器延迟,类似于k-center问题
c)在延迟范围内,最大化每个控制器的交换机数量,类似于set cover问题

传播延迟的角度来看,一个控制器通常足以用于大多数WAN网络(尽管需要多个控制器来满足容错和恢复能力要求)。

【从吞吐量的角度来看,单个控制器就足以满足实际网络的需要。然而,可扩展性、安全性和弹性问题增加了对SDN中多个控制器的需求。】

  • 一种基于k-means的网络划分算法,最大限度地减少交换机控制器的延迟。

G. Wang, Y. Zhao, J. Huang, Q. Duan, and J. Li, “A K -means-based network partition algorithm for controller placement in software defined network,” in Proc. IEEE Int. Conf. Commun. (ICC), 2016, pp. 1–6.

k-means算法:

选择k个点作为初始质心。
repeat 将每个点指派到最近的质心,形成k个簇 
重新计算每个簇的质心 
until 质心不发生变化

k-means初始化方法,将网络逐步划分为k个子网络。在具有k(<k)个子网络/质心的第k次迭代中,该算法选择与任何现有质心相距最远的节点作为附加中心,然后将具有这些k+1个中心的网络重新划分为k+1个子网络。一直持续到达到所需数量的子网络为止。与标准k-means算法的输出取决于初始k个中心不同,该算法获得了稳定的结果。

  • 一种改进的AP(affinity propagation)传播算法,使交换机控制器延迟最小化。

 J. Zhao, H. Qu, J. Zhao, Z. Luan, and Y. Guo, “Towards controller placement problem for software-defined network using affinity propagation,” Electron. Lett., vol. 53, no. 14, pp. 928–929, 2017.

他们的算法隐含地导出了控制器的最佳数量。在寻找更稳定的解决方案方面,发现优于Internet2 OS3E 拓扑上的k-centerk-median算法的结果。因为与k-center和k-median不同,它不涉及任何人为干预(初始化聚类的数量和中心)

  • Zhang等人[127]强调了控制器间通信作为交换机控制器交互的一部分的重要性。

T. Zhang, A. Bianco, and P. Giaccone, “The role of inter-controller traffic in SDN controllers placement,” in Proc. IEEE Conf. Netw. Funct. Virtualization Softw. Defined Netw. (NFV-SDN), 2016, pp. 87–92.

他们基于控制器之间的两个数据所有权模型——单个(基于Raft一致性算法[138])和多个(基于反熵算法[139])——分别对应于强一致性和最终一致性定义,构建了交换机控制器延迟的分析模型。在性能评估中,他们从Internet Topology Zoo中搜索小型/中型拓扑中的Pareto最优布局,评估交换机控制器和控制器间延迟之间的权衡,并比较单个和多个数据所有权模型的反应时间。在Pareto边界上,发现控制器间延迟的变化远大于开关控制器延迟的变化。发现控制器的位置在很大程度上取决于底层数据所有权模型。在单一数据所有权模型中,作者发现数据所有者(领导者控制器)的选择严重影响控制平面的性能。参考文献[128]扩展了[127],讨论了相关工作,将所提出的分析模型应用于特定的OpenDayLight应用程序(L2交换机)

  • Qi和Li[122]研究CPP的目的是最大限度地减少规则安装成本,而规则安装成本又被抽象为交换机负载与其最近控制器的距离的乘积之和。

基于[140],他们提出了一种(3+1/|S|)近似算法(其中,|S|表示网络中交换机的数量)。在规则安装成本和更好的控制器负载平衡方面,所提出的方法优于[16]中的方法。

  • Han等人[123]基于经典控制理论对SDN中的CPP进行了研究。

他们将控制延迟定义为用时间相关的输入信号将网络从一个状态驱动到另一个状态所需的时隙数量,提出了两种启发式算法——一种是用最小数量的控制器来最小化控制延迟,另一种是在给定的控制延迟阈值下最小化控制器数量。

与[16]相比,所提出的算法声称可以实现更平衡的SDN分区。

  • Hollinghurst等人[124]比较了基本CPP(或k-中值问题[132])的四种策略(蛮力、线性规划、局部搜索和k-均值++[141])的可扩展性(运行时间和计算复杂性)和准确性。

目标是使每个开关到其最近的控制器的距离之和最小化。局部搜索方法从随机集群开始,在集群之间交换节点,直到没有观察到进一步的改进。k-means++方法利用随机种子技术扩充了标准的k-means算法。从理论上推导了每种算法的计算复杂度,并根据经验推导了每一种算法的运行时间。在124节点的铁路网络上分析了除暴力方法外的所有方法的准确性。作者得出结论,局部搜索和k-means++算法是最具可扩展性的。尽管局部搜索方法的性能比k-means++好,但其标准偏差变化很大,而k-means+导致解的方差减小


CPP在几个新领域的最新应用

 

posted @ 2023-03-17 22:44  阿Qi早起了吗  阅读(377)  评论(0)    收藏  举报