分布式存储系统的数据写入方法、装置、设备及存储介质与流程

文档序号:19015345发布日期:2019-11-01 19:39阅读:247来源:国知局
分布式存储系统的数据写入方法、装置、设备及存储介质与流程

本发明实施例涉及分布式存储技术领域,特别是涉及一种分布式存储系统的数据写入方法、装置、设备及计算机可读存储介质。



背景技术:

随着云技术、大数据的快速发展,数据呈现爆炸式的增长,促使存储技术得到相应的发展,以满足数据存储的现实需求。传统的网络存储系统采用集中的存储服务器存储所有数据,存储服务器成为系统性能瓶颈,同时还存在着可靠性和安全性隐患,不能满足大规模存储应用的需要,分布式存储系统应运而生。

分布式存储系统将数据分散存储在多台独立的设备上,每个独立设备可称为存储节点,其采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但可提高系统的可靠性、可用性和存取效率,还易于扩展。

分布式存储系统包括多个数据池,每个数据池存储多个存储节点的数据,各数据池共同使用分布式存储系统的可用空间容量,呈现给用户的数据池的可用容量是在系统剩余可用空间基础上计算的。在其他数据池写入数据后,当前数据池的可用容量同步减少。不可避免的,会存在多个数据池同时写入数据,势必会导致每个数据池的可用容量不可控。举例来说,用户写入a数据池100m数据,且在用户写入前系统呈现a数据池可用空间容量为200m,而在用户开始写入数据过程中,b数据池、c数据池同时也写入50m数据,若写入三个数据池的数据写入速度相同,那么用户在写入a数据池33m数据后,便无法在成功将数据写入该数据池。不仅不利于用户准确、快速写入数据,用户写数据体验较差,而且还影响分布式存储系统的整体性能。

鉴于此,如何实现用户数据写入的可控性,是本领域技术人员需要解决的问题。



技术实现要素:

本公开实施例提供了一种分布式存储系统的数据写入方法、装置、设备及计算机可读存储介质,实现了用户数据写入的可控性,有利于提升分布式存储系统的整体性能。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例一方面提供了一种分布式存储系统的数据写入方法,基于元数据服务器,包括:

预先根据分布式存储系统的当前可用容量值和数据池总创建个数为各数据池设置配额值,以作为各数据池的固有属性值;

当接收写入目标数据池的数据写入指令,根据所述目标数据池的配额值、待写入数据容量值、所述目标数据池的总存储节点个数及单位配额值,为所述待写入数据对应目标存储节点分配初始可用容量值;

在所述目标存储节点写入数据过程中,根据所述目标数据池的可用容量的使用状态和所述单位配额值实时调整分配至所述目标存储节点的可用容量值,直至所述待写入数据全部写入所述目标存储节点;

其中,所述单位配额值为预先设置的每次为各存储节点分配可用容量的最小值。

可选的,所述根据所述目标数据池的可用容量的使用状态和所述单位配额值实时调整分配至所述目标存储节点的可用容量值包括:

判断所述目标存储节点当前可用空间容量与所述待写入数据的未写入部分占用空间容量值的差值是否小于预设第一差值阈值;

若是,则根据所述目标数据池的可用容量的使用状态为所述目标存储节点分配新可用空间容量,所述新可用空间容量值为调整因子与所述单位配额值的乘积;

若否,则根据所述目标数据池的可用容量的使用状态为所述目标存储节点分配新可用空间容量,所述新可用空间容量值为所述单位配额值。

可选的,所述根据所述目标数据池的可用容量的使用状态和所述单位配额值实时调整分配至所述目标存储节点的可用容量值包括:

若所述目标存储节点的可用空间容量增加,判断所述目标存储节点新增可用空间容量值与所述待写入数据的未写入部分占用空间容量值是否大于预设第二差值阈值;

若是,则根据所述目标数据池的可用容量的使用状态减小所述初始可用容量值,以回收所述目标存储节点的可用空间容量。

可选的,所述预先根据分布式存储系统的当前可用容量值和数据池总创建个数为各数据池设置配额值之后,还包括:

根据各数据池的配额值和容量使用历史信息为各数据池设置告警容量值,以用于在数据池的可用容量值小于等于所述告警容量值时,向用户发送可用容量不足的告警信息。

可选的,所述当接收写入目标数据池的数据写入指令之后,还包括:

判断所述目标数据池存储数据占用空间容量值是否超过相应配额值;

若是,则禁止向所述目标数据池写入数据,并向用户发送禁止写入数据的提示信息。

本发明实施例另一方面提供了一种分布式存储系统的数据写入装置,基于元数据服务器,包括:

数据池配额预设置模块,用于预先根据分布式存储系统的当前可用容量值和数据池总创建个数为各数据池设置配额值,以作为各数据池的固有属性值;

节点局部配额分配模块,用于当接收写入目标数据池的数据写入指令,根据所述目标数据池的配额值、待写入数据容量值、所述目标数据池的总存储节点个数及单位配额值,为所述待写入数据对应目标存储节点分配初始可用容量值;所述单位配额值为预先设置的每次为各存储节点分配可用容量的最小值;

节点配额动态调整模块,用于在所述目标存储节点写入数据过程中,根据所述目标数据池的可用容量的使用状态和所述单位配额值实时调整分配至所述目标存储节点的可用容量值,直至所述待写入数据全部写入所述目标存储节点。

可选的,所述节点配额动态调整模块包括:

可用容量新增方式判断子模块,用于判断所述目标存储节点当前可用空间容量与所述待写入数据的未写入部分占用空间容量值的差值是否小于预设第一差值阈值;

第一调整子模块,用于若所述目标存储节点当前可用空间容量与所述待写入数据的未写入部分占用空间容量值的差值小于预设第一差值阈值,则根据所述目标数据池的可用容量的使用状态为所述目标存储节点分配新可用空间容量,所述新可用空间容量值为调整因子与所述单位配额值的乘积;

第二调整子模块,用于若所述目标存储节点当前可用空间容量与所述待写入数据的未写入部分占用空间容量值的差值不小于预设第一差值阈值,则根据所述目标数据池的可用容量的使用状态为所述目标存储节点分配新可用空间容量,所述新可用空间容量值为所述单位配额值。

可选的,所述节点配额动态调整模块包括:

回收容量判断子模块,用于若所述目标存储节点的可用空间容量增加,判断所述目标存储节点新增可用空间容量值与所述待写入数据的未写入部分占用空间容量值是否大于预设第二差值阈值;

容量回收子模块,用于若所述目标存储节点新增可用空间容量值与所述待写入数据的未写入部分占用空间容量值大于预设第二差值阈值,则根据所述目标数据池的可用容量的使用状态减小所述初始可用容量值,以回收所述目标存储节点的可用空间容量。

本发明实施例还提供了一种分布式存储系统的数据写入设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述分布式存储系统的数据写入方法的步骤。

本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有分布式存储系统的数据写入程序,所述分布式存储系统的数据写入程序被处理器执行时实现如前任一项所述分布式存储系统的数据写入方法的步骤。

本申请提供的技术方案的优点在于,在数据池创建时预先为其设置配额,限定各数据池的可用容量,保障数据池可用容量可控,方便用户调控数据池的数据写入;在数据写入过程中,采用节点局部配额设置与动态调整相结合的方式平衡数据在分布式存储中节点上的数据写入容量,使得数据池的各存储节点均衡写入数据,实现用户数据写入的可控性,用户可准确、快速地写入数据,提升用户使用体验,还有利于提升分布式存储系统的整体性能。

此外,本发明实施例还针对分布式存储系统的数据写入方法提供了相应的实现装置、设备及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置、设备及计算机可读存储介质具有相应的优点。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种分布式存储系统的数据写入方法的流程示意图;

图2为本发明实施例提供的一种数据池创建流程示意图;

图3为本发明实施例提供的一种数据池容量监测示意图;

图4为本发明实施例提供的一种存储节点可用容量分配流程示意图;

图5为本发明实施例提供的分布式存储系统的数据写入装置的一种具体实施方式结构图;

图6为本发明实施例提供的分布式存储系统的数据写入装置的另一种具体实施方式结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的一种分布式存储系统的数据写入方法的流程示意图,基于元数据服务器,本发明实施例可包括以下内容:

s101:预先根据分布式存储系统的当前可用容量值和数据池总创建个数为各数据池设置配额值,以作为各数据池的固有属性值。

在本申请中,分布式存储系统在创建数据池时,可为有可用容量可控需求的数据池设置配额值,结合图2所示的数据池创建过程。其中,设置数据池保护策略可参阅相关技术中设置的保护策略,本申请对此不作任何限定。若没有可用容量可控需求,则按照常规数据池构建方法进行创建,若有可用容量可控需求,则根据分布式存储系统的当前可用容量值和数据池总创建个数来设置配额值。若当前数据池有配额值要求,则可按照数据池的需求来为其设置,但若当前数据池所需配额值很大,远远大于分布式存储系统中每个数据池平均可分配的可用容量值,则元数据服务器可根据分布式存储系统的实际可用容量值进行适量减小,以均衡分布式存储系统中各数据池可用空间容量。

可以理解的是,每个数据池的配额值作为该数据池固有属性值,是可以被实时查询和获取的信息,系统限制该数据池写入数据不超过该配额值。系统可同步监测数据池配额与系统总可用空间,保证系统有足够空间使该数据池在配额范围内能够写入数据。通过为数据池设置配额,可以达到限制数据池写入数据的容量,控制数据池的数据分布,保证系统内数据的合理分布与调控。

s102:判断是否接收到写入目标数据池的数据写入指令,若是,则执行s103。

可以理解的是,此处的目标数据池为数据写入指令中待写入数据的存储位置,也就是说,数据写入指令对应的待写入数据即将要写入存储节点所处的数据池。

s103:根据目标数据池的配额值、待写入数据容量值、目标数据池的总存储节点个数及单位配额值,为待写入数据对应目标存储节点分配初始可用容量值。

本申请中,为了均衡数据池内各节点的数据写入,元数据服务器在对目标数据池进行可用容量分配时,是循序渐进的一个存储单元值一个存储单元值分配的,尤其是在数据池可用容量值较小时,或者是数据池中同时有多个存储节点同时进行数据写入时。单位配额值为预先设置的每次为各存储节点分配可用容量的最小值,举例来说,元数据服务器可按照每次最少10m为各存储节点分配可用容量值,单位配额值可为10m。当然,元数据服务器在为各存储节点分配可用容量值,或者是局部配额值时,还可按照单位配额值的倍数进行分配。初始可用容量值为元数据服务器预先为各存储节点分配的局部配额值,该值会在数据写入过程中进行动态调整,并不为固定不变。

s104:在目标存储节点写入数据过程中,根据目标数据池的可用容量的使用状态和单位配额值实时调整分配至目标存储节点的可用容量值,直至待写入数据全部写入目标存储节点。

可以理解的是,目标数据池一般都包含多个存储节点,各存储节点会同时进行数据写入,各存储节点的初始可用容量值可能并不能完全存储待写入数据,也可能存储完待写入数据后还有剩余,而数据池的可用容量值为固定的,为了均衡各存储节点的数据写入,使得各存储节点可以将待写入数据成功写入,在保证写入目标数据池的总数据占用空间值小于目标数据池当前可用空间容量基础上,可为需求可用空间容量大的存储节点多分配一些空间,为需求可用空间容量少的存储节点少分配一些空间。该步骤中的目标数据池的可用容量的使用状态包括目标数据池当前可用空间容量值、目标数据池中各存储节点所需可用空间容量值及目标存储节点未写入数据占用空间容量值。

在本发明实施例提供的技术方案中,在数据池创建时预先为其设置配额,限定各数据池的可用容量,保障数据池可用容量可控,方便用户调控数据池的数据写入;在数据写入过程中,采用节点局部配额设置与动态调整相结合的方式平衡数据在分布式存储中节点上的数据写入容量,使得数据池的各存储节点均衡写入数据,实现用户数据写入的可控性,用户可准确、快速地写入数据,提升用户使用体验,还有利于提升分布式存储系统的整体性能。

作为一种可选的实施方式,在为数据池设置配额值基础上,请参阅图2及图3,还可同步设置数据池容量告警阈值,该容量告警阈值也可作为数据池的固有属性值,可以配额百分比表示。在数据池写入数据时,同步定时监测数据池已用容量。在已用容量超过告警阈值时,上报告警信息,通过系统告警系统上报用户,提醒用户该数据池数据即将达到限制值,辅助用户控制数据写入。当然,也可在数据池创建完成后,根据各数据池的配额值和容量使用历史信息为各数据池设置告警容量值,以用于在数据池的可用容量值小于等于告警容量值时,向用户发送可用容量不足的告警信息。此外,若目标数据池存储数据占用空间容量值超过相应配额值,则禁止向目标数据池写入数据,并向用户发送禁止写入数据的提示信息。系统通过上述操作,可以达到限制数据池写入数据,控制数据池数据分布的目的,保证系统内数据的合理分布于调控。

在另外一种实施方式中,s104步骤中元数据服务器动态调整各存储节点的可用空间容量值可参阅图4所示。在向目标存储节点写入数据时,元数据服务器判断待写入数据占用空间容量值是否超过当前可用空间容量,也就是存储节点的局部配额值,若是,则需要存储节点向元数据服务器发送申请可用空间容量或申请配额的指令;若否,则直接执行数据的写入。在元数据服务器向目标存储节点分配可用空间容量时,可判断目标存储节点当前可用空间容量与待写入数据的未写入部分占用空间容量值的差值是否小于预设第一差值阈值,第一差值阈值例如可为30m;若是,则根据目标数据池的可用容量的使用状态为目标存储节点分配新可用空间容量,新可用空间容量值为调整因子与单位配额值的乘积;若否,则根据目标数据池的可用容量的使用状态为目标存储节点分配新可用空间容量,新可用空间容量值为单位配额值。也就是说,考虑到目标存储节点会存在数据删除等导致可用空间容量增大的情况发生,为了兼顾各存储节点数据的可用空间均衡分布以及数据写入效率,元数据服务器根据目标存储节点为将待写入数据成功写入所需可用空间值与实际可用空间值的差值进行配额分配,若目标存储节点所需可用空间容量值较大,则每次为其多分配一些可用空间,若目标存储节点所需可用空间容量值较小,则每次为其少分配一些可用空间。此外,元数据服务器在为存储节点分配配额时,还需要判断是否符合分配要求,例如可预先为每个存储节点预先设置最大可用空间容量值,若存储节点的局部配额值已超过最大可用空间容量值,则不为其继续分配可用空间容量,并将控制待写入数据写入至目标数据池的其他存储节点或者是其他数据池内。

可以理解的是,若目标存储节点的可用空间容量增加,例如数据擦除或删除,还可判断目标存储节点新增可用空间容量值与待写入数据的未写入部分占用空间容量值是否大于预设第二差值阈值,第二差值阈值例如可为20m;若是,则根据目标数据池的可用容量的使用状态减小初始可用容量值,以回收目标存储节点的可用空间容量。元数据服务器在回收存储节点可用空间容量值时,可根据该存储节点写入数据情况进行回收,若其写入数据占用空间容量值较大,避免后续存储节点向元数据服务器申请可用空间操作,降低数据写入效率,则可不回收目标存储节点的可用空间容量;若其写入数据占用空间容量值一般,避免后续存储节点向元数据服务器申请可用空间操作,降低数据写入效率,则可回收目标存储节点的部分可用空间容量;若其写入数据占用空间容量值较小,避免其他存储节点向元数据服务器申请可用空间时元数据服务器的可用空间容量不足的现象发生,则可回收目标存储节点的可用空间容量。系统通过局部配额设置与动态调整相结合的方式平衡数据在分布式存储中节点上的数据写入容量。

本发明实施例还针对分布式存储系统的数据写入方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的分布式存储系统的数据写入装置进行介绍,下文描述的分布式存储系统的数据写入装置与上文描述的分布式存储系统的数据写入方法可相互对应参照。

参见图5,图5为本发明实施例提供的分布式存储系统的数据写入装置在一种具体实施方式下的结构图,基于元数据服务器,该装置可包括:

数据池配额预设置模块501,用于预先根据分布式存储系统的当前可用容量值和数据池总创建个数为各数据池设置配额值,以作为各数据池的固有属性值。

节点局部配额分配模块502,用于当接收写入目标数据池的数据写入指令,根据目标数据池的配额值、待写入数据容量值、目标数据池的总存储节点个数及单位配额值,为待写入数据对应目标存储节点分配初始可用容量值;单位配额值为预先设置的每次为各存储节点分配可用容量的最小值。

节点配额动态调整模块503,用于在目标存储节点写入数据过程中,根据目标数据池的可用容量的使用状态和单位配额值实时调整分配至目标存储节点的可用容量值,直至待写入数据全部写入目标存储节点。

可选的,在本实施例的一些实施方式中,所述节点配额动态调整模块503还可以包括:

可用容量新增方式判断子模块,用于判断目标存储节点当前可用空间容量与待写入数据的未写入部分占用空间容量值的差值是否小于预设第一差值阈值;

第一调整子模块,用于若目标存储节点当前可用空间容量与待写入数据的未写入部分占用空间容量值的差值小于预设第一差值阈值,则根据目标数据池的可用容量的使用状态为目标存储节点分配新可用空间容量,新可用空间容量值为调整因子与单位配额值的乘积;

第二调整子模块,用于若目标存储节点当前可用空间容量与待写入数据的未写入部分占用空间容量值的差值不小于预设第一差值阈值,则根据目标数据池的可用容量的使用状态为目标存储节点分配新可用空间容量,新可用空间容量值为单位配额值。

在本实施例的另一些实施方式中,所述节点配额动态调整模块503例如还可以包括:

回收容量判断子模块,用于若目标存储节点的可用空间容量增加,判断目标存储节点新增可用空间容量值与待写入数据的未写入部分占用空间容量值是否大于预设第二差值阈值;

容量回收子模块,用于若目标存储节点新增可用空间容量值与待写入数据的未写入部分占用空间容量值大于预设第二差值阈值,则根据目标数据池的可用容量的使用状态减小初始可用容量值,以回收目标存储节点的可用空间容量。

可选的,请参阅图6,所述装置例如还可包括告警模块504,所述告警模块504用于在数据池的可用容量值小于等于告警容量值时,向用户发送可用容量不足的告警信息;告警容量值为根据各数据池的配额值和容量使用历史信息预先为各数据池设置的。

在另外一种可选的实施方式中,所述装置例如还可包括数据禁止写入模块505,所述数据禁止写入模块505用于检测目标数据池存储数据占用空间容量值超过相应配额值,禁止向所述目标数据池写入数据,并向用户发送禁止写入数据的提示信息。

本发明实施例所述分布式存储系统的数据写入装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例实现了用户数据写入的可控性,有利于提升分布式存储系统的整体性能。

本发明实施例还提供了一种分布式存储系统的数据写入设备,具体可包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序以实现如上任意一实施例所述分布式存储系统的数据写入方法的步骤。

本发明实施例所述分布式存储系统的数据写入设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例实现了用户数据写入的可控性,有利于提升分布式存储系统的整体性能。

本发明实施例还提供了一种计算机可读存储介质,存储有分布式存储系统的数据写入程序,所述分布式存储系统的数据写入程序被处理器执行时如上任意一实施例所述分布式存储系统的数据写入方法的步骤。

本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例实现了用户数据写入的可控性,有利于提升分布式存储系统的整体性能。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种分布式存储系统的数据写入方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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