一种堆叠方法及装置与流程

文档序号:17357398发布日期:2019-04-09 21:48阅读:562来源:国知局
一种堆叠方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种堆叠方法及装置。



背景技术:

虚拟化技术的发展驱动着数据中心大二层网络的发展,但随着网络规模的不断扩大,需要管理的网络设备数量也随之增大,网络管理成为数据中心大二层网络管理中的一个绕不开的难点。大量虚拟机统一接入在一个二层网络中,无法像传统设备一样方便的形成菊花链式的堆叠,实现星型堆叠可以使这些虚拟机虚拟为一个设备,简化管理,同时自动支持各种备份、分担。

当虚拟机需要加入星型堆叠系统运行时,需要在虚拟机上配置一个虚拟槽位号来标识并管理该虚拟机,分配一个IRF(Intelligent Resilient Framework,智能弹性框架)域用于标识属于哪个IRF堆叠系统。然后配置堆叠口、堆叠物理口等操作。待基本操作完毕之后,新加入的设备(虚拟机)会收到来自于堆叠主设备的心跳报文,而后重启加入。重启过程中堆叠主设备会判断新加入设备的版本是否与其一致,若一致则新设备成功加入;否则,加入的设备会不断的重启,增加SDN(Software Defined Network,软件定义网络)网络控制层面的负荷,同时会导致流量的长时间中断。

针对上述问题,目前的解决方案为在虚拟机加入堆叠前通过人工检查该虚拟机的软件版本与堆叠系统中已有成员设备的软件版本是否一致,堆叠效率较低。



技术实现要素:

本发明提供一种堆叠方法及装置,以解决现有技术中在虚拟机加入堆叠前通过人工检查该虚拟机的软件版本与堆叠系统中已有成员设备的软件版本是否一致的方案堆叠效率低的问题。

根据本发明实施例的第一方面,提供一种堆叠方法,包括:

软件定义网络SDN控制器获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与所述第一软件版本信息对应的第一桥MAC;

当所述SDN控制器检测到目标虚拟机需要加入堆叠时,所述SDN控制器获取所述目标虚拟机的第二软件版本信息,并比较所述第二软件版本信息与所述第一软件版本信息;

若所述第一软件版本信息中存在与所述第二软件版本信息一致的第三软件版本信息,则所述SDN控制器将与所述第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给所述目标虚拟机。

根据本发明实施例的第二方面,提供一种堆叠装置,包括:

获取单元,用于获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与所述第一软件版本信息对应的第一桥MAC;

所述获取单元,还用于当所述堆叠装置检测到目标虚拟机需要加入堆叠时,获取所述目标虚拟机的第二软件版本信息;

比较单元,用于比较所述第二软件版本信息与所述第一软件版本信息;

发送单元,用于若所述第一软件版本信息中存在与所述第二软件版本信息一致的第三软件版本信息,将与所述第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给所述目标虚拟机。

应用本发明实施例,SDN控制器通过获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与第一软件版本信息对应的第一桥MAC,当SDN控制器检测到目标虚拟机需要加入堆叠时,SDN控制器获取该目标虚拟机的第二软件版本信息,并比较第二软件版本信息与第一软件版本信息,若第一软件版本信息中存在与第二软件版本信息一致的第三软件版本信息,则SDN控制器将与第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给目标虚拟机,实现了通过SDN控制器自动判断目标虚拟机是否能够加入堆叠,提高了堆叠效率。

附图说明

图1是本发明实施例提供的一种堆叠方法的流程示意图;

图2是本发明实施例提供的另一种堆叠方法的流程示意图;

图3是本发明实施例提供的一种堆叠装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。

需要说明的是,在本申请的实施例中,

堆叠域:某一堆叠中的虚拟机(成员设备)具有相同的堆叠域(domain),不同堆叠域的虚拟机无法加入同一堆叠。

桥MAC:为虚拟机(成员设备)加入堆叠后,实现对外通信的桥MAC地址,即每一个堆叠对外呈现唯一的桥MAC。

集群成员编号:为某一堆叠域中虚拟机(成员设备)的编号,用于堆叠环境中区分其他虚拟机。

参见图1,为本发明实施例提供的一种堆叠方法的流程示意图,可以包括以下步骤:

步骤101、SDN控制器获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与该第一软件版本信息对应的第一桥MAC。

本发明实施例中,为了提高虚拟机是否能够加入堆叠系统的判断效率,可以使能SDN控制器对自身管理的已堆叠的虚拟机的信息收集功能,该信息可以包括但不限于软件版本信息(本文中称为第一软件版本信息),以及与该第一软件版本信息对应的桥MAC(Media Access Control,媒体访问控制)(本文中称为第一桥MAC)等。

作为一种可选的实施方式,步骤101中,SDN控制器获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与第一软件版本信息对应的第一桥MAC,可以包括以下步骤:

11)、SDN控制器与自身管理的虚拟机建立LLDP(Link Layer Discovery Protocol,链路层发现协议)连接;

12)、SDN控制器接收自身管理的已堆叠的虚拟机发送的LLDP报文,该LLDP报文携带有发送该LLDP报文的虚拟机的第一软件版本信息以及与该第一软件版本信息对应的第一桥MAC。

在该实施方式中,使能SDN控制器和虚拟机的LLDP链路发现功能,当虚拟机加入SDN网络时,SDN控制器与该虚拟机建立LLDP连接,进而,对于已堆叠的虚拟机,虚拟机可以通过该LLDP连接向SDN控制器发送携带有第一软件版本信息以及与第一软件版本信息对应的第一桥MAC的LLDP报文,以使SDN控制器根据该LLDP报文获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与第一软件版本信息对应的第一桥MAC,实现对自身管理的虚拟机的相关信息的收集。

本发明实施例中,SDN控制器获取到自身管理的已堆叠的虚拟机的第一软件版本信息以及与第一软件版本信息对应的第一桥MAC等信息之后,可以在本地维护相关表项,以保存获取到的信息。

本发明实施例中,虚拟机可以包括但不限于VSR(Virtual Service Router,虚拟路由器)、VFW(Virtual Fire Wall,虚拟防火墙)、或VLB(Virtual Load Balance,虚拟负载均衡设备)等。

步骤102、当SDN控制器检测到目标虚拟机需要加入堆叠时,SDN控制器获取该目标虚拟机的第二软件版本信息,并比较该第二软件版本信息与第一软件版本信息。

本发明实施例中,目标虚拟机并不特指某一固定的虚拟机,而是可以指代SDN控制器管理的任一需要加入堆叠系统的虚拟机,本发明实施例后续不再复述。

本发明实施例中,当目标虚拟机需要加入堆叠系统时,目标虚拟机向SDN控制器发送心跳报文;SDN控制器接收到该心跳报文后,确定该目标虚拟机需要加入堆叠系统,从而,SDN可以获取该目标虚拟机的软件版本信息(本文中称为第二软件版本信息)。

其中,SDN控制器获取该目标虚拟机的软件版本信息也可以通过LLDP连接实现,即目标虚拟机在加入SDN控制器管理的网络后,可以与SDN控制器建立LLDP连接,进而,SDN控制器可以通过该LLDP连接获取目标虚拟机的相关信息(如软件版本信息等)。

本发明实施例中,SDN控制器获取到目标软件版本信息之后,可以根据步骤101中获取到的第一软件版本信息,比较该第二软件版本信息与第一软件版本信息。

步骤103、若第一软件版本信息中存在与第二软件版本信息一致的第三软件版本信息,则SDN控制器将与第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给目标虚拟机。

本发明实施例中,SDN控制器比较第二软件版本信息与第一软件版本信息之后,若第二软件版本信息中存在与第一软件版本信息一致的软件版本信息(本文中称为第三软件版本信息),SDN控制器认为该目标虚拟机能够加入第三软件版本信息对应的桥MAC(本文中称为第三桥MAC)所属的堆叠系统,此时,SDN控制器向目标虚拟机发送加入通知消息,该加入通知消息中携带有与第三软件版本信息对应的第三桥MAC,该加入通知消息用于通知目标虚拟机加入该桥MAC所属的堆叠系统。目标虚拟机接收到的加入通知消息之后,获取该加入通知消息中携带的第三桥MAC,并根据该第三桥MAC加入该第三桥MAC所属的堆叠系统。

需要注意的是,在本发明实施例中,软件版本信息一致包括对应的软件版本号相同,或者软件版本相互兼容等。

本发明实施例中,考虑到当虚拟机的软件版本信息与堆叠系统已有成员设备的软件版本信息不一致时,虚拟机请求加入堆叠系统会导致该虚拟机不断重启,因而,若第一软件版本信息中不存在与第二软件版本信息一致的软件版本信息,即第一软件版本信息中不存在上述第三软件版本信息,则SDN控制器可以向目标虚拟机发送用于通知目标虚拟机无法加入堆叠系统的通知消息;目标虚拟机接收到该通知消息之后,确定自身无法加入堆叠系统,有效地避免了由于虚拟机请求加入成员设备的软件版本信息与自身软件版本信息不一致的堆叠系统导致的不断重启的问题。

可见,在图1所示的方法流程中,SDN控制器通过收集自身管理的已加入堆叠系统的软件版本信息以及与该软件版本信息对应的桥MAC,并当SDN控制器检测到目标虚拟机需要加入堆叠系统时,SDN控制器可以获取该目标虚拟机的软件版本信息,并比较该软件版本信息与已堆叠的虚拟机的软件版本信息,并当已堆叠的虚拟机的软件版本信息中存在与目标虚拟机的软件版本信息一致的软件版本信息时,将该软件版本信息对应的桥MAC携带在加入通知消息中发送给目标虚拟机,实现了通过SDN控制器自动判断目标虚拟机是否能够加入堆叠,提高了堆叠效率。

请参见图2,为本发明实施例提供的另一种堆叠方法的流程示意图,可以包括以下步骤:

步骤201、SDN控制器获取自身管理的已堆叠的虚拟机的第一软件版本信息、与第一软件版本信息对应的第一桥MAC,以及与第一软件版本信息对应的第一域标识。

本发明实施例中,考虑到在SDN控制器管理多个堆叠系统的场景中,当虚拟机需要加入堆叠时,虚拟机的域标识需要与加入的堆叠的域标识相同,因而,SDN控制器除了可以获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与该第一软件版本信息对应的第一桥MAC之外,还可以获取该已堆叠的虚拟机的与第一软件版本信息对应的域标识(本文中称为第一域标识)。

步骤202、当SDN控制器检测到目标虚拟机需要加入堆叠时,SDN控制器获取目标虚拟机的第二域标识,并比较第二域标识与第一域标识。若第二域标识中存在与第二域标识相同的第三域标识,则转至步骤203;否则,转至步骤205。

本发明实施例中,当SDN控制器检测到目标虚拟机需要加入堆叠时,SDN控制器先获取目标虚拟机的域标识(本文中称为第二域标识),并比较该第二域标识与第一域标识,以确定第一域标识中是否存在与第二域标识相同的域标识(本文中称为第三域标识);若存在,则进一步比较软件版本信息;否则,认为目标虚拟机无法加入堆叠。

需要注意的是,在本发明实施例中,步骤202与步骤203之间并不存在必然的时序关系,即在本发明实施例中,SDN控制器检测到目标虚拟机需要加入堆叠后,可以先执行比较第二域标识与第一域标识的步骤,后执行比较第二软件版本信息与第一软件版本信息的步骤;也可以先执行比较第二软件版本信息与第一软件版本信息的步骤,后执行比较第二域标识与第一域标识的步骤,其具体实现本发明实施例不再赘述。

步骤203、SDN控制器获取目标虚拟机的第二软件版本信息,并比较第三域标识对应的软件版本信息与第二软件版本信息。若第三域标识对应的软件版本信息与第二软件版本信息一致,转至步骤204;否则,转至步骤205。

本发明实施例中,SDN控制器确定第一域标识中存在与第二域标识相同的第三域标识之后,SDN控制器进一步比较第三域标识对应的软件版本信息与第二软件版本信息,以确定第三域标识对应的软件版本信息与第二软件版本信息是否一致;若一致(即第三域标识对应的软件版本信息即为上文中所述的第三软件版本信息),则SDN控制器认为目标虚拟机可以加入该第三软件版本信息对应的第三桥MAC所属的堆叠;否则,SDN控制器认为目标虚拟机不可以加入堆叠。

进一步地,在一种实现方式中,SDN控制器还可以获取自身管理的已堆叠的虚拟机的第一域标识对应的集群成员编号(本文中称为第一集群成员编号);当目标虚拟机需要加入堆叠,且SDN控制器确定第一域标识中存在与第二域标识相同的第三域标识,则SDN控制器可以先进一步获取目标虚拟机的集群成员编号(本文中称为第二集群成员编号),并比较第三域标识对应的集群成员编号与第二集群成员编号;若第三域标识对应的集群成员编号与第二集群成员编号不同,则进一步比较软件版本信息;否则,认为目标虚拟机无法加入堆叠。

需要注意的是,在本发明实施例中,SDN控制器确定第一域标识中存在与第二域标识相同的第三域标识后,可以先执行比较第二集群成员编号与第三域标识对应的第三集群成员编号的步骤,再执行比较第二软件版本信息与第三域标识对应的软件版本信息的步骤;也可以先执行比较第二软件版本信息与第三域标识对应的软件版本信息的步骤,再执行比较第二集群成员编号与第三域标识对应的第三集群成员编号的步骤,即二者之间并不存在必然的时序关系,其具体实现本发明实施例不再赘述。

步骤204、SDN控制器将与第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给目标虚拟机。

本发明实施例中,SDN控制器确定第一域标识中存在与第二域标识相同的第三域标识,且第三域标识对应的软件版本信息与第二软件版本信息一致(即第三域标识对应的软件版本信息为第三软件版本信息),则SDN控制器认为目标虚拟机可以加入第三软件版本信息对应的第三桥MAC所属的堆叠,进而,SDN控制器可以将与第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给目标虚拟机,以使目标虚拟机加入对应的堆叠。

步骤205、SDN控制器向目标虚拟机发送用于通知目标虚拟机无法加入堆叠系统的通知消息。

本发明实施例中,当第一域标识中不存在与第二域标识相同的域标识,或第三域标识对应的软件版本信息与第二软件版本信息不一致时,SDN控制器可以向目标虚拟机发送用于通知目标虚拟机无法加入堆叠系统的通知消息,以通知目标虚拟机停止加入堆叠。

为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体的应用场景对本发明实施例提供的技术方案进行描述。

在该实施例中,虚拟机加入堆叠可以包括如下步骤:

步骤1、预配置:包括配置管理IP(Internet Protocol,互联网协议)地址,用于接入控制器管理网络(即SDN网络),实现openflow(一种开放性流表控制协议)连接;配置用户账号和用户密码,用于建立http(Hypertext Transfer Protocol,超文本传输协议)/https(Secure Hypertext Transfer Protocol,安全超文本传输协议)连接,实现SDN控制器向自身管理的设备下发或获取自身管理的设备的相关配置;

步骤2、SDN控制器添加NFV(Network Function Virtualization,网络功能虚拟化)资源:SDN控制器通过后台API(Application Programming Interface,应用程序编程接口)或添加AFC(Auto Flow Control,自动流控制)来创建NFV资源,NFV资源和NFV网元设备(虚拟机)一一对应,资源添加过程中,虚拟机与SDN控制器之间通过交互openflow hello报文建立ofp(光纤通道)连接;

步骤3、发送LLDP报文:虚拟机激活后,假设虚拟机与控制器均已使能LLDP功能,则虚拟机与SDN控制器之间可以通过交互lldp hello报文建立LLDP连接,从而实现虚拟机和SDN控制器之间的LLDP报文的交互。

其中,在该实施例中,已堆叠的虚拟机发送给SDN控制器的LLDP报文的LLDPPDU(LLDP Protocol Data Unit,LLDP协议数据单元)的Optional(可选)TLV(Type,Length,Value,类型、长度、值)可以携带桥MAC、软件版本信息及其他堆叠配置信息。

步骤4、SDN控制器接收自身管理的虚拟机发送的LLDP报文,并从该LLDP报文的LLDPPDU中的Optional TLV中获取虚拟机的域标识、桥MAC、软件版本信息等信息,并添加在本地维护的NFV资源节点列表中。

步骤5、虚拟机加入堆叠:目标虚拟机需要加入堆叠系统时,向SDN控制器发送心跳报文,SDN控制器接收到该心跳报文后,获取目标虚拟机的第二域标识、第二软件版本信息、第二集群成员编号;然后,SDN控制器查询自身维护的NFV资源列表,比较第二域标识与已堆叠的虚拟机的域标识,若已堆叠的虚拟机的域标识中存在与第二域标识相同的第三域标识,则比较第三域标识对应的集群成员编号;否则,向目标虚拟机发送无法加入堆叠系统的通知消息,通知目标虚拟机无法加入堆叠系统。

若第三域标识对应的集群成员编号与第二集群成员编号不同,则比较第三域标识对应的软件版本信息与第二软件版本信息;否则,向目标虚拟机发送无法加入堆叠系统的通知消息,通知目标虚拟机无法加入堆叠系统。

若第三域标识对应的软件版本信息与第二软件版本信息一致,则将该软件版本信息对应的桥MAC携带在加入通知消息中发送给目标虚拟机,以使目标虚拟机加入对应的堆叠;否则,向目标虚拟机发送无法加入堆叠系统的通知消息,通知目标虚拟机无法加入堆叠系统。

通过以上描述可以看出,在本发明实施例提供的技术方案中,SDN控制器通过获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与第一软件版本信息对应的第一桥MAC,当SDN控制器检测到目标虚拟机需要加入堆叠时,SDN控制器获取该目标虚拟机的第二软件版本信息,并比较第二软件版本信息与第一软件版本信息,若第一软件版本信息中存在与第二软件版本信息一致的第三软件版本信息,则SDN控制器将与第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给目标虚拟机,实现了通过SDN控制器自动判断目标虚拟机是否能够加入堆叠,提高了堆叠效率。

请参见图3,为本发明实施例提供的一种堆叠装置的结构示意图,其中,所述堆叠装置可以应用于上述方法实施例中的SDN控制器,如图3所示,该堆叠装置可以包括

获取单元310,用于获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与所述第一软件版本信息对应的第一桥MAC;

检测单元320,用于检测虚拟机是否需要加入堆叠;

所述获取单元310,还用于当所述检测单元320检测到目标虚拟机需要加入堆叠时,获取所述目标虚拟机的第二软件版本信息;

比较单元330,用于比较所述第二软件版本信息与所述第一软件版本信息;

发送单元340,用于根据所述比较单元330的比较结果得出所述第一软件版本信息中存在与所述第二软件版本信息一致的第三软件版本信息时,将与所述第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给所述目标虚拟机。

在可选实施例中,所述发送单元340,还可以用于根据所述比较单元330的比较结果得出所述第一软件版本信息中不存在所述第三软件版本信息时,向所述目标虚拟机发送用于通知所述目标虚拟机无法加入堆叠系统的通知消息。

在可选实施例中,所述获取单元310,还可以用于获取与所述第一软件版本信息对应的第一域标识;

所述获取单元310,还可以用于当所述检测单元320检测到目标虚拟机需要加入堆叠时,获取所述目标虚拟机的第二域标识;

相应地,所述比较单元330,还可以用于比较所述第二域标识与所述第一域标识、比较所述第二软件版本信息与所述第一软件版本信息;

所述发送单元340,还可以用于根据所述比较单元的比较结果得出所述第一域标识中存在与所述第二域标识相同的第三域标识,且所述第一软件版本信息中存在所述第三软件版本信息时,则将与所述第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给所述目标虚拟机。

在可选实施例中,所述比较单元320,可以具体用于当所述第一域标识中存在与所述第二域标识相同的第三域标识时,若所述第三域标识对应的软件版本信息与所述第二软件版本信息一致,则确定所述第一软件版本信息中存在与所述第二软件版本信息一致的第三软件版本信息。

在可选实施例中,所述获取单元310,还可以用于获取与所述第一域标识对应的第一集群成员编号;

所述获取单元310,还可以用于若所述第一域标识中存在与所述第二域标识相同的第三域标识,则获取所述目标虚拟机的第二集群成员编号;

相应地,所述比较单元330,还可以用于比较所述第二集群成员编号与第三域标识对应的第三集群成员编号;

所述发送单元340,还可以用于根据所述比较单元330的比较结果得出所述第二集群成员编号与所述第三集群成员编号不同,且所述第一软件版本信息中存在所述第三软件版本信息时,将与所述第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给所述目标虚拟机。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

由上述实施例可见,SDN控制器通过获取自身管理的已堆叠的虚拟机的第一软件版本信息以及与第一软件版本信息对应的第一桥MAC,当SDN控制器检测到目标虚拟机需要加入堆叠时,SDN控制器获取该目标虚拟机的第二软件版本信息,并比较第二软件版本信息与第一软件版本信息,若第一软件版本信息中存在与第二软件版本信息一致的第三软件版本信息,则SDN控制器将与第三软件版本信息对应的第三桥MAC携带在加入通知消息中发送给目标虚拟机,实现了通过SDN控制器自动判断目标虚拟机是否能够加入堆叠,提高了堆叠效率。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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