为避免交换机迁移的多控制器负载动态调整带来的粒度大、调整频率高等问题,SD-WAN可利用流量迁移的多控制器负载动态调整方案,首先,为选择负载较低的目的迁移控制器,提出多控制器之间负载交互的方式;在此基础上,通过对控制器提前下发迁移流表减缓控制器负载提升的速度,并在控制器严重超载时提供默认迁移流表以快速降低超载控制器负载。
1、多控制器负载收集模块
该模块的主要功能是获取邻居控制器的负载,该模块定义负载消息格式,并且定时发送本控制器的负载信息给邻居控制器,控制器将收到的邻居负载消息提取负载信息保存到as表中,通过rest接口提供给系统前端模块调用,该功能由类FlowService中的getLoad函数完成。通过为控制器设计并添加负载传递消息,为流量迁移选择目的控制器提供数据基础。
2、统计信息处理模块
该模块的主要功能是处理统计信息收集模块得到的流量。如果是针对阈值的调整,选择出流表流量统计信息较大者;如果是针对阈值的调整,选择出交换机流量统计信息恐较大者;由类FlowService中的getFlows函数完成。首先,从数据库表flow中获得全部的流量信息,根据阈值类型分别进行计算;将结果保存在statistic表中。统计信息模块处理使得原本需要下发多条流表才能完成的转发任务只需要通过计算得到的结果构造一条迁移流表项或者一条默认迁移流表项就能完成,减轻控制器的负载,节约交换机的内存空间,优化整个网络的数据传输。
针对理论研究成果,结合SDN实验平台,开发和部署基于流量迁移的多控制器负载动态调整原型系统,通过实时监测控制器的负载并在超过阈值的时候进行调整,保证控制器运行在正常状态下。SD-WAN通过将理论成果应用在真实的网络环境中,验证理论成果的有效性。