一种分布式架构软件定义网络控制器的热升级方法与流程

文档序号:11261830阅读:259来源:国知局
一种分布式架构软件定义网络控制器的热升级方法与流程

本发明涉及软件技术领域,尤其涉及一种分布式架构软件定义网络控制器的热升级方法。



背景技术:

软件定义网络(softwaredefinednetwork,sdn)是一种新型网络创新架构,是网络虚拟化的一种实现方式。目前还没有面向虚拟化的分布式软件定义网络控制器热升级的解决方案。



技术实现要素:

本发明的目的在于针对上述现有技术中还没有面向虚拟化的分布式软件定义网络控制器热升级的解决方案,提出了一种分布式架构软件定义网络控制器的热升级方法,实现软件定义网络控制器热升级,可靠性高。

一种分布式架构软件定义网络控制器的热升级方法,软件定义网络控制器的分布式架构包括n个计算节点,每个计算节点包括主软件定义网络控制器、虚拟交换机以及本地数据库,其中n为大于或等于2的整数;

所述分布式架构还包括热备软件定义网络控制器;

所述热升级方法包括:

各计算节点中的主软件定义网络控制器检测是否接收到升级信息;

如果是,则所述热备软件定义网络控制器读取各计算节点中的本地数据库,同步所述主软件定义网络控制器的拓扑信息和配置信息;

所述热备软件定义网络控制器创建消息队列并加入消息队列服务;

所述热备软件定义网络控制器接管各计算节点上的虚拟交换机;

各计算节点中的主软件定义网络控制器从所述升级信息中获取升级程序包进行更新,并在更新成功后进行重启;

各计算节点中的主软件定义网络控制器读取本地数据库,加载拓扑信息以及配置信息,创建消息队列并加入消息队列服务;

各计算节点中的主软件定义网络控制器接管虚拟交换机。

进一步地,所述热备软件定义网络控制器的数量为n个,分布于各计算节点中。

进一步地,各计算节点中的主软件定义网络控制器检测接收到升级信息之后,启动所在计算节点中的热备软件定义网络控制器读取本地数据库,同步所述主软件定义网络控制器的拓扑信息和配置信息,创建消息队列加入消息队列服务,并接管虚拟交换机。

进一步地,各计算节点中的主软件定义网络控制器接管虚拟交换机之后,还包括:

关闭所述热备软件定义网络控制器。

进一步地,各计算节点中的主软件定义网络控制器检测接收到升级信息之后,则停止服务;

各计算节点中的热备软件定义网络控制器通过心跳协议检测到所述主软件定义网络控制器停止服务后,读取本地数据库,同步所述主软件定义网络控制器的拓扑信息和配置信息,创建消息队列加入消息队列服务,并接管虚拟交换机。

进一步地,各计算节点中的主软件定义网络控制器接管虚拟交换机之后,所述热备软件定义网络控制器继续通过心跳协议检测所述主软件定义网络控制器的状态。

本发明提供的分布式架构软件定义网络控制器的热升级方法,至少包括如下有益效果;

(1)通过热备软件定义网络控制器接管虚拟交换机实现主软件定义网络控制器的热升级,在升级过程中业务网络零丢包,可靠性高;

(2)采用n个热备软件定义网络控制器分布于各计算节点中,在主软件定义网络控制器升级时启动并接管虚拟交换机,整个升级过程消耗低,热升级时主软件定义网络控制器和热备软件定义网络控制器使用同一份代码,维护成本低,特别适用于超大规模的数据中心云网络;

(3)采用一个热备软件定义网络控制器接管所有的虚拟交换机,主软件定义网络控制器与热备软件定义网络控制器切换速度快,升级完成后关闭热备软件定义网络控制器,释放资源,特别适用于小规模的数据中心云网络;

(4)采用n个热备软件定义网络控制器分布于各计算节点中,各计算节点中的热备软件定义网络控制器通过心跳协议实时监测主软件定义网络控制器状态,使得主软件定义网络控制器与热备软件定义网络控制器切换速度更快,特别适用于小规模的数据中心云网络。

附图说明

图1为本发明提供的分布式架构软件定义网络控制器的热升级方法一种实施例的流程图。

图2为本发明提供的分布式架构软件定义网络控制器的热升级方法第二种实施例中的架构示意图。

图3为本发明提供的分布式架构软件定义网络控制器的热升级方法第二种实施例的流程图。

图4为本发明提供的分布式架构软件定义网络控制器的热升级方法第三种实施例中的架构示意图。

图5为本发明提供的分布式架构软件定义网络控制器的热升级方法第三种实施例的流程图。

图6为本发明提供的分布式架构软件定义网络控制器的热升级方法第四种实施例的流程图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

实施例一

参考图1,本实施例提供一种分布式架构软件定义网络控制器的热升级方法,软件定义网络控制器的分布式架构包括n个计算节点,每个计算节点包括主软件定义网络控制器、虚拟交换机以及本地数据库,其中n为大于或等于2的整数;

所述分布式架构还包括热备软件定义网络控制器;

所述热升级方法包括:

步骤s101,各计算节点中的主软件定义网络控制器检测是否接收到升级信息;

步骤s102,如果是,则所述热备软件定义网络控制器读取各计算节点中的本地数据库,同步所述主软件定义网络控制器的拓扑信息和配置信息;

步骤s103,所述热备软件定义网络控制器创建消息队列并加入消息队列服务;

步骤s104,所述热备软件定义网络控制器接管各计算节点上的虚拟交换机;

步骤s105,各计算节点中的主软件定义网络控制器从所述升级信息中获取升级程序包进行更新,并在更新成功后进行重启;

步骤s106,各计算节点中的主软件定义网络控制器读取本地数据库,加载拓扑信息以及配置信息,创建消息队列并加入消息队列服务;

步骤s107,各计算节点中的主软件定义网络控制器接管虚拟交换机。

本实施例提供的分布式架构软件定义网络控制器的热升级方法,通过热备软件定义网络控制器接管虚拟交换机实现主软件定义网络控制器的热升级,在升级过程中业务网络零丢包,可靠性高。

实施例二

参考图2和图3,本实施例提供一种分布式架构软件定义网络控制器的热升级方法,软件定义网络控制器的分布式架构包括n个计算节点,每个计算节点包括主软件定义网络控制器、虚拟交换机以及本地数据库,其中n为大于或等于2的整数;

分布式架构还包括热备软件定义网络控制器,热备软件定义网络控制器的数量为n个,分布于各计算节点中。

本实施例提供的热升级方法包括:

步骤s201,各计算节点中的主软件定义网络控制器检测是否接收到升级信息;

步骤s202,如果是,则启动所在计算节点中的热备软件定义网络控制器读取本地数据库,同步所述主软件定义网络控制器的拓扑信息和配置信息,创建消息队列加入消息队列服务,并接管虚拟交换机;

步骤s203,各计算节点中的主软件定义网络控制器从所述升级信息中获取升级程序包进行更新,并在更新成功后进行重启;

步骤s204,各计算节点中的主软件定义网络控制器读取本地数据库,加载拓扑信息以及配置信息,创建消息队列并加入消息队列服务;

步骤s205,各计算节点中的主软件定义网络控制器接管虚拟交换机;

步骤s206,关闭所述热备软件定义网络控制器。

具体地,步骤s201中,升级信息包括升级程序包。

步骤s202中,主软件定义网络控制器使用旧版本启动热备软件定义网络控制器读取本地数据库,同步所述主软件定义网络控制器的拓扑信息和配置信息。创建消息队列加入消息队列服务,以接收其他计算节点中的热备软件定义网络控制器的同步信息。热备软件定义网络控制器通过openflow协议的roleresquestmessage消息接管本计算节点上的虚拟交换机,虚拟交换机保留着流表配置信息,实现现有业务网络零丢包。

步骤s203中,如果主软件定义网络控制器更新失败,则主软件定义网络控制器继续使用旧版本接管虚拟交换机。

步骤s204中,当主软件定义网络控制器更新成功后,读取本地数据库,加载拓扑信息以及配置信息实现同步,并创建消息队列并加入消息队列服务,以接收其他主软件定义网络控制器的同步信息。

步骤s205中,各计算节点中的主软件定义网络控制器通过openflow协议的rolerequestmessage消息接管本计算节点上的虚拟交换机,虚拟交换机保留着配置流表配置信息,现有业务网络零丢包。

步骤s206中,完成升级后关闭热备软件定义网络控制器,释放资源,只有在升级过程中才会启动热备软件定义网络控制器,整个热升级过程消耗低。

本实施例提供的分布式架构软件定义网络控制器的热升级方法,不但能够实现在升级过程中业务网络零丢包,并且整个升级过程消耗低,热升级时主软件定义网络控制器和热备软件定义网络控制器使用同一份代码,维护成本低,特别适用于超大规模的数据中心云网络。

实施例三

参考图4和图5,本实施例提供一种分布式架构软件定义网络控制器的热升级方法,软件定义网络控制器的分布式架构包括n个计算节点,每个计算节点包括主软件定义网络控制器、虚拟交换机以及本地数据库,其中n为大于或等于2的整数;

分布式架构还包括热备软件定义网络控制器,热备软件定义网络控制器的数量为1个。

所述升级方法包括:

步骤s301,各计算节点中的主软件定义网络控制器检测是否接收到升级信息;

步骤s302,如果是,则所述热备软件定义网络控制器读取各计算节点中的本地数据库,同步各主软件定义网络控制器的拓扑信息和配置信息;

步骤s303,热备软件定义网络控制器创建消息队列并加入消息队列服务;

步骤s304,所述热备软件定义网络控制器接管各计算节点上的虚拟交换机;

步骤s305,各计算节点中的主软件定义网络控制器从所述升级信息中获取升级程序包进行更新,并在更新成功后进行重启;

步骤s306,各计算节点中的主软件定义网络控制器读取本地数据库,加载拓扑信息以及配置信息,创建消息队列并加入消息队列服务;

步骤s307,各计算节点中的主软件定义网络控制器接管虚拟交换机;

步骤s308,关闭所述热备软件定义网络控制器。

本实施例提供的分布式架构软件定义网络控制器的热升级方法,采用一个热备软件定义网络控制器接管所有的虚拟交换机,实现在升级过程中业务网络零丢包,并且资源占用少,主软件定义网络控制器与热备软件定义网络控制器切换速度快,升级完成后关闭热备软件定义网络控制器,释放资源,特别适用于小规模的数据中心云网络。

实施例四

参考图2和图6,本实施例提供一种分布式架构软件定义网络控制器的热升级方法,软件定义网络控制器的分布式架构包括n个计算节点,每个计算节点包括主软件定义网络控制器、虚拟交换机以及本地数据库,其中n为大于或等于2的整数;

分布式架构还包括热备软件定义网络控制器,热备软件定义网络控制器的数量为n个,分布于各计算节点中。

本实施例提供的热升级方法包括:

步骤s401,各计算节点中的主软件定义网络控制器检测是否接收到升级信息;

步骤s402,如果是,则主软件定义网络控制器停止服务;

步骤s403,各计算节点中的热备软件定义网络控制器通过心跳协议检测到所述主软件定义网络控制器停止服务后,读取本地数据库,同步所述主软件定义网络控制器的拓扑信息和配置信息,创建消息队列加入消息队列服务,并接管虚拟交换机;

步骤s404,各计算节点中的主软件定义网络控制器从所述升级信息中获取升级程序包进行更新,并在更新成功后进行重启;

步骤s405,各计算节点中的主软件定义网络控制器读取本地数据库,加载拓扑信息以及配置信息,创建消息队列并加入消息队列服务;

步骤s406,各计算节点中的主软件定义网络控制器接管虚拟交换机;

步骤s407,热备软件定义网络控制器继续通过心跳协议检测所述主软件定义网络控制器的状态。

本实施例提供的分布式架构软件定义网络控制器的热升级方法,各计算节点中的热备软件定义网络控制器通过心跳协议实时监测主软件定义网络控制器状态,使得主软件定义网络控制器与热备软件定义网络控制器切换速度更快,特别适用于小规模的数据中心云网络。

综上,本发明提供的分布式架构软件定义网络控制器的热升级方法,至少包括如下有益效果:

(1)通过热备软件定义网络控制器接管虚拟交换机实现主软件定义网络控制器的热升级,在升级过程中业务网络零丢包,可靠性高;

(2)采用n个热备软件定义网络控制器分布于各计算节点中,在主软件定义网络控制器升级时启动并接管虚拟交换机,整个升级过程消耗低,热升级时主软件定义网络控制器和热备软件定义网络控制器使用同一份代码,维护成本低,特别适用于超大规模的数据中心云网络;

(3)采用一个热备软件定义网络控制器接管所有的虚拟交换机,主软件定义网络控制器与热备软件定义网络控制器切换速度快,升级完成后关闭热备软件定义网络控制器,释放资源,特别适用于小规模的数据中心云网络;

(4)采用n个热备软件定义网络控制器分布于各计算节点中,各计算节点中的热备软件定义网络控制器通过心跳协议实时监测主软件定义网络控制器状态,使得主软件定义网络控制器与热备软件定义网络控制器切换速度更快,特别适用于小规模的数据中心云网络。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1