论文部分内容阅读
随着网络规模的越来越大,如数据中心网络的规模,单一集中的控制器成为网络规模扩展的瓶颈。因此,多控制器架构部署应运而生。多节点架构必定有负载分布不均匀问题,多控制器架构也不例外。同时,目前关于多控制器架构部署和控制器间通信尚没有详细方案和统一标准。结合软件定义网络的需求和特点,本文主要针对软件定义网络的多控制器间负载均衡机制进行了研究。本文的主要研究内容包括:(1)提出基于负载通告的多控制器负载均衡机制。本文将该机制细分为四个过程:负载测量、负载通告、均衡决策以及交换机迁移。在负载测量阶段,本文确定了控制器负载度量参数,用于衡量控制器的负载程度并判断其是否过载。在负载通告阶段,本文提出一个通告抑制算法来减少负载通告的频率,从而降低因通告带来的通信负荷和处理负荷。在均衡决策阶段,本文设计了待迁移交换机抉择和目标控制器抉择等策略。最后,为了有效且简化地迁移交换机,本文设计了迁移流程以及迁移时的交互协议。(2)结合软件定义网络的开源项目和集群工具部署多SDN控制器架构。在架构部署中,本文选取Mininet模拟数据层,通过其提供的Python API自定义了数据层的网络拓扑。其次选取Floodlight作为控制器,为其添加Packet-In速率统计模块,获取来自数据层的Packet-In包速率。利用JGroups提供的类和接口,本文编码实现了Client类和Receive类,用于实现控制器间通信,并设计了专用的通信协议格式。此外,本文还设计了基于Hping3的特定命令格式来模拟控制器的负载。基于部署的多控制器架构,本文对Floodlight控制器进行二次开发,实现了提出的负载均衡机制,主要功能包括负载参数测量、通告抑制算法和交换机迁移。(3)设计和实现实验,对本文提出的负载均衡机制加以评估。实验从网络吞吐量和负载均衡完成时间两方面评估了该机制。实验结果表明该机制可实现负载均衡并减少完成时间。