一种分布式存储系统中的重新分片方法及系统技术方案

技术编号:26303951 阅读:25 留言:0更新日期:2020-11-10 19:58
本发明专利技术公开了一种分布式存储系统中的重新分片方法及系统,所述方法包括:在针对存储桶重新分片时,将各个分片统计信息中的统计值累加至头部字段中;删除各个所述分片统计信息,并根据重新分片后的分片数量,创建与所述分片数量相等的若干个新的分片统计信息;其中,所述若干个新的分片统计信息与重新分片后的各个分片一一对应;根据所述重新分片后的分片数量,对操作日志集合中的操作日志进行分组,以使得操作日志的分组数与所述重新分片后的分片数量保持一致。本申请提供的技术方案,能够在分布式存储系统处于在线状态时,对分布式存储系统中的存储桶进行重新分片。

【技术实现步骤摘要】
一种分布式存储系统中的重新分片方法及系统
本专利技术涉及互联网
,特别涉及一种分布式存储系统中的重新分片方法及系统。
技术介绍
在当前的分布式存储系统中,存储桶(bucket)的元数据可以存储于bucketindex的数据结构中。在传统的分布式存储系统中,单个存储桶的元数据可以全部存储于同一个分片(shard)文件中。然而,随着存储桶中文件数据的不断增加,分片文件的数据量也在不断增加。过大体积的分片文件,会导致底层存储性能消耗严重、一致性校验过程耗时较长等一系列问题。鉴于此,目前可以将同一个存储桶划分为多个分片,并在这多个分片中分别存储一部分元数据。具体地,如图1所示,现有的分布式存储系统可以通过omap来实现不同的分片,omap可以存放元数据的文件,当用户想要上传某个目标文件时,分布式存储系统可以选定一个文件存储网关(RGW,RadosGateWay),并通过选定的文件存储网关来确定,该目标文件的元数据应当被存放入哪个omap中。然而,现有的这种通过omap来实现分片的方式,在面对重新分片(reshard)时会存在一定的缺陷:如果需要调整分片数量,那么必然会对应地调整omap的数量。由于omap中存放了文件的元数据,那么在进行重新分片时,需要将分布式存储系统设置为离线状态。这样,在进行重新分片时,可以将原有的元数据在重新分片后的omap中进行迁移和重新分配。在完成重新分片的过程之后,可以将分布式存储系统设置为在线状态,从而继续向用户提供服务。随着元数据数据的不断增多,每次重新分片的耗时也必然会增加,这就导致分布式存储系统处于离线的状态过久,无法正常地向用户提供服务。
技术实现思路
本申请的目的在于提供一种分布式存储系统中的重新分片方法及系统,能够在分布式存储系统处于在线状态时,对分布式存储系统中的存储桶进行重新分片。为实现上述目的,本申请一方面一种分布式存储系统中的重新分片方法,所述分布式存储系统中包含至少一个存储桶,每个所述存储桶被划分为预设数量的分片,并且所述存储桶具备用于记载指定参数统计信息的头部字段,以及各个所述分片具备各自的分片统计信息;所述方法包括:在针对所述存储桶重新分片时,将各个所述分片统计信息中的统计值累加至所述头部字段中;删除各个所述分片统计信息,并根据重新分片后的分片数量,创建与所述分片数量相等的若干个新的分片统计信息;其中,所述若干个新的分片统计信息与重新分片后的各个分片一一对应;根据所述重新分片后的分片数量,对操作日志集合中的操作日志进行分组,以使得操作日志的分组数与所述重新分片后的分片数量保持一致。为实现上述目的,本申请另一方面还提供一种分布式存储系统中的重新分片系统,所述分布式存储系统中包含至少一个存储桶,所述存储桶被划分为预设数量的分片,并且所述存储桶具备用于记载指定参数统计信息的头部字段,以及各个所述分片具备各自的分片统计信息;所述重新分片系统包括:统计值累加单元,用于在针对所述存储桶重新分片时,将各个所述分片统计信息中的统计值累加至所述头部字段中;统计信息创建单元,用于删除各个所述分片统计信息,并根据重新分片后的分片数量,创建与所述分片数量相等的若干个新的分片统计信息;其中,所述若干个新的分片统计信息与重新分片后的各个分片一一对应;操作日志分组单元,用于根据所述重新分片后的分片数量,对操作日志集合中的操作日志进行分组,以使得操作日志的分组数与所述重新分片后的分片数量保持一致。由上可见,本申请提供的技术方案,存储桶可以具备自身的用于记载指定参数统计信息的头部字段,存储桶划分的多个分片也可以具备各自的分片统计信息。当需要对存储桶进行重新分片时,可以先将各个所述分片统计信息中的统计值累加至所述头部字段中,这样,头部字段便可以汇总记录当前各个分片的统计值。然后,可以删除当前的各个分片的分片统计信息,并根据重新分片后的分片数量,创建等量的多个新的分片统计信息。这些新的分片统计信息,可以用于记录重新分片后的各个分片的统计值。此外,对于操作日志集合中待处理的操作日志,也可以根据重新分片后的分片数量进行分组,以使得操作日志的分组数与所述重新分片后的分片数量保持一致,重新分片后的每个分片都可以对应自身的操作日志的分组。由上可见,本申请提供的技术方案,并不会对待处理文件的元数据进行重新分片,而是重新创建分片统计信息,以及对操作日志进行重新分组。这种重新分片的过程并不需要迁移大量的元数据,也不会对在线业务造成影响,因此本申请提供的重新分片的方法,能够在分布式存储系统处于在线状态时,对分布式存储系统中的存储桶进行高效的重新分片。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是现有技术中的分布式存储系统的结构示意图;图2是本专利技术实施方式中分布式存储系统的结构示意图;图3是本专利技术实施方式中的分片示意图;图4是本专利技术实施方式中的重新分片示意图;图5是本专利技术实施方式中的数据处理方法步骤图;图6是本专利技术实施方式中的分片区间示意图;图7是本专利技术实施方式中的重新分片方法步骤图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本申请提供一种分布式存储系统中的重新分片方法。请参阅图2,所述分布式存储系统中各个文件的元数据均可以存储于持久化数据库中。该持久化数据库例如可以是MongoDB。如图2所示,所述分布式存储系统中可以包括多个RGW,当用户客户端需要上传某个文件时,可以通过其中的一个RGW提供的接口,将文件的实际数据以及文件的元数据存储于所述持久化数据库中。在所述分布式存储系统中,用户可以创建和管理自身的存储桶,所述存储桶可以被划分为预设数量的分片。与所述存储桶相关的各项信息,均可以存储于上述的持久化数据库中。具体地,与所述存储桶相关的信息可以包括:操作日志集合、元数据信息集合、用于记载指定参数统计信息的头部字段、各个分片的分片统计信息等。所述指定参数可以指文件数量和/或文件所占的数据量。该指定参数也可以被称为存储桶的总计费值。其中,当该用户的客户端向分布式存储系统发送文件处理请求时,分布式存储系统可以针对该文件处理请求生成操作日志,并且可以将该操作日志存放于用户的存储桶对应的操作日志集合中。所述元数据信息集合中,可以记录位于所述存储桶内的各个文件的元数据信息。所述元数据信息可以包括文件大小、文件修改时间、文件拥有者、文件标签等多种信息。所述头部字段则可以记录所述存储桶的总计费值。所述总计费值例如可以包括所述存储桶内的文件总数、所述存储桶内文件所占的总数据空间等。所述各个分片的分片统计信息,则可以记录各个分片的计费值。例如,所述分片统计信息可以记录当前分片内的文件总数,以及当前分片内文件所占的总数据空间等。<本文档来自技高网
...

【技术保护点】
1.一种分布式存储系统中的重新分片方法,其特征在于,所述分布式存储系统中包含至少一个存储桶,每个所述存储桶被划分为预设数量的分片,并且所述存储桶具备用于记载指定参数统计信息的头部字段,以及各个所述分片具备各自的分片统计信息;所述方法包括:/n在针对所述存储桶重新分片时,将各个所述分片统计信息中的统计值累加至所述头部字段中;/n删除各个所述分片统计信息,并根据重新分片后的分片数量,创建与所述分片数量相等的若干个新的分片统计信息;其中,所述若干个新的分片统计信息与重新分片后的各个分片一一对应;/n根据所述重新分片后的分片数量,对操作日志集合中的操作日志进行分组,以使得操作日志的分组数与所述重新分片后的分片数量保持一致。/n

【技术特征摘要】
1.一种分布式存储系统中的重新分片方法,其特征在于,所述分布式存储系统中包含至少一个存储桶,每个所述存储桶被划分为预设数量的分片,并且所述存储桶具备用于记载指定参数统计信息的头部字段,以及各个所述分片具备各自的分片统计信息;所述方法包括:
在针对所述存储桶重新分片时,将各个所述分片统计信息中的统计值累加至所述头部字段中;
删除各个所述分片统计信息,并根据重新分片后的分片数量,创建与所述分片数量相等的若干个新的分片统计信息;其中,所述若干个新的分片统计信息与重新分片后的各个分片一一对应;
根据所述重新分片后的分片数量,对操作日志集合中的操作日志进行分组,以使得操作日志的分组数与所述重新分片后的分片数量保持一致。


2.根据权利要求1所述的方法,其特征在于,所述存储桶的头部字段中包括所述存储桶的当前版本号;
相应地,在针对所述存储桶重新分片时,从所述存储桶的头部字段中识别所述存储桶的当前版本号,并在将各个所述分片统计信息中的统计值累加至所述头部字段中之后,更新所述当前版本号,并用更新后的版本号替换所述头部字段中的所述当前版本号。


3.根据权利要求2所述的方法,其特征在于,在从所述存储桶的头部字段中识别所述存储桶的当前版本号之后,所述方法还包括:
将所述存储桶的头部字段和所述当前版本号关联存储于备份数据集合中,以及将所述预设数量的分片的各个分片统计信息和所述当前版本号关联存储于所述备份数据集合中;
若重新分片过程中出现异常导致重新分片失败,基于所述备份数据集合中与所述当前版本号关联的头部字段和各个分片统计信息,对所述存储桶进行数据还原。


4.根据权利要求1所述的方法,其特征在于,在对操作日志集合中的操作日志进行分组之后,所述方法还包括:
分别创建各个所述分片的元数据处理任务,其中,当前分片的元数据处理任务中至少包括所述当前分片的分片标识;
在执行所述当前分片的元数据处理任务时,读取所述当前分片的分片统计信息,并基于所述当前分片的分片标识,从操作日志集合中读取属于所述当前分片的操作日志;
依次处理读取的各个所述操作日志,并根据处理结果更新所述当前分片的分片统计信息。


5.根据权利要求4所述的方法,其特征在于,所述操作日志集合中的操作日志按照以下方式生成:
接收指向目标文件的文件处理请求,并计算所述目标文件的哈希值;
生成所述文件处理请求对应的操作日志,并将计算得到的所述哈希值写入所述操作日志的指定字段中。


6.根据权利要求4或5所述的方法,其特征在于,基于所述当前分片的分片标识,从操作日志集合中读取属于所述当前分片的操作日志包括:
遍历所述操作日志集合中的每条操作日志,并针对当前操作日志,识别所述当前操作日志的指定字段中填写的哈希值;
将识别的所述哈希值对所述预设数量进行取模运算,若取模运算的结果与所述当前分片的分片标识相匹配,将所述当前操作日志作为属于所述当前分片的操作日志。


7.根据权利要求4所述的方法,其特征在于,读取所述当前分片的分片统计信息包括:
在分片统计信息集合中查询所述当前分片的分片标识指向的分片统计信息,并将查询得到的所述分片统计信息作为所述当前分片的分片统计信息。


8.根据权利要求4所述的方法,其特征在于,根据处理结果更新所述当前分片的分片统计信息包括:
若读取的当前操作日志为上传新文件的上传操作日志,在所述当前操作日志中识别所述新文件的指定参数统计值,并将识别出的所述指定参数统计值累加至所述当前分片的分片统计信息中;
若读取的当前操作日志为修改已存储文件的修改操作日志,在所述当前操作日志中识别所述已存储文件修改后的指定参数统计...

【专利技术属性】
技术研发人员:孙细妹苏学敏
申请(专利权)人:厦门网宿有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1