集群扩容方法、装置和存储介质与流程

文档序号:26297504发布日期:2021-08-17 13:43阅读:53来源:国知局
集群扩容方法、装置和存储介质与流程

本发明涉及云计算技术,尤其涉及一种集群扩容方法、装置和计算机可读存储介质。



背景技术:

ceph是一种分布式存储系统,能够为用户提供块存储、对象存储和文件存储三种类型的存储服务。在ceph系统中,用户数据依据一定的分布机制均衡地分布在各个节点,使得用户在访问数据时,能够被快速高效地寻址。

ceph扩容时,新增节点的加入通常会带来原有数据分布的失衡状态。为了继续保持数据均衡,系统会依据一定的规则启动数据自动均衡过程。由于ceph是一种完全去中心化的系统,故而均衡过程通常是在无人为干预的情况下自动完成,也使得该过程可能对同时进行的数据读写操作产生不可控的影响,进而干扰用户的业务操作安全性。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种集群扩容方法、装置和计算机可读存储介质。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供了一种集群扩容方法,所述方法包括:

确定针对ceph集群的第一数据分布图;

确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入所述ceph集群的节点;

根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡;其中,所述数据均衡路线表征所述ceph集群中针对osd的数据迁移路线。

上述方案中,所述确定针对ceph集群的第一数据分布图,包括:

确定ceph集群的第一参数,根据所述第一参数生成第一数据分布图;

所述第一参数,包括以下至少之一:

osdmap的视图参数;

pgmap的视图参数;

monitor的视图参数;

相应地,所述第一数据分布图,包括以下至少之一:

至少一个pg的数据负载、拓扑结构、网段信息;

至少一个osd的数据负载、拓扑结构、网段信息。

上述方案中,所述目标节点的参数,包括以下至少之一:目标节点的存储网的网段、所述目标节点的业务网的网段、所述目标节点的硬盘数量、所述目标节点的序号;

所述基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图,包括:

基于所述第一数据分布图,确定加入所述目标节点后的ceph集群对应的第二数据分布图。

上述方案中,所述根据所述的第二数据分布图,规划数据均衡路线,包括:

根据所述的第二数据分布图,确定pg与osd的映射关系;

基于确定的所述pg与osd映射关系,规划数据均衡路线。

上述方案中,所述基于确定的所述pg与osd映射关系,规划数据均衡路线,包括:

基于确定的所述pg与osd映射关系,确定满足第一预设条件的osd;所述满足第一预设条件表征所述osd待进行数据迁移;

针对所述满足第一预设条件的osd,以数据迁移的开始地址和目标地址为规划因素,运用局部最优算法确定针对各osd的数据均衡路线;

其中,所述满足第一预设条件的osd,包括以下至少之一:

存储数据量高于预设存储数据量阈值的osd;

迁出数据量高于预设迁出数据量阈值的osd;

读写业务量高于预设读写业务量阈值的osd;

读写速度低于预设速度的osd;

存储容量低于预设容量的osd。

本发明实施例还提供了一种集群扩容装置,所述装置包括:第一处理模块、第二处理模块和第三处理模块;其中,

所述第一处理模块,用于确定针对ceph集群的第一数据分布图;

所述第二处理模块,用于确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入所述ceph集群的节点;

所述第三处理模块,用于根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡;其中,所述数据均衡路线表征所述ceph集群中针对osd的数据迁移路线。

上述方案中,所述第一处理模块,用于确定ceph集群的第一参数,根据所述第一参数生成第一数据分布图;

所述第一参数,包括以下至少之一:

osdmap的视图参数;

pgmap的视图参数;

monitor的视图参数;

相应地,所述第一数据分布图,包括以下至少之一:

至少一个pg的数据负载、拓扑结构、网段信息;

至少一个osd的数据负载、拓扑结构、网段信息。

上述方案中,所述目标节点的参数,包括以下至少之一:目标节点的存储网的网段、所述目标节点的业务网的网段、所述目标节点的硬盘数量、所述目标节点的序号;所述第二处理模块,用于基于所述第一数据分布图,确定加入所述目标节点后的ceph集群对应的第二数据分布图。

上述方案中,所述第二处理模块,用于根据所述的第二数据分布图,确定pg与osd的映射关系;

基于确定的所述pg与osd映射关系,规划数据均衡路线。

上述方案中,所述第二处理模块,具体用于基于确定的所述pg与osd映射关系,确定满足第一预设条件的osd;所述满足第一预设条件表征所述osd待进行数据迁移;

针对所述满足第一预设条件的osd,以数据迁移的开始地址和目标地址为规划因素,运用局部最优算法确定针对各osd的数据均衡路线;

其中,所述满足第一预设条件的osd,包括以下至少之一:

存储数据量高于预设存储数据量阈值的osd;

迁出数据量高于预设迁出数据量阈值的osd;

读写业务量高于预设读写业务量阈值的osd;

读写速度低于预设速度的osd;

存储容量低于预设容量的osd。

本发明实施例又提供了一种集群扩容装置,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,

所述处理器用于运行所述计算机程序时,执行以上任一项所述集群扩容方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一项所述集群扩容方法的步骤。

本发明实施例所提供的集群扩容方法、装置和计算机可读存储介质,确定针对ceph集群的第一数据分布图;确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入所述ceph集群的节点;根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡;其中,所述数据均衡路线表征所述ceph集群中针对osd的数据迁移路线;如此,以osd为单位逐个进行数据迁移,从osd的角度对迁移动作进行限制,对业务的影响降到最小,同时也加快了扩容过程。

附图说明

图1为相关技术中一种pg与osd的映射关系的示意图;

图2为本发明实施例提供的一种集群扩容方法的流程示意图;

图3为本发明实施例提供的另一种集群扩容方法的流程示意图;

图4为本发明实施例提供的一种暂中心化模块的结构示意图;

图5为本发明实施例提供的一种集群扩容装置的结果示意图;

图6为本发明实施例提供的另一种集群扩容装置的结果示意图。

具体实施方式

在对本发明实施例作进一步详细的说明之前,先对ceph集群技术进行以下说明。

在现有的技术方案中,当新增节点添加进资源池后,ceph集群启动数据均衡机制。在整个过程中,数据均衡采用的是以归置组(pg,placementgroup)为粒度进行的。这里,pg是ceph中非常重要的内容,它属于逻辑层的概念,而实际数据的承载者是对象存储设备(osd,objectstoragedevice)。

图1为相关技术中一种pg和osd的映射关系的示意图,如图1所示,一个pg可以被映射到多个osd上,而每个osd上都可以承载大量的pg,即pg和osd之间是“多对多”映射关系。

以pg为粒度进行调度会导致数据的流动方向不可控,从而造成对系统业务影响的不可控。如果通过控制均衡过程占用的资源来限制对系统的业务影响,又会导致整个均衡过程时间延长,很可能无法满足用户扩容完成时间的限制。

基于此,在本发明的各种实施例中,确定针对ceph集群的第一数据分布图;确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入ceph集群的节点;根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡;其中,所述数据均衡路线表征所述ceph集群中针对osd的数据迁移路线;如此,针对现有ceph集群扩容中的问题,提出一种暂中心化的扩容方法,在集群扩容时,以osd为单位逐个进行数据迁移,实现数据的可控流动,将对业务的影响降到最小,同时加快扩容过程。

下面结合实施例对本发明再作进一步详细的说明。

图2为本发明实施例提供的一种集群扩容方法的流程示意图;如图2所示,所述方法可以应用于ceph(一种分布式存储系统)集群中的monitor节点(即ceph集群中的监控节点,具体可以为一种服务器);所述集群扩容方法包括:

步骤201、确定针对ceph集群的第一数据分布图;

步骤202、确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入所述ceph集群的节点;

步骤203、根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡;其中,所述数据均衡路线表征所述ceph集群中针对osd的数据迁移路线。

这里,所述第一数据分布图,表征未增加目标节点前的初始ceph集群对应的数据分布图;

所述第二数据分布图,表征增加目标节点后的ceph集群对应的数据分布图。

所述目标节点表征待加入所述ceph集群的节点,也就是说所述目标节点用于加入所述ceph集群,以实现ceph集群扩容。所述目标节点具体为存储服务器。所述目标节点的数量为一个或多个。

在一实施例中,所述步骤201中,所述确定针对ceph集群的第一数据分布图,包括:

确定ceph集群的第一参数(可以理解为未扩容前的参数),根据所述第一参数生成第一数据分布图。

这里,所述第一参数,包括以下至少之一:

osdmap的视图参数;

pgmap的视图参数;

monitor的视图参数;

所述第一参数还包括系统容灾策略等。

相应生成的所述第一数据分布图,用于描述ceph集群当前状态,包括以下至少之一:

至少一个pg的数据负载、拓扑结构、网段信息;

至少一个osd的数据负载、拓扑结构、网段信息。

其中,所述osdmap,包括:ceph集群中所有osd节点的信息;所述osd节点的改变,如进程退出、节点的加入、节点的退出、节点权重的变化都会反映到osdmap上;所述osdmap,还包括一些常用的信息,如:ceph集群的标识(id)、创建osdmap的版本信息和最后修改信息,以及存储池(pool)相关信息;所述pool相关信息包括:pool名称、pool的标识(id)、pool的类型、pool的副本数目、安置组(pgp,placementgroupofplacement)等,还可以包括:数量、状态、权重、最新的清洁间隔和osd主机信息等。所述osdmap可以通过系统命令"cephosddump"查看。

所述pgmap包括由monitor节点维护的所有pg的状态,每个osd都会掌握自己所拥有的pg状态,pg迁移需要monitor节点作出决定然后反映到pgmap上,相关osd会得到通知去改变其pg状态。所述pgmap包括:当前pg版本、时间戳、最新的osdmap的版本信息、空间使用比例、接近占满比例信息;同时,还可以包括:每个pg的id、对象数目、状态、对应的osd的状态、深度清理的详细信息等。所述pgmap可以通过命令"cephpgdump"查看相关状态。

所述monitormap包括有关monitor节点端到端的信息,具体包括:ceph集群的id、监控节点(即monitor节点)名、监控节点的网际互连协议(ip,internetprotocol)、监控节点的端口等;还可以包括:存储当前版本信息、最新更改信息等。所述monitormap可以通过系统命令"cephmondump"查看。

在一实施例中,所述步骤202中,确定目标节点的参数,包括:接收关于目标节点的指令,基于所述指令确定目标节点的参数。这里,所述关于目标节点的指令可以由用户通过人机交互界面输入,相应的monitor节点确定所述关于目标节点的指令,以确定目标节点的参数。

具体地,所述目标节点的参数,包括以下至少之一:目标节点的存储网的网段、所述目标节点的业务网的网段、所述目标节点的硬盘数量、所述目标节点的序号;

所述基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图,包括:

基于所述第一数据分布图,确定加入所述目标节点后的ceph集群对应的第二数据分布图。所述第二数据分布图描述增加节点后ceph集群的状态,即所述第二数据分布图包括以下至少之一:

更新后(指加入目标节点后)的所述至少一个pg的数据负载、拓扑结构、网段信息;

更新后的至少一个osd的数据负载、拓扑结构、网段信息。

在一实施例中,步骤203中,所述根据所述的第二数据分布图,规划数据均衡路线,包括:

根据所述的第二数据分布图,确定pg与osd的映射关系;

基于确定的所述pg与osd映射关系,规划数据均衡路线。

这里,确定的所述pg与osd的映射关系,包括:新增节点后的pg与osd的部分或全部映射关系。

在一实施例中,所述基于确定的所述pg与osd映射关系,规划数据均衡路线,包括:

基于确定的所述pg与osd映射关系,确定满足第一预设条件的osd;所述满足第一预设条件表征所述osd待进行数据迁移;

针对所述满足第一预设条件的osd,以数据迁移的开始地址和目标地址为规划因素,运用局部最优算法确定针对各osd的数据均衡路线。

这里,所述满足第一预设条件的osd表征所述数据均衡路线中需进行数据迁移的osd。

具体来说,所述第一数据分布图和所述第二数据分布图分布显示ceph集群扩容前和扩容后的数据分布视图,两者数据分布存在差别,相应的需要进行osd上数据迁移,具体包括:部分osd上的数据迁出、部分osd迁入数据。即所述第二数据分布图显示了需要进行迁移的数据,而具体如何进行迁移需要进一步确定,这里,以需要进行迁移的数据的开始地址和目标地址作为规划因素,运用所述局部最优算法确定最优的数据均衡路线,所述数据均衡路线即为相应数据的迁移路线。

这里,所述局部最优算法可以采用任意一种,用于确定最符合用户需求的均衡路线,这里不做限定。

具体来说,所述第一预设条件可以针对待进行数据迁移的osd的状态设定;所述迁移,包括:迁出和迁入;

所述状态,包括以下至少之一:待迁出数据的osd的存储数据量、迁移数据量、读写业务量等参数;

还可以包括以下至少之一:待迁入数据的osd的读写速度、存储容量等参数。

这里,所述确定满足第一预设条件的osd,包括以下至少之一:

存储数据量高于预设存储数据量阈值的osd;

迁出数据量高于预设迁出数据量阈值的osd;

读写业务量高于预设读写业务量阈值的osd;

读写速度低于预设速度的osd;

存储容量低于预设容量的osd。

所述第一预设条件具体可以由用户基于自身需求确定,上述第一预设条件仅为一种实施例,实际应用时可以基于需求进行改变,这里不做限定。

这里,所述基于所述数据均衡路线进行数据均衡,包括:

按照上述确定的数据均衡路线(所述数据均衡路线实际为数据迁移路线),将数据从一个osd迁移到另外一个osd;即完成数据迁移,也即完成数据均衡的操作。

具体来说,所述存储数据量高于预设存储数据量阈值的osd、迁出数据量高于预设迁出数据量阈值的osd、读写业务量高于预设读写业务量阈值的osd为待迁出数据的osd;所述读写速度低于预设速度的osd、存储容量低于预设容量的osd为待迁入数据的osd。

确定待迁出数据的osd和待迁入数据的osd,以数据迁移的开始地址(即待迁出数据的osd)和目标地址(即待迁入数据的osd)为规划因素,运用局部最优算法确定针对各osd的数据均衡路线,按针对各osd的数据均衡路线,实现将数据从一个待迁出数据的osd迁移到另外一个待迁入数据osd。

需要说明的是,基于上述确定的数据均衡路线可进行调整,具体指按照用户的需求对上述确定的数据均衡路线进行调整,以符合特定的用户需求。

与现有的以pg为整体一次性迁移的方式,本发明实施例的集群扩容方法对迁移控制方式进行更改,具体采用osd逐个迁移的方法,即主动依次从各个pg映射的osd中拉取要迁往该osd的数据,从osd的角度对迁移动作进行限制,缓慢释放压力,并随时根据集群的压力情况,动态调节osd迁移的时间和次序,缓解对正在进行读写操作业务的osd读写压力,降低了错误机率。

具体来说,本发明实施例提供的集群扩容方法,在不影响正常的调度机制的情况下,在扩容过程替换原来的调度机制,在整个数据恢复过程中尽可能的控制数据均衡规模,减少系统的资源占用情况,在数据均衡完成后仍然使用系统原有的数据均衡机制。现有的数据均衡机制采用的是以pg为粒度的方式,并顺序地进行数据均衡的过程;而本发明实施例提供的方法中采用不同于ceph集群中已有的数据均衡机制,采用以osd为单位的迁移方案,减少同时影响的osd数量,减小对系统性能的影响。

图3为本发明实施例提供的另一种集群扩容方法的流程示意图;如图3所示,所述方法应用于monitor节点,所述monitor节点进行改进后,提供有暂中心化模块,用于实现本申请实施例提供的集群扩容方法;具体地,所述方法包括:

步骤301、暂中心化模块初始化。

这里,所述初始化可以在扩容过程启动之前或启动时完成。

所述初始化包括:解析ceph集群当前的参数,并根据解析的参数构建第一数据分布图。

这里,所述第一数据分布图描述当前ceph集群的状态;所述状态包括以下至少之一:

各pg的数据负载、拓扑结构、网段信息;

各osd的数据负载、拓扑结构、网段信息。

所述ceph当前的参数,还可以包括以下至少之一:osdmap视图参数、pgmap视图参数、monitormap视图参数、系统容灾策略等。

其中,所述osdmap,包括:ceph集群中所有osd节点的信息;所述osd节点的改变,如进程退出、节点的加入、节点的退出或者节点权重的变化都会反映到osdmap上;所述osdmap,还包括一些常用的信息,如:ceph集群的标识(id)、创建osdmap的版本信息和最后修改信息,以及pool相关信息;所述pool相关信息包括:pool名称、pool的id、pool的类型、pool的副本数目、pgp等,还可以包括:数量、状态、权重、最新的清洁间隔和osd主机信息等。所述osdmap可以通过系统命令"cephosddump"查看。

所述pgmap是由monitor维护的所有pg的状态,每个osd都会掌握自己所拥有的pg状态,pg迁移需要monitor作出决定然后反映到pgmap上,相关osd会得到通知去改变其pg状态。所述pgmap包括:当前pg版本、时间戳、最新的osdmap的版本信息、空间使用比例、接近占满比例信息;同时,还可以包括:每个pg的id、对象数目、状态、osd的状态、深度清理的详细信息等。所述pgmap可以通过命令"cephpgdump"查看相关状态。

所述monitormap包括有关monitor节点端到端的信息,包括:ceph集群的id、监控主机名、监控主机的ip、监控主机的端口等;还可以包括:存储当前版本信息、最新更改信息等。所述monitormap可以通过系统命令"cephmondump"查看。

步骤302、获取新增节点的参数,基于第一数据分布图,形成第二数据分布图;

其中,所述新增节点的参数,包括:新增节点的存储网的网段、新增节点的业务网的网段、新增节点的硬盘数量、新增节点的序号。

所述第二数据分布图,描述当前系统在新增节点后的状态,如:各pg和/或各osd的数据负载、拓扑结构、网段信息等内容。

步骤303、基于所述的第二数据分布图,获得pg与osd的映射关系;

其中,所述获得的pg与osd的映射关系包括:新增节点后的pg与osd的映射关系。

步骤304、在获得的pg与osd映射关系上规划数据均衡路线。

具体地,根据所述pg与osd映射关系确定满足第一预设条件的可进行迁移操作的osd,并根据局部最优算法,确定相应数据均衡路线;

其中,所述确定满足第一预设条件的osd,包括以下至少之一:

存储数据量高于预设存储数据量阈值的osd;

迁出数据量高于预设迁出数据量阈值的osd;

读写业务量高于预设读写业务量阈值的osd;

读写速度低于预设速度的osd;

存储容量低于预设容量的osd。

这里,以osd为单位逐个进行数据迁移,主动依次从各个pg映射的osd中拉取要迁往该osd的数据,从osd的角度对迁移动作进行限制,缓慢释放压力,并随时根据集群的压力情况,动态调节osd迁移的时间和次序,缓解对正在进行读写操作业务的osd读写压力,降低了错误几率。

步骤305、ceph集群根据确定的所述数据均衡路线进行数据均衡。

这里,按照上述确定的数据均衡路线,将数据从一个osd迁移到另外一个osd,即完成数据均衡。

完成数据均衡后,暂中心化模块退出,所述退出包括:回写元数据、形成日志文件、对ceph集群元数据信息进行检测、服务暂停时从系统中切出。

图4为本发明实施例提供的一种暂中心化模块的结构示意图;如图4所示,所述暂中心化模块,包括:控制模块、数据库模块和读写处理模块;其中,

所述控制模块,用于规划最优数据均衡路线;即所述控制模块执行图3所示方法中的步骤301-304。

所述控制模块,还用于验证迁移数据前后的一致性,这里具体可以采用以下至少之一的校验方法:crc数据校验或者md5数据校验;

所述数据库模块,用于存储所述ceph集群的参数的更改记录,如osdmap、pgmap、monitormap等参数的更改。

所述读写处理模块,用于接收读写请求,并根据所述读写请求执行读写操作业务。

图4中,所述rados中的存储节点即为上述osd。

图5为本发明实施例提供的一种集群扩容装置的结果示意图;如图5所示,所述装置包括:第一处理模块、第二处理模块和第三处理模块;其中,

所述第一处理模块,用于确定针对ceph集群的第一数据分布图;

所述第二处理模块,用于确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入所述ceph集群的节点;

所述第三处理模块,用于根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡。

具体地,所述第一处理模块,用于确定ceph集群的第一参数,根据所述第一参数生成第一数据分布图;

所述第一参数,包括以下至少之一:

osdmap的视图参数;

pgmap的视图参数;

monitor的视图参数;

相应地,所述第一数据分布图,包括以下至少之一:

至少一个pg的数据负载、拓扑结构、网段信息;

至少一个osd的数据负载、拓扑结构、网段信息。

具体地,所述目标节点的参数,包括以下至少之一:目标节点的存储网的网段、所述目标节点的业务网的网段、所述目标节点的硬盘数量、所述目标节点的序号;所述第二处理模块,用于基于所述第一数据分布图,确定加入所述目标节点后的ceph集群对应的第二数据分布图。

具体地,所述第二处理模块,用于根据所述的第二数据分布图,确定pg与osd的映射关系;

基于确定的所述pg与osd映射关系,规划数据均衡路线。

具体地,所述第二处理模块,具体用于基于确定的所述pg与osd映射关系,确定满足第一预设条件的osd;所述满足第一预设条件表征所述osd待进行数据迁移;

针对所述满足第一预设条件的osd,以数据迁移的开始地址和目标地址为规划因素,运用局部最优算法确定针对各osd的数据均衡路线;

其中,所述满足第一预设条件的osd,包括以下至少之一:

存储数据量高于预设存储数据量阈值的osd;

迁出数据量高于预设迁出数据量阈值的osd;

读写业务量高于预设读写业务量阈值的osd;

读写速度低于预设速度的osd;

存储容量低于预设容量的osd。

需要说明的是:上述实施例提供的集群扩容装置在实现相应集群扩容方法时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将服务器的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的装置与相应方法的实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6为本发明实施例提供的另一种集群扩容装置的结果示意图;如图6所示,所述装置60包括:处理器601和用于存储能够在所述处理器上运行的计算机程序的存储器602;其中,

所述处理器601用于运行所述计算机程序时,执行:确定针对ceph集群的第一数据分布图;确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入所述ceph集群的节点;根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡。

在一实施例中,所述处理器601还用于运行所述计算机程序时,执行:确定ceph集群的第一参数,根据所述第一参数生成第一数据分布图;其中,

所述第一参数,包括以下至少之一:

osdmap的视图参数;

pgmap的视图参数;

monitor的视图参数;

相应地,所述第一数据分布图,包括以下至少之一:

至少一个pg的数据负载、拓扑结构、网段信息;

至少一个osd的数据负载、拓扑结构、网段信息。

所述目标节点的参数,包括以下至少之一:目标节点的存储网的网段、所述目标节点的业务网的网段、所述目标节点的硬盘数量、所述目标节点的序号;

在一实施例中,所述处理器601还用于运行所述计算机程序时,执行:基于所述第一数据分布图,确定加入所述目标节点后的ceph集群对应的第二数据分布图。

在一实施例中,所述处理器601还用于运行所述计算机程序时,执行:根据所述的第二数据分布图,确定pg与osd的映射关系;基于确定的所述pg与osd映射关系,规划数据均衡路线。

在一实施例中,所述处理器601还用于运行所述计算机程序时,执行:基于确定的所述pg与osd映射关系,确定满足第一预设条件的osd;所述满足第一预设条件表征所述osd待进行数据迁移;

针对所述满足第一预设条件的osd,以数据迁移的开始地址和目标地址为规划因素,运用局部最优算法确定针对各osd的数据均衡路线

其中,所述满足第一预设条件的osd,包括以下至少之一:

存储数据量高于预设存储数据量阈值的osd;

迁出数据量高于预设迁出数据量阈值的osd;

读写业务量高于预设读写业务量阈值的osd;

读写速度低于预设速度的osd;

存储容量低于预设容量的osd。

需要说明的是:上述实施例提供的集群扩容装置与集群扩容方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

实际应用时,所述装置60还可以包括:至少一个网络接口603。装置60中的各个组件通过总线系统604耦合在一起。可理解,总线系统604用于实现这些组件之间的连接通信。总线系统604除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统604。其中,所述处理器601的个数可以为至少一个。网络接口603用于装置60与其他设备之间有线或无线方式的通信。

本发明实施例中的存储器602用于存储各种类型的数据以支持装置60的操作。

上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,装置60可以被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)、通用处理器、控制器、微控制器(mcu,microcontrollerunit)、微处理器(microprocessor)、或其他电子元件实现,用于执行前述方法。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行:确定针对ceph集群的第一数据分布图;确定目标节点的参数,基于所述目标节点的参数和所述第一数据分布图,生成第二数据分布图;所述目标节点表征待加入所述ceph集群的节点;根据所述第二数据分布图,规划数据均衡路线,基于所述数据均衡路线进行数据均衡。

在一实施例中,所述计算机程序被处理器运行时,执行:确定ceph集群的第一参数,根据所述第一参数生成第一数据分布图;其中,

所述第一参数,包括以下至少之一:

osdmap的视图参数;

pgmap的视图参数;

monitor的视图参数;

相应地,所述第一数据分布图,包括以下至少之一:

至少一个pg的数据负载、拓扑结构、网段信息;

至少一个osd的数据负载、拓扑结构、网段信息。

所述目标节点的参数,包括以下至少之一:目标节点的存储网的网段、所述目标节点的业务网的网段、所述目标节点的硬盘数量、所述目标节点的序号;

在一实施例中,所述计算机程序被处理器运行时,执行:基于所述第一数据分布图,确定加入所述目标节点后的ceph集群对应的第二数据分布图。

在一实施例中,所述计算机程序被处理器运行时,执行:根据所述的第二数据分布图,确定pg与osd的映射关系;基于确定的所述pg与osd映射关系,规划数据均衡路线。

在一实施例中,所述计算机程序被处理器运行时,执行:基于确定的所述pg与osd映射关系,确定满足第一预设条件的osd;所述满足第一预设条件表征所述osd需进行数据迁移;

针对所述满足第一预设条件的osd,以数据迁移的开始地址和目标地址为规划因素,运用局部最优算法确定针对各osd的数据均衡路线

其中,所述满足第一预设条件的osd,包括以下至少之一:

存储数据量高于预设存储数据量阈值的osd;

迁出数据量高于预设迁出数据量阈值的osd;

读写业务量高于预设读写业务量阈值的osd;

读写速度低于预设速度的osd;

存储容量低于预设容量的osd。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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