一种集群间通信方法及相关装置与流程

文档序号:16308298发布日期:2018-12-19 05:10阅读:112来源:国知局
一种集群间通信方法及相关装置与流程

本发明涉及计算机技术领域,更具体地说,涉及一种集群间通信方法、一种集群间通信系统、一种集群间通信装置以及一种计算机可读存储介质。

背景技术

在sdn集群中,当一个虚拟机节点与其他集群的节点请求建立连接时,作为请求方的节点会在全网广播其要建立连接的节点的信息,网络中每个节点都会接收到这个信息并判断与自己的相关信息是否一致,一致时则说明是请求方所要建立连接的节点,此时该节点会返回自己的mac地址给请求方的节点,以建立连接。

但是,当一个虚拟机节点发起上述建立连接的请求时,整个网络链路将不能被其他节点使用,从而利用上述方法完成sdn集群中节点之间的连接,会引发严重的链路资源占用问题。

目前,提供了两种避免链路资源占用问题的连接建立方法,一是将所有集群中所有节点的信息(包括mac地址)都静态配置到arp抑制控制器中,在节点发起连理连接的请求时,不再在链路上广播请求,只将请求发送至arp抑制控制器,由arp抑制控制器返回请求对应的mac地址,供节点建立连接,由于避免在链路上进行广播,因此可以解决链路资源占用的问题,但是又由于需要对每个arp抑制控制器静态配置出所有集群的所有虚拟机节点的信息,因此配置过程十分繁琐复杂。

因此,如何简便的解决链路资源占用问题,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种集群间通信方法、一种集群间通信系统、一种集群间通信装置以及一种计算机可读存储介质,以解决如何简便的解决链路资源占用问题。

为实现上述目的,本发明实施例提供了如下技术方案:

一种集群间通信方法,包括:

为第一集群的arp抑制控制器配置所述第一集群的所有虚拟机的虚拟机信息;

利用所述第一集群的arp抑制控制器动态学习并保存所有第二集群的arp抑制控制器中保存的虚拟机信息,以使所述第一集群中的第一虚拟机请求与任一所述第二集群中的第二虚拟机建立通信时,利用所述第一集群的arp控制器在所有虚拟机信息中确定并向所述第一虚拟机返回所述第二虚拟机的虚拟机信息。

其中,所述为第一集群的arp抑制控制器配置所述第一集群的所有虚拟机的虚拟机信息,包括:

利用sdn控制器为所述第一集群的arp抑制控制器静态配置所述第一集群的所有虚拟机的虚拟机信息。

其中,所述利用所述第一集群的arp抑制控制器动态学习并保存所有第二集群的arp抑制控制器中保存的虚拟机信息,包括:

在所述第一集群的arp抑制控制器与每个所述第二集群的arp抑制控制器上均运行bgp协议;

利用sdn控制器通过所述bgp协议将所有所述第二集群的arp抑制控制器中保存的虚拟机信息动态学习并保存到所述第一集群的arp抑制控制器。

其中,还包括:

当任一虚拟机的所属集群发生变更时,在该虚拟机变更前所属集群的arp抑制控制器中删除该虚拟机的虚拟机信息;

在该虚拟机变更后所属集群的arp抑制控制器中添加该虚拟机的虚拟机信息;

利用bgp协议更新目标集群的arp抑制控制器中该虚拟机的虚拟机信息,所述目标集群包括所有与该虚拟机变更后所属集群进行通信的集群。

本申请还提供了一种集群间通信系统,包括:

配置模块,用于为第一集群的arp抑制控制器配置所述第一集群的所有虚拟机的虚拟机信息;

动态学习模块,用于利用所述第一集群的arp抑制控制器动态学习并保存所有第二集群的arp抑制控制器中保存的虚拟机信息,以使所述第一集群中的第一虚拟机请求与任一所述第二集群中的第二虚拟机建立通信时,利用所述第一集群的arp控制器在所有虚拟机信息中确定并向所述第一虚拟机返回所述第二虚拟机的虚拟机信息。

其中,所述配置模块,具体用于利用sdn控制器为所述第一集群的arp抑制控制器静态配置所述第一集群的所有虚拟机的虚拟机信息。

其中,所述动态学习模块,包括:

运行单元,用于在所述第一集群的arp抑制控制器与每个所述第二集群的arp抑制控制器上均运行bgp协议;

动态学习单元,用于利用sdn控制器通过所述bgp协议将所有所述第二集群的arp抑制控制器中保存的虚拟机信息动态学习并保存到所述第一集群的arp抑制控制器。

其中,还包括:

删除模块,用于当任一虚拟机的所属集群发生变更时,在该虚拟机变更前所属集群的arp抑制控制器中删除该虚拟机的虚拟机信息;

添加模块,用于在该虚拟机变更后所属集群的arp抑制控制器中添加该虚拟机的虚拟机信息;

更新模块,用于利用bgp协议更新目标集群的arp抑制控制器中该虚拟机的虚拟机信息,所述目标集群包括所有与该虚拟机变更后所属集群进行通信的集群。

本申请还提供了一种信息配置装置,包括:

第一存储器,用于存储计算机程序;

第一处理器,用于执行所述计算机程序时实现如所述集群间通信方法的步骤。

本申请还提供了一种第一计算机可读存储介质,所述第一计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述集群间通信方法的步骤。

通过以上方案可知,本发明实施例提供的一种集群间通信方法,包括:为第一集群的arp抑制控制器配置所述第一集群的所有虚拟机的虚拟机信息;利用所述第一集群的arp抑制控制器动态学习并保存所有第二集群的arp抑制控制器中保存的虚拟机信息,以使所述第一集群中的第一虚拟机请求与任一所述第二集群中的第二虚拟机建立通信时,利用所述第一集群的arp控制器在所有虚拟机信息中确定并向所述第一虚拟机返回所述第二虚拟机的虚拟机信息。

由此可见,本申请提供的一种集群间通信方法,首先为第一集群的arp抑制控制器配置第一集群的所有虚拟机的信息,并通过动态学习的方式,为第一集群的arp抑制控制器配置所有第二集群的所有虚拟机的信息,而不是通过静态配置的方法为每个集群的arp抑制控制器配置所有集群的虚拟机信息。通过动态学习其他集群的虚拟机信息,可以实现自动同步其他集群的虚拟机信息的效果,从而节省了配置的过程。而且同样无需在虚拟节点发起建立连接请求时广播请求信息,因此可以避免链路资源占用的问题。

本申请还提供了一种集群间通信系统、一种集群间通信装置以及一种计算机可读存储介质,同样可以实现上述技术效果。

附图说明

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

图1为本发明实施例公开的一种集群间通信方法流程图;

图2为本发明实施例公开的一种具体的集群间通信方法流程图;

图3为本发明实施例公开的一种集群间通信系统结构示意图;

图4为本发明实施例公开的一种集群间通信装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种集群间通信方法、一种集群间通信系统、一种集群间通信装置以及一种计算机可读存储介质,以解决如何简便的解决链路资源占用问题。

参见图1,本发明实施例提供的一种集群间通信方法,具体包括:

s101,为第一集群的arp抑制控制器配置所述第一集群的所有虚拟机的虚拟机信息。

首先,为第一集群的arp(addressresolutionprotocol,地址解析协议)抑制控制器配置第一集群所包括的所有虚拟机的虚拟机信息,需要说明的是,在本步骤中,只需要配置第一集群本身所包括的虚拟机的虚拟机信息,而无需配置其他集群,也就是第二集群的虚拟机信息。

需要说明的是,在本方案中,每一个集群都可以是第一集群,而当一个集群为第一集群时,剩余的其他集群此时作为第二集群。

每个集群中都对应设置有一个arp抑制控制器,当集群中节点发出请求时,也就会广播请求报文,此时将请求的广播报文转换成单播报文,单播报文被发往arp抑制控制器,由arp抑制控制器从自己保存的所有虚拟机信息中确定当前请求的虚拟机信息,并将该虚拟机信息返回给作为请求方的节点,从而避免请求信息被广播造成链路资源被占用。

在本方案中,为第一集群的arp抑制控制器配置第一集群的虚拟机信息的方法不做具体限定,例如,可以通过静态配置的方式进行。

在一个具体的实施方式中,可以利用sdn控制器为所述第一集群的arp抑制控制器静态配置所述第一集群的所有虚拟机的虚拟机信息。

需要说明的是,sdn(softwaredefinednetwork,软件定义网络)的核心技术通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。sdn控制器是软件定义网络(sdn)中的应用程序,负责流量控制。

在本具体实施方式中,利用sdn控制器为第一集群的arp抑制控制器采用静态配置的方法配置第一集群的所有虚拟机的虚拟机信息。

s102,利用所述第一集群的arp抑制控制器动态学习并保存所有第二集群的arp抑制控制器中保存的虚拟机信息,以使所述第一集群中的第一虚拟机请求与任一所述第二集群中的第二虚拟机建立通信时,利用所述第一集群的arp控制器在所有虚拟机信息中确定并向所述第一虚拟机返回所述第二虚拟机的虚拟机信息。

在本方案中,arp抑制控制器通过动态学习的方式保存所有第二集群的所有虚拟机信息。

需要说明的是,对于每一个集群来说,都预先在集群对应的arp抑制控制器中配置了自己的所有虚拟机的虚拟机信息,在需要保存其他集群的虚拟机信息时,则通过动态学习的方式,学习其他集群的arp抑制控制器中保存的相应集群的所有虚拟机信息。

在一个具体的实施方式中,在所述第一集群的arp抑制控制器与每个所述第二集群的arp抑制控制器上均运行bgp协议;利用sdn控制器通过所述bgp协议将所有所述第二集群的arp抑制控制器中保存的虚拟机信息动态学习并保存到所述第一集群的arp抑制控制器。

在本具体实施方式中,每一个集群的arp抑制控制器上都运行有bgp协议,每一个集群的arp抑制控制器均利用bgp协议同步其他集群的arp抑制控制器上的虚拟机信息。

需要说明的是,bgp协议即mpbgp-evpn(multi-protocolbordergatewayprotocol,多协议边界网关协议),是一种二层vpn技术,控制平面采用mp-bgp通告evpn路由信息,数据平面采用vxlan封装方式转发报文。可以自动在部署有相同vxlan网络的vtep间创建vxlan隧道。实现隧道按需建立,无需人工维护,也不占用多余的隧道资源。也可以自动完成overlay网络层面业务主机的mac地址、主机路由、网段路由的同步,可以减少二层未知单播、arp请求等广播报文在全网的泛洪。

在每个arp抑制控制器上运行bgp协议后,就可以通过sdn控制器,利用该协议将所有第二集群的arp抑制控制器中保存的虚拟机信息动态学习并保存到第一集群的arp抑制控制器。需要说明的是,在任一集群中的任一虚拟机信息发生变化时,也可以利用bgp协议在所有集群的arp抑制控制器上进行同步变化。

在第一集群中的第一虚拟机请求与任一第二集群中的第二虚拟机建立通信时,则第一虚拟机的请求将会被发送到第一集群的arp抑制控制器,此时,第一集群的arp抑制控制器已预先配置有第一集群的虚拟机信息,并预先动态学习并保存有所有第二集群的虚拟机信息,通过在第一集群的arp抑制控制器中确定与请求信息对应的第二虚拟机的信息,然后将第二虚拟机的虚拟机信息返回给第一虚拟机,由第一虚拟机利用第二虚拟机的虚拟机信息与第二虚拟机建立连接。

需要说明的是,根据网络结构的不同,上述虚拟机信息可以包括不同的信息,例如,集群的流量互通是使用标准vxlan(virtualextensiblelan,可扩展虚拟局域网)隧道技术实现,则封装请求信息的报文在被传输时,会通过vtep(vxlantunnelendpoint,vxlan隧道端点)来封装或解封装报文,因此,对于此种网络结构,虚拟机信息中,不但需要包括虚拟机的ip地址,所属物理机的mac地址还需要包括对应的vtep的信息。

由此可见,本申请实施例提供的一种集群间通信方法,首先为第一集群的arp抑制控制器配置第一集群的所有虚拟机的信息,并通过动态学习的方式,为第一集群的arp抑制控制器配置所有第二集群的所有虚拟机的信息,而不是通过静态配置的方法为每个集群的arp抑制控制器配置所有集群的虚拟机信息。通过动态学习其他集群的虚拟机信息,可以实现自动同步其他集群的虚拟机信息的效果,从而节省了配置的过程。而且同样无需在虚拟节点发起建立连接请求时广播请求信息,因此可以避免链路资源占用的问题。

下面对本申请实施例提供的一种具体的集群间通信方法进行介绍,下文描述的一种具体的集群间通信方法与上述实施例可以相互参照。

在所有集群的工作过程中,通常会出现虚拟机在不同集群之间进行迁移的情况,而在现有技术中,如果虚拟机在不同集群之间迁移,则需要先通知arp代理,然后再静态配置相关arp控制器在虚拟机迁移后的更新信息,然而,如果通知arp代理的这个过程中出现问题,就会导致整个链路发生断网,因此在现有技术中,还需要提供复杂的机制来保证通知的可靠性。而本申请实施例提供的一种具体的集群间通信方法,当虚拟机在不同集群之间迁移时,无需进行静态配置,从而无需进行通知arp代理的这个过程,因此也就保证了网络的可靠性。

参见图2,本申请实施例提供的一种具体的集群间通信方法,在上述实施例的基础上,还包括:

s201,当任一虚拟机的所属集群发生变更时,在该虚拟机变更前所属集群的arp抑制控制器中删除该虚拟机的虚拟机信息。

具体的,当任一虚拟机的所属集群发生变更时,也就是当任一虚拟机进行集群间的迁移时,首先在该虚拟机变更前所属集群的arp抑制控制器中删除该虚拟机的虚拟机信息,也就是需要先在该虚拟机迁移前的原集群的arp抑制控制器中将该虚拟机的信息删除。

s202,在该虚拟机变更后所属集群的arp抑制控制器中添加该虚拟机的虚拟机信息。

具体地,在需要进行迁移的虚拟机变更后所属集群的arp抑制控制器中添加该虚拟机的虚拟机信息,也就是在该虚拟机所要迁移到的集群的arp抑制控制器中添加该虚拟机的虚拟机信息。

s203,利用bgp协议更新目标集群的arp抑制控制器中该虚拟机的虚拟机信息,所述目标集群包括所有与该虚拟机变更后所属集群进行通信的集群。

需要说明的是,在本申请实施例中,预先为每个集群的arp抑制控制器部署bgp协议,有关bgp协议的具体内容已在上述实施例做了具体介绍,此处不再赘述。

利用bgp协议更新目标集群的arp抑制控制器中对应该虚拟机的虚拟机信息,也就是说,利用bgp协议将除了该虚拟机变更后所属集群的所有其他集群的arp抑制控制器内的虚拟机信息做同步的更新,使其他集群的arp抑制控制器均更新到该虚拟机当前的信息。

下面对本申请实施例提供的一种集群间通信系统进行介绍,下文描述的一种集群间通信系统与上述任一实施例可以相互参照。

参见图3,本申请实施例提供的一种集群间通信系统具体包括:

配置模块301,用于为第一集群的arp抑制控制器配置所述第一集群的所有虚拟机的虚拟机信息。

在一个具体的实施方式中,所述配置模块301,具体用于利用sdn控制器为所述第一集群的arp抑制控制器静态配置所述第一集群的所有虚拟机的虚拟机信息。

动态学习模块302,用于利用所述第一集群的arp抑制控制器动态学习并保存所有第二集群的arp抑制控制器中保存的虚拟机信息,以使所述第一集群中的第一虚拟机请求与任一所述第二集群中的第二虚拟机建立通信时,利用所述第一集群的arp控制器在所有虚拟机信息中确定并向所述第一虚拟机返回所述第二虚拟机的虚拟机信息。

在另一个具体的实施方式中,所述动态学习模块,包括:运行单元,用于在所述第一集群的arp抑制控制器与每个所述第二集群的arp抑制控制器上均运行bgp协议;动态学习单元,用于利用sdn控制器通过所述bgp协议将所有所述第二集群的arp抑制控制器中保存的虚拟机信息动态学习并保存到所述第一集群的arp抑制控制器。

在一个优选的实施方式中,本申请实施例提供的一种信息配置系统,还包括:

删除模块303,用于当任一虚拟机的所属集群发生变更时,在该虚拟机变更前所属集群的arp抑制控制器中删除该虚拟机的虚拟机信息。

添加模块304,用于在该虚拟机变更后所属集群的arp抑制控制器中添加该虚拟机的虚拟机信息。

更新模块305,用于利用bgp协议更新目标集群的arp抑制控制器中该虚拟机的虚拟机信息,所述目标集群包括所有与该虚拟机变更后所属集群进行通信的集群。

本实施例的集群间通信系统用于实现前述的集群间通信方法,因此集群间通信系统中的具体实施方式可见前文中的集群间通信方法的实施例部分,例如,配置模块301,动态学习模块302,删除模块303,添加模块304,更新模块305,分别用于实现上述集群间通信方法中步骤s101,s102,s201,s202,s203,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

下面对本申请实施例提供的一种集群间通信装置进行介绍,下文描述的一种集群间通信装置与上述任一实施例提供的信息配置方法可以相互参照。

参见图4,本申请实施例提供的一种集群间通信装置包括处理器401和存储器402,其中,所述处理器401执行所述存储器402中保存的计算机程序时实现以下步骤:

为第一集群的arp抑制控制器配置所述第一集群的所有虚拟机的虚拟机信息;利用所述第一集群的arp抑制控制器动态学习并保存所有第二集群的arp抑制控制器中保存的虚拟机信息,以使所述第一集群中的第一虚拟机请求与任一所述第二集群中的第二虚拟机建立通信时,利用所述第一集群的arp控制器在所有虚拟机信息中确定并向所述第一虚拟机返回所述第二虚拟机的虚拟机信息。

在一些具体的实施例中,所述处理器401执行所述存储器402中保存的计算机子程序时,具体可以实现以下步骤:利用sdn控制器为所述第一集群的arp抑制控制器静态配置所述第一集群的所有虚拟机的虚拟机信息。

在一些具体的实施例中,所述处理器401执行所述存储器402中保存的计算机子程序时,具体可以实现以下步骤:在所述第一集群的arp抑制控制器与每个所述第二集群的arp抑制控制器上均运行bgp协议;利用sdn控制器通过所述bgp协议将所有所述第二集群的arp抑制控制器中保存的虚拟机信息动态学习并保存到所述第一集群的arp抑制控制器。

在一些具体的实施例中,所述处理器401执行所述存储器402中保存的计算机子程序时,具体可以实现以下步骤:当任一虚拟机的所属集群发生变更时,在该虚拟机变更前所属集群的arp抑制控制器中删除该虚拟机的虚拟机信息;在该虚拟机变更后所属集群的arp抑制控制器中添加该虚拟机的虚拟机信息;利用bgp协议更新目标集群的arp抑制控制器中该虚拟机的虚拟机信息,所述目标集群包括所有所有与该虚拟机变更后所属集群进行通信的集群。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

下面对本申请实施例提供的一种更加具体的通信方法进行介绍,下文描述的一种具体的通信方法是对上述集群间通信方法的具体示例说明,其操作在实际的应用环境中,与上述任一实施例均可相互参照。

在本申请实施例中,设定有两个集群cluster1和cluster2,三台虚拟机vm1、vm2和vm3分别运行在不同的服务器上,集群cluster1的arp抑制控制器controller1位于vtep-10.1.1.1上,集群cluster2的arp抑制控制器controller2位于vtep-20.1.1.1上有关vtep的具体介绍可以参考上述实施例,此处不再进行赘述。

在对每个集群中arp抑制控制器中的虚拟机信息配置过程具体包括:

每个集群的内部的所有虚拟机的ip地址、mac地址的映射信息和vtep信息作为虚拟机信息通过sdn控制器静态配置下发到对应的集群的arp抑制控制器中,controller1和controller2上分别运行mpbgp-evpn协议,也就是bgp协议,通过该协议controller1动态学习并保存到controller2上的虚拟机信息,同样地,controller2也动态学习并保存controller1上的虚拟机信息,从而达到集群间的虚拟机信息同步。

集群cluster1中vm1请求与集群cluster2中vm3建立通信的具体方法包括:

vm1发送arp请求报文,以获取vm3的ip、mac映射信息;

dvswitch(distributedvirtualswitch,分布式虚拟交换机)接收到上述arp请求报文,vtep-10.1.1.1根据该arp请求报文和vtep信息生成arp请求消息,并将该arp请求消息发送至arp抑制控制器controller1;

controller1中已按照上述配置方法配置了所有集群的所有虚拟机信息,在接收到上述arp请求消息后,在所有虚拟机信息中确定vm3的虚拟机信息,并将vm3的虚拟机信息构造成控制层的arp应答消息,发送给vtep-10.1.1.1;

vtep-10.1.1.1收到上述arp应答消息后将vm3虚拟机信息更新到本地fdb表中,vm3虚拟机信息包括vm3的ip、mac、vtep-20.1.1.1等信息;

vtep-10.1.1.1利用vm3的虚拟机信息构造arp应答报文,模拟vm3发送arp应答报文给vm1,以告知vm3的ip地址对应的mac地址;

vm1利用该mac地址与vm3建立通信。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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