1.一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,包括以下步骤:
步骤1、获取SDN网络结构并利用无向图描述,建立软件定义网络结构抽象模型,抽象模型G(S,E),网络中的交换机集合用S表示,交换机间连接链路集合用E表示,将控制器故障类型设定为同一控制域内Master控制器与Slave控制器均发生故障的情景;
步骤2、定义交换机-控制器间的连接矩阵,用以描述幸存控制器与故障域内交换机之间的连接关系;
定义交换机-控制器时延,用以描述故障区域内的交换机通过迁移后与目标控制器建立连接后的传播时延;
定义目标控制器负载,用以在进行目标控制的选择时应权衡各个控制器之间的负载状况,以实现控制层故障恢复后各控制器之间的负载均衡;
定义链路故障率,用于描述故障区域内交换机与目标控制器连接链路发生故障的可能性;
步骤3、参数化步骤2定义的交换机-控制器时延、目标控制器负载、链路故障率的指标权重,构建目标控制器选取优化模型;
步骤4、基于贪婪思想算法求解步骤3的目标控制器选取优化模型,求解最后的结果是为故障域内的交换机选取目标控制器;
步骤5、将故障域内具有相同目标控制器的交换机组成交换机列表,由控制器主动发送该交换机列表到目标控制器。
2.根据权利要求1所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤1建立软件定义网络结构抽象模型,将控制器故障类型设定为同一控制域内Master控制器与Slave控制器均发生故障的情景,具体包括:先将SDN网络结构利用无向图G(S,E)进行描述,网络中的交换机集合用S表示,交换机间连接链路集合用E表示,假设整个网络被划分为n个互不相交的控制域G=(D1...Di...Dn),每个控制域内仅部署一台Master控制器和一台Slave控制器,控制器集合用C=(c1,c′1...ci,c′i...cn,c′n),其中ci代表控制域Di内的Master控制器,c′i代表控制域Di内的Slave控制器,控制域Di内Master控制器ci控制的交换机集合Si=(si1...sij...sim),i、j为下标,表示第i个或者第j个控制器或者交换机;sij表示表示控制器ci控制的交换机集合Si中的第j个交换机,sim表示表示控制器ci控制的交换机集合Si中的第m个交换机;集合中交换机元素的数量|Si|=m,假设同一控制域Di内的Master控制器ci与Slave控制器c′i均发生故障,此时网络中正常运行的控制器集合为CΔ=C\{ci,c′i},网络中正常运行的控制器数量为|CΔ|=2n-2,其中n为网络中控制域的数量。
3.根据权利要求2所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤2定义交换机-控制器间的连接矩阵,用以描述幸存控制器与故障域内交换机之间的连接关系,具体包括:定义交换机-控制器连接矩阵 如果 则表示故障域内的交换机
sim与控制器cj之间建立连接,即控制器cj为故障域内的交换机sim的目标控制器,如果则表示故障域内的交换机sim与控制器cj之间并未建立连接关系,
4.根据权利要求3所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤2定义交换机-控制器时延,用以描述故障区域内的交换机通过迁移后与目标控制器建立连接后的传播时延,具体包括:定义交换机-控制器时延Fd:交换机-控制器时延指标用于描述故障区域内的交换机sim通过迁移后与目标控制器cj建立连接后的传播时延,其中,d(sim,cj) 表示故障域内交换机sim与目标控制器cj之间的传播时延:d(sim,cj)通过最短路径算法得到;
5.根据权利要求4所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤2定义目标控制器负载,用以在进行目标控制的选择时应权衡各个控制器之间的负载状况,以实现控制层故障恢复后各控制器之间的负载均衡,具体包括:定义目标控制器负载Fl:考虑到控制器的负载主要是处理交换机发送的Packet-in信息,所以将控制器处理Packet-in信息的数量作为控制器负载进行建模,目标控制器cj的负载如公式所示:其中, 表示sim交换机迁入目标控制器cj之前控制域内的Packet-in消息总量, 表示迁入交换机sim携带的Packet-in消息数量,设目标控制器cj所能处理的最大Packet-in消息数量为U,目标控制器cj的使用率Fλ如公式所示:。
6.根据权利要求5所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤2定义链路故障率,用于描述故障区域内交换机与目标控制器连接链路发生故障的可能性,具体包括:定义链路故障率Fp:链路故障率用于描述故障区域内交换机sim与目标控制器cj连接链路发生故障的可能性,假设Lk表示交换机sim与目标控制器cj连接路径中的第k段链路,该段链路的故障概率为pk,因此交换机sim到目标控制器cj间的链路故障率为:
7.根据权利要求6所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤3参数化各个指标权重,构建目标控制器选取优化模型,具体包括:参数化各个指标权重,构建目标控制器选取优化模型:
F=ω1Fd+ω2Fλ+ω3Fp
0<pk<1
其中ω1,ω2,ω3为权衡交换机-控制器时延、控制器负载和链路故障率三种指标的常数, 为二元约束变量,对交换机迁移矩阵进行约束,保证元素的值非0即1,保证全网范围内待迁交换机有且仅有一个Master控制器,0<pk<1保证链路故障概率取值范围在区间(0,1)之间。
8.根据权利要求7所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤4基于贪婪思想设计目标控制器选取优化模型求解算法,具体包括:首先得到故障区域内待迁交换机sim连接的Slave控制器集合;然后采用最短路径算法计算待迁交换机sim到Slave控制器集合内控制器间的时延值 寻找到时延值最小的Slave控制器ck;假设将交换机sim与控制器ck建立连接,计算交换机sim完成迁移后控制器ck的资源利用率Fλ,判断控制器ck资源利用率是否超过设置的阈值0.9,如果超出阈值将ck从集合Ni中剔除,否则保留ck,将全部不符合要求的Slave控制器从集合Ni中删除,最后产生新的Slave控制器集合 在新的控制器集合 中任意选择一个控制器cj,分别计算相应的三种代价Fd,Fλ和Fp,假如将交换机sim迁移至控制器cj的控制域内,如果此时网络产生maxFd,则将cj从Ni*中剔除,否则将cj留在集合 中;每一次轮询都将单方面代价最高的控制器从控制器集合 中剔除;最后分别计算在控制器集合 中剩余的控制器的目标函数值F,比较各控制器的目标函数值,选择具有minF的控制器作为目标控制器;至此,为故障域内交换机提前选取目标控制器的算法结束。
9.根据权利要求8所述的一种考虑多种交换机迁移指标的目标控制器选取方法,其特征在于,所述步骤5将故障域内具有相同目标控制器的交换机组成交换机列表,由控制器主动发送该交换机列表到目标控制器,具体包括:将故障域内具有相同目标控制器的交换机组成交换机列表,由控制器主动发送该交换机列表到目标控制器,当控制器发生故障时,目标控制器会检查其内部数据库中是否有其需要接管的故障域内交换机,若目标控制器存在需要接管的交换机时,便尝试使用OpenFlow协议同时与所有交换机建立连接。