一种分布式存储系统数据均衡的方法和相关装置转让专利

申请号 : CN202011194931.1

文献号 : CN112015708B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 甘红星

申请人 : 北京金山云网络技术有限公司

摘要 :

本申请公开了一种分布式存储系统数据均衡的方法和相关装置,该方法包括:从目标服务器的当前磁盘中,选择一个待数据重整数据块作为目标数据块;依据目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;对目标数据块进行数据重整,将数据重整后的数据写入目标磁盘。在数据重整后的数据写入目标选择上,优先选择使用情况和数据重整并发数据符合预设使用条件和预设数据重整并发条件的磁盘;采用上述方式通过已有的数据重整处理,动态调节不同磁盘的使用情况,实现服务器集群中单个服务器内不同磁盘间数据均衡,不会增加额外的磁盘IO,也避免了服务器集群的写入瓶颈。

权利要求 :

1.一种分布式存储系统数据均衡的方法,其特征在于,包括:从目标服务器的当前磁盘中,确定一个待数据重整数据块为目标数据块;

基于各个磁盘的使用情况,筛选符合预设使用条件的磁盘作为候选磁盘;

基于各个所述候选磁盘的可用空间由大到小排序各个所述候选磁盘;

按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件;若是,将所述候选磁盘确定为目标磁盘;

对所述目标数据块进行数据重整,将数据重整后的数据写入所述目标磁盘;所述数据重整是指针对磁盘的数据块中还未立即删除垃圾数据的原有数据,将其中有效数据写入到其他位置,通过0/1切换的方式以替换原有数据。

2.根据权利要求1所述的方法,其特征在于,所述预设使用条件具体为可用空间大于所述当前磁盘的可用空间,或者,磁盘使用率小于所述当前磁盘的磁盘使用率;所述预设数据重整并发条件具体为数据重整并发数据小于预设数据重整并发数据上限。

3.根据权利要求1或2所述的方法,其特征在于,所述数据重整并发数据包括数据重整并发数量和数据重整并发速度。

4.根据权利要求3所述的方法,其特征在于,所述按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件,具体为:按照排序判断所述候选磁盘的数据重整并发数量是否小于预设数据重整并发数量上限,且数据重整并发速度是否小于预设数据重整并发速度上限。

5.根据权利要求1所述的方法,其特征在于,在所述将所述候选磁盘确定为目标磁盘之后,还包括:更新所述目标磁盘的数据重整并发数据。

6.根据权利要求1所述的方法,其特征在于,所述确定一个待数据重整数据块为目标数据块,具体为:随机选取一个待数据重整数据块确定为所述目标数据块;或,选取数据垃圾率最大的待数据重整数据块确定为所述目标数据块;或,选取磁盘空间最大的待数据重整数据块确定为所述目标数据块;或,选取有效数据最大的待数据重整数据块确定为所述目标数据块。

7.一种分布式存储系统数据均衡的装置,其特征在于,包括:确定单元,用于从目标服务器的当前磁盘中,确定一个待数据重整数据块为目标数据块;

筛选单元,用于基于各个磁盘的使用情况,筛选符合预设使用条件的磁盘作为候选磁盘;基于各个所述候选磁盘的可用空间由大到小排序各个所述候选磁盘;按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件;若是,将所述候选磁盘确定为目标磁盘;

数据重整写入单元,用于对所述目标数据块进行数据重整,将数据重整后的数据写入所述目标磁盘;所述数据重整是指针对磁盘的数据块中还未立即删除垃圾数据的原有数据,将其中有效数据写入到其他位置,通过0/1切换的方式以替换原有数据。

8.一种用于分布式存储系统数据均衡的设备,其特征在于,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行权利要求1-6任一项所述的分布式存储系统数据均衡的方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-6任一项所述的分布式存储系统数据均衡的方法。

说明书 :

一种分布式存储系统数据均衡的方法和相关装置

技术领域

[0001] 本申请涉及数据处理技术领域,尤其涉及一种分布式存储系统数据均衡的方法和相关装置。

背景技术

[0002] 随着数据的快速增长,分布式存储系统的应用越来越广,例如,分布式对象存储系统。分布式存储系统通常采用循环策略将数据自动打散存储到不同服务器的不同磁盘上,当扩容新的服务器后,由于新的服务器还未存储数据,分布式存储系统采用可用空间策略优先将数据写入至新的服务器,使得服务器集群中各个服务器使用率趋于均衡状态。
[0003] 分布式存储系统经常出现磁盘故障的情况,当磁盘修复完成重新加入服务器后,通常是采用可用空间策略优先或者主动数据均衡策略实现服务器集群中单个服务器内数据均衡。但是,可用空间策略对于单个服务器内不同磁盘间数据均衡效果一般,容易出现服务器集群的写入瓶颈;主动数据均衡策略对存在吞吐压力的服务器集群造成额外的IO放大。

发明内容

[0004] 有鉴于此,本申请实施例提供一种分布式存储系统数据均衡的方法和相关装置,不会增加额外的磁盘IO,也避免了服务器集群的写入瓶颈,即可实现服务器集群中单个服务器内不同磁盘间数据均衡。
[0005] 第一方面,本申请实施例提供了一种分布式存储系统数据均衡的方法,所述方法包括:
[0006] 从目标服务器的当前磁盘中,确定一个待数据重整数据块为目标数据块;
[0007] 基于所述目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;
[0008] 对所述目标数据块进行数据重整,将数据重整后的数据写入所述目标磁盘。
[0009] 可选的,所述基于所述目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设条件的磁盘为目标磁盘,包括:
[0010] 基于各个所述磁盘的使用情况,筛选符合所述预设使用条件的磁盘作为候选磁盘;
[0011] 基于各个所述候选磁盘的可用空间由大到小排序各个所述候选磁盘;
[0012] 按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件;若是,将所述候选磁盘确定为所述目标磁盘。
[0013] 可选的,所述预设使用条件具体为可用空间大于所述当前磁盘的可用空间,或者,磁盘使用率小于所述当前磁盘的磁盘使用率;所述预设数据重整并发条件具体为数据重整并发数据小于预设数据重整并发数据上限。
[0014] 可选的,所述数据重整并发数据包括数据重整并发数量和数据重整并发速度。
[0015] 可选的,所述按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件,具体为:
[0016] 按照排序判断所述候选磁盘的数据重整并发数量是否小于预设数据重整并发数量上限,且数据重整并发速度是否小于预设数据重整并发速度上限。
[0017] 可选的,在所述筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘之后,还包括:
[0018] 更新所述目标磁盘的数据重整并发数据。
[0019] 可选的,所述确定一个待数据重整数据块为目标数据块,具体为:
[0020] 随机选取一个待数据重整数据块确定为所述目标数据块;或,
[0021] 选取数据垃圾率最大的待数据重整数据块确定为所述目标数据块;或,[0022] 选取磁盘空间最大的待数据重整数据块确定为所述目标数据块;或,[0023] 选取有效数据最大的待数据重整数据块确定为所述目标数据块。
[0024] 第二方面,本申请实施例提供了一种分布式存储系统数据均衡的装置,所述装置包括:
[0025] 确定单元,用于从目标服务器的当前磁盘中,确定一个待数据重整数据块为目标数据块;
[0026] 筛选单元,用于基于所述目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;
[0027] 数据重整写入单元,用于对所述目标数据块进行数据重整,将数据重整后的数据写入所述目标磁盘。
[0028] 可选的,所述筛选单元包括:
[0029] 筛选子单元,用于基于各个所述磁盘的使用情况,筛选符合所述预设使用条件的磁盘作为候选磁盘;
[0030] 排序子单元,用于基于各个所述候选磁盘的可用空间由大到小排序各个所述候选磁盘;
[0031] 判断确定子单元,用于按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件;若是,将所述候选磁盘确定为所述目标磁盘。
[0032] 可选的,所述预设使用条件具体为可用空间大于所述当前磁盘的可用空间,或者,磁盘使用率小于所述当前磁盘的磁盘使用率;所述预设数据重整并发条件具体为数据重整并发数据小于预设数据重整并发数据上限。
[0033] 可选的,所述数据重整并发数据包括数据重整并发数量和数据重整并发速度。
[0034] 可选的,所述判断确定子单元具体用于:
[0035] 按照排序判断所述候选磁盘的数据重整并发数量是否小于预设数据重整并发数量上限,且数据重整并发速度是否小于预设数据重整并发速度上限。
[0036] 可选的,所述装置还包括:
[0037] 更新单元,用于更新所述目标磁盘的数据重整并发数据。
[0038] 可选的,所述确定单元具体用于:
[0039] 随机选取一个待数据重整数据块确定为所述目标数据块;或,
[0040] 选取数据垃圾率最大的待数据重整数据块确定为所述目标数据块;或,[0041] 选取磁盘空间最大的待数据重整数据块确定为所述目标数据块;或,[0042] 选取有效数据最大的待数据重整数据块确定为所述目标数据块。
[0043] 第三方面,本申请实施例提供了一种用于分布式存储系统数据均衡的设备,所述设备包括处理器以及存储器:
[0044] 所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
[0045] 所述处理器用于根据所述程序代码中的指令执行上述第一方面任一项所述的分布式存储系统数据均衡的方法。
[0046] 第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面任一项所述的分布式存储系统数据均衡的方法。
[0047] 与现有技术相比,本申请至少具有以下优点:
[0048] 采用本申请实施例的技术方案,首先,从目标服务器的当前磁盘中,选择一个待数据重整数据块作为目标数据块;然后,依据目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;最后,对目标数据块进行数据重整,将数据重整后的数据写入目标磁盘。由此可见,在数据重整处理时,对于数据重整后的数据写入目标选择上,优先选择使用情况和数据重整并发数据符合预设使用条件和预设数据重整并发条件的磁盘;通过分布式存储系统已有的数据重整处理,采用上述方式动态调节不同磁盘的使用情况,实现服务器集群中单个服务器内不同磁盘间数据均衡,不会增加额外的磁盘IO,也避免了服务器集群的写入瓶颈。

附图说明

[0049] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0050] 图1为本申请实施例中一种应用场景所涉及的系统框架示意图;
[0051] 图2为本申请实施例提供的一种分布式存储系统数据均衡的方法的流程示意图;
[0052] 图3为本申请实施例提供的一种数据重整的示意图;
[0053] 图4为本申请实施例提供的一种分布式存储系统数据均衡的装置的结构示意图。

具体实施方式

[0054] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0055] 现阶段,分布式存储系统通常采用循环策略和可用空间策略,使得服务器集群中各个服务器使用率趋于均衡状态。当磁盘故障修复完成重新加入服务器后,该磁盘的可用空间远大于服务器中的其他磁盘,即,存在单个服务器内数据不均衡的现象,通常是采用可用空间策略优先将数据写入至该磁盘,或者采用主动数据均衡策略读取其他磁盘的数据写入至该磁盘,以实现服务器集群中单个服务器内数据均衡。但是,可用空间策略对于单个服务器内不同磁盘间数据均衡效果一般,完全通过优先将数据写入磁盘的方式,容易出现服务器集群的写入瓶颈,导致数据均衡速度较慢;主动数据均衡策略通过读取一个磁盘的数据写入另一个磁盘的方式,产生额外的磁盘IO,对存在吞吐压力的服务器集群造成额外的IO放大。
[0056] 为了解决这一问题,在本申请实施例中,从目标服务器的当前磁盘中,选择一个待数据重整数据块作为目标数据块;依据目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;对目标数据块进行数据重整,将数据重整后的数据写入目标磁盘。可见,在数据重整处理时,对于数据重整后的数据写入目标选择上,优先选择使用情况和数据重整并发数据符合预设使用条件和预设数据重整并发条件的磁盘;通过分布式存储系统已有的数据重整处理,采用上述方式动态调节不同磁盘的使用情况,实现服务器集群中单个服务器内不同磁盘间数据均衡,不会增加额外的磁盘IO,也避免了服务器集群的写入瓶颈。
[0057] 举例来说,本申请实施例的场景之一,可以是应用到如图1所示的场景中,该场景包括分布式存储系统100和目标服务器200,针对目标服务器200分布式存储系统100采用本申请实施例提供的实施方式实现目标服务器200中不同磁盘间数据均衡。
[0058] 首先,在上述应用场景中,虽然将本申请实施例提供的实施方式的动作描述由分布式存储系统100执行;但是,本申请实施例在执行主体方面不受限制,只要执行了本申请实施例提供的实施方式所公开的动作即可。
[0059] 其次,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
[0060] 下面结合附图,通过实施例来详细说明本申请实施例中分布式存储系统数据均衡的方法和相关装置的具体实现方式。
[0061] 示例性方法
[0062] 参见图2,示出了本申请实施例中一种分布式存储系统数据均衡的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
[0063] 步骤201:从目标服务器的当前磁盘中,确定一个待数据重整数据块为目标数据块。
[0064] 针对分布式存储系统的服务器中磁盘出现故障,该磁盘修复完成重新加入服务器,其可用空间远大于服务器中的其他磁盘,存在单个服务器内数据不均衡的现象。现有技术中采用可用空间策略优先将数据写入至该磁盘,可用空间策略对于单个服务器内不同磁盘间数据均衡效果一般,完全通过优先将数据写入磁盘的方式,容易出现服务器集群的写入瓶颈,导致数据均衡速度较慢;采用主动数据均衡策略读取其他磁盘的数据写入至该磁盘,产生额外的磁盘IO,对存在吞吐压力的服务器集群造成额外的IO放大。
[0065] 本申请实施例中,考虑到分布式存储系统已有的数据重整处理是指:针对磁盘的数据块中还未立即删除垃圾数据的原有数据,将其中有效数据写入到其他位置,通过0/1切换的方式以替换原有数据;例如,如图3所示的一种数据重整的示意图。因此,可以利用分布式存储系统已有的数据重整处理,将有效数据(即,数据重整后的数据)写入到其他磁盘中,从而实现单个服务器中不同磁盘间数据均衡。
[0066] 本申请实施例中,服务器集群中任意一个服务器均可作为目标服务器,目标服务器中任意一个磁盘均可作为当前磁盘。为了利用分布式存储系统已有的数据重整处理,实现单个服务器中不同磁盘间数据均衡,首先需要在目标服务器的当前磁盘中,确定一个待数据重整数据块为目标数据块。
[0067] 具体实施时,确定一个待数据重整数据块为目标数据块的方式既可以是随机选取方式,也可以是按照预设选取方式,其中,预设选取方式例如可以是考虑数据垃圾率设定的数据垃圾率最大选取方式,也可以是考虑磁盘空间设定的磁盘空间最大选取方式,还可以是考虑有效数据设定的有效数据最大选取方式等等。因此,在本申请实施例一种可选的实施方式中,所述步骤201中确定一个待数据重整数据块为目标数据块的步骤,例如具体可以为:随机选取一个待数据重整数据块确定为所述目标数据块;或,选取数据垃圾率最大的待数据重整数据块确定为所述目标数据块;或,选取磁盘空间最大的待数据重整数据块确定为所述目标数据块;或,选取有效数据最大的待数据重整数据块确定为所述目标数据块。
[0068] 步骤202:基于所述目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘。
[0069] 本申请实施例中,在步骤201确定目标数据块后,需要从目标服务器中除当前磁盘之外的其他磁盘中筛选得到目标磁盘,将其作为目标数据块进行数据重整处理后将有效数据需要写入的位置。由于筛选得到目标磁盘的目的是为了利用数据重整处理实现单个服务器中不同磁盘间数据均衡,因此,在筛选时需要考虑目标服务器的各个磁盘的使用情况;此外,为了避免并发的数据重整处理影响分布式存储系统的正常访问,还需要考虑目标服务器的各个磁盘的数据重整并发数据。
[0070] 即,预先设定作为目标磁盘需要符合的预设使用条件和预设数据重整并发条件,依据目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的一个磁盘即可作为目标磁盘。
[0071] 具体实施时,首先,可以在已知目标服务器的各个磁盘的使用情况基础上,利用预设使用条件筛选得到候选磁盘,候选磁盘的使用情况需要符合预设使用条件;然后,考虑到在利用数据重整实现单个服务器中不同磁盘间数据均衡时,可用空间越大的候选磁盘越容易作为目标磁盘,可以按照各个候选磁盘的可用空间由大到小排序各个候选磁盘;最后,在已知各个候选磁盘的重整并发数据的基础上,需要按照该排序利用预设数据重整并发条件筛选得到目标磁盘。因此,在本申请实施例一种可选的实施方式中,所述步骤202例如可以包括以下步骤:
[0072] 步骤A:基于各个所述磁盘的使用情况,筛选符合所述预设使用条件的磁盘作为候选磁盘。
[0073] 由于利用数据重整实现单个服务器中不同磁盘间数据均衡,则目标磁盘的可用空间相较于当前磁盘的使用空间更大;因此,可能作为目标磁盘的候选磁盘的可用空间需要大于当前磁盘的可用空间,或者,可能作为目标磁盘的候选磁盘的磁盘使用率需要小于当前磁盘的磁盘使用率。即,在本申请实施例一种可选的实施方式中,所述预设使用条件具体为可用空间大于所述当前磁盘的可用空间,或者,磁盘使用率小于所述当前磁盘的磁盘使用率。
[0074] 进一步地,候选磁盘的可用空间与当前磁盘的可用空间的差值大于等于第一预设差值,或者,候选磁盘的磁盘使用率与当前磁盘的磁盘使用率的差值绝对值大于等于第二预设差值。例如,第一预设差值可以为数据块大小,比如8kb,例如,第二预设差值可以为5%等等;当然,在本申请实施例中,第一预设差值和第二预设差值并不具体限制。
[0075] 步骤B:基于各个所述候选磁盘的可用空间由大到小排序各个所述候选磁盘。
[0076] 步骤C:按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件;若是,将所述候选磁盘确定为所述目标磁盘。
[0077] 由于为了避免并发的数据重整处理影响分布式存储系统的正常访问,预先设置数据重整的并发数据上限作为预设数据重整并发数据上限,因此,按照上述排序,侯选磁盘的数据重整并发数据小于预设数据重整并发数据上限才能作为目标磁盘。即,在本申请实施例一种可选的实施方式中,所述预设数据重整并发条件具体为数据重整并发数据小于预设数据重整并发数据上限。
[0078] 其中,所述数据重整并发数据包括数据重整并发数量和数据重整并发速度;对应地,所述预设数据重整并发数据上限包括预设数据重整并发数量上限和预设数据重整并发速度上限。预设数据重整并发数量上限和预设数据重整并发速度上限可以是分布式存储系统自动计算得到的,也可以是在分布式储系统加载磁盘配置的。
[0079] 对应地,所述预设数据重整并发条件具体为数据重整并发数量小于预设数据重整并发数量上限,且数据重整并发速度小于预设数据重整并发速度上限。因此,在本申请实施例一种可选的实施方式中,所述步骤C中按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件的步骤,具体为:按照排序判断所述候选磁盘的数据重整并发数量是否小于预设数据重整并发数量上限,且数据重整并发速度是否小于预设数据重整并发速度上限。
[0080] 步骤C具体实施时,按照排序若判断第一个候选磁盘的判断结果为否,即,第一个候选磁盘的数据重整并发数量等于预设数据重整并发数量上限,或者数据重整并发速度等于预设数据重整并发速度上限;则继续判断下一个候选磁盘的数据重整并发数量是否小于预设数据重整并发数量上限,且数据重整并发速度是否小于预设数据重整并发速度上限。
[0081] 还需要说明的是,在步骤202确定目标磁盘之后,目标磁盘的数据重整并发数据发生变化;即,目标磁盘的数据重整并发数据需要更新。因此,在本申请实施例一种可选的实施方式中,在所述步骤202之后,例如还可以包括步骤D:更新所述目标磁盘的数据重整并发数据。
[0082] 具体地,基于上述数据重整并发数据的说明,既需要更新目标磁盘的数据重整并发数量,也需要更新目标磁盘的数据重整并发速度,因此,在本申请实施例一种可选的实施方式中,所述步骤D例如具体可以为:更新所述目标磁盘的数据重整并发数量和数据重整并发速度。
[0083] 步骤203:对所述目标数据块进行数据重整,将数据重整后的数据写入所述目标磁盘。
[0084] 在本申请实施例中,在步骤201确定目标服务器的当前磁盘中目标数据块,以及在步骤202从目标服务器的各个磁盘中筛选得到目标磁盘后;为了利用数据重整处理实现单个服务器中不同磁盘间数据均衡,需要对目标数据块进行数据重整,并将数据重整后的数据写入目标磁盘;该方式不会增加额外的磁盘IO,也避免了服务器集群的写入瓶颈。
[0085] 通过本实施例提供的各种实施方式,首先,从目标服务器的当前磁盘中,选择一个待数据重整数据块作为目标数据块;然后,依据目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;最后,对目标数据块进行数据重整,将数据重整后的数据写入目标磁盘。由此可见,在数据重整处理时,对于数据重整后的数据写入目标选择上,优先选择使用情况和数据重整并发数据符合预设使用条件和预设数据重整并发条件的磁盘;通过分布式存储系统已有的数据重整处理,采用上述方式动态调节不同磁盘的使用情况,实现服务器集群中单个服务器内不同磁盘间数据均衡,不会增加额外的磁盘IO,也避免了服务器集群的写入瓶颈。
[0086] 示例性装置
[0087] 参见图4,示出了本申请实施例中一种分布式存储系统数据均衡的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:
[0088] 确定单元401,用于从目标服务器的当前磁盘中,确定一个待数据重整数据块为目标数据块;
[0089] 筛选单元402,用于基于所述目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;
[0090] 数据重整写入单元403,用于对所述目标数据块进行数据重整,将数据重整后的数据写入所述目标磁盘。
[0091] 在本申请实施例一种可选的实施方式中,所述筛选单元402包括:
[0092] 筛选子单元,用于基于各个所述磁盘的使用情况,筛选符合所述预设使用条件的磁盘作为候选磁盘;
[0093] 排序子单元,用于基于各个所述候选磁盘的可用空间由大到小排序各个所述候选磁盘;
[0094] 判断确定子单元,用于按照排序判断所述候选磁盘的数据重整并发数据是否符合预设数据重整并发条件;若是,将所述候选磁盘确定为所述目标磁盘。
[0095] 在本申请实施例一种可选的实施方式中,所述预设使用条件具体为可用空间大于所述当前磁盘的可用空间,或者,磁盘使用率小于所述当前磁盘的磁盘使用率;所述预设数据重整并发条件具体为数据重整并发数据小于预设数据重整并发数据上限。
[0096] 在本申请实施例一种可选的实施方式中,所述数据重整并发数据包括数据重整并发数量和数据重整并发速度。
[0097] 在本申请实施例一种可选的实施方式中,所述判断确定子单元具体用于:
[0098] 按照排序判断所述候选磁盘的数据重整并发数量是否小于预设数据重整并发数量上限,且数据重整并发速度是否小于预设数据重整并发速度上限。
[0099] 在本申请实施例一种可选的实施方式中,所述装置还包括:
[0100] 更新单元,用于更新所述目标磁盘的数据重整并发数据。
[0101] 在本申请实施例一种可选的实施方式中,所述确定单元401具体用于:
[0102] 随机选取一个待数据重整数据块确定为所述目标数据块;或,
[0103] 选取数据垃圾率最大的待数据重整数据块确定为所述目标数据块;或,[0104] 选取磁盘空间最大的待数据重整数据块确定为所述目标数据块;或,[0105] 选取有效数据最大的待数据重整数据块确定为所述目标数据块。
[0106] 通过本实施例提供的各种实施方式,首先,从目标服务器的当前磁盘中,选择一个待数据重整数据块作为目标数据块;然后,依据目标服务器的各个磁盘的使用情况和数据重整并发数据,筛选符合预设使用条件和预设数据重整并发条件的磁盘作为目标磁盘;最后,对目标数据块进行数据重整,将数据重整后的数据写入目标磁盘。由此可见,在数据重整处理时,对于数据重整后的数据写入目标选择上,优先选择使用情况和数据重整并发数据符合预设使用条件和预设数据重整并发条件的磁盘;通过分布式存储系统已有的数据重整处理,采用上述方式动态调节不同磁盘的使用情况,实现服务器集群中单个服务器内不同磁盘间数据均衡,不会增加额外的磁盘IO,也避免了服务器集群的写入瓶颈。
[0107] 此外,本申请实施例还提供了一种用于分布式存储系统数据均衡的设备,所述设备包括处理器以及存储器:
[0108] 所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
[0109] 所述处理器用于根据所述程序代码中的指令执行上述方法实施例所述的分布式存储系统数据均衡的方法。
[0110] 本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述方法实施例所述的分布式存储系统数据均衡的方法。
[0111] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0112] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0113] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0114] 以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形 式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。