基于集群管理的软件版本升级方法及命令交换机 【技术领域】
本发明涉及通信领域,具体而言,涉及一种基于集群管理的软件版本升级方法及命令交换机。
背景技术
随着以太网技术的发展,以太网交换机的应用越来越广泛,但是由于以太网交换机设备比较多(尤其是低端设备),对设备的管理成为一个难题,因此提出了集群管理的解决方法。上述交换机设备的硬件可能属于不同的硬件类型,因此所需要安装的软件版本也不同。
在上述集群管理的方式下,目前采用的软件版本升级的方法是:将所有可能会用到的软件版本存储在版本服务器,然后通过命令交换机登陆到每台成员机,根据成员机的类型将与之匹配的软件手工从版本服务器上下载到成员机,更新成员机的软件版本。
上述软件版本升级方法存在以下问题:网络管理人员需要了解每台成员机的类型,并且手工下载版本进行软件升级,在被管理的成员机数量庞大的情况下,极大地增加了网络管理人员的工作量,使得软件版本升级的效率低下,无法实现版本的自动化升级功能。
【发明内容】
针对相关技术中软件版本升级的效率低下,无法实现版本的自动化升级功能的问题而提出本发明,为此,本发明的主要目的在于提供一种改进的基于集群管理的软件版本升级方案,以解决上述问题至少之一。
根据本发明的一个方面,提供了一种基于集群管理的软件版本升级方法。
根据本发明的基于集群管理的软件版本升级方法应用于包括命令交换机、版本服务器、一个或多个成员机的系统,该方法包括:命令交换机接收来自于版本服务器的更新的设备类型与软件版本信息的对应关系,其中,对应关系携带有指示各个设备类型及各个成员机是否已经更新的标识;命令交换机根据标识获取一个或多个未升级成员机的信息,并向一个或多个未升级成员机发送版本更新请求,以使一个或多个未升级成员机向版本服务器发送下载升级版本的请求;命令交换机接收来自于版本服务器的待升级的软件版本,并发送至已经向版本服务器发送下载升级版本请求的未升级成员机。
根据本发明的另一方面,提供了一种命令交换机。
根据本发明的命令交换机包括:接收单元,用于接收来自于版本服务器的更新的设备类型与软件版本信息的对应关系,并接收来自于版本服务器的待升级的软件版本,其中,对应关系携带有指示各个设备类型及各个成员机是否已经更新的标识;获取单元,用于根据标识获取一个或多个未升级成员机的信息;发送单元,用于向一个或多个未升级成员机发送版本更新请求,以使一个或多个未升级成员机向版本服务器发送下载升级版本的请求,并向一个或多个未升级成员机发送待升级的软件版本。
通过本发明,由命令交换机根据设备类型选择与之匹配的新版本,实现了软件版本的自动化升级功能,解决了相关技术中软件版本升级效率低下,无法实现版本自动化升级功能的问题,进而可以实现软件版本的自动化升级,提高软件版本升级的效率。
本发明地其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
【附图说明】
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为根据本发明实施例的基于集群管理的软件版本升级方法的流程图;
图2为根据本发明实施例的设备类型与软件版本匹配表;
图3为根据本发明实施例的集群管理协议(Group ManagementProtocol,简称为GMP)报文格式的示意图;
图4为根据本发明优选实施例的基于集群管理的软件版本升级方法的流程图;
图5为根据本发明实施例的基于集群管理的命令交换机的结构框图;
图6为根据本发明优选实施例的基于集群管理的命令交换机的结构框图。
【具体实施方式】
功能概述
考虑到相关技术中软件版本升级的效率低下,无法实现版本的自动化升级功能的问题,本发明实施例提供了一种基于集群管理的软件版本升级方案,根据本发明提供的实施例,首先命令交换机创建设备类型与软件版本信息的对应关系;之后将对应关系发送至版本服务器以共同管理。命令交换机接收来自于版本服务器的更新的设备类型与软件版本信息的对应关系,其中,对应关系携带有指示各个设备类型及各个成员机是否已经更新的标识;命令交换机根据标识获取一个或多个未升级成员机的信息,并向一个或多个未升级成员机发送版本更新请求,以使一个或多个未升级成员机向版本服务器发送下载升级版本的请求;命令交换机接收来自于版本服务器的待升级的软件版本,并发送至已经向版本服务器发送下载升级版本请求的未升级成员机。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
方法实施例
根据本发明实施例,首先提供了一种基于集群管理的软件版本升级方法。
图1为根据本发明实施例的基于集群管理的软件版本升级方法的流程图。如图1所示,根据本发明实施例的基于集群管理的软件版本升级方法包括以下处理(步骤S101-步骤S105):
命令交换机在建立集群关系前,命令交换机创建设备类型与软件版本信息的对应关系;并将对应关系发送至版本服务器。
优选地,命令交换机在建立集群关系前,通过邻居发现协议和拓扑收集协议收集每台设备的硬件与软件版本类型,创建了一张设备类型与软件版本匹配表(相当于对应关系),并发送给版本服务器,由二者共同维护。匹配表采用Hash存储的方式,利于提升版本类型的查询效率。之后,执行步骤S101。
步骤S101:命令交换机接收来自于版本服务器的更新的设备类型与软件版本信息的对应关系,其中,该对应关系携带有指示各个设备类型及各个成员机是否已经更新的标识;
优选地,设备类型与软件版本信息的对应关系可以通过以下方式进行更新:网络管理人员将在版本服务器中待升级的软件版本对应的设备类型和软件版本信息添加在对应关系中。
在具体实施过程中,当网络管理人员在版本服务器中添加了某种设备类型的升级版本后,会将对应的设备类型与升级版本型号表项添进对应关系(此处以匹配表为例)中,并在对应的表项内分别设置类型与设备更新标志(默认为否)。当所有需要更新的表项都添进匹配表后,服务器将匹配表下发给命令交换机。
其中,上述匹配表具体可以参见图2,图2为根据本发明实施例的设备类型与软件版本匹配表。如图2所示,根据本发明实施例的设备类型与软件版本匹配表采用hash存储的方式,该hash匹配表包括:设备类型、类型更新标志、媒体接入控制(Media AccessControl,简称为MAC)地址、设备更新标志、运行版本类型、升级版本类型等参量。例如,图中所示设备类型为A,该类型的类型更新标识为否(NO)的状态,表示目前存在未升级的成员机,该设备类型包含的对应于MAC地址为MAC1的成员机的设备更新标识为否(NO)的状态,表示该成员机为待升级状态。该成员机当前运行版本类型为A,待升级的版本类型为A+。
步骤S103:命令交换机根据标识获取一个或多个未升级成员机的信息,并向一个或多个未升级成员机发送版本更新请求,以使一个或多个未升级成员机向版本服务器发送下载升级版本的请求;
优选地,上述命令交换机根据标识获取一个或多个未升级成员机的信息包括以下处理:
(1)命令交换机以设备类型为关键字查找各个设备类型对应的指示各个设备类型是否已经更新的类型更新标识的状态;
(2)在类型更新标识的状态为否时,查找设备类型包含的各个成员机对应的指示各个成员机是否已经更新的设备更新标识的状态;
(3)命令交换机确定设备更新标识的状态为否的一个或多个成员机处于未升级状态。
优选地,命令交换机将一个或多个未升级成员机对应的媒体接入控制MAC地址、需要升级的软件版本信息封装在集群管理协议GMP报文中发送至一个或多个未升级成员机。
其中,上述GMP报文格式可以参见图3,图3为根据本发明实施例的GMP报文格式的示意图。如图3所示,该GMP报文格式如下:
(1)版本号/角色共占一个字节,集群管理版本号占4比特,角色占4比特,取值为命令交换机、成员机或候选机;
(2)主命令码和从命令码结合起来确定唯一的消息类型,例如主命令码设置的消息类型为“侯选交换机加入集群成为成员交换机”,则从命令码设置的消息类型包括加入请求、鉴权请求、鉴权应答、加入确认、配置信息、加入确认等操作类型。可以将主命令码统一设置为“版本下载”消息类型,则从命令码设置的消息类型包括“版本更新请求”、“版本更新成功”、“重启请求”、“陷阱”等操作类型。
(3)消息体:根据主命令码和从命令码实现对消息体的正确解析。在上述步骤中,命令交换机或成员机接收到上述GMP报文后,根据主命令码和从命令码唯一确定的消息类型解析消息体,从而进行相关操作。
在具体实施过程中,命令交换机接收到更新后的匹配表后,首先查看某种类型设备对应的类型更新标志,若为“NO”,则说明此类型的设备里存在未更新的成员机,冲突链依次向下搜索。若某MAC地址对应的设备更新标志为“YES”,说明该成员机更新版本成功,否则将该成员机的MAC地址、升级版本型号等信息作为消息封装在集群管理协议(Group Management Protocol,简称为GMP)报文中,通过单播的方式将“版本更新请求”报文转发给该成员机。该成员机在接收到GMP报文后,向版本服务器发送下载升级版本的tFTP或FTP请求报文。
步骤S105:命令交换机接收来自于版本服务器的待升级的软件版本,并发送至已经向版本服务器发送下载升级版本请求的未升级成员机。
在具体实施过程中,版本服务器在接收到请求报文后,将通过命令交换机向发送请求报文的成员机发送类型匹配的升级版本。
优选地,在命令交换机将待升级的软件版本发送至已经向版本服务器发送下载升级版本请求的未升级成员机之后,还可以包括以下处理:
(1)在待升级的软件版本下载失败的情况下,命令交换机接收来自于未升级成员机发送的报文,并在预定次数内将报文发送至版本服务器以请求重新下发,其中,报文用于指示下载失败的原因。
例如,若成员机下载待升级的软件版本失败,则通过命令交换机向网管发送一个“陷阱”报文报告失败的原因,在预定次数内请求版本服务器重新下发,直至成员机下载待升级的软件版本成功。例如,可以设置请求重发的次数限制为3次。3次请求都未下载成功,则流程结束。
(2)在待升级的软件版本下载成功的情况下,命令交换机接收来自于未升级成员机发送的版本更新成功消息,其中,版本更新成功消息携带有未升级成员机对应的MAC地址;
优选地,在命令交换机接收来自于未升级成员机发送的版本更新成功消息之后,命令交换机在对应关系中将MAC地址对应的设备更新标识设置为是的状态,并将当前运行的版本类型设置为待升级的版本类型,将升级版本类型包含的字段清空;
优选地,在一种设备类型包含的所有未升级成员机全部升级完成时,命令交换机在对应关系中将该设备类型对应的类型更新标识设置为是的状态;
优选地,在对应关系包含的所有设备类型对应的成员机均完成升级时,命令交换机将对应关系返回至版本服务器。
例如,命令交换机在接收到“版本更新成功”报文后,会将该MAC地址对应的“设备更新标志”置为“YES”,同时将“运行版本类型”更新为“升级版本类型”,“升级版本类型”清空;在收到“重启”请求报文后,命令交换机通过单播、延时的方式向该成员机下发“重启”命令。成员机在接收命令后,将重启设备,并按配置文件中的路径载入升级版本,待设备启动成功后,再与命令交换机建立集群关系。
图4为根据本发明优选实施例的基于集群管理的软件版本升级方法的流程图。如图4所示,根据本发明优选实施例的基于集群管理的软件版本升级方法主要包括以下处理(步骤S401-步骤S419):
步骤S401:命令交换机在建立集群关系前,通过邻居发现协议和拓扑收集协议收集每台设备的硬件与软件版本类型,创建了一张设备类型与软件版本Hash匹配表,并发送给版本服务器,进入步骤S403;
步骤S403:当网络管理人员在版本服务器中添加了某种设备类型的升级版本后,会将对应的设备类型与升级版本型号表项添进匹配表中,并在对应的表项内分别设置类型与设备更新标志(默认为否)。当所有需要更新的表项都添进匹配表后,服务器将匹配表下发给命令交换机,进入步骤S405;
步骤S405:类型相同的设备对应的软件版本亦相同,因此命令交换机在接收到更新后的匹配表后以设备类型作为关键字进行版本类型的查找。对于同种类型的设备由于在集群系统里对应的设备ID和MAC地址不同,“类型更新标志”为“NO”的状态,说明此类型的设备里存在未更新的成员机,冲突链依次向下搜索“设备更新标志”为“NO”的表项,并将搜索到的表项对应的MAC地址、升级版本型号等信息作为消息封装在GMP报文中,作为“版本更新请求”报文转发给该成员机,进入步骤S407;
步骤S407:该成员机在接收到GMP报文后,向版本服务器发送下载升级版本的tFTP或FTP请求报文,进入步骤S409;
步骤S409:版本服务器在接收到请求报文后,将通过命令交换机向该成员机发送类型匹配的升级版本,若成员机下载成功,进入步骤S413,否则进入步骤S411;
步骤S411:通过命令交换机向版本服务器发送一个“陷阱”报文报告失败的原因,请求重新下发,请求重发的次数限制为3次,进入步骤S407;
步骤S413:将升级版本保存的路径写入配置文件,保存自身配置,再向命令交换机发送“版本更新成功”报文和需要“重启”的请求报文,进入步骤S415;
步骤S415:命令交换机在接收到“版本更新成功”报文后,会将该MAC地址对应的“设备更新标志”置为“YES”,同时将“运行版本类型”更新为“升级版本类型”,“升级版本类型”清空;在收到“重启”请求报文后,命令交换机通过单播、延时的方式向该成员机下发“重启”命令。成员机在接收命令后,将重启设备,并按配置文件中的路径载入升级版本,待设备启动成功后,再与命令交换机建立集群关系。若某种类型的所有成员机都完成了版本升级的流程,进入步骤S417,否则进入步骤S405;
步骤S417:命令交换机会将该类型设备对应的“类型更新标志”置为“YES”,然后进入下一类型设备的处理流程,若所有类型设备都处理完成,进入步骤S419,否则进入步骤S403;
步骤S419:当整个匹配表所有设备都完成了一次升级流程后,命令交换机将匹配表反馈给版本服务器,作为网络管理人员的运维参考信息。
通过上述实施例,提供了一种基于集群管理的软件版本升级方法。通过命令交换机根据设备类型选择与之匹配的新版本,可以实现软件版本的自动化升级功能。
装置实施例
根据本发明实施例,还提供了一种命令交换机。
图5为根据本发明实施例的基于集群管理的命令交换机的结构框图。图6为根据本发明优选实施例的基于集群管理的命令交换机的结构框图。如图5所示,根据本发明实施例的基于集群管理的命令交换机包括:接收单元1、获取单元2、发送单元3。以下结合图6进行描述。
其中,接收单元1,用于接收来自于版本服务器的更新的设备类型与软件版本信息的对应关系,并接收来自于版本服务器的待升级的软件版本,其中,对应关系携带有指示各个设备类型及各个成员机是否已经更新的标识;
获取单元2,与接收单元1相连接,用于根据标识获取一个或多个未升级成员机的信息;
优选地,如图6所示,上述获取单元2包括:第一查找模块20,用于以设备类型为关键字查找各个设备类型对应的指示各个设备类型是否已经更新的类型更新标识的状态;第二查找模块22,用于在类型更新标识的状态为否时,查找设备类型包含的各个成员机对应的指示各个成员机是否已经更新的设备更新标识的状态;确定模块24,用于确定设备更新标识的状态为否的一个或多个成员机处于未升级状态。
发送单元3,与获取单元2相连接,用于向一个或多个未升级成员机发送版本更新请求,以使一个或多个未升级成员机向版本服务器发送下载升级版本的请求,并向一个或多个未升级成员机发送待升级的软件版本。
优选地,如图6所示,上述命令交换机还包括:创建单元4,用于创建设备类型与软件版本信息的对应关系;上述发送单元3,还用于将对应关系发送至版本服务器。
优选地,上述发送单元3,通过将一个或多个未升级成员机对应的媒体接入控制MAC地址、需要升级的软件版本信息封装在集群管理协议GMP报文中发送至一个或多个未升级成员机。
优选地,上述接收单元1,还用于在待升级的软件版本下载成功的情况下,接收来自于未升级成员机发送的版本更新成功消息,其中,版本更新成功消息携带有未升级成员机对应的MAC地址;或者,接收单元1,还用于在待升级的软件版本下载失败的情况下,接收来自于未升级成员机发送的报文,并在预定次数内将报文发送至版本服务器以请求重新下发,其中,报文携带有下载失败的原因信息。
优选地,如图6所示,上述命令交换机还可以包括:设置单元5,用于在待升级的软件版本下载成功的情况下,在对应关系中将MAC地址对应的设备更新标识设置为是的状态,并将当前运行的版本类型设置为待升级的版本类型,将升级版本类型包含的字段清空;上述设置单元5,还用于在一种设备类型包含的所有未升级成员机全部升级完成时,在对应关系中将该设备类型对应的类型更新标识设置为是的状态;上述发送单元3,还用于在对应关系包含的所有设备类型对应的成员机均完成升级时,将对应关系返回至版本服务器。
通过上述实施例,提供了一种命令交换机,通过接收单元1、获取单元2、发送单元3的相互结合,可以解决相关技术中软件版本升级效率低下,无法实现版本自动化升级功能的问题,进而可以实现软件版本的自动化升级,提高软件版本升级的效率。
综上所述,通过本发明的上述实施例,提供的基于集群管理的软件版本升级方法及命令交换机,由命令交换机根据设备类型选择与之匹配的新版本,可以解决相关技术中采用手动人工升级的方式效率低下,无法实现版本自动化升级功能的问题,进而可以实现软件版本的自动化升级,提高软件版本升级的效率,提高用户体验。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。