在线升级进度的显示方法、系统、电子设备及存储介质与流程

文档序号:19673637发布日期:2020-01-10 22:59阅读:264来源:国知局
在线升级进度的显示方法、系统、电子设备及存储介质与流程

本申请涉及计算机技术领域,特别涉及一种在线升级进度的显示方法、系统、一种存储介质及一种电子设备。



背景技术:

在线升级可以对海量存储软件的内核进行版本升级,通过在线升级能够使每一节点脱离集群部署的依赖,求同存异,使集群最小规模、最小动荡化的基础上,完成核心软件的升级。

在线升级的过程中,用户最为关心的是在线升级的进度,特别是面对集群多节点同时升级的复杂场景,时刻知道目前执行在哪个阶段。相关技术中,显示在线升级进度的方式为:前端(浏览器)设置一个定时器,设置查询时间间隔,不断向后端下发请求,后端根据实时执行结果像前端返回执行进度。但是上述在线升级进度的显示方式忽略了异常流程处理,一旦某个节点的升级流程卡住,造成集群崩溃,前端下发的请求本身就不再响应。

因此,如何避免集群状态对于显示在线升级进度的影响是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种在线升级进度的显示方法、系统、一种存储介质及一种电子设备,能够避免集群状态对于显示在线升级进度的影响。

为解决上述技术问题,本申请提供一种在线升级进度的显示方法,该显示方法包括:

当检测到集群处于在线升级状态时,启动后端监控进程;

利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息;

判断是否接收到前端监控进程发送的请求信息;

若是,则将所述升级进度信息传输至服务器前端,以便所述服务器前端根据所述升级进度信息显示在线升级进度。

可选的,利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息包括:

利用所述后端监控进程按照预设周期获取并保存所述集群每一节点的升级进度信息。

可选的,还包括:

当接收到所述服务器前端发送的进度查询请求时,将当前周期获取并保存的升级进度信息传输至所述服务器前端。

可选的,利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息包括:

利用所述后端监控进程与升级程序主线程进行接口问答,根据接口问答结果确定并保存所述集群每一节点的升级进度信息。

可选的,所述升级进度信息包括集群节点数、已升级的节点数、未升级节点数、正在升级的节点信息和当前节点的升级进度中的任一项或任几项的组合。

可选的,所述服务器前端包括浏览器。

可选的,所述在线升级进度包括集群总体进度和节点进度。

可选的,在所述集群在线升级之前,还包括:

判断所述集群的运行状态是否符合预设条件;

若是,则上传目标内核版本的升级包,以便所述集群利用所述升级包执行在线升级操作。

本申请还提供了一种在线升级进度的显示系统,该显示系统包括:

进程创建模块,用于当检测到集群处于在线升级状态时,启动后端监控进程;

信息模块,用于利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息;

判断模块,用于判断是否接收到前端监控进程发送的请求信息;

显示模块,用于当接收到所述前端监控进程发送的请求信息时,将所述升级进度信息传输至服务器前端,以便所述服务器前端根据所述升级进度信息显示在线升级进度。

本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述在线升级进度的显示方法执行的步骤。

本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述在线升级进度的显示方法执行的步骤。

本申请提供了一种在线升级进度的显示方法,包括当检测到集群处于在线升级状态时,启动后端监控进程;利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息;判断是否接收到前端监控进程发送的请求信息;若是,则将所述升级进度信息传输至服务器前端,以便所述服务器前端根据所述升级进度信息显示在线升级进度。

本申请在集群需要进行在线升级时在后端启动后端监控进程,后端监控线程可以获取集群中每一节点的升级进度信息。当出现集群崩溃时后端无法接收到前端监控线程发送的请求信息,但是由于后端监控线程能够持续获取升级进度信息,因此在集群崩溃恢复后,后端监控线程可以根据接收到的请求信息进行应答,进而将集群崩溃过程中保存的升级进度信息传输至服务器前端完成在线升级进度的显示。本申请通过前、后端监控进程双进程查询升级进度信息,保证进度查询不依赖前端去请求信息的下发,只要集群状态正常就能接收到后端的实时升级信息,可以能够避免集群状态对于显示在线升级进度的影响。本申请同时还提供了一种在线升级进度的显示系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例所提供的一种在线升级进度的显示方法的流程图;

图2为本申请实施例所提供的一种在线升级进度的显示系统的结构示意图。

具体实施方式

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

下面请参见图1,图1为本申请实施例所提供的一种在线升级进度的显示方法的流程图。

具体步骤可以包括:

s101:当检测到集群处于在线升级状态时,启动后端监控进程;

其中,本实施例可以应用于服务器集群的在线升级过程中,此处提到的在线升级可以为对于服务器集群中各个节点的特定软件的在线升级操作。在本步骤之前可以存在判断集群是否进入在线升级流程的操作,若是,则可以判定集群处于在线升级状态。可以理解的是,集群可以通过程序主进程执行在线升级操作。本步骤中启动的后端监控进程可以为脱离程序主线程、单独创建的进程,后端监控进程能够与程序主进程进行接口问答。

当存在由于集群异常导致的后端无法响应前端发送的请求信息时,即前端无法获取主节点升级过程中集群的升级进度信息。本实施例通过后端监控进程在前端无法及时获取在线升级进度时,持续获取并保存升级进度信息。

s102:利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息;

其中,本步骤在目的在于确定在线升级过程中集群中每一节点的升级状况,升级进度信息为用于描述节点升级状况的信息。具体的,本步骤中获取并保存的升级进度信息包括集群节点数、已升级的节点数、未升级节点数、正在升级的节点信息和当前节点的升级进度中的任一项或任几项的组合。

作为一种可行的实施方式,本步骤中利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息的操作可以具体包括以下步骤:

步骤1:利用所述后端监控进程与升级程序主线程进行接口问答;

步骤2:根据接口问答结果确定并保存所述集群每一节点的升级进度信息。

s103:判断是否接收到前端监控进程发送的请求信息;若是,则进入s104;

其中,在本实施例中的前端(如浏览器)中设置有前端监控进程,用于按照预设周期向后端发送请求信息,以便获取当前升级进度并将当前升级进度显示在用户界面。但是如果在升级过程中,出现集群状态异常的情况时,后端无法接收到前端下发的请求信息。当集群故障消除时后端才能接收到前段下发的请求信息,并对请求信息进行响应。

本实施例可以按照预设周期判断是否接收到前端监控进程发送的请求信息,若接收到请求信息则可以进入s104的相关操作,若没有接收到请求信息则可以在延时一个周期时长后再次判断是否接收到前端监控进程发送的请求信息。

s104:将所述升级进度信息传输至服务器前端,以便所述服务器前端根据所述升级进度信息显示在线升级进度。

其中,本步骤建立在接收到了前端监控进程发送的请求信息的基础上,将获取并保存的升级进度信息传输至服务器前端。服务器前端在接收到升级进度信息后,可以对升级进度信息进行计算、分析和整理得到需要显示在用户界面的在线升级进度。

需要说明的是,在升级集群的主节点时,主进程会对集群的各项影响升级的服务进行启停、甚至杀死子进集群,因此在升级集群主节点时出现状态异常是正常情况。通过上述实施方式,后端监控进程可以在前端无法及时获取在线升级进度时,持续获取并保存升级进度信息,用户界面可以不用上报在线升级异常。在接收到前端监控进程发送的请求信息时,后端监控进程可以将前端下发请求没有响应这一阶段(如主节点升级阶段)的升级进度信息发送至服务器前端,实现在线升级进度的完整显示。可选的,在线升级进度可以包括集群总体进度和节点进度。

本实施例在集群需要进行在线升级时在后端启动后端监控进程,后端监控线程可以获取集群中每一节点的升级进度信息。当出现集群崩溃时后端无法接收到前端监控线程发送的请求信息,但是由于后端监控线程能够持续获取升级进度信息,因此在集群崩溃恢复后,后端监控线程可以根据接收到的请求信息进行应答,进而将集群崩溃过程中保存的升级进度信息传输至服务器前端完成在线升级进度的显示。本实施例通过前、后端监控进程双进程查询升级进度信息,保证进度查询不依赖前端去请求信息的下发,只要集群状态正常就能接收到后端的实时升级信息,可以能够避免集群状态对于显示在线升级进度的影响。

作为对于图1对应实施例的进一步补充,s102中利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息的操作可以具体为:利用所述后端监控进程按照预设周期获取并保存所述集群每一节点的升级进度信息。

相应的,服务器后端当接收到所述服务器前端发送的进度查询请求时,可以将当前周期获取并保存的升级进度信息传输至所述服务器前端。

作为对于图1对应实施例的进一步补充,在对集群执行在线升级操作之前,还可以执行预处理操作,具体步骤包括:

步骤1:判断所述集群的运行状态是否符合预设条件;若是,则进入步骤2;

步骤2:上传目标内核版本的升级包,以便所述集群利用所述升级包执行在线升级操作。

其中,上述判断集群的运行状态是否符合预设条件相当于检测集群及各节点的运行状态,判断运行状态是否允许升级。

下面通过在实际应用中的实施例说明上述实施例描述的流程。本实施例是对以上实施例的具体化说明,本实施例中的前端定时器即前端监控进程,后端定时器即后端监控进程。

首先检测集群(及各节点)的运行状态,是否允许升级。还需要出集群指定位置是否已有升级包,并显示升级包对应的内核版本信息。若不存在升级包,可以上传目标内核版本的升级包,上传完成后并显示升级包对应的内核版本信息。执行在线升级操作,并在前端浏览器上显示在线升级的总体进度及具体升级信息。

在执行升级操作的过程中,本实施例采用双定时器监控,也是异常流程保障。前端定时器正常执行。设立一个后端定时器,后端定时器与前端定时器同步执行,在前端定时器实时执行(后端接口能够间隔时间接收到前端请求)的情况下,后端定时器不体现。后端定时器脱离集群的主mon进程(即程序主线程),单独开一个线程,并和主线程进行接口问答。如果升级过程中,集群状态异常(升级主节点时,状态异常是正常情况,升级过程中,主进程会对集群的各项影响升级的服务进行启停、甚至杀死子进程),后端无法对正常应答,因为此时集群状态异常是正常情况,所以界面不会报在线升级异常。此时,后端定时器持续起作用,会获取和保存升级进程的详细信息。一旦主节点升级完毕,前端定时器推送过来的接口信息能够接收到,后端定时器线程马上做出应答。另外后端的定时器进程,保证了即使关闭了浏览器,只要重新进入页面。只要能够后端接收到下发接口的信息,后端定时器就会应答(依赖接口响应)。本实施例还涉及在线升级适配集群多节点升级的具体管理,通过本实施例能够看到集群节点数、已升级的节点数、未升级节点数、正在升级的节点信息、当前节点的升级进度。当遇到除主节点升级造成的异常以外的节点异常、或者升级进度异常的时候,用户能够知道卡在哪个步骤哪个节点上。

通过本实施例的在线升级进度显示方法,能够在升级过程中,对于主节点升级中造成的集群异常不显示,即正常错误不显示。本实施例设置双定时器线程,保证集群状态正常,接口能够正常接听后,能够立即显示当前的升级进度。当关闭浏览器在打开页面,或者重新刷新页面,重新下发请求,就能重新从后端获取到升级进度。本实施例在前端显示器上进行精细化显示,已升级的节点数、未升级节点数、正在升级的节点信息、当前节点的升级进度都能够直观、精细的显示。

请参见图2,图2为本申请实施例所提供的一种在线升级进度的显示系统的结构示意图;

该系统可以包括:

进程创建模块100,用于当检测到集群处于在线升级状态时,启动后端监控进程;

信息模块200,用于利用所述后端监控进程获取并保存所述集群每一节点的升级进度信息;

判断模块300,用于判断是否接收到前端监控进程发送的请求信息;

显示模块400,用于当接收到所述前端监控进程发送的请求信息时,将所述升级进度信息传输至服务器前端,以便所述服务器前端根据所述升级进度信息显示在线升级进度。

本实施例在集群需要进行在线升级时在后端启动后端监控进程,后端监控线程可以获取集群中每一节点的升级进度信息。当出现集群崩溃时后端无法接收到前端监控线程发送的请求信息,但是由于后端监控线程能够持续获取升级进度信息,因此在集群崩溃恢复后,后端监控线程可以根据接收到的请求信息进行应答,进而将集群崩溃过程中保存的升级进度信息传输至服务器前端完成在线升级进度的显示。本实施例通过前、后端监控进程双进程查询升级进度信息,保证进度查询不依赖前端去请求信息的下发,只要集群状态正常就能接收到后端的实时升级信息,可以能够避免集群状态对于显示在线升级进度的影响。

进一步的,信息模块200具体为用于利用所述后端监控进程按照预设周期获取并保存所述集群每一节点的升级进度信息的模块。

进一步的,所述在线升级进度包括集群总体进度和节点进度。

进一步的,信息模块200具体为用于利用所述后端监控进程与升级程序主线程进行接口问答,根据接口问答结果确定并保存所述集群每一节点的升级进度信息的模块。

进一步的,所述升级进度信息包括集群节点数、已升级的节点数、未升级节点数、正在升级的节点信息和当前节点的升级进度中的任一项或任几项的组合。

进一步的,所述服务器前端包括浏览器。

进一步的,还包括:

状态判断模块,用于判断所述集群的运行状态是否符合预设条件;

上传模块,用于当集群的运行状态符合预设条件时,上传目标内核版本的升级包,以便所述集群利用所述升级包执行在线升级操作。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

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

本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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