一种大规模存储集群扩容分组方法和装置
文献发布时间:2023-06-19 18:30:43
技术领域
本发明涉及集群扩容技术领域,尤其涉及一种大规模存储集群扩容分组方法和装置。
背景技术
在大规模存储集群的扩容场景中,如果是添加存储节点,则用户需要指定新添加的存储节点所加入的子集群,如果是添加子集群的管理节点,还需要配置虚拟IP以保证高可用。
在上述流程中,存在以下不足:1.添加节点需要用户指定加入哪一个子集群,带来扩容流程的复杂性,且添加到子集群的节点数如果差异太大,也会导致集群的压力不均衡,导致整体运作效力下降2.子管理节点因其承载着子集群的管控任务,在添加该节点时需用户介入规划新的虚拟IP,该场景下的扩容流程复杂,影响用户体验。
因此,如何提供一种提升大规模存储集群扩容效率和用户体验的方法,成为亟待解决的技术问题。
发明内容
有鉴于此,本发明主要解决的是提供一种大规模存储集群扩容分组方法,让用户从繁重的扩容配置流程中解放出来,提高大规模存储集群扩容分组效率。
一方面,本发明提供一种大规模存储集群扩容分组方法,包括:
解析用户所选择的存储节点信息,初始化一个分组序列,按IP顺序将存储节点依次加入至所述分组序列;
设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值,根据判断结果判定选择遍历下一个分组或对当前分组进行节点添加处理;
当完成对已经存在的分组遍历后,比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
更新分布式配置文件中的分组信息。
进一步地,本发明大规模存储集群扩容分组方法中,设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值,根据判断结果判定选择遍历下一个分组或对当前分组进行节点添加处理,包括:
如果当前分组中节点的数量未达到分组节点上限值,比较分组序列中剩余待分组节点的数量与当前分组节点空缺的数量,根据比较结果从分组序列中选择节点加入当前分组,遍历下一个分组;
如果当前分组中节点的数量已经达到分组节点上限值,结束对已经存在的分组遍历。
进一步地,本发明大规模存储集群扩容分组方法中,如果当前分组中节点的数量未达到分组节点上限值,比较分组序列中剩余待分组节点的数量与当前分组节点空缺的数量,根据比较结果从分组序列中选择节点加入当前分组,遍历下一个分组,包括:
如果分组序列中剩余待分组节点的数量不小于当前分组节点空缺的数量,按照当前分组节点空缺的数量在分组序列中依次选择节点加入当前分组直至当前分组的节点数量达到分组节点上限值,遍历下一个分组;
如果分组序列中剩余待分组节点的数量小于当前分组节点空缺的数量,将分组序列中剩余待分组节点加入当前分组,遍历下一个分组。
进一步地,本发明大规模存储集群扩容分组方法中,当完成对已经存在的分组遍历后,比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组,包括:
如果分组序列中剩余待分组节点的数量不小于分组节点上限值,按照分组节点上限值在分组序列中依次选择节点形成一个新组,组的编号加一,继续比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
如果分组序列中剩余待分组节点的数量小于上限值,将分组序列中剩余待分组节点形成一个新组,组的编号加一。
另一方面,本发明提供一种大规模存储集群扩容分组装置,包括:
分组序列构建模块,用于解析用户所选择的存储节点信息,初始化一个分组序列,按IP顺序将存储节点依次加入至所述分组序列;
遍历分组模块,用于设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值,根据判断结果判定选择遍历下一个分组或对当前分组进行节点添加处理;
重建分组模块,用于当完成对已经存在的分组遍历后,比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
更新模块,用于更新分布式配置文件中的分组信息。
进一步地,本发明大规模存储集群扩容分组装置中,遍历分组模块,用于:
设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值;
如果当前分组中节点的数量未达到分组节点上限值,比较分组序列中剩余待分组节点的数量与当前分组节点空缺的数量,根据比较结果从分组序列中选择节点加入当前分组,遍历下一个分组;
如果当前分组中节点的数量已经达到分组节点上限值,结束对已经存在的分组遍历。
进一步地,本发明大规模存储集群扩容分组装置中,遍历分组模块用于:
在当前分组中节点的数量未达到分组节点上限值时,比较分组序列中剩余待分组节点的数量与当前分组节点空缺的数量;
如果分组序列中剩余待分组节点的数量不小于当前分组节点空缺的数量,按照当前分组节点空缺的数量在分组序列中依次选择节点加入当前分组直至当前分组的节点数量达到分组节点上限值,遍历下一个分组;
如果分组序列中剩余待分组节点的数量小于当前分组节点空缺的数量,将分组序列中剩余待分组节点加入当前分组,遍历下一个分组。
进一步地,本发明大规模存储集群扩容分组装置中,重建分组模块,具体用于:
如果分组序列中剩余待分组节点的数量不小于分组节点上限值,按照分组节点上限值在分组序列中依次选择节点形成一个新组,组的编号加一,继续比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
如果分组序列中剩余待分组节点的数量小于上限值,将分组序列中剩余待分组节点形成一个新组,组的编号加一。
再者,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时,执行上述的方法。
最后,本发明提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本发明的一种大规模存储集群扩容分组方法和装置,具有以下有益效果:
1.通过自动分组策略,避免用户在添加节点时需指定加入的子集群,使得大规模集群下扩容操作更为简洁,提升扩容效率,同时添加节点会考虑组间节点数量,使得集群的压力更为均衡。
2.通过扩容节点自动加入统一管理服务的管控策略,保证了各个分组在故障场景下也能够对外提供服务,且该管控策略无需用户介入进行配置,也不需要占用额外的虚拟IP,提升运维的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明示例性第一实施例一种大规模存储集群扩容分组方法的流程图。
图2为本发明示例性第二实施例一种大规模存储集群扩容分组装置的架构图
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
图1为根据本发明示例性第一实施例的一种大规模存储集群扩容分组方法的流程图,如图1所示,本实施例的方法,包括:
解析用户所选择的存储节点信息,初始化一个分组序列,按IP顺序将存储节点依次加入至所述分组序列;
设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值,根据判断结果判定选择遍历下一个分组或对当前分组进行节点添加处理;
当完成对已经存在的分组遍历后,比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
更新分布式配置文件中的分组信息。
本实施例方法中,设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值,根据判断结果判定选择遍历下一个分组或对当前分组进行节点添加处理,包括:
如果当前分组中节点的数量已经达到分组节点上限值,结束对已经存在的分组遍历。
如果当前分组中节点的数量未达到分组节点上限值,比较分组序列中剩余待分组节点的数量与当前分组节点空缺的数量,根据比较结果从分组序列中选择节点加入当前分组,遍历下一个分组,具体包括:如果分组序列中剩余待分组节点的数量不小于当前分组节点空缺的数量,按照当前分组节点空缺的数量在分组序列中依次选择节点加入当前分组直至当前分组的节点数量达到分组节点上限值,遍历下一个分组;
如果分组序列中剩余待分组节点的数量小于当前分组节点空缺的数量,将分组序列中剩余待分组节点加入当前分组,遍历下一个分组。
本实施例方法中,当完成对已经存在的分组遍历后,比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组,包括:
如果分组序列中剩余待分组节点的数量不小于分组节点上限值,按照分组节点上限值在分组序列中依次选择节点形成一个新组,组的编号加一,继续比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
如果分组序列中剩余待分组节点的数量小于上限值,将分组序列中剩余待分组节点形成一个新组,组的编号加一。
本实施例方法通过自动分组策略,避免用户在添加节点时需指定加入的子集群,使得大规模集群下扩容操作更为简洁,提升扩容效率,同时添加节点会考虑组间节点数量,使得集群的压力更为均衡。通过扩容节点自动加入统一管理服务的管控策略,保证了各个分组在故障场景下也能够对外提供服务,且该管控策略无需用户介入进行配置,也不需要占用额外的虚拟IP,提升运维的效率。
图2为根据本发明示例性第二实施例的一种大规模存储集群扩容分组装置的架构图,如图2所示,本实施例的装置,包括:
分组序列构建模块,用于解析用户所选择的存储节点信息,初始化一个分组序列,按IP顺序将存储节点依次加入至所述分组序列;
遍历分组模块,用于设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值,根据判断结果判定选择遍历下一个分组或对当前分组进行节点添加处理;
重建分组模块,用于当完成对已经存在的分组遍历后,比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
更新模块,用于更新分布式配置文件中的分组信息。
在实际应用中,本实施例装置的遍历分组模块,用于:
设定分组节点上限值,将已存在的分组按组中节点个数从小到大生成遍历顺序,按遍历顺序遍历已经存在的分组,获取当前分组的信息,判断当前分组中节点的数量是否已经达到分组节点上限值;
如果当前分组中节点的数量已经达到分组节点上限值,结束对已经存在的分组遍历;
如果当前分组中节点的数量未达到分组节点上限值,比较分组序列中剩余待分组节点的数量与当前分组节点空缺的数量,根据比较结果从分组序列中选择节点加入当前分组,遍历下一个分组;
具体的,在当前分组中节点的数量未达到分组节点上限值时,比较分组序列中剩余待分组节点的数量与当前分组节点空缺的数量;如果分组序列中剩余待分组节点的数量不小于当前分组节点空缺的数量,按照当前分组节点空缺的数量在分组序列中依次选择节点加入当前分组直至当前分组的节点数量达到分组节点上限值,遍历下一个分组;如果分组序列中剩余待分组节点的数量小于当前分组节点空缺的数量,将分组序列中剩余待分组节点加入当前分组,遍历下一个分组。
在实际应用中,本实施例装置的重建分组模块,具体用于:
如果分组序列中剩余待分组节点的数量不小于分组节点上限值,按照分组节点上限值在分组序列中依次选择节点形成一个新组,组的编号加一,继续比较分组序列中剩余待分组节点的数量与分组节点上限值,根据比较结果对分组序列中剩余待分组节点进行分组;
如果分组序列中剩余待分组节点的数量小于上限值,将分组序列中剩余待分组节点形成一个新组,组的编号加一。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时,执行大规模存储集群扩容分组方法的步骤。
最后,本发明提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现大规模存储集群扩容分组方法的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。