CN117707587A - 分布式存储集群并发升级方法、装置、服务器及存储介质 - Google Patents

分布式存储集群并发升级方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN117707587A
CN117707587A CN202410154768.8A CN202410154768A CN117707587A CN 117707587 A CN117707587 A CN 117707587A CN 202410154768 A CN202410154768 A CN 202410154768A CN 117707587 A CN117707587 A CN 117707587A
Authority
CN
China
Prior art keywords
node
target
candidate
service
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410154768.8A
Other languages
English (en)
Other versions
CN117707587B (zh
Inventor
韩宾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202410154768.8A priority Critical patent/CN117707587B/zh
Priority claimed from CN202410154768.8A external-priority patent/CN117707587B/zh
Publication of CN117707587A publication Critical patent/CN117707587A/zh
Application granted granted Critical
Publication of CN117707587B publication Critical patent/CN117707587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术领域,具体涉及分布式存储集群并发升级方法、装置、服务器及存储介质。获取分布式存储集群中各个节点对应的节点标签集合,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵;获取各节点对应的存储池,根据各节点对应的存储池对各节点进行分组,生成多个节点组;根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。在考虑到各个节点对应的存储池以及各个节点对应的各个业务和服务的同时,从分布式存储系统包括的全部节点中确定可以并发升级的节点,保证每次并发升级的节点数量最多,从而减少并发升级的次数,提高并发升级的效率。

Description

分布式存储集群并发升级方法、装置、服务器及存储介质
技术领域
本发明涉及计算机技术领域,具体涉及分布式存储集群并发升级方法、装置、服务器及存储介质。
背景技术
一个分布式存储集群上线后,为修复漏洞、增强性能亦或者体验新版本特性需要定期的对分布式存储集群的存储系统进行升级,为保证升级过程不影响分布式存储集群的正常业务,只能选择在线升级方式。
目前部分厂商的分布式存储集群的在线升级方式仍是串行方式或者是基于冒泡算法实现了节点间的并发升级。其中,冒泡算法仅适用于在服务以及故障域分布比较均匀和规则的情况,对于部署比较复杂的场景,冒泡算法只是针对各个节点进行简单对比,然后采用排序的方式对各个待升级节点进行升级,因此,花费时间较长,且升级效率较低,因此,可能会影响分布式存储集群的正常工作。
发明内容
有鉴于此,本发明提供了一种分布式存储集群并发升级方法、装置、服务器及存储介质,以解决现有技术中,分布式存储集群的在线升级方式,花费时间较长,且升级效率较低,因此,可能会影响分布式存储集群的正常工作的问题。
第一方面,本发明提供了一种分布式存储集群并发升级方法,方法包括:
获取分布式存储集群中各个节点对应的节点标签集合,节点标签集合用于表征各节点在分布式存储集群内所承载的业务和服务;
根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵;标签矩阵用于表示各业务和各服务分别对应的各节点以及各业务和各服务分别对应的服务阈值;服务阈值用于表征保证服务或者业务可正常工作的最小节点个数;
获取各节点对应的存储池,
根据各节点对应的存储池对各节点进行分组,生成多个节点组;
根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。
本申请实施例提供的分布式存储集群并发升级方法,获取分布式存储集群中各个节点对应的节点标签集合,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵,保证了生成各业务和各服务对应的标签矩阵的准确性,从而可以从全局获取到各业务和各服务分别对应的各节点以及各业务和各服务分别对应的服务阈值。进而便于在各个节点进行并发升级时考虑到各业务和各服务分别对应的服务阈值。然后,获取各节点对应的存储池,根据各节点对应的存储池对各节点进行分组,生成多个节点组,保证了生成的各个节点组的准确性。根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。上述方法,在对各个节点进行并发升级时,在考虑到各个节点对应的存储池以及各个节点对应的各个业务和服务的同时,从分布式存储系统包括的全部节点中确定可以并发升级的节点,而不是简单的对各个节点进行排序。因此,不仅可以保证并发升级的各个节点满足存储池的要求以及各个业务和服务的服务阈值,还可以保证每次并发升级的节点数量最多,从而减少并发升级的次数,提高并发升级的效率。
在一种可选的实施方式中,获取分布式存储集群中各个节点对应的节点标签集合,包括:
获取各节点在分布式存储集群内所承载的业务和服务;
根据各节点所承载的业务和服务,对各节点打上服务或者业务对应的标签,生成各节点对应的节点标签集合,其中,一种服务或者业务对应一个标签。
本申请实施例提供的分布式存储集群并发升级方法,获取各节点在分布式存储集群内所承载的业务和服务;根据各节点所承载的业务和服务,对各节点打上服务或者业务对应的标签,生成各节点对应的节点标签集合,保证了生成的各节点对应的节点标签集合的准确性,进而可以保证根据各节点对应的节点标签集合,生成的各业务和各服务对应的标签矩阵的准确性。
在一种可选的实施方式中,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵,包括:
根据各节点对应的节点标签集合,确定各服务和各业务对应的各节点,并获取各服务和各业务对应的服务阈值;
根据各服务和各业务对应的各节点,以及各服务和各业务对应的服务阈值,生成各业务和各服务对应的标签矩阵。
本申请实施例提供的分布式存储集群并发升级方法,根据各节点对应的节点标签集合,确定各服务和各业务对应的各节点,并获取各服务和各业务对应的服务阈值;根据各服务和各业务对应的各节点,以及各服务和各业务对应的服务阈值,生成各业务和各服务对应的标签矩阵,保证了生成的标签矩阵的准确性,进而可以保证根据各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级的准确性,保证了并发升级的各个节点满足对应的业务和服务对应的服务阈值。
在一种可选的实施方式中,根据各节点对应的存储池对各节点进行分组,生成多个节点组,包括:
将单个存储池中包括的各节点分为一个节点组;
若分布式存储集群中存在不属于各存储池的节点,则将不属于各存储池的节点划分至同一个节点组。
本申请实施例提供的分布式存储集群并发升级方法,将单个存储池中包括的各节点分为一个节点组;若分布式存储集群中存在不属于各存储池的节点,则将不属于各存储池的节点划分至同一个节点组,从而可以减少各个节点组中包括的节点之间的关系,保证对各个节点进行并发升级时,只需要满足一个存储池的故障域即可,不需要考虑满足多个存储池的故障域,因此,可以提高对各个节点进行并发升级的效率。
在一种可选的实施方式中,根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级,包括:
从各节点组中确定第一目标节点组;
根据各节点对应的节点标签集合,从第一目标节点组中,确定第一目标节点;
根据各业务和各服务对应的标签矩阵,从分布式存储集群中除第一目标节点之外的全部其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点;全部其他节点包括第一目标节点组中的除第一目标节点之外的第一其他节点和除第一目标节点组之外的各其他节点组中包括的第二其他节点;
对第一目标节点和目标第一批次节点进行并发升级;
从第一目标节点组中确定第二目标节点;
根据第二目标节点,确定与第二目标节点同一批次升级的目标第二批次节点;
如此循环,直至第一目标节点组中的全部升级完毕,从除第一目标节点组的各节点组中确定第二目标节点组;直至全部节点升级完毕。
本申请实施例提供的分布式存储集群并发升级方法,从各节点组中确定第一目标节点组,根据各节点对应的节点标签集合,从第一目标节点组中,确定第一目标节点。根据各业务和各服务对应的标签矩阵,从分布式存储集群中除第一目标节点之外的全部其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点,从而可以保证确定的与第一目标节点同一批次升级的目标第一批次节点满足存储池的故障域要求,并满足各业务和各服务对应的服务阈值。对第一目标节点和目标第一批次节点进行并发升级;从第一目标节点组中确定第二目标节点;根据第二目标节点,确定与第二目标节点同一批次升级的目标第二批次节点;如此循环,直至第一目标节点组中的全部升级完毕,从除第一目标节点组的各节点组中确定第二目标节点组;直至全部节点升级完毕。上述方法,在对各个节点进行并发升级时,在考虑到各个节点对应的存储池以及各个节点对应的各个业务和服务的同时,从分布式存储系统包括的全部节点中确定可以并发升级的节点,而不是简单的对各个节点进行排序。因此,不仅可以保证并发升级的各个节点满足存储池的要求以及各个业务和服务的服务阈值,还可以保证每次并发升级的节点数量最多,从而减少并发升级的次数,提高并发升级的效率。
在一种可选的实施方式中,从各节点组中确定第一目标节点组,包括:
将各节点组中的各节点进行对比,确定完全独立的节点组作为第一候选节点组;其中,第一候选节点组中的各节点与其他节点组无交集,即其他节点组中不包含第一候选节点组内的任何一个节点;
根据第一候选节点组,确定第一目标节点组。
本申请实施例提供的分布式存储集群并发升级方法,将各节点组中的各节点进行对比,确定完全独立的节点组作为第一候选节点组;根据第一候选节点组,确定第一目标节点组,从而可以保证在对第一目标节点组中的节点进行并发升级时,不会对其他节点组的存储池故障域产生影响。
在一种可选的实施方式中,根据第一候选节点组,确定第一目标节点组,包括:
当第一候选节点组的数量等于1时,将第一候选节点组确定为第一目标节点组;
当第一候选节点组的数量大于1时,获取各第一候选节点组对应的存储池的故障域;
从各第一候选节点组中确定存储池的故障域最小的第一候选节点组为第二候选节点组;
根据第二候选节点组,确定第一目标节点组。
本申请实施例提供的分布式存储集群并发升级方法,当第一候选节点组的数量等于1时,将第一候选节点组确定为第一目标节点组,保证了在第一目标节点组中的节点进行并发升级时,不会对其他节点组的存储池故障域产生影响。当第一候选节点组的数量大于1时,获取各第一候选节点组对应的存储池的故障域;从各第一候选节点组中确定存储池的故障域最小的第一候选节点组为第二候选节点组;从而可以保证第二候选节点组中的节点在进行并发升级时,不会影响第二候选节点组对应的存储池的故障域。根据第二候选节点组,确定第一目标节点组,从而可以保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响。
在一种可选的实施方式中,根据第二候选节点组,确定第一目标节点组,包括:
当第二候选节点组的数量等于1时,将第二候选节点组确定为第一目标节点组;
当第二候选节点组的数量大于1时,获取各第二候选节点组中节点数量;
从各第二候选节点组中确定节点数量最少的第二候选节点组为第三候选节点组;
根据第三候选节点组,确定第一目标节点组。
本申请实施例提供的分布式存储集群并发升级方法,当第二候选节点组的数量等于1时,将第二候选节点组确定为第一目标节点组,从而可以保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响。当第二候选节点组的数量大于1时,获取各第二候选节点组中节点数量;从各第二候选节点组中确定节点数量最少的第二候选节点组为第三候选节点组。根据第三候选节点组,确定第一目标节点组。由于节点数最小表示该组内节点可以在最短时间升级完,从而可以降低对其他节点组的升级的影响尤其对那些和其他节点组存在节点复用关系的节点组。从而保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响,且第一目标节点组中的各节点可以在最短时间完成升级,从而可以减少对其他节点组的升级的影响尤其对那些和第一目标节点组存在节点复用关系的节点组。
在一种可选的实施方式中,根据第三候选节点组,确定第一目标节点组,包括:
当第三候选节点组的数量等于1时,将第三候选节点组确定为第一目标节点组;
当第三候选节点组的数量大于1时,获取各第三候选节点组中节点标签种类;
从各第三候选节点组中确定节点标签种类最多的第三候选节点组为第四候选节点组;
根据第四候选节点组,确定第一目标节点组。
本申请实施例提供的分布式存储集群并发升级方法,当第三候选节点组的数量等于1时,将第三候选节点组确定为第一目标节点组;当第三候选节点组的数量大于1时,获取各第三候选节点组中节点标签种类;从各第三候选节点组中确定节点标签种类最多的第三候选节点组为第四候选节点组。节点标签种类最多预示着第四候选节点组中的各节点更复杂,升级第四候选节点组中的各节点所要满足的条件就越多(需要满足所有标签对应的服务和业务的服务阈值时才能升级)。优先将第四候选节点组中的各节点放到前面升级,可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。根据第四候选节点组,确定第一目标节点组,从而保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响,且第一目标节点组中的各节点可以在最短时间完成升级,从而可以减少对其他节点组的升级的影响尤其对那些和第一目标节点组存在节点复用关系的节点组。此外,还可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
在一种可选的实施方式中,根据第四候选节点组,确定第一目标节点组,包括:
当第四候选节点组的数量等于1时,将第四候选节点组确定为第一目标节点组;
当第四候选节点组的数量大于1时,从各第四候选节点组中随机选择一个第四候选节点组确定为第一目标节点组。
本申请实施例提供的分布式存储集群并发升级方法,当第四候选节点组的数量等于1时,将第四候选节点组确定为第一目标节点组;当第四候选节点组的数量大于1时,从各第四候选节点组中随机选择一个第四候选节点组确定为第一目标节点组。从而保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响,且第一目标节点组中的各节点可以在最短时间完成升级,从而可以减少对其他节点组的升级的影响尤其对那些和第一目标节点组存在节点复用关系的节点组。此外,还可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
在一种可选的实施方式中,根据各节点对应的节点标签集合,从第一目标节点组中,确定第一目标节点,包括:
根据各节点对应的节点标签集合,从第一目标节点组中确定各节点标签集合中标签最多的节点为第一候选目标节点;
根据第一候选目标节点,确定第一目标节点。
本申请实施例提供的分布式存储集群并发升级方法,根据各节点对应的节点标签集合,从第一目标节点组中确定各节点标签集合中标签最多的节点为第一候选目标节点;节点标签种类最多预示着第一候选节点更复杂,升级第一候选节点所要满足的条件就越多(需要满足所有标签对应的服务和业务的服务阈值时才能升级)。根据第一候选目标节点,确定第一目标节点,可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
在一种可选的实施方式中,根据第一候选目标节点,确定第一目标节点,包括:
当第一候选目标节点的数量等于1时,将第一候选目标节点,确定为第一目标节点;
当第一候选目标节点的数量大于1时,确定各第一候选目标节点对应的节点标签集合;
根据各第一候选目标节点对应的节点标签集合,从中选择与其他各第一候选目标节点相同标签最多的一个第一候选目标节点为第一目标节点。
本申请实施例提供的分布式存储集群并发升级方法,当第一候选目标节点的数量等于1时,将第一候选目标节点,确定为第一目标节点;可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。当第一候选目标节点的数量大于1时,确定各第一候选目标节点对应的节点标签集合;根据各第一候选目标节点对应的节点标签集合,从中选择与其他各第一候选目标节点相同标签最多的一个第一候选目标节点为第一目标节点。保证了确定的第一目标节点的准确性,进而可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
在一种可选的实施方式中,根据各业务和各服务对应的标签矩阵,从分布式存储集群中除第一目标节点之外的全部其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点,包括:
获取第一目标节点组对应的存储池的故障域以及第一目标节点对应的各目标业务和目标服务;
根据各业务和各服务对应的标签矩阵,确定各目标业务和目标服务分别对应的服务阈值;
根据第一目标节点组对应的存储池的故障域,以及各目标业务和目标服务分别对应的服务阈值,从第一其他节点中确定满足第一目标节点组对应的存储池的故障域以及各目标业务和目标服务分别对应的服务阈值的目标第一批次节点;
根据第一目标节点以及各业务和各服务对应的标签矩阵,从各第二其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点。
本申请实施例提供的分布式存储集群并发升级方法,获取第一目标节点组对应的存储池的故障域以及第一目标节点对应的各目标业务和目标服务;根据各业务和各服务对应的标签矩阵,确定各目标业务和目标服务分别对应的服务阈值;根据第一目标节点组对应的存储池的故障域,以及各目标业务和目标服务分别对应的服务阈值,从第一其他节点中确定满足第一目标节点组对应的存储池的故障域以及各目标业务和目标服务分别对应的服务阈值的目标第一批次节点。保证了从各第一其他节点中确定的目标第一批次节点满足对应的存储池的故障域要求,且满足对应的业务和服务对应的服务阈值的要求。根据第一目标节点以及各业务和各服务对应的标签矩阵,从各第二其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点;保证了从各第二其他节点中确定的目标第一批次节点满足对应的存储池的故障域要求,且满足对应的业务和服务对应的服务阈值的要求。
在一种可选的实施方式中,根据第一目标节点以及各业务和各服务对应的标签矩阵,从各第二其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点,包括:
根据各目标业务和各目标服务对应的服务阈值,从各第二其他节点中,确定满足各目标业务和目标服务分别对应的服务阈值的第一候选第一批次节点;
根据各第一候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
本申请实施例提供的分布式存储集群并发升级方法,根据各目标业务和各目标服务对应的服务阈值,从各第二其他节点中,确定满足各目标业务和目标服务分别对应的服务阈值的第一候选第一批次节点;根据各第一候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。保证了确定的第一目标节点同一批次升级的目标第一批次节点满足各目标业务和目标服务分别对应的服务阈值。
在一种可选的实施方式中,根据各第一候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点,包括:
获取各第一候选第一批次节点对应的存储池的故障域;
检测各第一候选第一批次节点是否满足各第一候选第一批次节点对应的存储池的故障域;
针对同一存储池中不满足对应的存储池的故障域的各第一候选第一批次节点,根据存储池对应的故障域优先删除标签种类最少的第一候选第一批次节点,得到第二候选第一批次节点,以使各第二候选第一批次节点满足对应的存储池的故障域;
根据各第二候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
本申请实施例提供的分布式存储集群并发升级方法,获取各第一候选第一批次节点对应的存储池的故障域;检测各第一候选第一批次节点是否满足各第一候选第一批次节点对应的存储池的故障域;针对同一存储池中不满足对应的存储池的故障域的各第一候选第一批次节点,根据存储池对应的故障域优先删除标签种类最少的第一候选第一批次节点,得到第二候选第一批次节点,以使各第二候选第一批次节点满足对应的存储池的故障域;根据各第二候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。从而保证了确定的与第一目标节点同一批次升级的目标第一批次节点满足对应的存储池的故障域。
在一种可选的实施方式中,根据各第二候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点,包括:
当各第二候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第二候选第一批次节点,确定为目标第一批次节点;
当各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与第一其他节点具有最多相同标签的各第二候选第一批次节点,得到第三候选第一批次节点;
根据各第三候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
本申请实施例提供的分布式存储集群并发升级方法,当各第二候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第二候选第一批次节点,确定为目标第一批次节点;当各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与第一其他节点具有最多相同标签的各第二候选第一批次节点,得到第三候选第一批次节点;根据各第三候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。从而保证了确定的与第一目标节点同一批次升级的目标第一批次节点不仅满足对应的服务和业务对应的服务阈值,且满足对应的存储池的故障域,还可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
在一种可选的实施方式中,根据各第三候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点,包括:
当各第三候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第三候选第一批次节点,确定为目标第一批次节点;
当各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与各第一其他节点不能并发升级的各第三候选第一批次节点,得到目标第一批次节点。
本申请实施例提供的分布式存储集群并发升级方法,当各第三候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第三候选第一批次节点,确定为目标第一批次节点;当各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与各第一其他节点不能并发升级的各第三候选第一批次节点,得到目标第一批次节点。从而保证了确定的与第一目标节点同一批次升级的目标第一批次节点不仅满足对应的服务和业务对应的服务阈值,且满足对应的存储池的故障域,还可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
第二方面,本发明提供了一种分布式存储集群并发升级装置,装置包括:
第一获取模块,用于获取分布式存储集群中各个节点对应的节点标签集合,节点标签集合用于表征各节点在分布式存储集群内所承载的业务和服务;
第一生成模块,用于根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵;
第二获取模块,用于获取各节点对应的存储池,
第二生成模块,用于根据各节点对应的存储池对各节点进行分组,生成多个节点组;
并发升级模块,用于根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。
本申请实施例提供的分布式存储集群并发升级装置,获取分布式存储集群中各个节点对应的节点标签集合,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵,保证了生成各业务和各服务对应的标签矩阵的准确性,从而可以从全局获取到各业务和各服务分别对应的各节点以及各业务和各服务分别对应的服务阈值。进而便于在各个节点进行并发升级时考虑到各业务和各服务分别对应的服务阈值。然后,获取各节点对应的存储池,根据各节点对应的存储池对各节点进行分组,生成多个节点组,保证了生成的各个节点组的准确性。根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。上述装置,在对各个节点进行并发升级时,在考虑到各个节点对应的存储池以及各个节点对应的各个业务和服务的同时,从分布式存储系统包括的全部节点中确定可以并发升级的节点,而不是简单的对各个节点进行排序。因此,不仅可以保证并发升级的各个节点满足存储池的要求以及各个业务和服务的服务阈值,还可以保证每次并发升级的节点数量最多,从而减少并发升级的次数,提高并发升级的效率。
第三方面,本发明提供了一种服务器,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的分布式存储集群并发升级方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的分布式存储集群并发升级方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的分布式存储集群并发升级方法的流程示意图;
图2是根据本发明实施例的另一分布式存储集群并发升级方法的流程示意图;
图3是根据本发明实施例的又一分布式存储集群并发升级方法的流程示意图;
图4是根据本发明实施例的分布式存储集群并发升级装置的结构框图;
图5是本发明实施例的服务器的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一个分布式存储集群上线后,为修复漏洞、增强性能亦或者体验新版本特性需要定期的对分布式存储集群的存储系统进行升级,为保证升级过程不影响分布式存储集群的正常业务,只能选择在线升级方式。
目前部分厂商的分布式存储集群的在线升级方式仍是串行方式或者是基于冒泡算法实现了节点间的并发升级。
上述冒泡算法仅适用于在服务以及故障域分布比较均匀和规则的情况,对于部署比较复杂的场景,冒泡算法只是针对各个节点进行简单对比,然后采用排序的方式对各个待升级节点进行升级,因此,花费时间较长,且升级效率较低,因此,可能会影响分布式存储集群的正常工作。例如下面的场景:
集群节点:n1,n2,n3,n4。
存储池:
f1:n1,n2;
f2:n3,n4。
服务:
d1:n2,n4;阈值:1;
d2:n1,n2,n3,n4:阈值:3;
d3:n1,n3,n4;阈值:2;
d4:n1,n2,n3;阈值:2。
则节点的权值和权类关系如下:
n1:(f1,1)(d2,3)(d3,2)(d4,2);
n2:(f1,1)(d1,1)(d2,3)(d4,2);
n3:(f2,1)(d2,3)(d3,2)(d4,2);
n4:(f2,1)(d1,1)(d2,3)(d3,2)。
说明:f1,f2权类:表示底层故障域,他们对应的权值是1
d1,d2,d3,d4权类:表示三种服务,这三种服务的权值分别为1,3,2,2
上述场景下,按照冒泡算法其升级控制过程如下:因为不存在权类完全不相同的节点,因此默认选择n1(节点名排序靠前)作为首个升级节点。于是将f1,d2,d3,d4的权值进行减一后n2的f1权值为零,n3,n4节点的权值全不为零,因此选择n3与n1进行并发升级(n3,n4的权类个数相同,但n3的节点名排序靠前)。n3确定后将n3相关的权类进行减一,n2,n4均存在权值为零的权类(n2的f1,d4、n4的f2,d3)因此n2,n4均无法与n1、n3进行并发升级。等到n1,n3升级完成后,他们对应权类的权值恢复,随机选择n2(与n4权类个数一致但节点名排序靠前)升级,将n2相关权类的权值减一,n4存在权类的权值为零(d1),因此n2,n4不能并发升级。最终此种场景下n1,n2,n3,n4的升级顺序为n1,n3→n2→n4需要经过三级顺序才能升级完成,以每个节点升级耗时10分钟计算,此种场景下升级总计需要30分钟。
但从存储池的角度观察,其实该集群还有更短升级顺序即n1,n4→n2,n3两级即可完成升级,升级总耗时为20分钟。因此,上述冒泡算法花费时间较长,且升级效率较低,因此,可能会影响分布式存储集群的正常工作。
根据本发明实施例,提供了一种分布式存储集群并发升级方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
需要说明的是,本申请实施例提供的分布式存储集群并发升级的方法,其执行主体可以是分布式存储集群并发升级的装置,该分布式存储集群并发升级的装置可以通过软件、硬件或者软硬件结合的方式实现成为电子设备的部分或者全部,其中,该电子设备可以是服务器,该服务器可以是分布式存储集群中的任一服务器。下述方法实施例中,均以执行主体是服务器为例来进行说明。
在本实施例中提供了一种分布式存储集群并发升级方法,可用于上述的服务器,图1是根据本发明实施例的分布式存储集群并发升级方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取分布式存储集群中各个节点对应的节点标签集合。
其中,节点标签集合用于表征各节点在分布式存储集群内所承载的业务和服务。
具体地,服务器可以接收用户输入的分布式存储集群中各个节点对应的节点标签集合;服务器还可以接收其他设备发送的分布式存储集群中各个节点对应的节点标签集合;服务器还可以生成分布式存储集群中各个节点对应的节点标签集合,本申请实施例对服务器获取到分布式存储集群中各个节点对应的节点标签集合的方式不做具体限定。
关于该步骤将在下文进行详细介绍。
步骤S102,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵。
其中,标签矩阵用于表示各业务和各服务分别对应的各节点以及各业务和各服务分别对应的服务阈值;服务阈值用于表征保证服务或者业务可正常工作的最小节点个数。
具体地,服务器可以对各节点对应的节点标签集合进行识别,然后根据识别结果,生成各业务和各服务对应的标签矩阵。
关于该步骤将在下文进行详细介绍。
步骤S103,获取各节点对应的存储池。
具体地,服务器可以根据各节点所在的存储池,获取各节点对应的存储池。
步骤S104,根据各节点对应的存储池对各节点进行分组,生成多个节点组。
具体地,服务器可以根据各节点对应的存储池,对各节点进行分组,生成多个节点组。
关于该步骤将在下文进行详细介绍。
步骤S105,根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。
具体地,在对各节点进行分组之后,服务器可以根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,保证在各节点满足各业务和各服务对应的服务阈值,并满足对应的存储池对应的故障域的要求下,对各节点组中的各节点进行并发升级。
本实施例提供的分布式存储集群并发升级方法,获取分布式存储集群中各个节点对应的节点标签集合,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵,保证了生成各业务和各服务对应的标签矩阵的准确性,从而可以从全局获取到各业务和各服务分别对应的各节点以及各业务和各服务分别对应的服务阈值。进而便于在各个节点进行并发升级时考虑到各业务和各服务分别对应的服务阈值。然后,获取各节点对应的存储池,根据各节点对应的存储池对各节点进行分组,生成多个节点组,保证了生成的各个节点组的准确性。根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。上述方法,在对各个节点进行并发升级时,在考虑到各个节点对应的存储池以及各个节点对应的各个业务和服务的同时,从分布式存储系统包括的全部节点中确定可以并发升级的节点,而不是简单的对各个节点进行排序。因此,不仅可以保证并发升级的各个节点满足存储池的要求以及各个业务和服务的服务阈值,还可以保证每次并发升级的节点数量最多,从而减少并发升级的次数,提高并发升级的效率。
在本实施例中提供了一种分布式存储集群并发升级方法,可用于上述的分布式存储集群中的服务器,图2是根据本发明实施例的分布式存储集群并发升级方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取分布式存储集群中各个节点对应的节点标签集合。
其中,节点标签集合用于表征各节点在分布式存储集群内所承载的业务和服务。
具体地,上述步骤S201,可以包括如下步骤:
步骤S2011,获取各节点在分布式存储集群内所承载的业务和服务。
具体地,服务器可以对各节点在分布式存储集群内所承载的业务和服务进行识别,获取各节点在分布式存储集群内所承载的业务和服务;服务器还可以接收用户输入的各节点在分布式存储集群内所承载的业务和服务;服务器还可以接收其他设备发送的各节点在分布式存储集群内所承载的业务和服务。
本申请实施例对服务器获取到各节点在分布式存储集群内所承载的业务和服务的方式不做具体限定。
步骤S2012,根据各节点所承载的业务和服务,对各节点打上服务或者业务对应的标签,生成各节点对应的节点标签集合。
其中,一种服务或者业务对应一个标签。
具体地,服务器在获取到各节点在分布式存储集群内所承载的业务和服务之后,针对每一种服务或者业务,在各节点打上各服务或者业务对应的标签,从而生成各节点对应的节点标签集合。
步骤S202,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵。
其中,标签矩阵用于表示各业务和各服务分别对应的各节点以及各业务和各服务分别对应的服务阈值;服务阈值用于表征保证服务或者业务可正常工作的最小节点个数。
具体地,上述步骤S202,可以包括如下步骤:
步骤S2021,根据各节点对应的节点标签集合,确定各服务和各业务对应的各节点,并获取各服务和各业务对应的服务阈值。
具体地,服务器可以对各节点对应的节点标签集合进行识别,根据识别结果首先从节点标签集合中提取出各服务和各业务,然后根据识别结果确定各服务和各业务对应的节点。
服务器还可以接收用户输入的各服务和各业务对应的服务阈值,也可以接收其他设备发送的各服务和各业务对应的服务阈值,服务器还可以对各服务和各业务进行识别,确定各服务和各业务对应的服务阈值。本申请实施例对服务器获取各服务和各业务对应的服务阈值的方式不做具体限定。
步骤S2022,根据各服务和各业务对应的各节点,以及各服务和各业务对应的服务阈值,生成各业务和各服务对应的标签矩阵。
具体地,在获取到各服务和各业务对应的各节点,以及各服务和各业务对应的服务阈值之后,服务器可以将各服务和各业务对应的各节点,以及各服务和各业务对应的服务阈进行组合,生成各业务和各服务对应的标签矩阵。
示例性的,分布式存储集群中包括节点:n1,n2,n3,n4。
存储池:
f1:n1,n2;
f2:n3,n4。
服务和业务:
d1:n2,n4;阈值:1;
d2:n1,n2,n3,n4:阈值:3;
d3:n1,n3,n4;阈值:2;
d4:n1,n2,n3;阈值:2。
从存储池及服务和业务的角度划分节点如下:
节点标签集合:
n1:d2,d3,d4;
n2:d1,d2,d4;
n3:d2,d3,d4;
n4:d1,d2,d3。
标签矩阵:
d1:n2,n4;阈值:1;
d2:n1,n2,n3,n4:阈值:3;
d3:n1,n3,n4;阈值:2;
d4:n1,n2,n3;阈值:2。
步骤S203,获取各节点对应的存储池。
关于该步骤请参见图1实施例对步骤S103的介绍,在此不进行赘述。
步骤S204,根据各节点对应的存储池对各节点进行分组,生成多个节点组。
具体地,上述步骤S204,可以包括如下步骤:
步骤S2041,将单个存储池中包括的各节点分为一个节点组。
步骤S2042,若分布式存储集群中存在不属于各存储池的节点,则将不属于各存储池的节点划分至同一个节点组。
具体地,服务器可以获取各存储池中包括的各节点,按照存储池进行划分,将单个存储池中包括各节点分为一个节点组。
然后,服务器确定分布式存储集群中的各节点是否都分组完毕,当存在不属于各个存储池的节点时,服务器将不属于各存储池的节点划分至同一个节点组。
示例性的,存储池f1中包括节点n1,n2,则将存储池f1中的n1,n2节点分为一组;存储池f2中包括节点n2,n3,n4,则将存储池f2中的n2,n3,n4节点分为一组。然后,将不属于各存储池的节点分为一组。
步骤S205,根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。
关于该步骤请参见图1实施例对步骤S105的介绍,在此不进行赘述。
本实施例提供的分布式存储集群并发升级方法,获取各节点在分布式存储集群内所承载的业务和服务;根据各节点所承载的业务和服务,对各节点打上服务或者业务对应的标签,生成各节点对应的节点标签集合,保证了生成的各节点对应的节点标签集合的准确性,进而可以保证根据各节点对应的节点标签集合,生成的各业务和各服务对应的标签矩阵的准确性。
然后,根据各节点对应的节点标签集合,确定各服务和各业务对应的各节点,并获取各服务和各业务对应的服务阈值;根据各服务和各业务对应的各节点,以及各服务和各业务对应的服务阈值,生成各业务和各服务对应的标签矩阵,保证了生成的标签矩阵的准确性,进而可以保证根据各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级的准确性,保证了并发升级的各个节点满足对应的业务和服务对应的服务阈值。
将单个存储池中包括的各节点分为一个节点组;若分布式存储集群中存在不属于各存储池的节点,则将不属于各存储池的节点划分至同一个节点组,从而可以减少各个节点组中包括的节点之间的关系,保证对各个节点进行并发升级时,只需要满足一个存储池的故障域即可,不需要考虑满足多个存储池的故障域,因此,可以提高对各个节点进行并发升级的效率。
在本实施例中提供了一种分布式存储集群并发升级方法,可用于上述的分布式存储集群中的服务器,图3是根据本发明实施例的分布式存储集群并发升级方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,获取分布式存储集群中各个节点对应的节点标签集合。
其中,节点标签集合用于表征各节点在分布式存储集群内所承载的业务和服务;
关于该步骤请参见图2实施例对步骤S201的介绍,在此不进行赘述。
步骤S302,根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵。
其中,标签矩阵用于表示各业务和各服务分别对应的各节点以及各业务和各服务分别对应的服务阈值;服务阈值用于表征保证服务或者业务可正常工作的最小节点个数。
关于该步骤请参见图2实施例对步骤S202的介绍,在此不进行赘述。
步骤S303,获取各节点对应的存储池。
关于该步骤请参见图2实施例对步骤S203的介绍,在此不进行赘述。
步骤S304,根据各节点对应的存储池对各节点进行分组,生成多个节点组。
关于该步骤请参见图2实施例对步骤S204的介绍,在此不进行赘述。
步骤S305,根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。
具体地,上述步骤S305,可以包括如下步骤:
步骤S3051,从各节点组中确定第一目标节点组。
可选的,服务器可以从各节点组中确定节点数量最少的节点组为第一目标节点组。
在本申请一种可选的实施方式中,上述步骤S3051,可以包括如下步骤:
步骤a1,将各节点组中的各节点进行对比,确定完全独立的节点组作为第一候选节点组。
其中,第一候选节点组中的各节点与其他节点组无交集,即其他节点组中不包含第一候选节点组内的任何一个节点。
具体地,服务器可以将各节点组中的各节点进行对比,将同时属于至少两个节点组的节点所在的节点组删除,只保留完全独立的节点组,并将完全独立的节点组确定为第一候选节点组。
示例性的,第一节点组中包括n1和n2;第二节点组中包括节点n2、n3和n4;第三节点组中包括n5和n6。服务器将各节点组中的各节点进行对比,n2节点同时属于第一节点组和第二节点组,因此将n2节点所在的第一节点组和第二节点组删除。第三节点组中包括n5和n6;n5和n6只属于第三节点组,与其他节点组无交集,因此,第三节点组属于完全独立的节点组,服务器将第三节点组确定为第一候选节点组。
步骤a2,根据第一候选节点组,确定第一目标节点组。
在本申请一种可选的实施方式中,上述步骤a2,可以包括如下步骤:
步骤a21,当第一候选节点组的数量等于1时,将第一候选节点组确定为第一目标节点组。
步骤a22,当第一候选节点组的数量大于1时,获取各第一候选节点组对应的存储池的故障域。
具体地,由上述实施方式可知,服务器根据各节点对应的存储池,将单个存储池中的各节点分为一组,因此,存储池的故障域相当于各节点组的故障域,因此服务器需要获取各存储池的故障域。
可选的,当第一候选节点组的数量大于1时,服务器可以对各存储池进行识别,获取各第一候选节点组对应的存储池的故障域;服务器还可以接收用户输入的各第一候选节点组对应的存储池的故障域;服务器还可以接收其他设备发送的各第一候选节点组对应的存储池的故障域。本申请实施例对服务器获取各第一候选节点组对应的存储池的故障域的方式不做具体限定。
步骤a23,从各第一候选节点组中确定存储池的故障域最小的第一候选节点组为第二候选节点组。
具体地,服务器在获取到各第一候选节点组对应的存储池的故障域之后,可以将各第一候选节点组对应的存储池的故障域进行对比,从中确定存储池的故障域最小的第一候选节点组为第二候选节点组。
步骤a24,根据第二候选节点组,确定第一目标节点组。
在本申请一种可选的实施方式中,上述步骤a24,可以包括如下步骤:
步骤a241,当第二候选节点组的数量等于1时,将第二候选节点组确定为第一目标节点组。
步骤a242,当第二候选节点组的数量大于1时,获取各第二候选节点组中节点数量。
具体地,当第二候选节点组的数量大于1时,服务器可以对各第二候选节点组中的各节点进行识别,确定各第二候选节点组中节点数量。
步骤a243,从各第二候选节点组中确定节点数量最少的第二候选节点组为第三候选节点组。
具体地,服务器将各第二候选节点组对应的节点数量进行对比,从第二候选节点组中确定节点数量最少的第二候选节点组为第三候选节点组。
步骤a244,根据第三候选节点组,确定第一目标节点组。
在本申请一种可选的实施方式中,上述步骤a244,可以包括如下步骤:
步骤a2441,当第三候选节点组的数量等于1时,将第三候选节点组确定为第一目标节点组。
步骤a2442,当第三候选节点组的数量大于1时,获取各第三候选节点组中节点标签种类。
具体地,当第三候选节点组的数量大于1时,服务器可以对各第三候选节点组中各节点对应的节点标签集合进行识别,确定各第三候选节点组对应的节点标签种类。
步骤a2443,从各第三候选节点组中确定节点标签种类最多的第三候选节点组为第四候选节点组。
具体地,服务器将各第三候选节点组对应的节点标签种类进行对比,从各第三候选节点组中确定节点标签种类最多的第三候选节点组为第四候选节点组。
示例性的,第三候选节点组A中包括节点n1和n2,n1的节点标签为d2,d3,d4;n2的节点标签为d1,d2,d4;因此,第三候选节点组A对应的节点标签种类为d1,d2,d3,d4。第三候选节点组B中包括节点n3和n4,n3的节点标签为d2,d3,d4,d5;n4的节点标签为d1,d4;因此,第三候选节点组B对应的节点标签种类为d1,d2,d3,d4,d5。服务器将第三候选节点组A对应的节点标签种类与第三候选节点组B对应的节点标签种类进行对比,确定第三候选节点组B为第四候选节点组。
步骤a2444,根据第四候选节点组,确定第一目标节点组。
在本申请一种可选的实施方式中,上述步骤a2444,可以包括如下步骤:
步骤a24441,当第四候选节点组的数量等于1时,将第四候选节点组确定为第一目标节点组。
步骤a24442,当第四候选节点组的数量大于1时,从各第四候选节点组中随机选择一个第四候选节点组确定为第一目标节点组。
具体地,当述第四候选节点组的数量等于1时,将第四候选节点组确定为第一目标节点组;当第四候选节点组的数量大于1时,从各第四候选节点组中随机选择一个第四候选节点组确定为第一目标节点组。
步骤S3052,根据各节点对应的节点标签集合,从第一目标节点组中,确定第一目标节点。
在本申请一种可选的实施方式中,上述步骤S3052,可以包括如下步骤:
步骤b1,根据各节点对应的节点标签集合,从第一目标节点组中确定各节点标签集合中标签最多的节点为第一候选目标节点。
具体地,在确定了第一目标节点组之后,服务器可以对第一目标节点组中各节点对应的节点标签集合进行识别,确定第一目标节点组中各节点对应的标签数量,从中确定各节点标签集合中标签最多的节点为第一候选目标节点。
步骤b2,根据第一候选目标节点,确定第一目标节点。
在本申请一种可选的实施方式中,上述步骤b2,可以包括如下步骤:
步骤b21,当第一候选目标节点的数量等于1时,将第一候选目标节点,确定为第一目标节点。
具体地,当第一候选目标节点的数量等于1时,将第一候选目标节点,确定为第一目标节点。
步骤b22,当第一候选目标节点的数量大于1时,确定各第一候选目标节点对应的节点标签集合;
步骤b23,根据各第一候选目标节点对应的节点标签集合,从中选择与其他各第一候选目标节点相同标签最多的一个第一候选目标节点为第一目标节点。
具体地,当第一候选目标节点的数量大于1时,服务器可以识别各第一候选目标节点对应的节点标签集合。然后,将各第一候选目标节点对应的节点标签集合进行对比,从中选择与其他各第一候选目标节点相同标签最多的一个第一候选目标节点为第一目标节点。
示例性的,假设第一候选目标节点n1的节点标签集合为d2,d3,d4;第一候选目标节点n2的节点标签集合为d1,d2,d4;第一候选目标节点n3的节点标签集合为d3,d4,d8;第一候选目标节点n4的节点标签集合为d5,d6,d7。服务器将第一候选目标节点n1、第一候选目标节点n2、第一候选目标节点n3以及第一候选目标节点n4的节点标签集合进行对比,确定第一候选目标节点n1与第一候选目标节点n2、第一候选目标节点n3、第一候选目标节点n4对比有3个相同标签;同理,第一候选目标节点n2与第一候选目标节点n1、第一候选目标节点n3、第一候选目标节点n4对比有2个相同标签;第一候选目标节点n3与第一候选目标节点n1、第一候选目标节点n2、第一候选目标节点n4对比有2个相同标签;第一候选目标节点n4与第一候选目标节点n2、第一候选目标节点n3、第一候选目标节点n1对比有0个相同标签,服务器将第一候选目标节点n1,确定为第一目标节点。
步骤S3053,根据各业务和各服务对应的标签矩阵,从分布式存储集群中除第一目标节点之外的全部其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点。
其中,全部其他节点包括第一目标节点组中的除第一目标节点之外的第一其他节点和除第一目标节点组之外的各其他节点组中包括的第二其他节点。
在本申请一种可选的实施方式中,上述步骤S3053,可以包括如下步骤:
步骤c1,获取第一目标节点组对应的存储池的故障域以及第一目标节点对应的各目标业务和目标服务。
具体地,服务器可以对第一目标节点组对应的存储池进行识别,确定第一目标节点组对应的存储池的故障域,并对第一目标节点对应的节点标签集合进行识别,确定第一目标节点对应的各目标业务和目标服务。
步骤c2,根据各业务和各服务对应的标签矩阵,确定各目标业务和目标服务分别对应的服务阈值。
具体地,服务器从标签矩阵中查找到目标业务和目标服务,从而确定目标业务和目标服务分别对应的服务阈值。
步骤c3,根据第一目标节点组对应的存储池的故障域,以及各目标业务和目标服务分别对应的服务阈值,从第一其他节点中确定满足第一目标节点组对应的存储池的故障域以及各目标业务和目标服务分别对应的服务阈值的目标第一批次节点。
具体地,服务器可以根据第一目标节点组对应的存储池的故障域,确定第一目标节点组可最大执行并发的节点个数。
当可最大执行并发的节点个数等于1时,服务器确定第一目标节点组中只能有一个节点进行并发升级。因此,服务器确定不需要在第一其他节点中确定目标第一批次节点。
当可最大执行并发的节点个数大于1时,根据最大执行并发的节点个数,确定可以在第一其他节点中确定的目标第一批次节点的个数。
示例性的,假设最大执行并发的节点个数为2,则可以在第一其他节点中确定的目标第一批次节点的个数为1;假设最大执行并发的节点个数为3,则可以在第一其他节点中确定的目标第一批次节点的个数为2。
服务器根据各目标业务和目标服务分别对应的服务阈值以及最大执行并发的节点个,从第一其他节点中选择满足目标业务和目标服务分别对应的服务阈值的目标第一批次节点。
步骤c4,根据第一目标节点以及各业务和各服务对应的标签矩阵,从各第二其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点。
在本申请一种可选的实施方式中,上述步骤c4,可以包括如下步骤:
步骤c41,根据各目标业务和各目标服务对应的服务阈值,从各第二其他节点中,确定满足各目标业务和目标服务分别对应的服务阈值的第一候选第一批次节点。
具体地,服务器可以根据各目标业务和各目标服务对应的服务阈值,从各第二其他节点中,确定满足各目标业务和目标服务分别对应的服务阈值的第一候选第一批次节点。
步骤c42,根据各第一候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
在本申请一种可选的实施方式中,服务器可以将各第一候选第一批次节点,确定为与第一目标节点同一批次升级的目标第一批次节点。
在本申请一种可选的实施方式中,上述步骤c42,可以包括如下步骤:
步骤c421,获取各第一候选第一批次节点对应的存储池的故障域。
具体地,服务器可以对各第一候选第一批次节点对应的存储池的进行识别,确定各第一候选第一批次节点对应的存储池的故障域。
步骤c422,检测各第一候选第一批次节点是否满足各第一候选第一批次节点对应的存储池的故障域。
具体地,服务器可以根据各第一候选第一批次节点对应的存储池的故障域,检测各第一候选第一批次节点是否满足各第一候选第一批次节点对应的存储池的故障域。
步骤c423,针对同一存储池中不满足对应的存储池的故障域的各第一候选第一批次节点,根据存储池对应的故障域优先删除标签种类最少的第一候选第一批次节点,得到第二候选第一批次节点,以使各第二候选第一批次节点满足对应的存储池的故障域。
具体地,针对同一存储池中不满足对应的存储池的故障域的各第一候选第一批次节点,根据存储池对应的故障域优先删除标签种类最少的第一候选第一批次节点,得到第二候选第一批次节点,以使各第二候选第一批次节点满足对应的存储池的故障域。
示例性的,假设第一候选第一批次节点n7、n8和n9,属于同一存储池f1,存储池f1的故障域为2,且第一候选第一批次节点n7的标签种类为2种,第一候选第一批次节点n8的标签种类为3种,第一候选第一批次节点n9的标签种类为4种。当将第一候选第一批次节点n7、n8和n9均确定为第二候选第一批次节点,则不满足存储池f1的故障域。因此。针对同一存储池f1中不满足对应的存储池的故障域的第一候选第一批次节点n7、n8和n9,服务器根据存储池f1的故障域优先删除标签种类最少的第一候选第一批次节点n7,得到第二候选第一批次节点n8和n9,且使得第二候选第一批次节点n8和n9满足存储池f1的故障域。
步骤c424,根据各第二候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
可选的,服务器可以将各第二候选第一批次节点,确定为与第一目标节点同一批次升级的目标第一批次节点。
在本申请一种可选的实施方式中,上述步骤c424,可以包括如下步骤:
步骤c4241,当各第二候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第二候选第一批次节点,确定为目标第一批次节点。
具体地,服务器可以检测各第二候选第一批次节点是否满足与第一目标节点并发升级的预设条件。其中,预设条件可以是允许并发升级的最大节点数量,其中,允许并发升级的最大节点数量可以5,也可以是6,还可以是其他数值,本申请实施例对允许并发升级的最大节点数量不做具体限定。预设条件还可以是允许并发升级的占用的最大资源,其中资源可以是CPU资源,也可以是GPU资源,还可以是内存资源,本申请实施例对资源不做具体限定,此外,预设条件还可以是其他条件,本申请实施例对预设条件不做具体限定。
当各第二候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第二候选第一批次节点,确定为目标第一批次节点。
步骤c4242,当各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与第一其他节点具有最多相同标签的各第二候选第一批次节点,得到第三候选第一批次节点。
具体地,当各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与第一其他节点具有最多相同标签的各第二候选第一批次节点,得到第三候选第一批次节点。
示例性的,当第二候选第一批次节点加上第一目标节点之后,超过了允许并发升级的最大节点数量,因此服务器确定各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件;当服务器将第二候选第一批次节点与第一目标节点进行并发升级时,超过了允许并发升级的占用的最大资源,服务器确定各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件。
当各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与第一其他节点具有最多相同标签的各第二候选第一批次节点,得到第三候选第一批次节点。
步骤c4243,根据各第三候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
可选的,服务器可以将各第三候选第一批次节点,确定为与第一目标节点同一批次升级的目标第一批次节点。
在本申请一种可选的实施方式中,上述步骤c4243,可以包括如下步骤:
步骤c42431,当各第三候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第三候选第一批次节点,确定为目标第一批次节点。
具体地,服务器可以检测各第三候选第一批次节点是否满足与第一目标节点并发升级的预设条件。其中,预设条件可以是允许并发升级的最大节点数量,其中,允许并发升级的最大节点数量可以5,也可以是6,还可以是其他数值,本申请实施例对允许并发升级的最大节点数量不做具体限定。预设条件还可以是允许并发升级的占用的最大资源,其中资源可以是CPU资源,也可以是GPU资源,还可以是内存资源,本申请实施例对资源不做具体限定,此外,预设条件还可以是其他条件,本申请实施例对预设条件不做具体限定。
当各第三候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第三候选第一批次节点,确定为目标第一批次节点。
步骤c42432,当各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与各第一其他节点不能并发升级的各第三候选第一批次节点,得到目标第一批次节点。
当各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与各第一其他节点不能并发升级的各第三候选第一批次节点,得到目标第一批次节点。
示例性的,当第三候选第一批次节点加上第一目标节点之后,超过了允许并发升级的最大节点数量,因此服务器确定各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件;当服务器将第三候选第一批次节点与第一目标节点进行并发升级时,超过了允许并发升级的占用的最大资源,服务器确定各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件。
服务器可以获取各第一其他节对应的各服务和各业务,并确定各第一其他节对应的各服务和各业务对应的服务阈值。然后,根据各第一其他节对应的各服务和各业务对应的服务阈值,从各第三候选第一批次节点中选择与各第一其他节点并发升级不能满足各第一其他节对应的各服务和各业务对应的服务阈值的各第三候选第一批次节点,得到目标第一批次节点。
步骤S3054,对第一目标节点和目标第一批次节点进行并发升级。
具体地,在确定了与第一目标节点并发升级的目标第一批次节点之后,服务器对第一目标节点和目标第一批次节点进行并发升级。
步骤S3055,从第一目标节点组中确定第二目标节点。
具体地,服务器从第一目标节点组中确定第二目标节点的过程可以参见服务器从第一目标节点组中确定一目标节点的过程,在此不进行赘述。
步骤S3056,根据第二目标节点,确定与第二目标节点同一批次升级的目标第二批次节点。
具体地,服务器根据第二目标节点,确定与第二目标节点同一批次升级的目标第二批次节点的过程,可以参见根据第一目标节点,确定与第一目标节点同一批次升级的目标第一批次节点的过程,在此不进行赘述。
步骤S3057,如此循环,直至第一目标节点组中的全部升级完毕,从除第一目标节点组的各节点组中确定第二目标节点组;直至全部节点升级完毕。
具体地,如此循环,直至第一目标节点组中的全部升级完毕,从除第一目标节点组的各节点组中确定第二目标节点组;直至全部节点升级完毕。
示例性的,分布式存储集群中包括节点:n1,n2,n3,n4。
存储池:
f1:n1,n2;
f2:n3,n4。
服务和业务:
d1:n2,n4;阈值:1;
d2:n1,n2,n3,n4:阈值:3;
d3:n1,n3,n4;阈值:2;
d4:n1,n2,n3;阈值:2。
从存储池及服务和业务的角度划分节点如下:
节点标签集合:
n1:d2,d3,d4;
n2:d1,d2,d4;
n3:d2,d3,d4;
n4:d1,d2,d3;
标签矩阵:
d1:n2,n4;阈值:1;
d2:n1,n2,n3,n4:阈值:3;
d3:n1,n3,n4;阈值:2;
d4:n1,n2,n3;阈值:2。
节点组:
(f1,1):n1,n2;
(f2,1):n3,n4;
选择f1作为第一目标节点组,选择n1作为第一个升级的第一目标节点,然后选择n4节点(n4节点n2节点有相同标签d1,由于d1阈值为1,因此n4与n2无法执行并发,因此先选择n4节点与n1并发升级),由于n3与n4同属于f2且f2的故障域为1因此n3无法与n1,n4并发升级,在n1,n4升级完成后,升级n2,然后由于n3与n2具有标签d2且d2的故障域为3因此n2和n3可以进行并发升级。最终实例的升级流程为n1,n4→n2,n3两级即可完成升级。
本实施例提供的分布式存储集群并发升级方法,将各节点组中的各节点进行对比,确定完全独立的节点组作为第一候选节点组;从而可以保证在对第一目标节点组中的节点进行并发升级时,不会对其他节点组的存储池故障域产生影响。当第一候选节点组的数量等于1时,将第一候选节点组确定为第一目标节点组,保证了在第一目标节点组中的节点进行并发升级时,不会对其他节点组的存储池故障域产生影响。当第一候选节点组的数量大于1时,获取各第一候选节点组对应的存储池的故障域;从各第一候选节点组中确定存储池的故障域最小的第一候选节点组为第二候选节点组;从而可以保证第二候选节点组中的节点在进行并发升级时,不会影响第二候选节点组对应的存储池的故障域。
当第二候选节点组的数量等于1时,将第二候选节点组确定为第一目标节点组,从而可以保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响。当第二候选节点组的数量大于1时,获取各第二候选节点组中节点数量;从各第二候选节点组中确定节点数量最少的第二候选节点组为第三候选节点组。由于节点数最小表示该组内节点可以在最短时间升级完,从而可以降低对其他节点组的升级的影响尤其对那些和其他节点组存在节点复用关系的节点组。从而保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响,且第一目标节点组中的各节点可以在最短时间完成升级,从而可以减少对其他节点组的升级的影响尤其对那些和第一目标节点组存在节点复用关系的节点组。
当第三候选节点组的数量等于1时,将第三候选节点组确定为第一目标节点组;当第三候选节点组的数量大于1时,获取各第三候选节点组中节点标签种类;从各第三候选节点组中确定节点标签种类最多的第三候选节点组为第四候选节点组。节点标签种类最多预示着第四候选节点组中的各节点更复杂,升级第四候选节点组中的各节点所要满足的条件就越多(需要满足所有标签对应的服务和业务的服务阈值时才能升级)。优先将第四候选节点组中的各节点放到前面升级,可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
当第四候选节点组的数量等于1时,将第四候选节点组确定为第一目标节点组;当第四候选节点组的数量大于1时,从各第四候选节点组中随机选择一个第四候选节点组确定为第一目标节点组。从而保证在对第一目标节点组中的节点进行并发升级时,既不会对其他节点组的存储池故障域产生影响,又不会对第一目标节点组对应的存储池的故障域产生影响,且第一目标节点组中的各节点可以在最短时间完成升级,从而可以减少对其他节点组的升级的影响尤其对那些和第一目标节点组存在节点复用关系的节点组。此外,还可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
根据各节点对应的节点标签集合,从第一目标节点组中确定各节点标签集合中标签最多的节点为第一候选目标节点;节点标签种类最多预示着第一候选节点更复杂,升级第一候选节点所要满足的条件就越多(需要满足所有标签对应的服务和业务的服务阈值时才能升级)。当第一候选目标节点的数量等于1时,将第一候选目标节点,确定为第一目标节点;可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。当第一候选目标节点的数量大于1时,确定各第一候选目标节点对应的节点标签集合;根据各第一候选目标节点对应的节点标签集合,从中选择与其他各第一候选目标节点相同标签最多的一个第一候选目标节点为第一目标节点。保证了确定的第一目标节点的准确性,进可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
然后,获取第一目标节点组对应的存储池的故障域以及第一目标节点对应的各目标业务和目标服务;根据各业务和各服务对应的标签矩阵,确定各目标业务和目标服务分别对应的服务阈值;根据第一目标节点组对应的存储池的故障域,以及各目标业务和目标服务分别对应的服务阈值,从第一其他节点中确定满足第一目标节点组对应的存储池的故障域以及各目标业务和目标服务分别对应的服务阈值的目标第一批次节点。保证了从各第一其他节点中确定的目标第一批次节点满足对应的存储池的故障域要求,且满足对应的业务和服务对应的服务阈值的要求。
根据各目标业务和各目标服务对应的服务阈值,从各第二其他节点中,确定满足各目标业务和目标服务分别对应的服务阈值的第一候选第一批次节点;保证了确定的第一目标节点同一批次升级的目标第一批次节点满足各目标业务和目标服务分别对应的服务阈值。
获取各第一候选第一批次节点对应的存储池的故障域;检测各第一候选第一批次节点是否满足各第一候选第一批次节点对应的存储池的故障域;针对同一存储池中不满足对应的存储池的故障域的各第一候选第一批次节点,根据存储池对应的故障域优先删除标签种类最少的第一候选第一批次节点,得到第二候选第一批次节点,以使各第二候选第一批次节点满足对应的存储池的故障域。
当各第二候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第二候选第一批次节点,确定为目标第一批次节点;当各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与第一其他节点具有最多相同标签的各第二候选第一批次节点,得到第三候选第一批次节点。从而保证了确定的与第一目标节点同一批次升级的目标第一批次节点不仅满足对应的服务和业务对应的服务阈值,且满足对应的存储池的故障域,还可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
当各第三候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第三候选第一批次节点,确定为目标第一批次节点;当各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与各第一其他节点不能并发升级的各第三候选第一批次节点,得到目标第一批次节点。从而保证了确定的与第一目标节点同一批次升级的目标第一批次节点不仅满足对应的服务和业务对应的服务阈值,且满足对应的存储池的故障域,还可以减少后续并发升级节点的约束条件,进而可提高分布式存储集群的各个节点并发升级效率(即提升节点的并发度)。
对第一目标节点和目标第一批次节点进行并发升级;从第一目标节点组中确定第二目标节点;根据第二目标节点,确定与第二目标节点同一批次升级的目标第二批次节点;如此循环,直至第一目标节点组中的全部升级完毕,从除第一目标节点组的各节点组中确定第二目标节点组;直至全部节点升级完毕。上述方法,在对各个节点进行并发升级时,在考虑到各个节点对应的存储池以及各个节点对应的各个业务和服务的同时,从分布式存储系统包括的全部节点中确定可以并发升级的节点,而不是简单的对各个节点进行排序。因此,不仅可以保证并发升级的各个节点满足存储池的要求以及各个业务和服务的服务阈值,还可以保证每次并发升级的节点数量最多,从而减少并发升级的次数,提高并发升级的效率。
在本实施例中还提供了一种分布式存储集群并发升级装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种分布式存储集群并发升级装置,如图4所示,包括:
第一获取模块401,用于获取分布式存储集群中各个节点对应的节点标签集合,节点标签集合用于表征各节点在分布式存储集群内所承载的业务和服务;
第一生成模块402,用于根据各节点对应的节点标签集合,生成各业务和各服务对应的标签矩阵;
第二获取模块403,用于获取各节点对应的存储池,
第二生成模块404,用于根据各节点对应的存储池对各节点进行分组,生成多个节点组;
并发升级模块405,用于根据各节点对应的节点标签集合以及各业务和各服务对应的标签矩阵,对各节点组中的各节点进行并发升级。
在一些可选的实施方式中,第一获取模块401,具体用于获取各节点在分布式存储集群内所承载的业务和服务;根据各节点所承载的业务和服务,对各节点打上服务或者业务对应的标签,生成各节点对应的节点标签集合,其中,一种服务或者业务对应一个标签。
在一些可选的实施方式中,第一生成模块402,具体用于根据各节点对应的节点标签集合,确定各服务和各业务对应的各节点,并获取各服务和各业务对应的服务阈值;根据各服务和各业务对应的各节点,以及各服务和各业务对应的服务阈值,生成各业务和各服务对应的标签矩阵。
在一些可选的实施方式中,第二生成模块404,具体用于将单个存储池中包括的各节点分为一个节点组;若分布式存储集群中存在不属于各存储池的节点,则将不属于各存储池的节点划分至同一个节点组。
在一些可选的实施方式中,并发升级模块405,具体用于从各节点组中确定第一目标节点组;根据各节点对应的节点标签集合,从第一目标节点组中,确定第一目标节点;根据各业务和各服务对应的标签矩阵,从分布式存储集群中除第一目标节点之外的全部其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点;全部其他节点包括第一目标节点组中的除第一目标节点之外的第一其他节点和除第一目标节点组之外的各其他节点组中包括的第二其他节点;对第一目标节点和目标第一批次节点进行并发升级;从第一目标节点组中确定第二目标节点;根据第二目标节点,确定与第二目标节点同一批次升级的目标第二批次节点;如此循环,直至第一目标节点组中的全部升级完毕,从除第一目标节点组的各节点组中确定第二目标节点组;直至全部节点升级完毕。
在一些可选的实施方式中,并发升级模块405,具体用于将各节点组中的各节点进行对比,确定完全独立的节点组作为第一候选节点组;其中,第一候选节点组中的各节点与其他节点组无交集,即其他节点组中不包含第一候选节点组内的任何一个节点;根据第一候选节点组,确定第一目标节点组。
在一些可选的实施方式中,并发升级模块405,具体用于当第一候选节点组的数量等于1时,将第一候选节点组确定为第一目标节点组;当第一候选节点组的数量大于1时,获取各第一候选节点组对应的存储池的故障域;从各第一候选节点组中确定存储池的故障域最小的第一候选节点组为第二候选节点组;根据第二候选节点组,确定第一目标节点组。
在一些可选的实施方式中,并发升级模块405,具体用于当第二候选节点组的数量等于1时,将第二候选节点组确定为第一目标节点组;当第二候选节点组的数量大于1时,获取各第二候选节点组中节点数量;从各第二候选节点组中确定节点数量最少的第二候选节点组为第三候选节点组;根据第三候选节点组,确定第一目标节点组。
在一些可选的实施方式中,并发升级模块405,具体用于当第三候选节点组的数量等于1时,将第三候选节点组确定为第一目标节点组;当第三候选节点组的数量大于1时,获取各第三候选节点组中节点标签种类;从各第三候选节点组中确定节点标签种类最多的第三候选节点组为第四候选节点组;根据第四候选节点组,确定第一目标节点组。
在一些可选的实施方式中,并发升级模块405,具体用于当第四候选节点组的数量等于1时,将第四候选节点组确定为第一目标节点组;当第四候选节点组的数量大于1时,从各第四候选节点组中随机选择一个第四候选节点组确定为第一目标节点组。
在一些可选的实施方式中,并发升级模块405,具体用于根据各节点对应的节点标签集合,从第一目标节点组中确定各节点标签集合中标签最多的节点为第一候选目标节点;根据第一候选目标节点,确定第一目标节点。
在一些可选的实施方式中,并发升级模块405,具体用于当第一候选目标节点的数量等于1时,将第一候选目标节点,确定为第一目标节点;当第一候选目标节点的数量大于1时,确定各第一候选目标节点对应的节点标签集合;根据各第一候选目标节点对应的节点标签集合,从中选择与其他各第一候选目标节点相同标签最多的一个第一候选目标节点为第一目标节点。
在一些可选的实施方式中,并发升级模块405,具体用于获取第一目标节点组对应的存储池的故障域以及第一目标节点对应的各目标业务和目标服务;根据各业务和各服务对应的标签矩阵,确定各目标业务和目标服务分别对应的服务阈值;根据第一目标节点组对应的存储池的故障域,以及各目标业务和目标服务分别对应的服务阈值,从第一其他节点中确定满足第一目标节点组对应的存储池的故障域以及各目标业务和目标服务分别对应的服务阈值的目标第一批次节点;根据第一目标节点以及各业务和各服务对应的标签矩阵,从各第二其他节点中,确定与第一目标节点同一批次升级的目标第一批次节点。
在一些可选的实施方式中,并发升级模块405,具体用于根据各目标业务和各目标服务对应的服务阈值,从各第二其他节点中,确定满足各目标业务和目标服务分别对应的服务阈值的第一候选第一批次节点;根据各第一候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
在一些可选的实施方式中,并发升级模块405,具体用于获取各第一候选第一批次节点对应的存储池的故障域;检测各第一候选第一批次节点是否满足各第一候选第一批次节点对应的存储池的故障域;针对同一存储池中不满足对应的存储池的故障域的各第一候选第一批次节点,根据存储池对应的故障域优先删除标签种类最少的第一候选第一批次节点,得到第二候选第一批次节点,以使各第二候选第一批次节点满足对应的存储池的故障域;根据各第二候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
在一些可选的实施方式中,并发升级模块405,具体用于当各第二候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第二候选第一批次节点,确定为目标第一批次节点;当各第二候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与第一其他节点具有最多相同标签的各第二候选第一批次节点,得到第三候选第一批次节点;根据各第三候选第一批次节点,确定与第一目标节点同一批次升级的目标第一批次节点。
在一些可选的实施方式中,并发升级模块405,具体用于当各第三候选第一批次节点满足与第一目标节点并发升级的预设条件时,将各第三候选第一批次节点,确定为目标第一批次节点;当各第三候选第一批次节点不满足与第一目标节点并发升级的预设条件时,从中选择与各第一其他节点不能并发升级的各第三候选第一批次节点,得到目标第一批次节点。
本实施例中的分布式存储集群并发升级装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种服务器,具有上述图4所示的分布式存储集群并发升级装置。
请参阅图5,图5是本发明可选实施例提供的一种服务器的结构示意图,如图5所示,该分布式存储集群包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在服务器内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个服务器,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的服务器的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该分布式存储集群还包括通信接口30,用于该分布式存储集群与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (20)

1.一种分布式存储集群并发升级方法,其特征在于,所述方法包括:
获取分布式存储集群中各个节点对应的节点标签集合,所述节点标签集合用于表征各所述节点在所述分布式存储集群内所承载的业务和服务;
根据各所述节点对应的所述节点标签集合,生成各所述业务和各所述服务对应的标签矩阵;所述标签矩阵用于表示各所述业务和各所述服务分别对应的各所述节点以及各所述业务和各所述服务分别对应的服务阈值;所述服务阈值用于表征保证所述服务或者所述业务可正常工作的最小节点个数;
获取各所述节点对应的存储池;
根据各所述节点对应的存储池对各所述节点进行分组,生成多个节点组;
根据各所述节点对应的所述节点标签集合以及各所述业务和各所述服务对应的所述标签矩阵,对各所述节点组中的各所述节点进行并发升级。
2.根据权利要求1所述的方法,其特征在于,所述获取分布式存储集群中各个节点对应的节点标签集合,包括:
获取各所述节点在所述分布式存储集群内所承载的所述业务和所述服务;
根据各所述节点所承载的所述业务和所述服务,对各所述节点打上所述服务或者所述业务对应的标签,生成各所述节点对应的所述节点标签集合,其中,一种所述服务或者所述业务对应一个标签。
3.根据权利要求1所述的方法,其特征在于,所述根据各所述节点对应的所述节点标签集合,生成各所述业务和各所述服务对应的标签矩阵,包括:
根据各所述节点对应的所述节点标签集合,确定各所述服务和各所述业务对应的各所述节点,并获取各所述服务和各所述业务对应的服务阈值;
根据各所述服务和各所述业务对应的各所述节点,以及各所述服务和各所述业务对应的所述服务阈值,生成各所述业务和各所述服务对应的所述标签矩阵。
4.根据权利要求1所述的方法,其特征在于,所述根据各所述节点对应的存储池对各所述节点进行分组,生成多个节点组,包括:
将单个所述存储池中包括的各所述节点分为一个节点组;
若所述分布式存储集群中存在不属于各所述存储池的节点,则将不属于各所述存储池的节点划分至同一个节点组。
5.根据权利要求1所述的方法,其特征在于,所述根据各所述节点对应的所述节点标签集合以及各所述业务和各所述服务对应的所述标签矩阵,对各所述节点组中的各所述节点进行并发升级,包括:
从各所述节点组中确定第一目标节点组;
根据各所述节点对应的所述节点标签集合,从所述第一目标节点组中,确定第一目标节点;
根据各所述业务和各所述服务对应的标签矩阵,从所述分布式存储集群中除所述第一目标节点之外的全部其他节点中,确定与所述第一目标节点同一批次升级的目标第一批次节点;所述全部其他节点包括所述第一目标节点组中的除所述第一目标节点之外的第一其他节点和除所述第一目标节点组之外的各其他节点组中包括的第二其他节点;
对所述第一目标节点和所述目标第一批次节点进行并发升级;
从所述第一目标节点组中确定第二目标节点;
根据所述第二目标节点,确定与所述第二目标节点同一批次升级的目标第二批次节点;
如此循环,直至所述第一目标节点组中的全部升级完毕,从除所述第一目标节点组的各所述节点组中确定第二目标节点组;直至全部节点升级完毕。
6.根据权利要求5所述的方法,其特征在于,所述从各所述节点组中确定第一目标节点组,包括:
将各所述节点组中的各所述节点进行对比,确定完全独立的所述节点组作为第一候选节点组;其中,所述第一候选节点组中的各所述节点与所述其他节点组无交集,即所述其他节点组中不包含所述第一候选节点组内的任何一个节点;
根据所述第一候选节点组,确定所述第一目标节点组。
7.根据权利要求6中所述的方法,其特征在于,所述根据所述第一候选节点组,确定所述第一目标节点组,包括:
当所述第一候选节点组的数量等于1时,将所述第一候选节点组确定为所述第一目标节点组;
当所述第一候选节点组的数量大于1时,获取各所述第一候选节点组对应的存储池的故障域;
从各所述第一候选节点组中确定存储池的故障域最小的所述第一候选节点组为第二候选节点组;
根据所述第二候选节点组,确定所述第一目标节点组。
8.根据权利要求7中所述的方法,其特征在于,根据所述第二候选节点组,确定所述第一目标节点组,包括:
当所述第二候选节点组的数量等于1时,将所述第二候选节点组确定为所述第一目标节点组;
当所述第二候选节点组的数量大于1时,获取各所述第二候选节点组中节点数量;
从各所述第二候选节点组中确定节点数量最少的所述第二候选节点组为第三候选节点组;
根据所述第三候选节点组,确定所述第一目标节点组。
9.根据权利要求8中所述的方法,其特征在于,所述根据所述第三候选节点组,确定所述第一目标节点组,包括:
当所述第三候选节点组的数量等于1时,将所述第三候选节点组确定为所述第一目标节点组;
当所述第三候选节点组的数量大于1时,获取各所述第三候选节点组中节点标签种类;
从各所述第三候选节点组中确定节点标签种类最多的所述第三候选节点组为第四候选节点组;
根据所述第四候选节点组,确定所述第一目标节点组。
10.根据权利要求9中所述的方法,其特征在于,所述根据所述第四候选节点组,确定所述第一目标节点组,包括:
当所述第四候选节点组的数量等于1时,将所述第四候选节点组确定为所述第一目标节点组;
当所述第四候选节点组的数量大于1时,从各所述第四候选节点组中随机选择一个所述第四候选节点组确定为所述第一目标节点组。
11.根据权利要求5中所述的方法,其特征在于,所述根据各所述节点对应的所述节点标签集合,从所述第一目标节点组中,确定第一目标节点,包括:
根据各所述节点对应的所述节点标签集合,从所述第一目标节点组中确定各所述节点标签集合中标签最多的所述节点为第一候选目标节点;
根据所述第一候选目标节点,确定所述第一目标节点。
12.根据权利要求11中所述的方法,其特征在于,所述根据所述第一候选目标节点,确定所述第一目标节点,包括:
当所述第一候选目标节点的数量等于1时,将所述第一候选目标节点,确定为所述第一目标节点;
当所述第一候选目标节点的数量大于1时,确定各所述第一候选目标节点对应的节点标签集合;
根据各所述第一候选目标节点对应的节点标签集合,从中选择与其他各所述第一候选目标节点相同标签最多的一个所述第一候选目标节点为所述第一目标节点。
13.根据权利要求5中所述的方法,其特征在于,所述根据各所述业务和各所述服务对应的标签矩阵,从所述分布式存储集群中除所述第一目标节点之外的全部其他节点中,确定与所述第一目标节点同一批次升级的目标第一批次节点,包括:
获取所述第一目标节点组对应的存储池的故障域以及所述第一目标节点对应的各目标业务和目标服务;
根据各所述业务和各所述服务对应的所述标签矩阵,确定各所述目标业务和所述目标服务分别对应的所述服务阈值;
根据所述第一目标节点组对应的存储池的故障域,以及各所述目标业务和所述目标服务分别对应的所述服务阈值,从所述第一其他节点中确定满足所述第一目标节点组对应的存储池的故障域以及各所述目标业务和所述目标服务分别对应的服务阈值的所述目标第一批次节点;
根据所述第一目标节点以及各所述业务和各所述服务对应的标签矩阵,从各所述第二其他节点中,确定与所述第一目标节点同一批次升级的所述目标第一批次节点。
14.根据权利要求13中所述的方法,其特征在于,所述根据所述第一目标节点以及各所述业务和各所述服务对应的标签矩阵,从各所述第二其他节点中,确定与所述第一目标节点同一批次升级的所述目标第一批次节点,包括:
根据各所述目标业务和各所述目标服务对应的所述服务阈值,从各所述第二其他节点中,确定满足各所述目标业务和所述目标服务分别对应的所述服务阈值的第一候选第一批次节点;
根据各所述第一候选第一批次节点,确定与所述第一目标节点同一批次升级的所述目标第一批次节点。
15.根据权利要求14中所述的方法,其特征在于,所述根据各所述第一候选第一批次节点,确定与所述第一目标节点同一批次升级的所述目标第一批次节点,包括:
获取各所述第一候选第一批次节点对应的存储池的故障域;
检测各所述第一候选第一批次节点是否满足各所述第一候选第一批次节点对应的存储池的故障域;
针对同一存储池中不满足对应的存储池的故障域的各所述第一候选第一批次节点,根据存储池对应的故障域优先删除标签种类最少的所述第一候选第一批次节点,得到第二候选第一批次节点,以使各所述第二候选第一批次节点满足对应的存储池的故障域;
根据各所述第二候选第一批次节点,确定与所述第一目标节点同一批次升级的所述目标第一批次节点。
16.根据权利要求15中所述的方法,其特征在于,所述根据各所述第二候选第一批次节点,确定与所述第一目标节点同一批次升级的所述目标第一批次节点,包括:
当各所述第二候选第一批次节点满足与所述第一目标节点并发升级的预设条件时,将各所述第二候选第一批次节点,确定为所述目标第一批次节点;
当各所述第二候选第一批次节点不满足与所述第一目标节点并发升级的预设条件时,从中选择与所述第一其他节点具有最多相同标签的各所述第二候选第一批次节点,得到第三候选第一批次节点;
根据各所述第三候选第一批次节点,确定与所述第一目标节点同一批次升级的所述目标第一批次节点。
17.根据权利要求16中所述的方法,其特征在于,所述根据各所述第三候选第一批次节点,确定与所述第一目标节点同一批次升级的所述目标第一批次节点,包括:
当各所述第三候选第一批次节点满足与所述第一目标节点并发升级的预设条件时,将各所述第三候选第一批次节点,确定为所述目标第一批次节点;
当各所述第三候选第一批次节点不满足与所述第一目标节点并发升级的所述预设条件时,从中选择与各所述第一其他节点不能并发升级的各所述第三候选第一批次节点,得到所述目标第一批次节点。
18.一种分布式存储集群并发升级装置,其特征在于,所述装置包括:
第一获取模块,用于获取分布式存储集群中各个节点对应的节点标签集合,所述节点标签集合用于表征各所述节点在所述分布式存储集群内所承载的业务和服务;
第一生成模块,用于根据各所述节点对应的所述节点标签集合,生成各所述业务和各所述服务对应的标签矩阵;
第二获取模块,用于获取各所述节点对应的存储池,
第二生成模块,用于根据各所述节点对应的存储池对各所述节点进行分组,生成多个节点组;
并发升级模块,用于根据各所述节点对应的所述节点标签集合以及各所述业务和各所述服务对应的所述标签矩阵,对各所述节点组中的各所述节点进行并发升级。
19.一种服务器,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至17中任一项所述的分布式存储集群并发升级方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至17中任一项所述的分布式存储集群并发升级方法。
CN202410154768.8A 2024-02-04 分布式存储集群并发升级方法、装置、服务器及存储介质 Active CN117707587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410154768.8A CN117707587B (zh) 2024-02-04 分布式存储集群并发升级方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410154768.8A CN117707587B (zh) 2024-02-04 分布式存储集群并发升级方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN117707587A true CN117707587A (zh) 2024-03-15
CN117707587B CN117707587B (zh) 2024-06-07

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463185A (zh) * 2020-11-12 2021-03-09 苏州浪潮智能科技有限公司 一种分布式集群在线升级方法及相关组件
CN114070739A (zh) * 2021-11-11 2022-02-18 杭州和利时自动化有限公司 一种集群部署方法、装置、设备和计算机可读存储介质
CN115080093A (zh) * 2022-07-29 2022-09-20 济南浪潮数据技术有限公司 一种分布式系统升级的方法、装置、服务器及介质
CN115344290A (zh) * 2022-08-29 2022-11-15 济南浪潮数据技术有限公司 一种分布式存储分组在线升级方法、装置、终端及介质
US20230359480A1 (en) * 2021-01-15 2023-11-09 Huawei Technologies Co., Ltd. Method for upgrading nodes in batches, related apparatus, and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463185A (zh) * 2020-11-12 2021-03-09 苏州浪潮智能科技有限公司 一种分布式集群在线升级方法及相关组件
US20230359480A1 (en) * 2021-01-15 2023-11-09 Huawei Technologies Co., Ltd. Method for upgrading nodes in batches, related apparatus, and device
CN114070739A (zh) * 2021-11-11 2022-02-18 杭州和利时自动化有限公司 一种集群部署方法、装置、设备和计算机可读存储介质
CN115080093A (zh) * 2022-07-29 2022-09-20 济南浪潮数据技术有限公司 一种分布式系统升级的方法、装置、服务器及介质
CN115344290A (zh) * 2022-08-29 2022-11-15 济南浪潮数据技术有限公司 一种分布式存储分组在线升级方法、装置、终端及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VINCENT GRAMOLI 等: "Rollup:Non-Disruptive Rolling Upgrade with Fast Consensus-Based Dynamic Reconfigurations", 《IEEE》, 11 November 2015 (2015-11-11) *
屠雪真 等: "分布式系统高效升级方法研究", 《微型电脑应用》, 30 June 2019 (2019-06-30) *

Similar Documents

Publication Publication Date Title
EP3678346B1 (en) Blockchain smart contract verification method and apparatus, and storage medium
US6988139B1 (en) Distributed computing of a job corresponding to a plurality of predefined tasks
US11675942B2 (en) Optimization of parameters for synthesis of a topology using a discriminant function module
US10691449B2 (en) Intelligent automatic merging of source control queue items
US20070220509A1 (en) System and method for deploying software based on matching provisioning requirements and capabilities
EP2240851A1 (en) Methods and systems for generating availability management framework (amf) configurations
JP2012525628A (ja) Biosイメージマネージャ
EP3314424A1 (en) Techniques for virtual machine migration
CN108513658B (zh) 一种事务处理方法及装置
CN109634989B (zh) 一种hive任务执行引擎选择方法和系统
CN112685410A (zh) 业务规则校验方法、装置、计算机设备及存储介质
CN111767144A (zh) 交易数据的交易路由确定方法、装置、设备及系统
US10855818B2 (en) Apparatus and methods for optimizing dirty memory pages in embedded devices
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
US10310877B2 (en) Category based execution scheduling
CN108833592A (zh) 云主机调度器优化方法、装置、设备及存储介质
US20130293563A1 (en) System, method, and computer program product for performing graph coloring
WO2021232853A1 (zh) 基站数据升级方法、基站和计算机可读介质
CN117707587B (zh) 分布式存储集群并发升级方法、装置、服务器及存储介质
CN115951845B (zh) 一种磁盘管理方法、装置、设备及存储介质
CN117707587A (zh) 分布式存储集群并发升级方法、装置、服务器及存储介质
CN116483546A (zh) 分布式训练任务调度方法、装置、设备及存储介质
US20180129516A1 (en) Parameter determination device, parameter determination method, and medium
CN110908599B (zh) 数据的写入方法与写入系统
CN108958823A (zh) 修改基本输入输出系统设定值的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant