一种分布式存储系统OSD容量的均衡调配方法与流程

文档序号:16895964发布日期:2019-02-15 23:38阅读:721来源:国知局
一种分布式存储系统OSD容量的均衡调配方法与流程

本发明属于分布式存储系统技术领域,具体涉及一种分布式存储系统osd容量的均衡调配方法。



背景技术:

分布式存储系统的存储池内的对象数据首先聚合为不同的数据pg,然后通过pg映射到不同的osd上,存储池的pg数量过少会影响数据分布的均衡性、过多会消耗更多的系统资源,pg数量的合理数值为每个osd上有50-100个pg,但在在系统规模较大时会存在一定的数据不均衡的现象。此为现有技术的不足之处。

因此,针对现有技术中的上述缺陷,提供设计一种分布式存储系统osd容量的均衡调配方法;以解决现有技术中的上述缺陷,是非常有必要的。



技术实现要素:

本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种分布式存储系统osd容量的均衡调配方法,以解决上述技术问题。

为实现上述目的,本发明给出以下技术方案:

一种分布式存储系统osd容量的均衡调配方法,其特征在于,包括以下步骤:

s1:输入存储池的副本数、存储池的pg数以及存储池的名称,如果输入有错,则提示程序退出;

s2:获取存储池的副本数、pg数以及名称;

s3:判断输入的存储池名称是否为已存在池,若不是,则提示程序退出;

s4:创建文件存放日志文件;

s5:根据存储池id判断该存储池的容量均衡策略为0或者1;

s6:用crushtool工具做容量均衡;

s7:判断crushtool是否操作成功,不存在则报crushtool失败;

s8:如果crushtool成功,则判断容量均衡是否成功。

作为优选,所述步骤s1通过以下代码实现:

作为优选,所述步骤s2通过以下代码实现:

nue_rep=$1

pg_num=$2

letpg_num=pg_num-1

pool_name=$3

time=‘date+%y%m%d%h%m%s‘

作为优选,所述步骤s3通过以下代码实现:

作为优选,所述步骤s4通过以下代码实现:

作为优选,所述步骤s5通过以下代码实现:

作为优选,所述步骤s6通过以下代码实现:

作为优选,所述步骤s7通过以下代码实现:

作为优选,所述步骤s8通过以下代码实现:

本发明的有益效果在于,通过调整osd在osdmap中的权重来改善数据分布的不均衡;通过调整osd在osdmap中的权重来改变osd在该存储池中pg数目来达到数据均衡。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

图1是本发明提供的一种分布式存储系统osd容量的均衡调配方法流程图。

具体实施方式

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。

如图1所示,本发明提供的一种分布式存储系统osd容量的均衡调配方法,其特征在于,包括以下步骤:

s1:输入存储池的副本数、存储池的pg数以及存储池的名称,如果输入有错,则提示程序退出;

s2:获取存储池的副本数、pg数以及名称;

s3:判断输入的存储池名称是否为已存在池,若不是,则提示程序退出;

s4:创建文件存放日志文件;

s5:根据存储池id判断该存储池的容量均衡策略为0或者1;

s6:用crushtool工具做容量均衡;

s7:判断crushtool是否操作成功,不存在则报crushtool失败;

s8:如果crushtool成功,则判断容量均衡是否成功。

本实施例中,所述步骤s1通过以下代码实现:

本实施例中,所述步骤s2通过以下代码实现:

nue_rep=$1

pg_num=$2

letpg_num=pg_num-1

pool_name=$3

time=‘date+%y%m%d%h%m%s‘

本实施例中,所述步骤s3通过以下代码实现:

本实施例中,所述步骤s4通过以下代码实现:

本实施例中,所述步骤s5通过以下代码实现:

本实施例中,所述步骤s6通过以下代码实现:

本实施例中,所述步骤s7通过以下代码实现:

本实施例中,所述步骤s8通过以下代码实现:

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

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