本发明属于分布式存储系统技术领域,具体涉及一种分布式存储系统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通过以下代码实现:
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。