云管理平台与控制器集成方法和系统以及相关模块与流程

文档序号:14072387阅读:224来源:国知局

本发明涉及计算机技术领域,特别涉及一种云管理平台与控制器集成方法和系统以及相关模块。



背景技术:

目前,主流的数据中心云网络融合方案大都通过云管理平台集成sdn(softwaredefinednetwork,软件定义网络)控制器,由云管理平台作为资源编排层负责计算、存储、网络资源的统一管理和调配,sdn控制器则根据云管平台的指令对网络进行集中控制、自动化配置。

主流云管理平台在与sdn控制器进行集成时,主要采用云管平台直接调用控制器的北向restful协议接口的方式进行通信,控制器根据云管理平台发送的数据存储网络相关的配置信息。由于restful通信是无状态的,在出现故障时,可能导致控制器存储的网络配置信息与云管平台存储的网络配置信息不一致的情况,影响网络的可用性。

如图1所示,云管理平台将用户的网络操作产生的网络变更数据a写入租户网络数据库,并通过restful协议向控制器发送网络变更数据a。而当控制器进入故障状态、离线状态等不可用状态时,网络变更数据a无法送达控制器,云管理平台也不会知晓该情况。因此,导致云管理平台对应的租户网络数据库和控制器对应的虚拟/物理网络数据库中的内容不一致,控制器无法根据用户的操作对网络进行配置或者变更。



技术实现要素:

本发明实施例所要解决的一个技术问题是:如何提高云管理平台与控制器集成的可用性。

根据本发明实施例的第一个方面,提供了一种云管理平台与控制器集成方法,包括:消息队列模块接收云管理平台发送的网络变更数据;消息队列模块存储网络变更数据;消息队列模块响应于控制器发送的数据获取请求,向控制器发送网络变更数据,以便控制器根据网络变更数据对网络设备进行配置;如果消息队列模块没有接收到控制器发送的接收反馈,消息队列模块重新向控制器发送网络变更数据。

在一个实施例中,方法还包括:如果消息队列模块接收到控制器的接收反馈,消息队列模块删除已发送的网络变更数据。

在一个实施例中,消息队列模块通过高级消息队列协议接收云管理平台发送的网络变更数据;消息队列模块通过高级消息队列协议向控制器发送网络变更数据。

在一个实施例中,从消息队列模块同步主消息队列模块中的网络变更数据;主消息队列模块接收云管理平台发送的网络变更数据,存储网络变更数据,并响应于控制器发送的数据获取请求,向控制器发送网络变更数据;从消息队列模块响应于切换指令,接收云管理平台发送的网络变更数据,存储网络变更数据,并响应于控制器发送的数据获取请求,向控制器发送网络变更数据。

在一个实施例中,消息队列模块位于消息队列模块集群;负载均衡模块接收云管理平台发送的网络变更数据;负载均衡模块根据网络变更数据、消息队列模块集群中各个消息队列模块的属性、消息队列模块集群中各个消息队列模块的当前状态的至少一项,选择消息队列模块;负载均衡模块将网络变更数据发送给选择的消息队列模块。

根据本发明实施例的第二个方面,提供一种消息队列模块,包括:网络变更数据接收单元,用于接收云管理平台发送的网络变更数据;网络变更数据存储单元,用于存储网络变更数据;网络变更数据发送单元,用于响应于控制器发送的数据获取请求,向控制器发送网络变更数据,以便控制器根据网络变更数据对网络设备进行配置;网络变更数据重发单元,用于当消息队列模块没有接收到控制器发送的接收反馈时,重新向控制器发送网络变更数据。

在一个实施例中,消息队列模块还包括:网络变更数据删除单元,用于当消息队列模块接收到控制器的接收反馈时,删除已发送的网络变更数据。

在一个实施例中,网络变更数据接收单元进一步用于通过高级消息队列协议接收云管理平台发送的网络变更数据;网络变更数据发送单元进一步用于通过高级消息队列协议向控制器发送网络变更数据。

根据本发明实施例的第三个方面,提供一种消息队列系统,包括:主消息队列模块和从消息队列模块,主消息队列模块和从消息队列模块为前述任意一种消息队列模块;从消息队列模块用于同步主消息队列模块中的网络变更数据,并且响应于切换指令,接收云管理平台发送的网络变更数据,存储网络变更数据,并响应于控制器发送的数据获取请求,向控制器发送网络变更数据。

根据本发明实施例的第四个方面,提供一种消息队列系统,包括:若干前述任意一种消息队列模块,和,负载均衡模块,负载均衡模块包括:网络变更数据预接收单元,用于接收云管理平台发送的网络变更数据;消息队列模块选择单元,用于根据网络变更数据、消息队列模块集群中各个消息队列模块的属性、消息队列模块集群中各个消息队列模块的当前状态的至少一项,选择消息队列模块;网络变更数据分配单元,用于将网络变更数据发送给选择的消息队列模块。

根据本发明实施例的第五个方面,提供一种云管理平台与控制器集成系统,包括:消息队列系统,包括前述任意一种消息队列模块、前述任意一种消息队列系统中的至少一个;云管理平台,用于根据用户的网络操作生成网络变更数据,并发送给消息队列系统,和,控制器,用于接收消息队列系统发送的网络变更数据,并向消息队列系统发送接收反馈。

本发明通过采用消息队列模块接收并存储云管理平台发送的网络变更数据,并在控制器确认接收之前不断重发网络变更数据,可以确保控制器能够准确、完整地获取云管理平台接收到的网络变更操作,从而控制器能够准确地对网络进行配置,提高了云管理平台与控制器集成的可用性。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中云管理平台和控制器的集成系统应用示意图。

图2为本发明云管理平台与控制器集成方法的一个实施例的流程图。

图3为本发明云管理平台和控制器的集成系统应用示意图。

图4为本发明云管理平台与控制器集成系统的一个实施例的结构图。

图5为本发明消息队列模块的一个实施例的结构图。

图6为本发明消息队列模块的另一个实施例的结构图。

图7为本发明消息队列系统的一个实施例的结构图。

图8为本发明消息队列系统的另一个实施例的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面参考图2描述本发明一个实施例的云管理平台与控制器集成方法。

图2为本发明云管理平台与控制器集成方法的一个实施例的流程图。如图2所示,该实施例的方法包括:

步骤s202,消息队列模块接收云管理平台发送的网络变更数据。

用户的网络操作是面向云管理平台的,网络操作例如可以为增加、移动网络设备,修改网络配置等等。用户的网络操作会产生相应的网络变更数据。

云管理平台在产生网络变更数据之后,将该数据通过消息队列模块向控制器发送。

其中,云管理平台例如可以为openstack。

步骤s204,消息队列模块存储网络变更数据。

消息队列模块为消息在传输过程中用于保存消息的容器。在确保控制器已经接收到网络变更数据之前,消息队列模块会一直存储网络变更数据,以免数据在传输的过程中发生丢失。

步骤s206,消息队列模块响应于控制器发送的数据获取请求,向控制器发送网络变更数据,以便控制器根据网络变更数据对网络设备进行配置。

控制器可以周期性地向消息队列模块发送数据获取请求,也可以根据其他触发条件向消息队列模块发送数据获取请求。

其中,控制器例如可以为opendaylight控制器。

步骤s208,如果消息队列模块没有接收到控制器发送的接收反馈,消息队列模块重新向控制器发送网络变更数据。

云管理平台与控制器通过消息队列模块,采用可靠的方式进行通信。为了确保数据已送达,消息队列模块在发送数据后,会等待控制器的反馈。例如,可以设置在预设时间内未收到控制器发送的接收反馈时,消息队列模块重新向控制器发送网络变更数据。

在一个实施例中,如果消息队列模块接收到控制器的接收反馈,消息队列模块可以删除已发送的网络变更数据。此外,消息队列模块也可以将已成功发送的网络变更数据存储一段时间,并定期进行删除。

通过采用消息队列模块接收并存储云管理平台发送的网络变更数据,并在控制器确认接收之前不断重发网络变更数据,可以确保控制器能够准确、完整地获取云管理平台接收到的网络变更操作,从而控制器能够准确地对网络进行配置,提高了云管理平台与控制器集成的可用性。

在上述实施例中,消息队列模块可以是基于amqp(advancedmessagequeuingprotocol,高级消息队列协议)实现的。amqp是应用层协议的一个开放标准,是面向消息的中间件设计,并且不受不同开发语言以及中间件的产品类型的限制,灵活性高。

在一个实施例中,消息队列模块可以通过amqp接收云管理平台发送的网络变更数据,并且通过amqp向控制器发送网络变更数据。

如图3所示,云管理平台将用户的网络操作产生的网络变更数据b写入租户网络数据库,并通过基于amqp的消息队列模块向控制器发送网络变更数据b。而当控制器不可用时,消息队列模块发现无法送达网络变更数据b。此时,消息队列模块会继续存储网络变更数据,并重新发送数据,当控制器进入了可用状态并接收到消息队列模块重发的网络变更数据b,控制器会向消息队列模块发送接收反馈,以便消息队列模块不再重发数据。

从而,云管理平台对应的租户网络数据库和控制器对应的虚拟/物理网络数据库中的内容一致,控制器能够根据用户的操作对网络进行准确、完整的网络配置或者网络变更。

通过采用上述方法,提升了数据传输的可靠性,并且,消息队列模块可以快速地响应云管理平台,提升了系统效率。

在云管理平台和控制器之间,可以仅采用一个消息队列模块进行信息的中转。此外,为了进一步提升系统的可靠性,还可以采用由多个消息队列模块组成的消息队列系统作为数据通道,集成云管理平台和控制器。

一种实施方式为,采用主消息队列模块和从消息队列模块共同为系统进行服务。在正常状态下,采用主消息队列模块接收云管理平台发送的网络变更数据,存储网络变更数据,并响应于控制器发送的数据获取请求,向控制器发送网络变更数据。从消息队列模块可以定期同步主消息队列模块中的网络变更数据。

当主消息队列模块不可用时,响应于切换指令,可以将从消息队列模块转换为主消息队列模块,并服务于云管理平台和控制器,即,采用原来的从云管理平台接收云管理平台发送的网络变更数据,存储网络变更数据,并响应于控制器发送的数据获取请求,向控制器发送网络变更数据。

从而,可以进一步地增加数据传输的可靠性。

另一种实施方式为,采用集群的方式部署消息队列模块,即采用消息队列集群为云管理平台和控制器服务,消息队列集群中具有若干消息队列模块和负载均衡模块。

负载均衡模块可以接收云管理平台发送的网络变更数据,并将网络变更数据分配给集群中的消息队列模块进行处理。

其中,负载均衡模块可以根据网络变更数据、消息队列模块集群中各个消息队列模块的属性、消息队列模块集群中各个消息队列模块的当前状态的至少一项,选择消息队列模块。

消息队列模块的属性例如可以为消息队列模块的计算能力、存储空间,消息队列模块的当前状态例如可以为当前是否空闲、待处理的消息条目数量等等。从而,可以更高效地将网络变更数据发送给控制器,提高系统的效率。

下面参考图4描述本发明一个实施例的云管理平台与控制器集成系统。

图4为本发明云管理平台与控制器集成系统的一个实施例的结构图。如图4所示,该实施例的系统包括:云管理平台41、控制器42和消息队列系统43。

其中,云管理平台41用于根据用户的网络操作生成网络变更数据,并发送给消息队列系统43。控制器42用于接收消息队列系统发送的网络变更数据,并向消息队列系统发送接收反馈。

消息队列系统43中包括至少一个消息队列模块50。下面参考图5描述本发明一个实施例的消息队列模块。

图5为本发明消息队列模块的一个实施例的结构图。如图5所示,该实施例的消息队列模块50包括网络变更数据接收单元501,用于接收云管理平台41发送的网络变更数据;网络变更数据存储单元502,用于存储网络变更数据;网络变更数据发送单元503,用于响应于控制器42发送的数据获取请求,向控制器42发送网络变更数据,以便控制器42根据网络变更数据对网络设备进行配置;网络变更数据重发单元504,用于当消息队列模块没有接收到控制器42发送的接收反馈时,重新向控制器42发送网络变更数据。

其中,网络变更数据接收单元501可以进一步用于通过高级消息队列协议接收云管理平台41发送的网络变更数据;网络变更数据发送单元503可以进一步用于通过高级消息队列协议向控制器42发送网络变更数据。

下面参考图6描述本发明另一个实施例的消息队列模块。

图6为本发明消息队列模块的另一个实施例的结构图。如图6所示,该实施例的消息队列模块50还可以包括:网络变更数据删除单元605,用于当消息队列模块50接收到控制器42的接收反馈时,删除已发送的网络变更数据。

此外,当消息队列系统43中具有多个消息队列模块50时,可以采用多种方式实现。

下面参考图7描述本发明一个实施例的消息队列系统。

图7为本发明消息队列系统的一个实施例的结构图。如图7所示,该实施例的消息队列系统43包括主消息队列模块51和从消息队列模块52。主消息队列模块51用于在主消息队列模块51处于可用状态时,接收云管理平台41发送的网络变更数据,存储网络变更数据,并响应于控制器42发送的数据获取请求,向控制器42发送网络变更数据。从消息队列模块用于同步主消息队列模块中的网络变更数据,并且响应于切换指令,接收云管理平台41发送的网络变更数据,存储网络变更数据,并响应于控制器42发送的数据获取请求,向控制器42发送网络变更数据。

主消息队列模块51和从消息队列模块52的具体实现方式可以参考消息队列模块50。

下面参考图8描述本发明另一个实施例的消息队列系统。

图8为本发明消息队列系统的另一个实施例的结构图。如图8所示,该实施例的消息队列系统43包括:若干消息队列模块50和负载均衡模块80。负载均衡模块80包括:网络变更数据预接收单元801,用于接收云管理平台41发送的网络变更数据;消息队列模块选择单元802,用于根据网络变更数据、消息队列系统43中各个消息队列模块的属性、消息队列系统43中各个消息队列模块的当前状态的至少一项,选择消息队列模块;网络变更数据分配单元803,用于将网络变更数据发送给选择的消息队列模块50。

此外,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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