一种分布式集群在线升级方法及相关组件与流程

文档序号:24184552发布日期:2021-03-09 13:18阅读:85来源:国知局
一种分布式集群在线升级方法及相关组件与流程

1.本申请涉及计算机软件技术领域,特别涉及一种分布式集群在线升级方法、装置、设备及一种可读存储介质。


背景技术:

2.对于分布式存储业务集群,经常需要在集群运行业务的情况下对集群进行在线升级,但是为了不影响集群业务的正常进行,同时需要保证集群业务性能下降幅度不超过一定范围。
3.为实现上述目的,当前通常采用的是串行的升级方式,即一次只升级集群中的一个节点,只有在当前节点升级完成,并且等到集群状态恢复正常后,才能继续下一个节点的升级。这样的升级方式下所有节点都只能逐一依次进行升级,升级效率很低;而且随着集群规模的增大,耗时会越来越长,用户体验差。
4.因此,如何提升存储系统集群升级效率,缩短升级过程的时间占用,同时保障集群业务的正常进行,是本领域技术人员急需解决的问题。


技术实现要素:

5.本申请的目的是提供分布式集群在线升级方法,该方法可以提升存储系统集群升级效率,缩短升级过程的时间占用,同时保障集群业务的正常进行;本申请的另一目的是提供分布式集群在线升级装置、设备及一种可读存储介质。
6.为解决上述技术问题,本申请提供一种分布式集群在线升级方法,包括:
7.接收到在线升级请求后,确定当前集群节点中的无业务节点以及业务运行节点;
8.对所述无业务节点同时执行升级操作;
9.对所述业务运行节点逐一执行升级操作。
10.可选地,对所述业务运行节点逐一执行升级操作,包括:
11.将所述业务运行节点按照运行的业务种类进行节点类别划分,得到执行业务不同的若干节点组;
12.对各所述节点组间并行执行升级操作,同时在各所述节点组内对各节点执行串行升级操作。
13.可选地,在对所述无业务节点同时执行升级操作之前,还包括:
14.将所述无业务节点划分为同步节点组以及预留节点组;
15.则相应地,对所述无业务节点同时执行升级操作,包括:
16.对所述同步节点组中所有节点同时执行升级操作;
17.在所述同步节点组中的节点升级完成后,对所述预留节点组中的所有节点同时执行升级操作。
18.可选地,在所述同步节点组中的节点升级完成后,对所述预留节点组中的所有节点同时执行升级操作,包括:
19.在所述同步节点组中的节点升级完成后,且对所述业务运行节点逐一执行升级操作完成后,对所述预留节点组中的所有节点同时执行升级操作。
20.可选地,对所述业务运行节点逐一执行升级操作,包括:
21.在所述无业务节点升级完成后,对所述业务运行节点逐一执行升级操作。
22.本申请还提供了一种分布式集群在线升级装置,该装置包括:
23.节点识别单元,用于接收到在线升级请求后,确定当前集群节点中的无业务节点以及业务运行节点;
24.第一执行单元,用于对所述无业务节点同时执行升级操作;
25.第二执行单元,用于对所述业务运行节点逐一执行升级操作。
26.可选地,所述第二执行单元包括:
27.种类划分子单元,用于将所述业务运行节点按照运行的业务种类进行节点类别划分,得到执行业务不同的若干节点组;
28.操作执行子单元,用于对各所述节点组间并行执行升级操作,同时在各所述节点组内对各节点执行串行升级操作。
29.可选地,所述分布式集群在线升级装置还包括节点划分单元,用于在对所述无业务节点同时执行升级操作之前,将所述无业务节点划分为同步节点组以及预留节点组;
30.则相应地,所述第一执行单元包括:
31.第一子单元,用于对所述同步节点组中所有节点同时执行升级操作;
32.第二子单元,用于在所述同步节点组中的节点升级完成后,对所述预留节点组中的所有节点同时执行升级操作。
33.本申请还提供了一种分布式集群在线升级设备,包括:
34.存储器,用于存储计算机程序;
35.处理器,用于执行所述计算机程序时实现所述的分布式集群在线升级方法的步骤。
36.本申请还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述的分布式集群在线升级方法的步骤。
37.本申请所提供的分布式集群在线升级方法提出了一种基于业务对集群中节点进行分组后并行和串行两种升级方式并存的升级方案,该方法中首先对集群中的节点整体进行划分,没有运行业务的节点划分为一组,即无业务节点,正在运行业务的集群划分为一组,即业务运行节点;然后对不影响集群业务的无业务节点同时执行升级操作,以缩短升级占用时间,提升升级实现速率;对影响业务的业务运行节点逐一执行升级操作,以保障集群业务的正常运行,因此该方法可以提升存储系统集群升级效率,缩短升级过程的时间占用的同时保障集群业务的正常进行。
38.本申请还提供了一种分布式集群在线升级装置、设备及一种可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
39.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
40.图1为本申请实施例提供的一种分布式集群在线升级方法的流程图;
41.图2为本申请实施例提供的一种分布式集群在线升级装置的结构框图;
42.图3为本申请实施例提供的一种分布式集群在线升级设备的结构示意图。
具体实施方式
43.本申请的核心是提供分布式集群在线升级方法,该方法可以提升存储系统集群升级效率,缩短升级过程的时间占用,同时保障集群业务的正常进行;本申请的另一核心是提供分布式集群在线升级装置、设备及一种可读存储介质。
44.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
45.请参考图1,图1为本实施例提供的一种分布式集群在线升级方法的流程图,该方法主要包括以下步骤:
46.步骤s110、接收到在线升级请求后,确定当前集群节点中的无业务节点以及业务运行节点;
47.首先,与传统升级方式不同的是,本实施例中在升级之前会先对集群中的节点进行分类,区分出升级过程会影响集群业务的节点和升级过程不影响集群业务的节点,以便于基于业务对集群中节点进行分组、并行和串行两种升级方式并存的升级方案,以提升升级速度的同时保障集群业务的正常运行。
48.具体地,本实施例中首先将正在运行业务的节点划分为一类,即业务运行节点;将没有在运行业务的节点划分为一类,即无业务节点。业务运行节点的升级会影响集群业务,无业务节点的升级不影响集群业务的正常运行。
49.例如,集群共包含n个节点,其中m个节点在运行业务,而(n-m)个节点未运行业务。本实施例中可以将不运行业务的(n-m)个节点划分为组1,即无业务节点;正在运行业务的m个节点划分为组2,即业务运行节点。
50.步骤s120、对无业务节点同时执行升级操作;
51.无业务节点为对集群业务不存在业务影响的节点,为保障集群业务的正常运行的同时提升节点升级速度,本实施例中对集群中的无业务节点同时执行升级操作,即对所有无业务节点同时并行升级,这样可以避免针对每个无业务节点逐一升级并确认集群状态的大量时间占用,针对(n-m)个无业务节点可以缩短(n-m-1)个节点的升级占用时间,相比传统的单一串行升级方式,本实施例中提供的升级方式可以大大缩短升级占用时间,从而提升升级速度。
52.步骤s130、对业务运行节点逐一执行升级操作。
53.业务运行节点为对于集群业务存在业务影响的节点,本实施例中为保障在线升级过程中集群业务不受影响,对业务运行节点逐一执行升级操作,以保障业务的正常运行。
54.而具体地对于业务运行节点的升级操作本实施例中不做限定,可以根据实际升级
需要确定节点升级的前后顺序以及其他升级规则进行设定,在此不再赘述。
55.另外,本实施例中对于步骤s120与步骤s130的执行先后顺序不做限定,可以先执行无业务节点的升级,也可以先执行业务运行节点的升级,还可以同时执行,图1中以先执行无业务节点的升级为例。为提升升级执行进度,可以在无业务节点升级完成后,执行对业务运行节点逐一执行升级操作。
56.基于上述介绍,本实施例提供的分布式集群在线升级方法提出了一种基于业务对集群中节点进行分组后并行和串行两种升级方式并存的升级方案,该方法中首先对集群中的节点整体进行划分,没有运行业务的节点划分为一组,即无业务节点,正在运行业务的集群划分为一组,即业务运行节点;然后对不影响集群业务的无业务节点同时执行升级操作,以缩短升级占用时间,提升升级实现速率;对影响业务的业务运行节点逐一执行升级操作,以保障集群业务的正常运行,因此该方法可以提升存储系统集群升级效率,缩短升级过程的时间占用的同时保障集群业务的正常进行。
57.上述实施例中对于业务运行节点的逐一升级操作的实现不做限定,为进一步提升升级效率,减少业务运行节点的升级时间占用,本实施例中介绍一种业务运行节点的升级方式。具体如下:
58.对业务运行节点逐一执行升级操作具体可以包括以下步骤:
59.(1)将业务运行节点按照运行的业务种类进行节点类别划分,得到执行业务不同的若干节点组;
60.(2)对各节点组间并行执行升级操作,同时在各节点组内对各节点执行串行升级操作。
61.对运行相同业务的节点间采用串行的升级方式,而运行不同业务的节点间由于对外提供服务的模块不同,因此不同业务的节点间可以采用并行的升级方式。
62.比如业务运行节点中p个节点运行的是a业务,q个节点运行的是b业务,因此可以在这p个节点中选出一个进行升级的同时,再在其余q个中的一个同时进行升级,既可以保证业务的正常运行,又在一定程度上提高了升级效率,降低了因升级时间长对集群造成业务下降的影响,提高了产品性能。
63.本实施例中提供的在线升级方法中,通过区分对外提供业务的节点和不对外提供业务的节点,并行升级不提供业务的节点,之后再对提供业务的节点继续按其所提供业务的种类划分,同一种类内的节点之间串行升级,提供不同业务种类的节点之间并行升级,提高了升级的灵活性和升级的效率,既满足不中断业务的要求,同时缓解了大规模集群在线升级耗时长的问题,缩短了升级时间,降低了因升级时间长对集群造成业务下降的影响。
64.基于上述实施例,为进一步提升升级过程的稳定性,保证升级过程中节点故障时集群功能的正常执行,在对无业务节点同时执行升级操作之前,可以进一步将无业务节点划分为同步节点组以及预留节点组。
65.预留节点组为无业务节点中预留的用于在运行业务的节点在发生故障时,用于接替故障节点继续对外提供服务的节点,预留节点组中的节点数量可以根据实际运行中故障节点的数量来进行设置,一般不用设置过多,比如可以设置1个或两个节点。同步节点组中包括无业务节点中除了预留节点外的其它所有节点。通过设置预留节点,可以保障业务运行节点在升级过程中的任意时刻都可以实现业务功能的接替,保障系统业务的流畅性以及
稳定性。
66.在预留节点外,则相应地,上述实施例中步骤s120对无业务节点同时执行升级操作具体可以包括以下步骤:
67.(1)对同步节点组中所有节点同时执行升级操作;
68.(2)在同步节点组中的节点升级完成后,对预留节点组中的所有节点同时执行升级操作。
69.同步节点组与预留节点组非同步执行升级操作,以保证集群在升级过程中始终存在无业务节点以供节点替换,同时预留节点组与业务运行节点非同步执行升级操作,以保证在业务运行节点异常时存在未占用(升级占用)的预留节点作为替换节点。
70.本实施例中对于预留节点组与业务运行节点的升级执行先后顺序不做限定,可以在同步节点组中的节点升级完成后,且对业务运行节点逐一执行升级操作完成后,对预留节点组中的所有节点同时执行升级操作。
71.则基于上述升级方式的一种具体实现方式如下:
72.假设集群共包含n个节点,其中m个节点在运行业务,而在运行业务的m个节点中有p个节点跑的是a业务,q个节点跑的是b业务。就可以将不运行业务的(n-m-2)个节点划分为组1;正在运行业务的m个节点和没有运行的业务的节点中的其中2个节点(预留节点)划分为组2。当组1中的(n-m)个节点全部升级成功后,再对组2个中的m个节点进行升级。
73.而其中,升级组2中的节点时,因为p个节点运行的是a业务,q个节点跑的是b业务,因此可以在这p个节点中选出一个进行升级的同时,再在其余q个中的一个同时进行升级。
74.预留了2个没有运行业务的节点最后执行升级操作,可以保证运行业务的节点在发生故障时,接替故障节点继续对外提供服务。
75.假如升级一个节点需要耗时x分钟,则传统的在线升级方式共需要耗时n*x分钟;而在改进升级方式后,组1内的节点耗时x分钟,其余节点耗时为m/y*x+2*x,其中y为业务种类的数量,总耗时为m/y*x+3*x,m/y*x+3*x<n*x因此本实施例提供的升级方法有效提高了升级效率,同时也没有中断对外提供的业务,而且充分利用了分布式集群的特性,提高了升级效率,缩短了升级时间,降低了因升级时间长对集群造成业务下降的影响,提升了用户体验。
76.请参考图2,图2为本实施例提供的分布式集群在线升级装置的结构框图;该装置主要包括:节点识别单元110、第一执行单元120以及第二执行单元130。本实施例提供的分布式集群在线升级装置可与上述分布式集群在线升级方法相互对照。
77.其中,节点识别单元110主要用于接收到在线升级请求后,确定当前集群节点中的无业务节点以及业务运行节点;
78.第一执行单元120主要用于对无业务节点同时执行升级操作;
79.第二执行单元130主要用于对业务运行节点逐一执行升级操作。
80.其中,第二执行单元进一步可以包括:
81.种类划分子单元,用于将业务运行节点按照运行的业务种类进行节点类别划分,得到执行业务不同的若干节点组;
82.操作执行子单元,用于对各节点组间并行执行升级操作,同时在各节点组内对各节点执行串行升级操作。
83.其中,分布式集群在线升级装置可以进一步包括节点划分单元,用于在对无业务节点同时执行升级操作之前,将无业务节点划分为同步节点组以及预留节点组;
84.则相应地,第一执行单元具体可以包括:
85.第一子单元,用于对同步节点组中所有节点同时执行升级操作;
86.第二子单元,用于在同步节点组中的节点升级完成后,对预留节点组中的所有节点同时执行升级操作。
87.本实施例提供一种分布式集群在线升级设备,主要包括:存储器以及处理器。
88.其中,存储器用于存储程序;
89.处理器用于执行程序时实现如上述实施例介绍的分布式集群在线升级方法的步骤,具体可参照上述分布式集群在线升级方法的介绍。
90.请参考图3,为本实施例提供的分布式集群在线升级设备的结构示意图,该分布式集群在线升级设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在分布式集群在线升级设备301上执行存储介质330中的一系列指令操作。
91.分布式集群在线升级设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
92.上面图1所描述的分布式集群在线升级方法中的步骤可以由本实施例介绍的分布式集群在线升级设备的结构实现。
93.本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述实施例介绍的分布式集群在线升级方法的步骤,具体可参照上述实施例中对分布式集群在线升级方法的介绍。
94.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
95.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
96.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
97.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
98.以上对本申请所提供的分布式集群在线升级方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1