集群的版本升级方法、装置、存储介质及设备转让专利

申请号 : CN202210541582.9

文献号 : CN114640586B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈实赵增义张益军王金明

申请人 : 飞狐信息技术(天津)有限公司

摘要 :

本申请公开了集群的版本升级方法、装置、存储介质及设备,在接收到用户输入的目标版本号后,触发集群的节点分组的从节点利用安装信息,生成新配置文件;触发从节点结束运行实例,加载新配置文件运行新实例得到新实例的运行状态;将新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个候选从节点中选取一个候选从节点,作为目标节点;调用预设的失效转移命令,将目标节点替代节点分组的主节点,以使目标节点变更为节点分组的新主节点,且被替代的主节点变更为节点分组的新从节点;在新从节点执行预设步骤后,提示用户集群版本升级成功,与现有技术相比,能在实现集群的版本升级的情况下,确保升级过程依旧可以对外提供服务。

权利要求 :

1.一种集群的版本升级方法,其特征在于,包括:

接收用户发送的版本升级命令;其中,所述版本升级命令包括当前版本号;所述当前版本号为所述集群当前所使用集群版本的版本号;

在版本库包含满足预设条件的集群版本的情况下,从配置信息库中获取所述集群版本的配置信息,并通过所述预设界面向所述用户展示所述配置信息;其中,所述预设条件为:所述集群版本的版本号,排在所述当前版本号之后,且所述版本号与所述当前版本号均属于同一级别;

对于每个节点分组,触发所述节点分组的从节点对自身的配置文件进行拷贝,得到备份配置文件,并在将备份配置文件存储至本地后,删除配置文件;所述配置文件包括配置项和配置值;

在接收到用户输入的目标版本号后,触发节点分组的从节点利用安装信息中的默认配置文件、备份配置文件中的配置项以及配置值,生成新配置文件;其中,所述安装信息由加载所述目标版本号所属集群版本的安装包得到;所述从节点用于同步实例的运行数据;

触发所述节点分组的从节点结束运行实例,并同时加载所述新配置文件运行新实例,得到所述新实例的运行状态,以保持所述节点分组中有一从节点可用于切换为主节点,以便于对切换后的所述从节点进行升级;其中,所述实例由访问所述节点分组得到;所述主节点用于对外提供redis服务;

将所述新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个所述候选从节点中,选取一个所述候选从节点,作为目标节点;

调用预设的失效转移命令,将所述目标节点替代所述节点分组的主节点,以使所述目标节点变更为所述节点分组的新主节点,且被替代的所述主节点变更为所述节点分组的新从节点;

提示所述用户集群版本升级成功;

所述触发所述节点分组的从节点结束运行实例,并同时启动运行所述新实例,得到所述新实例的运行状态之后,还包括:将所述新实例的运行状态为失败的从节点,标识为无效从节点,并控制所述无效从节点停止运行所述新实例,并重新启动运行所述实例。

2.根据权利要求1所述的方法,其特征在于,所述提示所述用户集群版本升级成功,包括:触发所述新从节点执行预设步骤后,提示所述用户集群版本升级成功;其中,所述预设步骤包括:利用所述安装信息,生成所述新配置文件,结束运行所述实例,并同时加载所述新配置文件运行所述新实例,得到所述新实例的运行状态。

3.根据权利要求2所述的方法,其特征在于,还包括:

重新访问所述节点分组,得到所述节点分组的新实例信息,并通过预设界面向所述用户展示所述新实例信息。

4.根据权利要求1所述的方法,其特征在于,还包括:

在所述版本库不包含满足所述预设条件的集群版本的情况下,提示所述用户集群版本升级失败。

5.一种集群的版本升级装置,其特征在于,包括:

生成单元,用于对于每个节点分组,触发所述节点分组的从节点对自身的配置文件进行拷贝,得到备份配置文件,并在将备份配置文件存储至本地后,删除配置文件;所述配置文件包括配置项和配置值;在接收到用户输入的目标版本号后,触发节点分组的从节点利用安装信息中的默认配置文件、备份配置文件中的配置项以及配置值,生成新配置文件;其中,所述安装信息由加载所述目标版本号所属集群版本的安装包得到;所述从节点用于同步实例的运行数据;

启动单元,用于触发所述节点分组的从节点结束运行实例,并同时加载所述新配置文件运行新实例,得到所述新实例的运行状态,以保持所述节点分组中有一从节点可用于切换为主节点,以便于对切换后的所述从节点进行升级;其中,所述实例由访问所述节点分组得到;所述主节点用于对外提供redis服务;

选取单元,用于将所述新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个所述候选从节点中,选取一个所述候选从节点,作为目标节点;

替代单元,用于调用预设的失效转移命令,将所述目标节点替代所述节点分组的主节点,以使所述目标节点变更为所述节点分组的新主节点,且被替代的所述主节点变更为所述节点分组的新从节点;

提示单元,用于提示所述用户集群版本升级成功;

所述启动单元,还用于将所述新实例的运行状态为失败的从节点,标识为无效从节点,并控制所述无效从节点停止运行所述新实例,并重新启动运行所述实例;

所述生成单元,还用于接收用户发送的版本升级命令;其中,版本升级命令包括当前版本号;当前版本号为集群当前所使用集群版本的版本号;在版本库包含满足预设条件的集群版本的情况下,从配置信息库中获取集群版本的配置信息,并通过预设界面向用户展示配置信息;其中,预设条件为:集群版本的版本号,排在当前版本号之后,且版本号与当前版本号均属于同一级别。

6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1‑4任一所述的集群的版本升级方法。

7.一种集群的版本升级设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;

所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1‑4任一所述的集群的版本升级方法。

说明书 :

集群的版本升级方法、装置、存储介质及设备

技术领域

[0001] 本申请涉及版本升级术领域,尤其涉及集群的版本升级方法、装置、存储介质及设备。

背景技术

[0002] 随着远程字典服务(redis)的广泛运用,企业对redis集群(本申请将redis集群简称为集群)的运维安全关注越来越多,鉴于redis为开源服务,会不断地维护和更新,在更新版本时会加入新的特性来提升能力,但集群难免还会存在一些bug和漏洞,此时就需要进行版本升级来修复bug和漏洞。
[0003] 目前采用人工处理的方案来进行版本升级,通过新建新版本集群,同步数据(可采用第三方同步工具)后,替换掉旧版本集群。然而,利用现有的版本升级方式,升级过程无法对外提供服务。
[0004] 为此,如何在实现集群的版本升级的情况下,确保升级过程依旧可以对外提供服务,成为本领域亟需解决的问题。

发明内容

[0005] 本申请提供了一种集群的版本升级方法、装置、存储介质及设备,用于在实现集群的版本升级的情况下,确保升级过程依旧可以对外提供服务。
[0006] 为了实现上述目的,本申请提供了以下技术方案:
[0007] 一种集群的版本升级方法,包括:
[0008] 在接收到用户输入的目标版本号后,触发所述集群的节点分组的从节点利用安装信息,生成新配置文件;其中,所述安装信息由加载所述目标版本号所属集群版本的安装包得到;
[0009] 触发所述节点分组的从节点结束运行实例,并同时加载所述新配置文件运行新实例,得到所述新实例的运行状态;其中,所述实例由访问所述节点分组得到;
[0010] 将所述新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个所述候选从节点中,选取一个所述候选从节点,作为目标节点;
[0011] 调用预设的失效转移命令,将所述目标节点替代所述节点分组的主节点,以使所述目标节点变更为所述节点分组的新主节点,且被替代的所述主节点变更为所述节点分组的新从节点;
[0012] 提示所述用户集群版本升级成功。
[0013] 可选的,所述提示所述用户集群版本升级成功,包括:
[0014] 触发所述新从节点执行预设步骤后,提示所述用户集群版本升级成功;其中,所述预设步骤包括:利用所述安装信息,生成所述新配置文件;结束运行所述实例,并同时加载所述新配置文件运行所述新实例,得到所述新实例的运行状态。
[0015] 可选的,还包括:
[0016] 重新访问所述节点分组,得到所述节点分组的新实例信息,并通过预设界面向所述用户展示所述新实例信息。
[0017] 可选的,所述在接收到用户输入的目标版本号之前,还包括:
[0018] 接收所述用户发送的版本升级命令;其中,所述版本升级命令包括当前版本号;所述当前版本号为所述集群当前所使用集群版本的版本号;
[0019] 在版本库包含满足预设条件的集群版本的情况下,从配置信息库中获取所述集群版本的配置信息,并通过所述预设界面向所述用户展示所述配置信息;其中,所述预设条件为:所述集群版本的版本号,排在所述当前版本号之后,且所述版本号与所述当前版本号均属于同一级别。
[0020] 可选的,还包括:
[0021] 在所述版本库不包含满足所述预设条件的集群版本的情况下,提示所述用户集群版本升级失败。
[0022] 可选的,所述触发所述集群的节点分组的从节点利用安装信息,生成新配置文件之前,还包括:
[0023] 触发所述节点分组的从节点对自身的配置文件进行拷贝,得到备份配置文件,并在将所述备份配置文件存储至本地后,删除所述配置文件。
[0024] 可选的,所述触发所述节点分组的从节点结束运行实例,并同时启动运行所述新实例,得到所述新实例的运行状态之后,还包括:
[0025] 将所述新实例的运行状态为失败的从节点,标识为无效从节点,并控制所述无效从节点停止运行所述新实例,并重新启动运行所述实例。
[0026] 一种集群的版本升级装置,包括:
[0027] 生成单元,用于在接收到用户输入的目标版本号后,触发所述集群的节点分组的从节点利用安装信息,生成新配置文件;其中,所述安装信息由加载所述目标版本号所属集群版本的安装包得到;
[0028] 启动单元,用于触发所述节点分组的从节点结束运行实例,并同时加载所述新配置文件运行新实例,得到所述新实例的运行状态;其中,所述实例由访问所述节点分组得到;
[0029] 选取单元,用于将所述新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个所述候选从节点中,选取一个所述候选从节点,作为目标节点;
[0030] 替代单元,用于调用预设的失效转移命令,将所述目标节点替代所述节点分组的主节点,以使所述目标节点变更为所述节点分组的新主节点,且被替代的所述主节点变更为所述节点分组的新从节点;
[0031] 提示单元,用于提示所述用户集群版本升级成功。
[0032] 一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的集群的版本升级方法。
[0033] 一种集群的版本升级设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
[0034] 所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的集群的版本升级方法。
[0035] 本申请提供的技术方案,在接收到用户输入的目标版本号后,触发集群的节点分组的从节点利用安装信息,生成新配置文件,并加载新配置文件得到新实例;触发从节点结束运行实例,并运行新实例,得到新实例的运行状态;将新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个候选从节点中,选取一个候选从节点,作为目标节点;调用预设的失效转移命令,将目标节点替代节点分组的主节点,以使目标节点变更为节点分组的新主节点,且被替代的主节点变更为节点分组的新从节点;提示用户集群版本升级成功,与现有技术相比,能够在实现集群的版本升级的情况下,确保升级过程依旧可以对外提供服务。

附图说明

[0036] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037] 图1为本申请实施例提供的一种集群的版本升级方法的流程图;
[0038] 图2为本申请实施例提供的另一种集群的版本升级方法的流程图;
[0039] 图3为本申请实施例提供的一种集群的版本升级装置的架构示意图。

具体实施方式

[0040] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0041] 如图1所示,为本申请实施例提供一种集群的版本升级方法的流程图,可应用于服务器中,包括如下步骤:
[0042] S101:在接收到用户发送的版本升级命令后,判断版本库预存的各个集群版本中,是否包含满足预设条件的集群版本。
[0043] 若版本库预存的各个集群版本中,包含满足预设条件的集群版本,则执行S102,否则执行S103。
[0044] 其中,预设条件为:集群版本的版本号,排在版本升级命令所示的当前版本号之后,且版本号与当前版本号均属于同一级别(在实际应用中,版本之间若存在较大差别,则级别是不同,例如6.0版本和5.0版本之间功能存在较大差别,则6.0版本和5.0版本不属于同一级别);相对应的,6.0.1版本和6.0.2版本均属于对6.0版本的功能维护,两者之间不存在较大的功能差别,为此,6.0.1版本和6.0.2版本可认为属于同一级别;6.2.版本也属于对6.0版本的功能维护,两者之间也不会存在较大的功能差异,因此,6.2.4版本和6.0.1版本也可认为属于同一级别。集群版本信息包括集群的版本配置,以及安装包的下载地址。
[0045] 需要说明的是,当前版本号可以为集群当前所使用的集群版本的版本号。
[0046] 具体的,假设版本库预存的各个集群版本为:5.0.9版本、6.0.4版本、6.0.8版本、6.2.2版本、6.2.6版本以及6.3.0版本,当前版本号为6.2.4版本,在接收到用户发送的版本升级命令后,判断版本库预存的各个集群版本中,是否包含满足预设条件(集群版本的版本号,排在版本升级命令所示的当前版本号之后,且版本号与当前版本号均属于同一级别)的集群版本,显然,满足预设条件的集群版本为:6.2.6版本以及6.3.0版本,为此,继续执行S102。
[0047] S102:从配置信息库中获取满足预设条件的集群版本的配置信息,并通过预设界面向用户展示配置信息。
[0048] 其中,配置信息库包括各个集群版本的配置信息,此外,用户可根据实际情况更改预设界面上所展示的配置信息。所谓的配置信息包括多个配置项,各个配置项包括但不限于为:是否守护进程、TCP连接完成队列、日志级别、redis工作日志。
[0049] 具体的,假设满足预设条件的集群版本为:6.2.6版本以及6.3.0版本,从配置信息库中获取6.2.6版本、6.3.0版本的配置信息,通过预设界面向用户展示6.2.6版本、6.3.0版本配置信息(例如是否守护进程、TCP连接完成队列、日志级别、redis工作日志等)。
[0050] S103:提示用户集群版本升级失败。
[0051] 其中,由于版本库预存的各个集群版本中,未包含满足预设条件的集群版本,为此,可确定版本升级命令所示的当前版本号所属集群版本,没有可升级的集群版本进行版本升级。
[0052] S104:在接收到用户输入的目标版本号后,访问集群中的各个节点分组,得到各个节点分组的实例信息。
[0053] 其中,实例信息包括实例的IP地址、实例所属集群版本的版本号、主节点的端口号、从节点的端口号。所谓的实例,即提供redis服务的进程,属于本领域技术人员所熟悉的公知常识,在实际应用中,集群会提供多个实例,每个实例均由对应的节点分组负责。
[0054] 集群为了保证高可用,会预先将各个节点划分成多个节点分组,每个节点分组通常包括一个主节点以及多个从节点。一般来讲,主节点用于提供对外提供redis服务,从节点用于同步实例的运行数据,保证和主节点的数据一致。当主节点宕机或挂掉时,集群中存在机制会将从节点选举为主节点,从而确保服务正常运行。也就是说,对集群进行版本升级,实质就是对集群的各个节点分组进行版本升级。
[0055] 需要说明的是,用户可通过输入的目标版本号的方式,确定需要进行版本升级的集群版本,在本申请实施例中,需要进行版本升级的集群版本,可理解为目标版本号所属集群版本。
[0056] 具体的,在接收到用户输入的目标版本号(例如6.2.6版本)后,访问集群中的各个节点分组,得到各个节点分组的实例信息为:分组A(10.10.XXX.1:6480master version:6.2.4、10.10.XXX.2:7482slave version:6.2.4),分组B(10.10.XXX.2:6481master version:6.2.4、10.10.XXX.3:7480slave version:6.2.4),分组C(10.10.XXX.3:
6482master version:6.2.4、10.10.XXX.1:7481slave version:6.2.4)。
[0057] 需要说明的是,上述具体实现过程仅用于举例说明,每个实例信息所示地址的XXX的取值可由技术人员根据实际情况进行设置,一般来讲,XXX的取值范围通常为0 255。~
[0058] S105:判断每个节点分组是否都包含符合预设要求的从节点。
[0059] 若每个节点分组都包含符合预设要求的从节点,则执行S106,否则执行S107。
[0060] 其中,预设要求为:从节点处于正常工作状态。
[0061] S106:判断本地是否未存在目标版本号所属集群版本的安装包。
[0062] 若本地未存在目标版本号所属集群版本的安装包,则执行S108,否则执行S109。
[0063] S107:提示用户集群版本升级失败。
[0064] 其中,由于个别节点分组没有包含符合预设要求的从节点,即确定个别节点分组中的所有从节点均无法正常工作,为此,个别节点无法进行后续步骤所示的主从节点切换,个别节点分组无法进行版本升级,故提示用户集群版本升级失败。
[0065] S108:下载目标版本号所属集群版本的安装包。
[0066] S109:触发节点分组中各个节点加载安装包,得到目标版本号所属集群版本的安装信息。
[0067] 执行S109之后,继续执行S110。
[0068] 其中,安装信息包括默认配置文件。
[0069] 需要说明的是,可以基于目标版本号所属集群版本的集群版本信息中所示的安装包下载地址,下载目标版本号所属集群版本的安装包。
[0070] S110:对于每个节点分组,触发节点分组的从节点对自身的配置文件进行拷贝,得到备份配置文件,并在将备份配置文件存储至本地(本申请特指服务器)后,删除配置文件。
[0071] 其中,配置文件包括配置项、配置值。
[0072] 需要说明的是,触发节点分组的从节点对自身的配置文件进行拷贝,得到备份配置文件,并将备份配置文件存储至本地,能够确保节点分组所承担的redis服务的数据不会丢失,从而提高集群版本升级的可靠性。
[0073] S111:触发节点分组的从节点利用安装信息中的默认配置文件、备份配置文件中的配置项以及配置值,生成新配置文件。
[0074] S112:触发节点分组的从节点结束运行实例,并同时加载新配置文件运行新实例,得到新实例的运行状态。
[0075] 其中,在对集群进行版本升级时,为了确保节点分组中所有的实例均完成升级,在控制节点分组的从节点结束运行实例的同时,启动运行新实例,以确保节点分组中随时有一个从节点可用于切换为主节点(提供服务),从而对切换后的从节点(指示原主节点)进行升级。
[0076] S113:判断新实例的运行状态是否为成功。
[0077] 若新实例的运行状态为成功,则执行S114,否则执行S116。
[0078] S114:将从节点标识为候选从节点,并从一个或多个候选从节点中,选取一个候选从节点,作为目标节点。
[0079] S115:调用预设的失效转移(failover)命令,将目标节点替代节点分组的主节点,以使目标节点变更为节点分组的新主节点,且被替代的主节点变更为节点分组的新从节点。
[0080] 在执行S115之后,继续执行S117。
[0081] 其中,S115所示步骤可以简单理解为:利用failover命令,实现主节点与从节点之间的切换,为本领域技术人员所熟悉的技术手段,这里不再赘述。
[0082] 具体的,以上述提及的节点分组(即分组A、分组B以及分组C)为例,假设分组A的目标节点为10.10.XXX.2:7482slave version:6.2.6、分组B的目标节点为10.10.XXX.3:7480slave version:6.2.6、分组C的目标节点为10.10.XXX.1:7481slave version:6.2.6,此外,分组A的主节点为10.10.XXX.1:6480master version:6.2.4、分组B的主节点为
10.10.XXX.2:6481master version:6.2.4、分组C的主节点为10.10.XXX.3:6482master version:6.2.4,对于每个节点分组,调用目标节点执行预设的失效转移(failover)命令,将目标节点替代节点分组中的主节点,以使目标节点变更为节点分组的新主节点,且被替代的主节点变更为节点分组的新从节点,分组A变更后的新主节点为10.10.XXX.2:
7482master version:6.2.6、分组B变更后的新主节点为10.10.XXX.3:7480master version:6.2.6、分组C变更后的新主节点为10.10.XXX.1:7481master version:6.2.6,分组A变更后的新从节点为10.10.XXX.1:6480slave version:6.2.4、分组B变更后的新从节点为10.10.XXX.2:6481slave version:6.2.4、分组C变更后的新从节点为10.10.XXX.3:
6482slave version:6.2.4。
[0083] S116:将从节点标识为无效从节点,并控制无效从节点停止运行新实例,并重新启动运行实例。
[0084] 其中,由于备份配置文件已经保存在本地,为此,无效从节点可以直接从本地获取备份配置文件,并加载备份配置文件运行实例,以结束对集群的版本升级过程,并提示用户集群版本升级失败。
[0085] S117:触发新从节点执行预设步骤后,提示用户集群版本升级成功。
[0086] 在执行S117之后,继续执行S118。
[0087] 其中,预设步骤包括:利用安装信息,生成新配置文件,并加载新配置文件,得到新实例;结束运行实例,并同时启动运行新实例,得到新实例的运行状态。
[0088] S118:重新访问各个节点分组,得到各个节点分组的新实例信息,并通过预设界面向用户展示各个新实例信息。
[0089] 其中,新实例信息包括新实例的IP地址、新实例所属集群版本的版本号(即目标版本号)、新主节点的端口号、新从节点的端口号。
[0090] 具体的,以上述提及的节点分组(即分组A、分组B以及分组C)为例,重新访问各个节点分组,得到各个节点分组的新实例信息包括:
[0091] 分组A的新实例信息为10.10.XXX.2:7482master version:6.2.6、10.10.XXX.1:6480slave version:6.2.6;
[0092] 分组B的新实例信息为10.10.XXX.3:7480master version:6.2.6、10.10.XXX.2:6481slave version:6.2.6;
[0093] 分组C的新实例信息为10.10.XXX.1:7481master version:6.2.6、10.10.XXX.3:6482slave version:6.2.6。
[0094] 需要说明的是,上述具体实现过程仅仅用于举例说明。
[0095] 综上所述,通过触发节点分组的从节点运行新实例,并从成功运行的一个或多个从节点中,选取一个从节点,作为目标节点,利用目标节点替代节点分组的主节点,相较于现有技术,能够在实现集群的版本升级的情况下,确保升级过程依旧可以对外提供服务。
[0096] 如图2所示,为本申请实施例提供另一种集群的版本升级方法的流程图,可应用于服务器中,包括如下步骤:
[0097] S201:在接收到用户输入的目标版本号后,触发集群的节点分组的从节点利用安装信息,生成新配置文件。
[0098] 其中,安装信息由加载目标版本号所属集群版本的安装包得到。
[0099] S202:触发节点分组的从节点结束运行实例,并同时加载新配置文件运行新实例,得到新实例的运行状态。
[0100] 其中,实例由访问节点分组得到。
[0101] S203:将新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个候选从节点中,选取一个候选从节点,作为目标节点。
[0102] S204:调用预设的失效转移命令,将目标节点替代节点分组的主节点,以使目标节点变更为节点分组的新主节点,且被替代的主节点变更为节点分组的新从节点。
[0103] S205:提示用户集群版本升级成功。
[0104] 综上所述,通过触发节点分组的从节点运行新实例,并从成功运行的一个或多个从节点中,选取一个从节点,作为目标节点,利用目标节点替代节点分组的主节点,相较于现有技术,能够在实现集群的版本升级的情况下,确保升级过程依旧可以对外提供服务。
[0105] 如图3所示,为本申请实施例提供的一种集群的版本升级装置的架构示意图,包括:
[0106] 生成单元100,用于在接收到用户输入的目标版本号后,触发集群的节点分组的从节点利用安装信息,生成新配置文件;其中,安装信息由加载目标版本号所属集群版本的安装包得到。
[0107] 生成单元100,还用于接收用户发送的版本升级命令;其中,版本升级命令包括当前版本号;当前版本号为集群当前所使用集群版本的版本号;在版本库包含满足预设条件的集群版本的情况下,从配置信息库中获取集群版本的配置信息,并通过预设界面向用户展示配置信息;其中,预设条件为:集群版本的版本号,排在当前版本号之后,且版本号与当前版本号均属于同一级别。
[0108] 生成单元100,还用于在版本库不包含满足预设条件的集群版本的情况下,提示用户集群版本升级失败。
[0109] 生成单元100,还用于触发节点分组的从节点对自身的配置文件进行拷贝,得到备份配置文件,并在将备份配置文件存储至本地后,删除配置文件。
[0110] 启动单元200,用于触发节点分组的从节点结束运行实例,并同时启动运行新实例,得到新实例的运行状态;其中,实例由访问节点分组得到。
[0111] 启动单元200,还用于将新实例的运行状态为失败的从节点,标识为无效从节点,并控制无效从节点停止运行新实例,并重新启动运行实例。
[0112] 选取单元300,用于将新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个候选从节点中,选取一个候选从节点,作为目标节点。
[0113] 替代单元400,用于调用预设的失效转移命令,将目标节点替代节点分组的主节点,以使目标节点变更为节点分组的新主节点,且被替代的主节点变更为节点分组的新从节点。
[0114] 提示单元500,用于提示用户集群版本升级成功。
[0115] 提示单元500具体用于:触发新从节点执行预设步骤后,提示用户版本升级成功;其中,预设步骤包括:利用安装信息,生成新配置文件,并加载新配置文件,得到新实例;结束运行实例,并同时启动运行新实例,得到新实例的运行状态。
[0116] 提示单元500,还用于重新访问节点分组,得到节点分组的新实例信息,并通过预设界面向用户展示新实例信息。
[0117] 综上所述,通过触发节点分组的从节点运行新实例,并从成功运行的一个或多个从节点中,选取一个从节点,作为目标节点,利用目标节点替代节点分组的主节点,相较于现有技术,能够在实现集群的版本升级的情况下,确保升级过程依旧可以对外提供服务。
[0118] 本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的集群的版本升级方法。
[0119] 本申请还提供了一种集群的版本升级设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的集群的版本升级方法,包括如下步骤:
[0120] 在接收到用户输入的目标版本号后,触发所述集群的节点分组的从节点利用安装信息,生成新配置文件;其中,所述安装信息由加载所述目标版本号所属集群版本的安装包得到;
[0121] 触发所述节点分组的从节点结束运行实例,并同时加载所述新配置文件运行所述新实例,得到所述新实例的运行状态;其中,所述实例由访问所述节点分组得到;
[0122] 将所述新实例的运行状态为成功的从节点,标识为候选从节点,并从一个或多个所述候选从节点中,选取一个所述候选从节点,作为目标节点;
[0123] 调用预设的失效转移命令,将所述目标节点替代所述节点分组的主节点,以使所述目标节点变更为所述节点分组的新主节点,且被替代的所述主节点变更为所述节点分组的新从节点;
[0124] 提示所述用户集群版本升级成功。
[0125] 可选的,所述提示所述用户集群版本升级成功,包括:
[0126] 触发所述新从节点执行预设步骤后,提示所述用户集群版本升级成功;其中,所述预设步骤包括:利用所述安装信息,生成所述新配置文件;结束运行所述实例,并同时加载所述新配置文件运行所述新实例,得到所述新实例的运行状态。
[0127] 可选的,还包括:
[0128] 重新访问所述节点分组,得到所述节点分组的新实例信息,并通过预设界面向所述用户展示所述新实例信息。
[0129] 可选的,所述在接收到用户输入的目标版本号之前,还包括:
[0130] 接收所述用户发送的版本升级命令;其中,所述版本升级命令包括当前版本号;所述当前版本号为所述集群当前所使用集群版本的版本号;
[0131] 在版本库包含满足预设条件的集群版本的情况下,从配置信息库中获取所述集群版本的配置信息,并通过所述预设界面向所述用户展示所述配置信息;其中,所述预设条件为:所述集群版本的版本号,排在所述当前版本号之后,且所述版本号与所述当前版本号均属于同一级别。
[0132] 可选的,还包括:
[0133] 在所述版本库不包含满足所述预设条件的集群版本的情况下,提示所述用户集群版本升级失败。
[0134] 可选的,所述触发所述集群的节点分组的从节点利用安装信息,生成新配置文件之前,还包括:
[0135] 触发所述节点分组的从节点对自身的配置文件进行拷贝,得到备份配置文件,并在将所述备份配置文件存储至本地后,删除所述配置文件。
[0136] 可选的,所述触发所述节点分组的从节点结束运行实例,并同时启动运行所述新实例,得到所述新实例的运行状态之后,还包括:
[0137] 将所述新实例的运行状态为失败的从节点,标识为无效从节点,并控制所述无效从节点停止运行所述新实例,并重新启动运行所述实例。
[0138] 本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0139] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0140] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。