金 玲 束永安
(安徽大学计算机科学与技术学院 安徽 合肥 230601)
SDN下的动态负载均衡机制
金 玲 束永安
(安徽大学计算机科学与技术学院 安徽 合肥 230601)
软件定义网络SDN用于解决传统网络存在的垂直整合,难于管理等问题的新模式。在SDN的多域分布式控制平台中,每个域的控制器则作为集中式控制器,当有大量的消息请求时,可能会导致控制器过载。为了缓解控制器的过载,提出SDN下动态负载均衡机制。当控制器负载达到阈值,控制器会优先选择负载较大的消息迁移至负载较小的邻域,防止控制器阻塞。通过实验,结果证明动态负载均衡机制具有更低的阻塞率和更高的控制器利用率。
SDN 负载均衡 迁移
SDN是从底层的路由器和交换机将网络的控制逻辑分离,即底层路由器和交换机只负责简单的数据转发,而分离出的控制逻辑则负责控制、管理整理整个网络的新型技术。SDN依赖于运行在控制平台的集中式控制器来管理网络。
早先提出的单一的集中式控制器管理网络如Beacon[1],但是随着网络的扩大,单一的集中式控制器出现扩展性、可靠性等问题[2]。之后提出的SDN多域分布式控制平台解决了在SDN中的扩展性和可靠性问题。所有控制器共享一致的网络视图,并负责管理整个网络。数据平台负责转发数据包。通过ONF(Open Networking Foundation)定义的南向协议,控制器对整个数据平台进行监听、管理。
当某个域的多个交换机收到大量的、频繁的流时,交换机无法处理时,会发送请求到控制器。该域的控制器作为集中式控制器可能被过量使用,而其他域的控制器可能处于闲置状态。
针对以上问题,本文提出SDN下的基于流的动态负载均衡机制。其目标是当一个域的控制器过载时,将会从中选择负载大的消息,迁移至负载小的控制器,充分利用网络中控制器的资源和快速缓解过载控制器,平衡整个网络的负载。
Heller等[3]等首次提出控制器位置问题,考虑从传播延迟的方向放置控制器到网络中。Yao等[4]通过控制器的负载的视图考虑控制器的放置问题。这些研究仅仅考虑多个控制器静态放置。Dixit等[5]提出了名为ElastiCon灵活的控制器架构。在ElastiCon的控制器架构中,多个控制器形成控制器池,可以在不同的网络环境下增长或收缩。并且Dixit等设计了一个交换机迁移协议,交换机能够从一个控制器下迁移至另一个控制器下。然而,没有具体描述如何选择需要迁移的交换机和其目标控制器。
Cheng等[6]提出了动态交换机迁移机制,将数据平台和控制平台看作游戏市场,控制器看成玩家,交换机看成商品,玩家根据自身情况交换商品,达到利益最大化。当控制器负载较大时,就会启动交换机迁移算法,虽然能够缓和控制器负载,但是交换机发生迁移后,网络拓扑,状态等都要发生改变,这也增加了控制器的负载。Yao等[7]设计的控制器的安置和当控制器过载时基于流的边界交换机动态迁移策略,将过载的控制器下处于边界的交换机迁移至邻域,以减少控制器的负载,如果交换机产生频繁的迁移,可能导致网络的不稳定,甚至可能造成网络的崩溃。Kyung等[8]提出的负载分布机制,将过载的控制器中的消息迁移至其他控制器,缓解控制器的负载。然而,没有设计如何选择消息和其目标控制器,可能迁移负载较小的消息,在短时间内可能没有缓解控制器的负载,反而增加迁移成本。Selvid等[9]提出名为COLBAS的控制器负载均衡机制,应用于分层控制平台下,依赖于位于网络拓扑中心的超级控制器灵活地管理每个控制器的处理的流请求。然而超级控制器则会成为集中式控制器,容易阻塞。Saifullah等[10]提出名为EHLBOF的一个新颖的负载平衡策略。能够处理服务器的回复消息并更新服务器的状态。Cimorelli等[11]提出基于Wardrop 平衡原理的分布式负载均衡算法,通过交换机向每个与其连接的控制器发送请求,根据相应时间判断控制器的负载状态,能够动态地将交换机迁移到另一控制器,达到高效平衡OpenFlow控制器的流量、增加网络吞吐量和最小化控制连接延迟。
本文提出的动态负载均衡机制在分布式控制平台下,每个交换机会根据其位置分配到的控制器,将作为其默认的控制器。每个交换机中的流表项可以分配给不同的控制器,并且假定控制器共享全局网络视图。很多因素会造成控制器过载,如PACKET_IN消息的处理,维持本域视图,周期地与其他控制器通信,安装流条目等[4]。而到达交换机的数据包不与其存在的流表项匹配时,交换机会从数据平面发送PACKET_IN消息到控制器,控制器的负载主要是处理PACKET_IN消息的产生的负载[12]。
动态负载均衡机制如图1所示,当一个交换机收到数据包,发现与交换机中存在的流表不匹配,它会发送PACKET_IN消息给默认控制器。控制器会根据自身负载情况决定是处理该消息还是将消息迁移至邻域其他控制器。如果控制器的负载没有达到某一阈值,那么它会通过PACKET_OUT消息或FLOW_MOD消息插入流表项,即默认控制器处理PACKET_IN消息。然而,如果控制器负载达到某一阈值,那么它会启动动态负载均衡机制,控制器会选择负载大的消息,将选定的消息迁移至邻域目标控制器,将PACKET_IN消息交由其他空闲控制器处理。能够快速减少过载控制器的负载,并且能够充分利用空闲控制器的资源。通过这个方法,能够实现网络的动态管理和快速平衡网络负载。
图1 提出的消息迁移过程
我们显示在文中相关的符号,我们用表1将其列出。
表1 符号表示及其意义
我们将PACKET_IN消息的到达率和PACKET_IN消息在控制器的居留时间作为PACKET_IN消息的负载。
ρi=λi/μi
(1)
这里i表示第i个消息的负载,λi表示第i个PACKET_IN消息的到达率,μi表示第i个PACKET_IN消息在控制器的居留时间。
由于控制器的负载主要是PACKET_IN消息的负载,所以我们假定控制器中PACKET_IN消息的负载作为控制器的负载。
(2)
我们考虑SDN网络中包含N个控制器N={c1,c2,…,cn},默认一个控制器管理一个域。在每个控制器的监听模块实时监听控制器的负载,当控制器ci的负载超过其阈值α,会启动动态负载均衡机制。我们的目标是最大化使用网络中控制器的资源,并且保证每个域的控制器具有足够的能力处理本域消息和迁移的消息。
2.2.1 选择候选目标控制器
控制器ci的负载大于阈值时为过载控制器。过载控制器ci会与邻域中的控制器通过东西向协议进行通信,选出多个负载未超过阈值α的候选控制器。
2.2.2 选择需要迁移的消息
我们设过载控制器中的消息为候选迁移消息集合I,为了能够快速缓解控制器的负载,动态负载均衡机制选择候选迁移消息集合I中的负载大的PACKET_IN消息bt。
bt=argi∈Imax{ρi}
(3)
2.2.3 选择目标域
过载控制器管理的域连接多个邻域。目标域不仅需要处理迁移的消息,还要能够处理本域的消息。所以为了保证目标控制器有足够能力处理迁移的消息和本地消息,动态负载均衡机制会选择候选控制器中负载最小的控制器作为目标域bd。
(4)
s.t.ρbt+Lbd≤α
(5)
2.2.4 迁移消息
将选择的消息迁移至目标域。控制器更新状态,监听模块判断控制器的负载是否超过阈值。若控制器的负载仍然大于阈值,继续启动动态负载均衡机制,直至控制器负载小于阈值。动态负载均衡机制过程如图2所示。
图2 动态负载均衡流程图
我们利用马尔科夫链模型,分别评估传统的SDN、负载分布机制和本文提出的动态负载均衡机制下的控制器的阻塞概率和利用率。控制器接收的PACKET_IN消息有:控制器接收本域交换机发送的新的PACKET_IN消息和从其他控制器迁移到该控制器的PACKET_IN消息。而传统SDN的控制器只处理本域的PACKET_IN消息,而不考虑其他域的控制器的负载情况。
我们假定新的PACKET_IN消息和迁移的PACKET_IN消息的到达率服从泊松分布,分别为λN和λM,并且新的消息和迁移的消息在控制器的时间服从指数分布,分别为μN和μM。那么新的消息和迁移消息的负载用ρN(=λN/μN)和ρM(=λM/μM)表示。
图3(a)和(b)分别显示了传统SDN和动态负载均衡机制的状态转换。图中每个状态数字表示控制器中目前服务的消息的数量,C表示控制器能够服务的最大能力。为了得到稳定状态分布,假定对于传统SDN和动态负载均衡机制从状态k到k+1状态转换率分别为ρN和ρM+ρN。所以动态负载均衡机制C负载分布机制稳定的状态概率pk。
(6)
图3 传统SDN和动态均衡机制的状态转换
(7)
(8)
P(N,f)=(1-pf)N
(9)
这里Pc表示新消息阻塞的概率,P(N,f)表示一个新消息没有被默认控制器接收后,在N个控制器中没有能力接收一个迁移消息的概率。Pf表示控制器接受一个迁移消息的概率。
因为我们的目标是充分利用控制器资源,控制器资源的高利用率意味着整个网络的负载是平衡的。所以控制器资源的利用率则是衡量负载的一个重要因素。控制器资源利用率U定义为预期使用控制器的容量与控制器的最大容量的比例。
(10)
我们对提出的动态负载均衡机制进行了评估,我们在64位虚拟机Ubuntu 14.04版本的实验环境下, 使用了Mininet[13]进行仿真,我们设置控制器的最大服务数量C为100,平均服务时间假定1 ms,而迁移的消息提供的平均负载为10。
我们在仿真平台下,对动态负载均衡机制进行验证,如图4所示。在负载分布(a,b),a表示控制器的数量(N),b表示pf的值,即迁移的消息进入控制器可被接收的概率。控制器开始过载时,由于传统SDN没有考虑控制器之间的负载迁移,控制器过载后,所接受的消息被阻塞,所以传统SDN阻塞的概率最大。负载分布机制由于考虑到消息的迁移,所以阻塞的概率较小。然而,负载分布机制没有考虑优先迁移负载较大的消息和选择负载较小的控制器,在消息迁移时,一旦迁移的消息负载较小,控制器阻塞的概率仍然较大。动态负载均衡方案阻塞的概率更小,因为当控制器过载时,会优先选择负载较大的消息,迁移到负载较小的控制器,能快速缓解控制器负载,所以控制器的阻塞概率最小。
图4 消息阻塞的概率
图5为控制器利用率的变化。在负载分布(a),a表示由于控制器过载,从其他控制器到该控制器所迁移的平均负载。因为传统的SDN没有考虑负载的迁移,控制器只考虑本域的负载,所以传统的SDN的控制器的利用率最低。动态均衡负载的控制器利用率最高,因为将负载大的消息迁移至空闲的控制器,所以空闲的控制器的利用率增加,充分利用了整个网络的控制器的资源,平衡网络的负载。
图5 控制器利用率
针对SDN下网络的负载不均衡,控制器资源的利用较小等问题,本文提出了动态负载均衡机制。当控制器过载时,优先选择负载大的消息,迁移至负载小的目标控制器,达到均衡网络负载,快速平衡网络负载。仿真实验结果显示,动态负载均衡机制能够充分利用网络的控制器的资源和有效地防止控制器阻塞。下一步,主要综合考虑研究影响控制器负载的因素和迁移过程中的产生路由选择成本,使得在消息迁移过程中产生的成本最小。
[1] Erickson D.The beacon openflow controller[C]//ACM SIGCOMM Workshop on Hot Topics in Software Defined NETWORKING.ACM,2013:13-18.
[2] Yeganeh S H,Tootoonchian A,Ganjali Y.On scalability of software-defined networking[J].IEEE Communications Magazine,2013,51(2):136-141.
[3] Heller B,Sherwood R,Mckeown N.The controller placement problem[J].Acm Sigcomm Computer Communication Review,2012,42(4):473-478.
[4] Yao G,Bi J,Li Y,et al.On the Capacitated Controller Placement Problem in Software Defined Networks[J].Communications Letters IEEE,2014,18(8):1339-1342.
[5] Dixit A,Hao F,Mukherjee S,et al.Towards an elastic distributed SDN controller[J].Acm Sigcomm Computer Communication Review,2013,43(4):7-12.
[6] Cheng G,Chen H,Hu H,et al.Dynamic switch migration towards a scalable SDN control plane[J].International Journal of Communication Systems,2016,29(9):1482-1499.
[7] Yao L,Hong P,Zhang W,et al.Controller placement and flow based dynamic management problem towards SDN[C]//IEEE International Conference on Communication Workshop.IEEE,2015:363-368.
[8] Kyung Y,Hong K,Nguyen T M,et al.A load distribution scheme over multiple controllers for scalable SDN[C]//Seventh International Conference on Ubiquitous and Future Networks.IEEE,2015:808-810.
[9] Selvid H,Gurkan G,Fatih A.Cooperative Load Balancing for Hierarchical[C]//Proceeding of 2016 IEEE 17 th International Conference on High Perform Switching and Routing:100-105.
[10] Saifullah M A,Mohamed M A M.Open flow-based server load balancing using improved server health reports[C]//International Conference on Advances in Electrical,Electronics,Information,Communication and Bio-Informatics.IEEE,2016:649-651.
[11] Cimorelli F,Priscoli F D,Pietrabissa A,et al.A distributed load balancing algorithm for the control plane in software defined networking[C]//Control and Automation.IEEE,2016:1033-1040.
[12] Tootoonchian A,Gorbunov S,Ganjali Y,et al.On controller performance in software-defined networks[C]//Usenix Conference on Hot Topics in Management of Internet,Cloud,and Enterprise Networks and Services,2012:10.
[13] Lantz B,Heller B,Mckeown N.A network in a laptop:rapid prototyping for software-defined networks[C]//ACM Workshop on Hot Topics in Networks.HOTNETS 2010,Monterey,Ca,Usa-October.DBLP,2010:1-6.
DYNAMICLOADBALANCINGMECHANISMINSDN
Jin Ling Shu Yongan
(CollegeofComputerScienceandTechnology,AnhuiUniversity,Hefei230601,Anhui,China)
SDN, software defined network, is a new model for solving the problems of vertical integration and difficult management in traditional networks. In SDN’s multi domain distributed control platform, the controller of each domain is used as centralized controller. When a large number of message requests, the controller may be overloaded. In order to alleviate the overload of the controller, this paper proposes a dynamic load balancing mechanism in SDN. When the controller load reaches the threshold, the controller preferentially selects the larger load message to migrate to the smaller load to prevent the controller from blocking. Experimental results show that the dynamic load balancing mechanism has a lower blocking rate and higher controller utilization.
SDN Load balancing Migrate
TP393
A
10.3969/j.issn.1000-386x.2017.10.031
2016-12-06。安徽省自然科学基金项目(1408085MF125)。金玲,硕士生,主研领域:SDN负载平衡。束永安,教授。