专利名称:实现Openflow交换机系统中控制器冗余备份的方法及系统的制作方法
技术领域:
本发明涉及以太网领域技术,尤其涉及一种实现Openflow交换机系统中控制器冗余备份的方法及系统。
背景技术:
目前互联网发展迅速,其应用规模的庞大及其地位的重要性,远远超出了设计者们的想象,而现在的互联网主要有以下弊端特定的范围内没有统一的管理、网络转发机制与策略单一、运营商难以最大限度优化自身网络、以及传统交换机用于转发的功能和协议多且杂,很难配置,系统容易出错等问题。为应对上述弊端,人们提出了 Openflow交换机,其将传统交换机上的报文转发和转发策略分离开来,采用专门的一台控制器(controller) 通过网线和交换机连接。这样原来同在一台交换机设备上的报文转发功能(硬件芯片实现)和报文转发策略(各种软件协议)就被分开到了不同的硬件设备上。而一台控制器(controller)还可以控制多台Openflow交换机,从而实现了统一的转发控制端,更有效地控制了网络。目前,在Openflow交换机系统中,无论是控制器本身还是控制器的控制通道(control path),都有可能由于种种原因而导致其不可靠,譬如,控制网络拥塞,网络不可用或控制器死机等问题,此时,如果某个控制器出现了网络断开,而该控制器的功能又不能被其他控制器所替代,那么势必导致整个交换机系统的不能正常运作。
发明内容
本发明的目的在于提供一种实现Openflow交换机系统中控制器冗余备份的方法,提闻交换机系统的稳定性。相应于上述方法,本发明的另一目的在于提供一种实现Openflow交换机系统中控制器冗余备份的系统。为实现上述发明目的,本发明的技术方案如下所述实现Openflow交换机系统中控制器冗余备份的包括如下步骤
51、部署与交换机通信的多个控制器,其中,所述多个控制器可为多个对等设备、或者一个主设备与若干从设备的组合、或者多个对等设备与若干从设备的组合;
52、在所述控制器被部署为一个主设备与若干从设备的组合时,实时监测当前主设备的网络可达性是否正常,若是,维持当前配置;若否,跳转到步骤S3 ;
53、将所述从设备择一设置为当前系统的主设备。作为上述方法的进一步改进,所述步骤S2具体包括周期性向所述主设备发送hello消息,以获悉所述主设备的网络可达性。作为上述方法的进一步改进,所述步骤S3具体包括向所有从设备发送“需要主设备”的请求信息,并等待所述从设备返回相应的“可成为主设备”的响应信息;将最先反馈所述响应信息的从设备设置为当前系统的主设备。作为上述方法的进一步改进,在所述控制器被部署为多个对等设备、或者多个对等设备与若干从设备的组合时,该方法还包括当所述对等设备对交换机进行修改操作时,由交换机向所有控制器发送“正在修改流表”和“目前没有修改流表”的异步消息,其中,“正在修改流表”的消息包括被修改的流表ID及修改流表的控制器ID。作为上述方法的进一步改进,该方法还包括如下步骤
接收网络报文;
计算各报文所对应的报文加权值及各控制器所对应的控制器加权值;
根据所述报文加权值,获取多个报文加权值区间,并根据各控制器加权值,为每一个报文加权值区间对应一个控制器,其中,所述报文加权值区间的数目与控制器的数目相等; 根据当前报文的报文加权值所处于的报文加权值区间,将该报文发送至与该报文加权值区间相对应的控制器。相应地,所述实现Openflow交换机系统中控制器冗余备份的系统包括
控制器部署单元、用于部署与交换机通信的多个控制器,其中,所述多个控制器可为多个对等设备、或者一个主设备与若干从设备的组合、或者多个对等设备与若干从设备的组合;
网络监测单元、在所述控制器被部署为一个主设备与若干从设备的组合时,该单元至少用于实时监测当前主设备的网络可达性是否正常,若是,维持当前配置;若否,则执行主设备重设单元;
主设备重设单元、用于将所述从设备择一设置为当前系统的主设备。作为上述系统的进一步改进,所述网络监测单元具体用于周期性向所述主设备发送hello消息,以获悉所述主设备的网络可达性。作为上述系统的进一步改进,所述主设备重设单元具体用于向所有从设备发送“需要主设备”的请求信息,并等待所述从设备返回相应的“可成为主设备”的响应信息;将最先反馈所述响应信息的从设备设置为当前系统的主设备。作为上述系统的进一步改进,在所述控制器被部署为多个对等设备、或者多个对等设备与若干从设备的组合时,该系统还包括一异步消息发送单元,其用于当所述对等设备对交换机进行修改操作时,由交换机向所有控制器发送“正在修改流表”和“目前没有修改流表”的异步消息,其中,“正在修改流表”的消息包括被修改的流表ID及修改流表的控制器ID。作为上述系统的进一步改进,该系统还包括如下单元
报文接收单元、用于接收网络报文;
权值计算单元、用于计算各报文所对应的报文加权值及各控制器所对应的控制器加权
值;
控制器对应单元、用于根据所述报文加权值,获取多个报文加权值区间,并根据各控制器加权值,为每一个报文加权值区间对应一个控制器,其中,所述报文加权值区间的数目与控制器的数目相等;
报文分发单元、用于根据当前报文的报文加权值所处于的报文加权值区间,将该报文发送至与该报文加权值区间相对应的控制器。
本发明的有益效果是本发明通过实时监测交换机系统中控制器的网络可达性,并且在系统中主设备的网络断开时,择一地将某一从设备设置为主设备,从而实现了系统中时刻存在可正常工作的主设备,进而提高了系统稳定性。
图I是本发明一实施方式中Openflow交换机系统的网络架构示意 图2是本发明另一实施方式中Openflow交换机系统的网络架构示意 图3是本发明具体实施方式
中实现Openflow交换机系统中控制器冗余备份的方法的流程 图4是本发明具体实施方式
中实现Openflow交换机系统中控制器负载平衡的方法的流程图;
图5是本发明具体实施方式
中实现Openflow交换机系统中控制器冗余备份的系统的单元示意 图6是本发明具体实施方式
中实现Openflow交换机系统中控制器负载平衡的系统的单元示意图。
具体实施例方式以下将结合附图所示的具体实施方式
对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。参图I及图2所示,其分别示意地绘示了本发明两种Openflow交换机系统的网络架构,该架构包括多个控制器(controllerl、controller〗、controller3…controllerN),控制器与Openflow交换机之间通过控制网络相连,Openflow交换机另一端通过多业务端口连接多个终设备(终纟而1、终纟而2、终纟而3…终纟而N),上述终纟而设备可包括手机、电脑、PDA(个人数字处理)等。所述终端可通过数据通道与Openflow交换机相互通信,实现报文发送。其中,本发明为每一个控制器配置不同的角色,角色可以为主设备(Master)、从设备(Slave)、以及对等设备(Peer)。不同角色的控制器具有以下功能
主设备、其在系统中只能有一台,该设备具有控制所连接着的交换机的所有Openflow行为的权限,包括添加/删除/修改流,得到端口 /流/流表的统计信息,更改端口配置,发送特定报文等功能;
从设备、该设备只能监听/查看/接收连接的交换机的信息,不能够控制/修改交换机上的配置;
对等设备、与主设备的行为所相同,即具备主设备的所有权限,不同之处在于,一个交换机系统可以存在多台对等设备。呈上所述,同一交换机系统中,所述多个控制器可为多个对等设备、或者一个主设备与若干从设备的组合、或者多个对等设备与若干从设备的组合。其中,控制器角色具有以下互斥特点其一、只能有一台控制器可以设置为主设备,当检测到一台设备要求做为主设备后,其他设备都会被设置为从设备;其二、当检测到交换机上有控制器被设为主设备后,所有起他连接的设备都会被设为从设备;其三、当检测到交换机上有控制器已经被设成主设备后,该设备将被设置成从设备,如果检测到交换机上的其他控制器为从设备,或对等设备的话,该设备依然是对等设备。参图3所示,在本发明具体实施例中,所述的实现Openflow交换机系统中控制器冗余备份的方法,其包括如下步骤
Si、部署与交换机通信 的多个控制器,所述多个控制器可为多个对等设备、或者一个主设备与若干从设备的组合、或者多个对等设备与若干从设备的组合;其中,本实施方式中,可通过手动将控制器其中之一设置为主设备(或者对等设备),而其他的设备则自动被设置为从设备。S2、在所述控制器被部署为一个主设备与若干从设备的组合时,实时监测当前主设备的网络可达性是否正常(网络是否断开),若是,维持当前配置;若否,跳转到步骤S3 ;
具体地,在本发明优选的实施例中,该步骤中“监测当前主设备的网络可达性”的步骤具体为周期性向所述主设备发送hello消息,以获悉所述主设备的网络可达性。S3、将所述从设备择一设置为当前系统的主设备。其中,在原来从设备中的某一个被设置为主设备后,系统中其余所有控制器则自动设置为从设备。具体地,在本发明优选的实施例中,所述步骤S3具体包括
交换机向所有从设备发送“需要主设备”的请求信息(0FP_MASTER_C0NTR0LLER_REQUEST),并等待所述从设备返回相应的“可成为主设备”的响应信息(0FP_MASTER_C0NTRLLER_RESP0ND);交换机将最先反馈所述响应信息(0FP_MASTER_C0NTRLLER_RESP0ND)的从设备设置为当前系统的主设备,从而实现了多主从控制器设备的冗余备份。此外,本发明的方法中,如上介绍,还可以把多台控制器配置成对等设备,以各自操作一部份交换机上的流表,这样根据客户的策略,实现一定程度上的分布式控制或负载平衡。但是多台对等设备做互相冗余备份又一个问题由于多个对等设备可以同时对交换机进行修改操作(如添加流、删除流等),而在目前Openflow交换机架构下,控制器每次读取交换机流表的间隔时间很长(即同步间隔时间很长),所以会带来不同对等设备在进行交换机操作时数据不同步的问题。针对上述缺陷,本发明在所述控制器被部署为多个对等设备、或者多个对等设备与若干从设备的组合时,该方法还包括步骤S4:当所述对等设备对交换机进行修改操作时,由交换机向所有控制器发送“正在修改流表”和“目前没有修改流表”的异步消息,其中,“正在修改流表”的消息包括被修改的流表ID及修改流表的控制器ID,这样可以以极短的时间及时通知所有对等设备,防止对等设备由于同步不及时,而对交换机进行误操作,实现了对等控制器设备冗余备份。目前,由于Openflow交换机系统中的控制通道(control path)和多个控制器(controller)之间的网络连接的不确定性(如网络中断),导致控制器的反应速度慢,且在packet_in报文过多时,易造成系统中的控制器负担过重,进而在一定程度上造成系统不稳定。参图4所示,本发明为解决此技术问题,在上述方法中还融合了一种实现Openflow交换机系统中控制器负载平衡的方法,其具体包括如下步骤
55、接收来自于各终端设备的网络报文;
56、计算各报文所对应的报文加权值及各控制器所对应的控制器加权值;
其中,在本发明具体实施方式
中,在步骤S6中,“计算报文加权值”的步骤具体包括 S61、根据各报文自身的优先级字段进行加权,得到包权值packet_priority (权值范围为(TlOO);其中,报文字段包括基于VLAN报文的报文优先级(VLAN Priority)、基于IP报文的报文优先级(DSCP/ToS)、基于MPLS报文的报文优先级(MPLS Exp Bit)等,对于上述各类型的报文,报文优先级越高,其加权值也就越高。S62、根据Openflow流自身的优先级进行加权,得到流权值flow_priority ;同样地,流权值flow_priority的范围也为(TlOO。S63、根据所述包权值packet_priority及流权值flow_priority,计算得出所述报文加权值overall_packet_priority (权值范围为(TlOO),其中,报文加权值= (2/3)*包权值 +(1/3)* 流权值。值得一提的是,上述 packet_priority 和 overall_packet_priority的计算均可由特定功能的芯片来实现。其中,本发明交换机需要收集各控制器的控制器加权值,该控制器加权值overall_controller_priority (权值范围为O 100)是根据Openflow交换机和控制器之间网络链路的当前状态以及控制器的状态得到的,具体地,上述步骤S6中,“计算控制器加权值”的步骤具体包括
S64、获取控制器与交换机之间的网络链路的速度权值link_priority (权值范围为(TlOO);其中,具体地,系统定时由交换机给各控制器发送Echo Request消息,间隔一段时间后,交换机会接收到控制器回复的Echo Reply报文,此时,交换机可以算出交换机和控制器之间网络链路的速度,链路速度=Echo Request报文长度/ (2 *间隔时间)。S65、根据控制器所连接的交换机数目得到数量权值concurrent_connection_priority (权值范围为O 100);
566、根据控制器当前的服务质量得到质量权值service_quality_prio;rity(权值范围为(Γ100);其中,服务质量包括过去一小时的CPU/内存占用比例、控制器的硬件性能和重启次数等;
567、综合所述速度权值link_priority、数量权值 concurrent_connection_priority、及质量权值service_quality_priority计算得出控制器加权值ovserall_controller_priority,其中,控制器加权值=(2/4)*速度权值+ (1/4)*数量权值+ (1/4)*质量权值。在本发明更优选的实施方式中,Openflow交换机和控制器之间网络链路的加权数据,每隔一段时间(30秒),交换机都要向控制器请求一次;并且,每隔I分钟,交换机需要计算出综合加权值。本发明以设置三个控制器的交换机系统为例,交换机根据各子项的加权值得到一张报文加权值和控制器加权值的对应表格,只需要每分钟随机米样选取12个报文(米样本文数目不一定),根据权值大小排序,可以得到表格(表I)如下
权利要求
1.一种实现Openflow交换机系统中控制器冗余备份的方法,其特征在于,该方法包括 51、部署与交换机通信的多个控制器,其中,所述多个控制器可为多个对等设备、或者一个主设备与若干从设备的组合、或者多个对等设备与若干从设备的组合; 52、在所述控制器被部署为一个主设备与若干从设备的组合时,实时监测当前主设备的网络可达性是否正常,若是,维持当前配置;若否,跳转到步骤S3 ; 53、将所述从设备择一设置为当前系统的主设备。
2.根据权利要求I所述的方法,其特征在于,所述步骤S2具体包括 周期性向所述主设备发送hello消息,以获悉所述主设备的网络可达性。
3.根据权利要求I所述的方法,其特征在于,所述步骤S3具体包括 向所有从设备发送“需要主设备”的请求信息,并等待所述从设备返回相应的“可成为主设备”的响应信息; 将最先反馈所述响应信息的从设备设置为当前系统的主设备。
4.根据权利要求I所述的方法,其特征在于,在所述控制器被部署为多个对等设备、或者多个对等设备与若干从设备的组合时,该方法还包括 当所述对等设备对交换机进行修改操作时,由交换机向所有控制器发送“正在修改流表”和“目前没有修改流表”的异步消息,其中,“正在修改流表”的消息包括被修改的流表ID及修改流表的控制器ID。
5.根据权利要求I至4中任意一项所述的方法,其特征在于,该方法还包括如下步骤 接收网络报文; 计算各报文所对应的报文加权值及各控制器所对应的控制器加权值; 根据所述报文加权值,获取多个报文加权值区间,并根据各控制器加权值,为每一个报文加权值区间对应一个控制器,其中,所述报文加权值区间的数目与控制器的数目相等;根据当前报文的报文加权值所处于的报文加权值区间,将该报文发送至与该报文加权值区间相对应的控制器。
6.一种实现Openflow交换机系统中控制器冗余备份的系统,其特征在于,该系统包括 控制器部署单元、用于部署与交换机通信的多个控制器,其中,所述多个控制器可为多个对等设备、或者一个主设备与若干从设备的组合、或者多个对等设备与若干从设备的组合; 网络监测单元、在所述控制器被部署为一个主设备与若干从设备的组合时,该单元至少用于实时监测当前主设备的网络可达性是否正常,若是,维持当前配置;若否,则执行主设备重设单元; 主设备重设单元、用于将所述从设备择一设置为当前系统的主设备。
7.根据权利要求6所述的系统,其特征在于,所述网络监测单元具体用于周期性向所述主设备发送hello消息,以获悉所述主设备的网络可达性。
8.根据权利要求6所述的系统,其特征在于,所述主设备重设单元具体用于 向所有从设备发送“需要主设备”的请求信息,并等待所述从设备返回相应的“可成为主设备”的响应信息;将最先反馈所述响应信息的从设备设置为当前系统的主设备。
9.根据权利要求6所述的系统,其特征在于,在所述控制器被部署为多个对等设备、或者多个对等设备与若干从设备的组合时,该系统还包括一异步消息发送单元,其用于 当所述对等设备对交换机进行修改操作时,由交换机向所有控制器发送“正在修改流表”和“目前没有修改流表”的异步消息,其中,“正在修改流表”的消息包括被修改的流表ID及修改流表的控制器ID。
10.根据权利要求6至9任意一项所述的系统,其特征在于,该系统还包括如下单元 报文接收单元、用于接收网络报文; 权值计算单元、用于计算各报文所对应的报文加权值及各控制器所对应的控制器加权值; 控制器对应单元、用于根据所述报文加权值,获取多个报文加权值区间,并根据各控制器加权值,为每一个报文加权值区间对应一个控制器,其中,所述报文加权值区间的数目与控制器的数目相等; 报文分发单元、用于根据当前报文的报文加权值所处于的报文加权值区间,将该报文发送至与该报文加权值区间相对应的控制器。
全文摘要
本发明提供一种实现Openflow交换机系统中控制器冗余备份的方法及系统,其方法包括部署与交换机通信的多个控制器,其中,所述多个控制器可为多个对等设备、或者一个主设备与若干从设备的组合、或者多个对等设备与若干从设备的组合;在所述控制器被部署为一个主设备与若干从设备的组合时,实时监测当前主设备的网络可达性是否正常,若是,维持当前配置;若否,将所述从设备择一设置为当前系统的主设备,本发明通过实时监测交换机系统中控制器的网络可达性,并且在系统中主设备的网络断开时,择一地将某一从设备设置为主设备,从而实现了系统中时刻存在可正常工作的主设备,进而提高了系统稳定性。
文档编号H04L12/939GK102882719SQ20121036317
公开日2013年1月16日 申请日期2012年9月26日 优先权日2012年9月26日
发明者赵 怡 申请人:盛科网络(苏州)有限公司