一种分布式系统软件升级方法、系统及相关组件与流程

    专利2022-07-08  75


    本发明涉及分布式系统领域,特别涉及一种分布式系统软件升级方法、系统及相关组件。



    背景技术:

    随着社会信息化的持续发展,分布式系统日益普及,规模随之扩大,升级难度也持续升高。当前分布式系统一般采取顺序执行的方式,依次对所有节点进行升级。该方案存在以下问题:

    效率低,顺序升级的耗时与系统内节点个数成正比,当系统规模越来越大,顺序升级显得力不从心;

    分发升级包存在瓶颈,不论是主动推送升级包,或者待升级节点主动拉取,都会对主节点带宽造成较大压力;

    升级进度无法控制,顺序升级流程过于死板,无法实时根据集群状态动态调整,如果发生升级故障,缺少必要手段对升级过程进行干预。

    因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。



    技术实现要素:

    有鉴于此,本发明的目的在于提供一种更为灵活高效的分布式系统软件升级方法、系统及相关组件。其具体方案如下:

    一种分布式系统软件升级方法,包括:

    通过主节点获取上传的升级包;

    根据当前网络拓扑,在所述主节点和多个从节点中确定多个下载源,并将所述升级包分发到多个所述下载源;

    通过所述主节点向所有所述从节点推送下载仓库信息,所述下载仓库信息包括所述下载源和所述升级包的地址信息;

    利用所述下载仓库信息,控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。

    优选的,所述控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包的过程,具体包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包。

    优选的,所述控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包的过程,包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择一个所述下载源,以在预设时段来下载所述升级包。

    优选的,所述控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包的过程,包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择多个所述下载源,以分块下载所述升级包。

    优选的,所述控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包的过程,包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择多个预设时段,并在每个预设时段选择相应的所述下载源,以分时分块下载所述升级包。

    优选的,所述控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级之前,还包括:

    通过所述主节点向待升级的所述从节点发送升级指令;

    相应的,所述控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级的过程,包括:

    控制每个收到所述升级指令的所述从节点,根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。

    优选的,所述升级指令具体通过所述主节点根据所述升级包确定。

    相应的,本申请还公开了一种分布式系统软件升级系统,包括:

    升级包上传模块,用于通过主节点获取上传的升级包;

    下载源确定模块,用于根据当前网络拓扑,在所述主节点和多个从节点中确定多个下载源,并将所述升级包分发到多个所述下载源;

    下载源推送模块,用于通过所述主节点向所有所述从节点推送下载仓库信息,所述下载仓库信息包括所述下载源和所述升级包的地址信息;

    升级包下载模块,用于利用所述下载仓库信息,控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。

    相应的,本申请还公开了一种分布式系统软件升级装置,包括:

    存储器,用于存储计算机程序;

    处理器,用于执行所述计算机程序时实现如上文任一项所述分布式系统软件升级方法的步骤。

    相应的,本申请还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述分布式系统软件升级方法的步骤。

    本申请公开了一种分布式系统软件升级方法,包括:通过主节点获取上传的升级包;根据当前网络拓扑,在所述主节点和多个从节点中确定多个下载源,并将所述升级包分发到多个所述下载源;通过所述主节点向所有所述从节点推送下载仓库信息,所述下载仓库信息包括所述下载源和所述升级包的地址信息;利用所述下载仓库信息,控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。本申请中升级包以主节点、下载源、从节点的结构依次下发,升级效率明显上升,且缓解了网络带宽压力,避免产生单节点网络瓶颈,且从节点下载升级包的过程可控,能够有效控制整体分布式系统的软件升级进度,并根据集群情况随时调整。

    附图说明

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

    图1为本发明实施例中一种分布式系统软件升级方法的步骤流程图;

    图2为本发明实施例中一种分布式系统软件升级系统的结构分布图。

    具体实施方式

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

    现有的分布式系统升级采取顺序执行的方式,存在效率低、分发升级包存在带宽瓶颈、升级进度无法控制等缺陷。本申请中升级包以主节点、下载源、从节点的结构依次下发,升级效率明显上升,且缓解了网络带宽压力,避免产生单节点网络瓶颈,且从节点下载升级包的过程可控,能够有效控制整体分布式系统的软件升级进度,并根据集群情况随时调整。

    本发明实施例公开了一种分布式系统软件升级方法,参见图1所示,包括:

    s1:通过主节点获取上传的升级包;

    s2:根据当前网络拓扑,在主节点和多个从节点中确定多个下载源,并将升级包分发到多个下载源;

    s3:通过主节点向所有从节点推送下载仓库信息,下载仓库信息包括下载源和升级包的地址信息;

    s4:利用下载仓库信息,控制每个从节点根据自身状态选择相应的下载源以下载升级包,并利用升级包进行升级。

    可以理解的是,分布式系统的网络拓扑包括多个按照特定要求互相连接的节点,这些节点可分为主节点和从节点,用户通常将软件的升级包上传到主节点,主节点按照顺序控制每个从节点下载升级包并升级。本实施例中,主节点没有直接将升级包从主节点发送给从节点,而是先将升级包分发到多个下载源,只向从节点推送下载仓库信息,主节点根据当前网络拓扑从所有节点中选择公共连接较多、网络状态较好的节点作为下载源;然后控制从节点根据自身状态和下载仓库信息,主动选择下载源来下载升级包,自身状态包括与每个下载源的距离、与每个下载源的网络环境等,选择下载环境更为友好的下载源,这些从节点的下载源不一致,也没有单点带宽瓶颈,下载效率要远高于现有技术。

    可见,从节点自主性较高,从节点执行完相关动作后可向主节点返回信息,如果从节点中出现升级故障,可向主节点发送故障信息并尝试重新升级。

    进一步的,控制每个从节点根据自身状态选择相应的下载源以下载升级包,并利用升级包进行升级之前,还包括:

    通过主节点向待升级的从节点发送升级指令;

    相应的,控制每个从节点根据自身状态选择相应的下载源以下载升级包,并利用升级包进行升级的过程,包括:

    控制每个收到升级指令的从节点,根据自身状态选择相应的下载源以下载升级包,并利用升级包进行升级。

    可以理解的是,这里的升级指令可以是对升级包的待升级对象节点的指定,具体通过主节点根据升级包确定,升级指令也可以包括对升级时刻的指定,还可以包括对每个从节点的下载源的确定规则。总值,升级指令是对执行控制从节点选择下载源下载升级包这一动作的更为具体的描述,可根据需要进行设置。

    本申请公开了一种分布式系统软件升级方法,包括:通过主节点获取上传的升级包;根据当前网络拓扑,在所述主节点和多个从节点中确定多个下载源,并将所述升级包分发到多个所述下载源;通过所述主节点向所有所述从节点推送下载仓库信息,所述下载仓库信息包括所述下载源和所述升级包的地址信息;利用所述下载仓库信息,控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。本申请中升级包以主节点、下载源、从节点的结构依次下发,升级效率明显上升,且缓解了网络带宽压力,避免产生单节点网络瓶颈,且从节点下载升级包的过程可控,能够有效控制整体分布式系统的软件升级进度,并根据集群情况随时调整。

    本发明实施例公开了一种具体的分布式系统软件升级方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。

    具体的,控制每个从节点根据自身状态选择相应的下载源以下载升级包的过程,包括:

    控制每个从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的下载源以下载升级包。

    可以理解的是,此处的节点位置主要指某一从节点与其他下载源的拓扑关系,下载源与该从节点的拓扑关系越短,越容易被选为该节点对应的下载源;网络拥堵情况主要从网络带宽占用上进行判断,下载源与该节点之间的可用带宽越高,越容易被选为该节点对应的下载源。每一个从节点下载得到的升级包,可以是不同时刻下载的,也可以是不同下载源下载的,也即分时/分块进行下载,因此选择下载源时除了在当前时刻所有下载源中节点位置、网络拥堵情况较优的下载源外,还可设置相应的下载源选择基准,例如拓扑关系必须在2层拓扑关系以内、网络带宽占用必须在某一设定范围内,然后对满足下载源选择基准的所有下载源中确定一个或多个下载源。

    按照上述思路,控制每个从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的下载源以下载升级包的过程,可以包括:

    控制每个从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择一个下载源,以在预设时段来下载升级包。

    具体的,如果某一下载源的下载过程被中断,后续可继续从该下载源进行下载,也可另选择一个下载源。

    类似的,控制每个从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的下载源以下载升级包的过程,也可以包括:

    控制每个从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择多个下载源,以分块下载升级包。

    具体的,一个从节点可同时从多个下载源下载同一升级包的不同数据块,待下载完整后利用升级包进行升级。

    类似的,控制每个从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的下载源以下载升级包的过程,包括:

    控制每个从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择多个预设时段,并在每个预设时段选择相应的下载源,以分时分块下载升级包。

    相应的,本申请实施例还公开了一种分布式系统软件升级系统,参见图2所示,包括:

    升级包上传模块1,用于通过主节点获取上传的升级包;

    下载源确定模块2,用于根据当前网络拓扑,在主节点和多个从节点中确定多个下载源,并将升级包分发到多个下载源;

    下载源推送模块3,用于通过主节点向所有从节点推送下载仓库信息,下载仓库信息包括下载源和升级包的地址信息;

    升级包下载模块4,用于利用所述下载仓库信息,控制每个从节点根据自身状态选择相应的下载源以下载升级包,并利用升级包进行升级。

    本申请实施例中升级包以主节点、下载源、从节点的结构依次下发,升级效率明显上升,且缓解了网络带宽压力,避免产生单节点网络瓶颈,且从节点下载升级包的过程可控,能够有效控制整体分布式系统的软件升级进度,并根据集群情况随时调整。

    相应的,本申请实施例还公开了一种分布式系统软件升级装置,包括:

    存储器,用于存储计算机程序;

    处理器,用于执行所述计算机程序时实现如上文任一项所述分布式系统软件升级方法的步骤。

    相应的,本申请实施例还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述分布式系统软件升级方法的步骤。

    其中,本实施例中分布式系统软件升级方法的具体细节可参照上文实施例中的相关描述,此处不再赘述。

    其中,本实施例中分布式系统软件升级装置和可读存储介质具有与上文实施例中分布式系统软件升级方法相同的有益效果,此处不再赘述。

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

    以上对本发明所提供的一种分布式系统软件升级方法、系统及相关组件进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。


    技术特征:

    1.一种分布式系统软件升级方法,其特征在于,包括:

    通过主节点获取上传的升级包;

    根据当前网络拓扑,在所述主节点和多个从节点中确定多个下载源,并将所述升级包分发到多个所述下载源;

    通过所述主节点向所有所述从节点推送下载仓库信息,所述下载仓库信息包括所述下载源和所述升级包的地址信息;

    利用所述下载仓库信息,控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。

    2.根据权利要求1所述分布式系统软件升级方法,其特征在于,所述控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包的过程,具体包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包。

    3.根据权利要求2所述分布式系统软件升级方法,其特征在于,所述控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包的过程,包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择一个所述下载源,以在预设时段来下载所述升级包。

    4.根据权利要求2所述分布式系统软件升级方法,其特征在于,所述控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包的过程,包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择多个所述下载源,以分块下载所述升级包。

    5.根据权利要求2所述分布式系统软件升级方法,其特征在于,所述控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择相应的所述下载源以下载所述升级包的过程,包括:

    控制每个所述从节点根据当前网络拓扑中所在的节点位置和网络拥堵情况,选择多个预设时段,并在每个预设时段选择相应的所述下载源,以分时分块下载所述升级包。

    6.根据权利要求1至5任一项所述分布式系统软件升级方法,其特征在于,所述控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级之前,还包括:

    通过所述主节点向待升级的所述从节点发送升级指令;

    相应的,所述控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级的过程,包括:

    控制每个收到所述升级指令的所述从节点,根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。

    7.根据权利要求6所述分布式系统软件升级方法,其特征在于,所述升级指令具体通过所述主节点根据所述升级包确定。

    8.一种分布式系统软件升级系统,其特征在于,包括:

    升级包上传模块,用于通过主节点获取上传的升级包;

    下载源确定模块,用于根据当前网络拓扑,在所述主节点和多个从节点中确定多个下载源,并将所述升级包分发到多个所述下载源;

    下载源推送模块,用于通过所述主节点向所有所述从节点推送下载仓库信息,所述下载仓库信息包括所述下载源和所述升级包的地址信息;

    升级包下载模块,用于利用所述下载仓库信息,控制每个所述从节点根据自身状态选择相应的所述下载源以下载所述升级包,并利用所述升级包进行升级。

    9.一种分布式系统软件升级装置,其特征在于,包括:

    存储器,用于存储计算机程序;

    处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述分布式系统软件升级方法的步骤。

    10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述分布式系统软件升级方法的步骤。

    技术总结
    本申请公开了一种分布式系统软件升级方法、系统、装置及可读存储介质,该方法包括:通过主节点获取上传的升级包;根据当前网络拓扑,在主节点和多个从节点中确定多个下载源,并将升级包分发到多个下载源;通过主节点向所有从节点推送下载仓库信息,下载仓库信息包括下载源和升级包的地址信息;利用下载仓库信息,控制每个从节点根据自身状态选择相应的下载源以下载升级包,并利用升级包进行升级。本申请中升级包以主节点、下载源、从节点的结构依次下发,升级效率明显上升,且缓解了网络带宽压力,避免产生单节点网络瓶颈,且从节点下载升级包的过程可控,能够有效控制整体分布式系统的软件升级进度,并根据集群情况随时调整。

    技术研发人员:张中文
    受保护的技术使用者:北京浪潮数据技术有限公司
    技术研发日:2020.12.11
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23284.html

    最新回复(0)