太阳城集团

  • / 29
  • 下载费用:30 金币  

一种数据校验方法、装置及系统.pdf

摘要
申请专利号:

CN201611249863.8

申请日:

2016.12.29

公开号:

太阳城集团CN106776146A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 11/14申请日:20161229|||公开
IPC分类号: G06F11/14; G06F11/10 主分类号: G06F11/14
申请人: 华为技术有限公司
发明人: 张雷; 罗庆超
地址: 518129 广东省深圳市龙岗区坂田华为总部办公楼
优先权:
专利代理机构: 代理人:
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201611249863.8

授权太阳城集团号:

|||

法律状态太阳城集团日:

2017.06.23|||2017.05.31

法律状态类型:

实质审查的生效|||公开

摘要

太阳城集团本发明实施例提供了一种数据校验方法、装置及系统。通过包含于冗余节点中的数据校验装置接收应用服务器发送的多个数据块,将所述多个数据块保存为多个数据块副本,不会直接计算其校验数据,以保证纠删码计算之前的所述目标数据的可靠性。当所述多个数据块副本的数量达到预设数值时,所述冗余节点对所述多个数据块副本进行纠删码计算以获得校验数据。避免了频繁进行纠删码计算,减轻了冗余节点的工作负荷。另外,冗余节点可以将其计算获得的校验数据存储在本地,不用再发送给其他存储节点,减少了存储节点之间的数据交互次数。

权利要求书

1.一种数据校验方法,其特征在于,所述方法应用于分布式存储系统中,所述分布式存
储系统包括至少两个数据节点和至少一个冗余节点;所述方法包括:
所述冗余节点接收应用服务器发送的多个数据块,将所述多个数据块保存为多个数据
块副本,所述多个数据块存储于所述至少两个数据节点中;
当所述多个数据块副本的数量达到预设数值时,所述冗余节点对所述数据块副本进行
纠删码计算以获得校验数据。
2.如权利要求1所述的方法,其特征在于,还包括:
所述冗余节点在获得所述校验数据之后删除所述数据块副本。
3.如权利要求1或2所述的方法,其特征在于,所述至少两个数据节点中的每个数据节
点存储所述多个数据块中的一个数据块,并且每个数据节点存储的数据块不相同。
4.如权利要求1-3任一所述的方法,其特征在于,所述分布式存储系统还包括其他冗余
节点,所述方法还包括:
所述冗余节点将所述校验数据划分为多个校验块;
所述冗余节点将除本地存储的一个校验块之外的其它校验块发送至所述其他冗余节
点。
5.如权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
所述冗余节点统计接收所述多个数据块的太阳城集团段的时长,所述时长未达到预设的时长
阈值,所述太阳城集团段结束于所述冗余节点接收所述多个数据块中的最后一个数据块。
6.如权利要求1-5任一所述的方法,其特征在于,所述预设数值是根据所述分布式存储
系统的校验模式确定的。
7.一种数据校验方法,其特征在于,所述方法应用于分布式存储系统中,所述分布式存
储系统包括至少两个数据节点和至少一个冗余节点,所述方法包括:
所述冗余节点接收应用服务器发送的多个数据块,将所述多个数据块保存为多个数据
块副本,所述多个数据块存储于所述至少两个数据节点中;
当所述多个数据块副本的数量未达到预设数值,且所述冗余节点接收所述多个数据块
的太阳城集团段的时长达到时长阈值时,所述冗余节点对所述数据块副本进行纠删码计算以获得
校验数据,所述太阳城集团段结束于所述冗余节点接收所述多个数据块的最后一个数据块。
8.如权利要求7所述的方法,其特征在于,还包括:
所述冗余节点在获得所述校验数据之后删除所述数据块副本。
9.如权利要求7或8所述的方法,其特征在于,所述至少两个数据节点中的每个数据节
点存储所述多个数据块中的一个数据块,并且每个数据节点存储的数据块不相同。
10.如权利要求7-9任一所述的方法,其特征在于,所述分布式存储系统还包括其他冗
余节点,所述方法还包括:
所述冗余节点将所述校验数据划分为多个校验块;
所述冗余节点将除本地存储的一个校验块之外的其它校验块发送至所述其他冗余节
点。
11.如权利要求7-10任一所述的方法,其特征在于,所述预设数值是根据所述分布式存
储系统的校验模式确定的。
12.一种数据校验装置,其特征在于,位于分布式存储系统的冗余节点中,所述分布式
存储系统还包括至少两个数据节点;所述数据校验装置包括:
接收模块,用于接收应用服务器发送的多个数据块,将所述多个数据块保存为多个数
据块副本,所述多个数据块存储于所述至少两个数据节点中;
处理模块,用于当所述多个数据块副本的数量达到预设数值时,对所述数据块副本进
行纠删码计算以获得校验数据。
13.如权利要求12所述的装置,其特征在于,所述处理模块,还用于在获得所述校验数
据之后删除所述数据块副本。
14.如权利要求12或13所述的装置,其特征在于,所述分布式存储系统还包括其他数据
校验装置,所述处理模块,还用于将所述校验数据划分为多个校验块,还用于将本地存储的
一个校验块之外的其他校验块发送给所述其他数据校验装置。
15.如权利要求12-14任一所述的装置,其特征在于,所述处理模块,还用于统计接收所
述多个数据块的太阳城集团段的时长,所述时长未达到预设的时长阈值,所述太阳城集团段结束于所述
数据校验装置接收所述多个数据块的最后一个数据块。
16.如权利要求12-15任一所述的装置,其特征在于,所述预设数值是根据所述分布式
存储系统的校验模式确定的。
17.一种冗余节点,其特征在于,所述冗余节点位于分布式存储系统中,所述分布式存
储系统还包括至少两个数据节点;所述冗余节点包括处理器和接口;
所述接口用于与应用服务器通信;
所述处理器用于通过所述接口接收所述应用服务器发送的多个数据块,将所述多个数
据块保存为多个数据块副本,所述多个数据块存储于所述至少两个数据节点中;
所述处理器还用于当所述多个数据块副本的数量达到预设数值时,对所述数据块副本
进行纠删码计算以获得校验数据。
18.如权利要求17所述的冗余节点,其特征在于,所述处理器还用于在获得所述校验数
据之后删除所述数据块副本。
19.如权利要求17或18所述的冗余节点,其特征在于,所述分布式存储系统包括其他冗
余节点,所述处理器还用于将所述校验数据划分为多个校验块,以及将本地存储的一个校
验块之外的其他校验块发送给所述其他冗余节点。
20.如权利要求17-19任一所述的冗余节点,其特征在于,所述处理器还用于统计接收
所述多个数据块的太阳城集团段的时长,所述时长未达到预设的时长阈值,所述太阳城集团段结束于所
述数据校验装置接收所述多个数据块的最后一个数据块。
21.如权利要求17-20任一所述的冗余节点,其特征在于,所述预设数值是根据所述分
布式存储系统的校验模式确定的。
22.一种数据校验系统,包括应用服务器、至少两个数据节点和至少一个冗余节点;
所述应用服务器,用于发送多个数据块至所述至少两个数据节点,并且将所述多个数
据块发送至所述冗余节点;
所述冗余节点,用于接收所述应用服务器发送的所述多个数据块,将所述多个数据块
保存为多个数据块副本,当所述多个数据块副本的数量达到预设数值时,所述冗余节点还
用于对所述数据块副本进行纠删码计算以获得校验数据;
所述至少两个数据节点中的每个数据节点,用于接收并存储所述应用服务器发送的所
述多个数据块中的一个数据块,每个数据节点存储的数据块不相同。
23.如权利要求22所述的系统,其特征在于,
所述冗余节点,还用于在获得所述校验数据之后删除所述数据块副本。
24.如权利要求22-23任一所述的系统,其特征在于,还包括其他冗余节点,所述冗余节
点,还用于将所述校验数据划分为多个校验块;
所述冗余节点,还用于将除本地存储的一个校验块之外的其它校验块发送至所述其他
冗余节点。
25.如权利要求22-24任一所述的系统,其特征在于,
所述冗余节点,还用于统计接收所述多个数据块的太阳城集团段的时长,所述时长未达到预
设的时长阈值,所述太阳城集团段结束于所述冗余节点接收所述多个数据块的最后一个数据块。
26.如权利要求22-25任一所述的系统,其特征在于,所述预设数值是根据所述分布式
存储系统的校验模式确定的。

说明书

一种数据校验方法、装置及系统

技术领域

本发明实施例涉及存储技术领域,尤其涉及一种数据校验方法、装置及系统。

背景技术

纠删码数据冗余保护机制是应用于分布式存储系统的一种数据冗余设计。它相较
于传统的多副本、快照、镜像等数据冗余设计更为高效。采用纠删码计算技术,目标数据被
划分为若干数据块,基于这些数据块计算获得校验块。如果出错的数据块与出错的校验块
的个数之和小于或者等于校验块的个数,可以通过重构算法恢复出出错的数据块。

由于系统延时或者网络传输不稳定等问题,由所述目标数据划分而成的数据块可
能无法在同一太阳城集团全部发送至分布式存储系统的各个存储节点。然而,根据纠删码数据冗
余保护机制的设计原理,只要分布式存储系统获取到部分数据,就会进行纠删码计算和校
验数据的存储。因此纠删码计算的次数和校验数据的存储次数非常频繁。如果所述分布式
存储系统在某个存储节点中凑满所有的数据块之后再计算校验数据,若这个存储节点发生
故障,其积累的数据块就会全部丢失,数据的可靠性又不能得到保证。

发明内容

本发明公开了一种数据校验方法、装置和系统,以实现基于所有数据块进行纠删
码计算之前的数据多副本存储,提高分布式存储系统对数据存储的可靠性。

第一方面提供一种数据校验方法,所述方法应用于分布式存储系统中,所述分布
式存储系统包括至少两个数据节点和至少一个冗余节点。所述方法包括:所述冗余节点接
收应用服务器发送的多个数据块,将所述多个数据块保存为多个数据块副本。当所述多个
数据块副本的数量达到预设数值时,所述冗余节点对所述多个数据块副本进行纠删码计算
以获得校验数据。所述多个数据块存储于所述至少两个数据节点中。

冗余节点将这些数据块作为数据块副本保存下来,而这些数据块保存在所述分布
式存储系统的数据节点中,当在数据块副本的总数达到预设数值时,再进行纠删码计算从
而获得校验数据。避免了频繁进行纠删码计算,减轻了冗余节点的工作负荷。因此,无论在
纠删码计算之前还是在纠删码计算之后都可以保证数据的可靠性。另外,冗余节点可以将
其计算获得的校验数据存储在本地,不用再发送给其他存储节点,就减少了存储节点之间
的数据交互次数。

基于第一方面,在第一种实现方式中,所述方法还包括:所述冗余节点在获得所述
校验数据之后删除所述数据块副本。在冗余节点获得校验数据之前,数据节点中的每个数
据块在冗余节点中都保存有数据块副本,即使数据节点中的数据块丢失,依然可以利用冗
余节点中存储的数据块副本进行纠删码计算。在获得校验数据之后,考虑到冗余节点的存
储空间的利用率,冗余节点可以删除所述数据块副本。因为即使数据节点的数据块丢失,也
可以通过所述校验数据恢复出丢失的数据块。

结合第一方面或者第一方面的第一种实现方式,在第二种实现方式中,所述至少
两个数据节点中的每个数据节点存储所述多个数据块中的一个数据块,并且每个数据节点
存储的数据块不相同。每一个数据节点存储所述多个数据块中的一个数据块,将目标数据
分散存储于多个数据节点上,提高了目标数据存储的可靠性。

结合第一方面或者第一方面的第一种或第二种实现方式,在第三种实现方式中,
所述分布式存储系统还包括其他冗余节点,所述方法还包括:所述冗余节点将所述校验数
据划分为多个校验块;所述冗余节点将除本地存储的一个校验块之外的其它校验块发送至
所述其他冗余节点。冗余节点为多个时,任意一个冗余节点都可以作为通过纠删码计算获
得校验数据的存储节点。

结合第一方面或者第一方面的第一种至第三种实现方式中的任一种实现方式,在
第四种实现方式中,所述方法还包括:所述冗余节点统计接收所述多个数据块的太阳城集团段的
时长,所述时长未达到预设的时长阈值,所述太阳城集团段结束于所述冗余节点接收所述多个数
据块中的最后一个数据块。

结合第一方面或者第一方面的第一种至第四种实现方式中的任一种实现方式,在
第五种实现方式中,所述预设数值是根据所述分布式存储系统的校验模式确定的。

第二方面提供一种数据校验方法,所述方法应用于分布式存储系统中,所述分布
式存储系统包括至少两个数据节点和至少一个冗余节点,所述方法包括:所述冗余节点接
收应用服务器发送的多个数据块,将所述多个数据块保存为多个数据块副本,当所述多个
数据块副本的数量未达到预设数值,且所述冗余节点接收所述多个数据块的太阳城集团段的时长
达到时长阈值时,所述冗余节点对所述多个数据块副本进行纠删码计算以获得校验数据,
所述太阳城集团段结束于所述冗余节点接收所述多个数据块的最后一个数据块。所述多个数据块
存储于所述至少两个数据节点中。

冗余节点将这些数据块作为数据块副本保存下来,而这些数据块保存在所述分布
式存储系统的数据节点中。当在数据块副本的总数未达到预设数值,且所述冗余节点接收
所述多个数据块的太阳城集团段的时长达到时长阈值时,对所述多个数据块副本进行纠删码计算
从而获得校验数据。避免了频繁进行纠删码计算,减轻了冗余节点的工作负荷。因此,无论
在纠删码计算之前还是在纠删码计算之后都可以保证数据的可靠性。另外,第二方面提供
的数据校验方法和第一方面相比,避免了由于冗余节点获取数据块的等待太阳城集团过长导致数
据块丢失的风险。

结合第二方面,在第一种实现方式中,所述冗余节点在获得所述校验数据之后删
除所述数据块副本。在冗余节点获得校验数据之前,数据节点中的每个数据块在冗余节点
中都保存有数据块副本,即使数据节点中的数据块丢失,依然可以利用冗余节点中存储的
数据块副本进行纠删码计算。在获得校验数据之后,考虑到冗余节点的存储空间的利用率,
冗余节点可以删除所述数据块副本。因为即使数据节点的数据块丢失,也可以通过所述校
验数据恢复出丢失的数据块。

结合第二方面或者第二方面的第一种实现方式,在第二种实现方式中,所述至少
两个数据节点中的每个数据节点存储所述多个数据块中的一个数据块,并且每个数据节点
存储的数据块不相同。每一个数据节点存储所述多个数据块中的一个数据块,将目标数据
分散存储于多个数据节点上,提高了目标数据存储的可靠性。

结合第二方面或者第二方面的第一种实现方式或者第二种实现方式,在第三种实
现方式中,所述分布式存储系统还包括其他冗余节点,所述方法还包括:所述冗余节点将所
述校验数据划分为多个校验块;所述冗余节点将除本地存储的一个校验块之外的其它校验
块发送至所述其他冗余节点。冗余节点为多个时,任意一个冗余节点都可以作为通过纠删
码计算获得校验数据的存储节点。

结合第二方面或者第二方面的第一种至第三种实现方式中的任一种实现方式,在
第四种实现方式中,所述预设数值是根据所述分布式存储系统的校验模式确定的。

第三方面提供一种数据校验装置,所述数据校验装置位于分布式存储系统的冗余
节点中,所述分布式存储系统还包括至少两个数据节点;所述数据校验装置包括用于执行
第一方面或第一方面的任一种可能实现方式中的数据校验方法的各个模块,所述模块可以
通过硬件实现,也可以通过硬件执行相应的软件实现。

第四方面提供一种数据校验装置,所述数据校验装置位于分布式存储系统的冗余
节点中,所述分布式存储系统还包括至少两个数据节点;所述数据校验装置包括用于执行
第二方面或第二方面的任一种可能实现方式中的数据校验方法的各个模块,所述模块可以
通过硬件实现,也可以通过硬件执行相应的软件实现。

第五方面提供一种冗余节点,所述冗余节点位于分布式存储系统中,所述分布式
存储系统还包括至少两个数据节点;所述冗余节点包括处理器和接口,所述接口用于与应
用服务器通信;所述处理器用于执行第一方面或第一方面的任意可能的实现方式中的方
法。

第六方面提供一种冗余节点,所述冗余节点位于分布式存储系统中,所述分布式
存储系统还包括至少两个数据节点;所述冗余节点包括处理器和接口,所述接口用于与应
用服务器通信;所述处理器用于执行第二方面或第二方面的任意可能的实现方式中的方
法。

第七方面提供一种数据校验系统,包括应用服务器、至少两个数据节点和至少一
个冗余节点;每个数据节点分别与应用服务器通信连接,至少一个冗余节点与应用服务器
通信连接,所述应用服务器,用于发送多个数据块至所述至少两个数据节点,并且将所述多
个数据块发送至所述冗余节点。所述冗余节点与第五方面或第五方面的任意可能的实现方
式中提供的冗余节点是一样的。所述至少两个数据节点中的每个数据节点,用于接收并存
储所述应用服务器发送的所述多个数据块中的一个数据块,每个数据节点存储的数据块不
相同。

第八方面提供一种数据校验系统,包括应用服务器、至少两个数据节点和至少一
个冗余节点;每个数据节点分别与应用服务器通信连接,至少一个冗余节点与应用服务器
通信连接,所述应用服务器,用于发送多个数据块至所述至少两个数据节点,还用于将所述
多个数据块发送至所述冗余节点;所述冗余节点与第六方面或第六方面的任意可能的实现
方式中提供的冗余节点是一样的。所述至少两个数据节点中的每个数据节点,用于接收所
述应用服务器发送的所述多个数据块中的一个数据块,每个数据节点存储的数据块不相
同。

所述冗余节点接收应用服务器发送的多个数据块,将所述多个数据块保存为多个
数据块副本。当所述多个数据块副本的数量达到预设数值时,所述冗余节点对所述多个数
据块副本进行纠删码计算以获得校验数据。避免了频繁进行纠删码计算,减轻了冗余节点
的工作负荷。因此,无论在纠删码计算之前还是在纠删码计算之后都可以保证数据的可靠
性。另外,冗余节点可以将其计算获得的校验数据存储在本地,不用再发送给其他存储节
点,减少了存储节点之间的数据交互次数。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用
的附图作简单地介绍。

图1为本发明实施例提供的一种分布式存储系统的架构示意图;

图2为本发明实施例提供的一种应用服务器110的结构示意图;

图3为本发明实施例提供的一种存储节点120的结构示意图;

图4为本发明实施例提供的一种数据校验方法的流程图;

图5为本发明实施例提供的另一种数据校验方法的流程图;

图6为本发明实施例提供的一种数据校验装置的结构图;

图7为本发明实施例提供的另一种数据校验装置的结构图;

图8为本发明实施例提供的一种冗余节点的结构图;

图9为本发明实施例提供的另一种冗余节点的结构图;

图10a为本发明实施例提供的一种数据校验系统的结构图;

图10b为本发明实施例提供的另一种数据校验系统的结构图;

图10c为本发明实施例提供的另一种数据校验系统的结构图;

图11a为本发明实施例提供的另一种数据校验系统的结构图;

图11b为本发明实施例提供的另一种数据校验系统的结构图;

图11c为本发明实施例提供的另一种数据校验系统的结构图。

具体实施方式

下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所
描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,
本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发
明保护的范围。请参见图1,图1为本发明实施例提供的一种分布式存储系统的架构示意图。
如图1所示,分布式存储系统包括应用服务器110和若干个存储节点120,应用服务器110与
各存储节点120进行通信,并且任意两个存储节点120之间也可以通信。

应用服务器110可以是任何计算设备,如服务器、台式计算机等等。应用服务器110
可以与终端设备(图1中未示出)连接,用户通过所述终端设备向应用服务器110发送目标数
据。应用服务器110将所述目标数据划分为若干个数据块,然后将每个数据块发送给一个存
储节点120存储。根据由所述目标数据划分出的数据块的数量是否达到预设数值,应用服务
器110确定采用何种方式处理这些数据块。一种情况是,如果数据块的数量达到预设数值,
那么应用服务器110对这些数据块进行纠删码计算,获得校验数据。然后,应用服务器110将
数据块发送给存储节点120中的数据节点存储,将校验数据发送给存储节点120中的冗余节
点存储。当冗余节点的个数为多个时,应用服务器110按照冗余节点的个数划分校验数据,
获得多个校验块,分别发送每个校验块至一个冗余节点。另一种情况是,如果数据块的数量
未达到预设数值,然而该应用服务器110获取数据块的等待太阳城集团超时,应用服务器110仍然
需要对获取的所有数据块副本进行纠删码计算,获取校验数据。在这种情况下,应用服务器
110进行纠删码计算的时候对获取的所有数据块和包含默认数据的数据块一起进行纠删码
计算,包含默认数据的数据块的个数与应用服务器110获取的数据块的个数总和为所述预
设数值。再一种情况是,如果数据块的数量没有达到预设数值,那么此时应用服务器110不
会直接对这些数据块进行纠删码计算,而是将各个数据块发送给存储节点120中的数据节
点存储。并且应用服务器110在将各个数据块发送数据节点时,也需要将所有的数据块发送
给冗余节点。冗余节点将这些数据块作为副本保存下来,以保证所述目标数据的可靠性。

本实施例按存储对象的不同,对所述分布式存储系统包含的存储节点120进行分
类,将用于存储所述目标数据的数据块的存储节点120称为数据节点,将用于存储校验数据
的存储节点120称为冗余节点。这种分类仅仅是存储对象的不同,数据节点和冗余节点在物
理结构上并无不同。另外,每个存储节点120都具有节点标识,所述节点标识用于唯一识别
所述存储节点120,所述节点标识可以是数字,也可以是字母,还可以是数字和字母的组合。

下面介绍应用服务器110和存储节点120的物理结构。

请参见图2,图2为本发明实施例提供的一种应用服务器110的结构示意图。如图2
所示,应用服务器110主要包括处理器(英文:processor)211、存储器(英文:memory)212、通
信总线(简称总线)213以及通信接口(英文:communication interface)214。处理器211、存
储器212以及通信接口214通过通信总线213完成相互间的通信。

通信接口214,用于与存储节点120通信。

存储器212,用于临时存储用户发送的目标数据,存储器212可能包含高速RAM存储
器,也可能还包括非易失性存储器(英文:non-volatile memory),例如至少一个磁盘存储
器。可以理解的是,存储器212可以为随机存储器(英文:Random-Access Memory,RAM)、磁
碟、硬盘、固态硬盘(英文:solid state disk,SSD)或者非易失性存储器等各种可以存储程
序代码的机器可读介质。

处理器211可能是一个中央处理器(英文:central processing unit,CPU),用于
划分目标数据,将划分的数据块存储至存储器212中,以及用于发送数据块至数据节点。另
外,处理器211还用于判断数据块的个数是否达到预设数值,在判断出数据块的个数达到预
设数值时,对所有数据块进行纠删码计算,获取校验数据,并用于发送校验数据至冗余节点
等等。

请参见图3,图3为本发明实施例提供的一种存储节点120的结构示意图。存储节点
120可以是存储服务器,所述存储服务器包括控制器310,控制器310包含接口311、接口312、
处理器314、存储器313和至少一个硬盘。如图3所示,存储节点120包括控制器310和一个或
多个硬盘320。其中,控制器310至少包括接口311、接口312、存储器313和处理器314。

接口311,用于和应用服务器110通信。接口312,用于和硬盘320通信。处理器314可
能是一个中央处理器(英文:central processing unit,CPU)。

存储器313,用于临时存储从应用服务器110接收的数据块。当该存储节点为冗余
节点时,存储器313还用于存储校验数据,或者存储由校验数据划分后获得的校验块。

处理器314,用于将存储器313中的数据块发送给硬盘320存储。当该存储节点为冗
余节点时,处理器314还用于判断累计获取的数据块的个数是否达到预设数值。在判断出累
计获取的数据块的个数达到所述预设数值时,或者在未达到所述预设数值,然而等待太阳城集团
较长时,进行纠删码计算,获得校验数据。

下面结合图1所示的应用场景以及图3所示的存储节点,对本发明实施例公开的分
布式存储系统中的数据校验方法进行具体的描述。请参见图4,图4为本发明实施例提供的
一种数据校验方法的流程图。如图4所示,所述数据校验方法包括如下步骤。

S410、应用服务器110接收用户发送的目标数据。所述目标数据可能是用户通过终
端设备发送的,可以是文件,也可以是块数据,也可能是用户直接在应用服务器110中输入
的。应用服务器110可能一次性接收所述目标数据,也可能是间断性地分多次接收所述目标
数据。另外,用户发送目标数据给应用服务器110时,如果是通过块接口与应用服务器110通
信,还会发送所述目标数据的逻辑地址给应用服务器110。所述逻辑地址包括卷的标识、逻
辑块地址(英文:logical block address,LBA)和长度(英文:length)。逻辑块地址为目标
数据存储于卷中的首地址。例如,目标数据是长度为4MB的文件,所述目标数据的逻辑地址
为卷A、00001和4M。其中卷A为卷的标识,00001为逻辑块地址,4MB为所述目标数据的长度。
在其他情况中,如果用户发送目标数据给应用服务器110,是通过文件接口与应用服务器
110通信,同时还会发送目标数据在文件中的偏移地址给应用服务器110,偏移地址包括文
件名、偏移位置和目标数据长度。如果用户发送目标数据给应用服务器110,是通过对象接
口与应用服务器110通信,同时还会发送目标数据在对象中的偏移地址给应用服务器110,
偏移地址包括对象名、偏移位置和目标数据长度。

S411、应用服务器110将所述目标数据划分为若干个数据块,为每个数据块分配数
据块标识。

应用服务器110按照预设尺寸将所述目标数据划分为若干个数据块。然后,应用服
务器110判断这些数据块的数量是否达到预设数值,如果达到预设数值,则计算这些数据块
的校验数据。如果没有达到所述预设数值,则执行步骤S412。本实施例重点讨论应用服务器
110划分出的数据块的数量没有达到所述预设数值的情况。

应用服务器110按照预设尺寸划分目标数据时,会获得每个划分出的数据块的偏
移地址,该偏移地址为数据块位于所述目标数据中的位置。例如,所述预设尺寸为1MB,那么
所述目标数据可以划分为4个数据块。

应用服务器110为每个数据块分配数据块标识。所述数据块标识用于唯一识别所
述数据块,所述数据块标识可以是数字,也可以是字母,还可以是数字和字母的组合。示例
性的,一种实施方式是,所述数据块标识为卷的标识、逻辑块地址以及偏移地址的组合,每
两个相邻的数据块的偏移地址间的地址范围为预设尺寸的长度。如表1所示。4个数据块的
标识如表1所示。

卷的标识
逻辑块地址
偏移地址
卷A
00001
00001
卷A
00001
00005
卷A
00001
00009
卷A
00001
00013

表1

另一种实施方式是,所述数据块标识为卷的标识、逻辑块地址以及数据块的序号
的组合,如表2所示。按照这种实施方式,应用服务器110中还需要保存每个数据块的序号与
所述数据块的偏移地址之间的对应关系。

卷的标识
逻辑块地址
序号
卷A
00001
1
卷A
00001
2
卷A
00001
3
卷A
00001
4

表2

所述预设数值是根据所述分布式存储系统预先设定的校验模式确定的。例如,所
述校验模式可以是5+1模式,也可以是6+2模式。5+1模式是指根据5个数据块计算获得1个校
验块,在这种模式下系统容忍失效的数据块的个数为1。当任意一个数据块丢失时,可以利
用其余4个数据块和1个校验块恢复出所述丢失的数据块。此时,所述预设数值为5。6+2模式
是指根据6个数据块计算获得2个校验块,在这种模式下系统容忍失效的数据块的个数为2。
当任意2个数据块丢失时,可以利用其余3个数据块和2个校验块恢复出所述丢失的数据块。
此时,所述预设数值为6。

S412、应用服务器110将划分出的每个数据块发送至数据节点和冗余节点。在本实
施例中,对于划分出的每个数据块,应用服务器110既需要将这个数据块发送给一个数据节
点,也需要将这个数据块发送给冗余节点。这就使得每个数据块在冗余节点中保存有一个
数据块副本,从而保证数据块的可靠性。

应用服务器110将一个数据块封装在一个写数据消息中,将所述写数据消息分别
发送给数据节点和冗余节点。或者,应用服务器110将一个数据块以及所述数据块的数据块
标识封装在一个写数据消息中,再发送给数据节点和冗余节点。由于本实施例提供的分布
式存储系统包含有多个数据节点,因此应用服务器110需要从所述多个数据节点为每个数
据块选择一个数据节点。

一种实施方式是,应用服务器110在初始化的过程中,获取逻辑分区映射表。逻辑
分区包括多个子分区,所述逻辑分区映射表包括每个子分区与数据节点的节点标识之间的
对应关系。应用服务器110将每个数据块的数据块标识作为预设哈希算法的输入项,进行哈
希运算,从而获取每个数据块的数据块标识的哈希值。再根据每个哈希值所在的子分区,以
识别出每个数据块的哈希值所在的子分区对应的存储节点。

另一种实施方式是,逻辑分区的一个子分区可能对应多个数据节点,那么,应用服
务器110在根据每个数据块的数据块标识获得哈希值之后,识别出所述哈希值所在的子分
区,并且确定所述子分区对应的多个数据节点。应用服务器110可以按照预定顺序将哈希值
相同的数据块分别发送给所述子分区对应的数据节点。预定顺序的实现有多种情况,一种
情况是,所述子分区对应的多个数据节点的标识形成环形链表,每一个数据节点在环形链
表中是一个数据节点的前一个数据节点,也是另外一个数据节点的后一个数据节点,应用
服务器110选择位于环形链表中的一个数据节点作为首节点,然后按照环形链表的逆时针
顺序或者顺时针顺序,从首节点开始,将数据块分别发送给环形链表中的一个数据节点。另
一种情况是,所述子分区对应的多个数据节点形成条状链表,除首节点以及末节点之外,每
一个数据节点在条状链表中是一个数据节点的前一个数据节点,也是另外一个数据节点的
后一个数据节点,从首节点开始,然后从首往末的顺序,应用服务器110将数据块分别发送
给条状链表中的一个数据节点。

再一种实施方式是,由于数据块的数据块标识不同,因此,应用服务器110将每个
数据块的数据块标识作为预设哈希算法的输入项,计算每个数据块的数据块标识的哈希
值,直接保存数据块的哈希值与数据节点的节点标识之间的对应关系。根据所述对应关系
确定每个数据块的数据块标识的哈希值所对应的数据节点的标识,然后将所述数据块发送
给其对应的数据节点。

再一种实施方式是,应用服务器110按照轮询的方式分别将每个数据块发送给数
据节点,然后保存数据块的数据块标识与存储所述数据块的数据节点的标识之间的对应关
系。应用服务器110按照负载均衡的原则,每一轮遍历没有接收到数据块的所有数据节点,
选择负载最少的数据节点接收一个数据块,直到划分的多个数据块分别发送给一个数据节
点为止。

另外,应用服务器110还需要将每个发送给数据节点的数据块也发送给冗余节点,
使得每个数据块在冗余节点中都保存有一个数据块副本。

S420、冗余节点存储各个数据块副本。这些数据块副本可以保存在存储器313中也
可以保存在硬盘320中。

S430、数据节点接收并存储应用服务器110发送的数据块。

S440、冗余节点判断其存储的数据块的总数达到所述预设数值时,进行纠删码计
算以获取校验数据。

随着应用服务器110向数据节点发送的数据块的增多,冗余节点中积累的数据块
副本也不断增加,当数据块副本的数量达到所述预设数值时,冗余节点对这些数据块副本
进行纠删码计算从而获得校验数据。这里的预设数值与S411中描述的预设数值一致。

在实际应用中,应用服务器110对目标数据划分后所得到的数据块往往无法在同
一太阳城集团全部发送至分布式存储系统的各个数据节点。或者应用服务器110接收的所述目标
数据较小,划分出的多个数据块没有达到上面描述的预设数值。按照纠删码数据冗余保护
机制的设计原理,只要所述分布式存储系统的某个数据节点接收到数据块,冗余节点就会
从各个数据节点收集数据块,计算其校验数据。从而造成冗余节点反复计算并存储校验数
据,浪费计算资源和存储资源。

本发明实施例中,应用服务器110不但要将各个数据块发送给数据节点,还要将这
些数据块发送给冗余节点。冗余节点将这些数据块作为数据块副本保存下来,但不会直接
计算其校验数据。而是在数据块副本的总数达到预设数值时,再进行纠删码计算从而获得
校验数据。避免了频繁进行纠删码计算,减轻了其工作负荷。另外,冗余节点可以将其计算
获得的校验数据存储在本地,不用再发送给其他存储节点,就减少了存储节点之间的数据
交互次数。

S460、当冗余节点获得校验数据之后,删除其存储的数据块副本。在冗余节点获得
校验数据之前,数据节点中的每个数据块在冗余节点中都保存有数据块副本,即使数据节
点中的数据块丢失,依然可以利用冗余节点中存储的数据块副本进行纠删码计算。然而在
获得校验数据之后,考虑到冗余节点的存储空间的利用率,冗余节点可以删除所述数据块
副本。因为即使数据节点的数据块丢失,也可以通过所述校验数据恢复出丢失的数据块。

另外,在上述实施例中,冗余节点可能不止一个。在这种情况下,任意一个冗余节
点都可以作为计算校验数据的存储节点,执行步骤S440以及S460。当校验数据计算完成之
后,所述冗余节点可以按照冗余节点的个数将所述校验数据划分为多个校验块,将其中一
个校验块保存在本地,将其余的校验块分别发送给其他冗余节点。

另外,冗余节点为多个时,应用服务器110可以同时发送数据块到其它冗余节点,
其他冗余节点以存储数据块为多个副本。例如,发送数据块分别到2个冗余节点,则数据块
存储为副本的个数为2个,对于特别重要的目标数据,可以选择更多的冗余节点存储数据块
为多个副本。

请参见图5,图5为本发明实施例提供的另一种数据校验方法的流程图。如图5所
示,所述数据校验方法方法包括如下步骤。

S510、应用服务器110接收用户发送的目标数据。本步骤与图4所示的步骤S410类
似,这里不再赘述。

S511、应用服务器110划分所述目标数据,获得若干个数据块。本步骤与图4所示的
步骤S411类似,这里不再赘述。

S512、应用服务器110将划分出的每个数据块发送至数据节点和冗余节点。本步骤
与图4所示的步骤S412类似,这里不再赘述。

S520、冗余节点存储数据块。本步骤与图4所示的步骤S420类似,这里不再赘述。

S530、数据节点接收并存储应用服务器110发送的数据块。本步骤与图4所示的步
骤S430类似,这里不再赘述。

S521、冗余节点判断出其存储的数据块副本的总数尚未达到所述预设数值时,然
而该冗余节点获取数据块的等待太阳城集团超时,冗余节点仍然需要对存储的所有数据块副本进
行纠删码计算,获取校验数据。在这种情况下,冗余节点进行纠删码计算的时候对获取的所
有数据块和包含默认数据的数据块一起进行纠删码计算,包含默认数据的数据块的个数与
冗余节点获取的数据块的个数总和可以达到所述预设数值。

图5所示的实施例与图4所示的实施例的不同之处在于,本实施例考虑到在实际应
用中如果冗余节点获取数据块的等待太阳城集团过长,数据块丢失的风险可能越大。因此,在图5
所示的实施例中,冗余节点判断获取数据块的等待太阳城集团是否超过预设太阳城集团,根据判断结果
决定是否进行纠删码计算。所述等待太阳城集团可以从所述冗余节点接收第一个数据块副本开始
进行计时,经过预设时长之后,对所述等待太阳城集团内接收到的所有数据块副本进行纠删码计
算,获得校验数据。或者,所述等待太阳城集团可以从冗余节点最后一次获取数据块后开始计时,
经过预设时长后,对所述等待太阳城集团内接收到的所有数据块副本进行纠删码计算,获得校验
数据。

本实施方式降低了冗余节点由于长太阳城集团等待而造成数据块丢失的风险,提高了数
据存储的可靠性。

另外,与图4所示的实施例类似,本实施例在计算校验数据之后还可以包括步骤
S522:冗余节点删除存储的数据块副本。该步骤与图4所示的步骤S460类似,这里不再赘述。

在图5所示的实施例中,由于冗余节点尚未等到其存储的数据块副本的总数达到
预设数值就根据这些数据块副本计算出校验数据。因此,如果后续冗余节点收到新的数据
块,仍然需要重新计算校验数据。然而,通常情况下,冗余节点在计算校验数据之后都会删
除其存储的数据块副本。因此,当所述冗余节点接收新的数据块之后,需要从其他数据节点
中获得之前删除的数据块。

由于应用服务器110在将数据块发送给冗余节点时,也可以将所述数据块的数据
块标识发送给所述冗余节点,因此冗余节点虽然删除了数据块副本,但可以仍然保留数据
块副本的数据块标识,并根据数据块标识确定存储所述数据块的数据节点。具体的,一种实
施方式是冗余节点根据数据块的数据块标识进行哈希运算,获得哈希值,然后根据所述获
得哈希值在事先保存的逻辑分区映射表中进行查询,从而获得所述哈希值所在的子分区,
进一步地根据所述子分区确定其对应的数据节点的节点标识。在其他实施方式中,冗余节
点可以根据新的数据块的数据块标识,按照预先规定的数据块标识的生成规则,推定出删
除的数据块的数据块标识,再对删除的数据块的数据块标识进行哈希运算,获得删除的数
据块的哈希值,并按照前面描述的方式获得哈希值对应的子分区以及子分区对应的数据节
点的标识。在这种实施方式中,冗余节点则不需要保存删除的数据块副本的标识。其中一种
推定删除的数据块的数据块标识的情况为,收到的新的数据块的数据块标识为卷的标识、
逻辑块地址以及偏移地址,每一个数据块的数据块标识中的卷的标识是相同的,逻辑块地
址也是相同的。因此只要获得删除的数据块的偏移地址,就能获得每个删除的数据块的数
据块标识。冗余节点根据新的数据块的偏移地址以及所述预设尺寸,可以获得与所述新的
数据块的偏移地址相邻的数据块的偏移地址,依此类推,再获得其他删除的数据块的偏移
地址。另一种推定数据块的数据块标识的情况为,收到的新的数据块的数据块标识为卷的
标识、逻辑块地址以及数据块的序号的组合。由于每一个数据块的数据块标识中的卷的标
识是相同的,逻辑块地址也是相同的,因此只要获得删除的数据块的序号,就可以获得每个
删除的数据块的数据块标识。每一个数据块标识中的序号是按照预设的顺序生成的,因此
根据新的数据块的数据块标识中的序号,可以推定出该序号之前的所有序号,进而获得之
前删除的数据块的数据块标识。

冗余节点将包括数据块副本的数据块标识的读取请求至各个数据节点,数据节点
接收所述读取请求之后,依据数据块的数据块标识获得所述数据块,并发送给冗余节点。冗
余节点接收各个数据节点发送的数据块之后,再根据这些数据块以及新接收的数据块计算
校验数据。校验数据计算完成之后,冗余节点可以再次删除数据块副本,这里不再赘述。

当数据节点接收并存储数据块之后,数据节点中存储的数据块可能会被修改。对
于用于修改之前存储的数据的目标数据,应用服务器110的处理方式与基于图4所示的实施
例类似,这里不再赘述。与图4所示的实施例不同的是,数据节点存储修改的数据块的同时,
可以保存修改的数据块的版本。在本实施方式中执行完步骤S440,即冗余节点获得校验数
据之后,冗余节点会发送完成消息至接收到修改的数据块的数据节点,接收到完成消息的
数据节点删除修改之前存储的旧的数据块。一种情况是,冗余节点获得校验数据后,分别对
每一个修改的数据块的数据块标识进行哈希计算,获得若干个哈希值,识别出每一个哈希
值所在的子分区,进而确定每个修改的数据块的哈希值所在的子分区唯一对应的数据节
点,分别发送每一个完成消息至上述子分区唯一对应的数据节点,接收到该完成消息的数
据节点,依据修改的数据块的数据块标识和数据版本查询该数据块标识对应的所有数据
块,并删除除最新版本之外的其他旧的数据块。

同样地,考虑到冗余节点获取修改的数据块的等待太阳城集团过长,数据块丢失的风险
越大的情况,冗余节点识别获取的修改的数据块的等待太阳城集团是否超过预设太阳城集团,决定是否
进行纠删码计算。预设太阳城集团的开始计时方式可参照图5所示的步骤S521中描述的实现过程,
在此不再赘述。需要注意的是,预设太阳城集团到达后,冗余节点需要从其他数据节点中读取未修
改的数据块。读取数据块的方式可参考基于图5所述的实施例中描述的需要从其他数据节
点中获得数据块的实施方式,实现细节类似,在这里不再赘述。在本实施方式中,冗余节点
进行纠删码计算,获得校验数据,发送完成消息及之后的技术实现细节,可参照上一段在冗
余节点识别存储的所有的修改的数据块达到预设数值后进行纠删码计算的实施方式中的
描述,在这里不再赘述。

由于冗余节点存储的修改的数据块的总数未达到预设数值,超时之后,会收到新
的修改的数据块,重新进行校验计算。由于上一次纠删码计算,获得校验数据后,冗余节点
删除了上一次纠删码计算之前存储的修改的数据块,在本次进行纠删码计算前,冗余节点
会从一直没有接收修改的数据块的数据节点中读取未修改的数据块,具体的读取数据块的
方式可参考基于图5所述的实施例中描述的需要从其他数据节点中获得数据块的实施方
式,实现细节类似,在这里不再赘述。以及,冗余节点也会从上一次删除旧的数据块的数据
节点中读取上一次存储的修改的数据块,因为上一次存储的修改的数据块是唯一的最新版
本的数据块,与读取其他数据节点中的未修改的数据块的过程是一样的,读取数据块的方
式也可参考基于图5所述的实施例中描述的需要从其他数据节点中获得数据块的实施方
式,实现细节类似,在这里不再赘述。冗余节点对存储的修改的数据块,读取的未修改的数
据块,读取上一次存储的修改的数据块进行纠删码计算,获得校验数据。然后,冗余节点会
删除存储的修改的数据块,并发送完成消息至接收到修改的数据块的数据节点,指示数据
节点删除未修改的旧的数据块。在本实施方式中,冗余节点发送完成消息及之后的技术实
现细节,可参照在冗余节点识别存储的所有的修改的数据块达到预设数值后进行纠删码计
算的实施方式中的描述,在这里不再赘述。需要注意的是,如果多次对同一数据块进行修
改,冗余节点发送的完成消息中的数据版本必须是最新的数据版本,以保证接收到该完成
消息的数据节点删除的数据块是之前修改的所有的数据块,保留最新的数据版本的数据
块。

请参见图6,图6为本发明实施例提供的一种数据校验装置的结构图,如图6所示,
本发明实施例提供的数据校验装置610位于分布式存储系统的冗余节点600中,所述分布式
存储系统还包括至少两个数据节点;所述数据校验装置610包括接收模块611和处理模块
612。接收模块611和处理模块612连接,下面详细介绍数据校验装置610中的每个模块的功
能:

接收模块611,用于接收应用服务器110发送的多个数据块,将所述多个数据块保
存为多个数据块副本,所述多个数据块存储于所述至少两个数据节点中。本实施方式中接
收模块611接收应用服务器110发送的多个数据块的功能可以通过存储服务器中的接口311
实现,接收模块611接收应用服务器110发送的多个数据块的功能,可以参考图4所示的步骤
S410描述的应用服务器110发送多个数据块的具体细节,在这里不再赘述。以及,接收模块
611将所述多个数据块保存为多个数据块副本的功能可以通过存储服务器中的处理器314
调用存储器313里面的程序315实现,接收模块611接收应用服务器110发送的多个数据块的
功能,可以参考图4所示的步骤S420描述的存储数据块的具体细节,在这不再赘述。

处理模块612,用于当所述多个数据块副本的数量达到预设数值时,对所述数据块
副本进行纠删码计算以获得校验数据。本实施方式中的处理模块612对所述数据块副本进
行纠删码计算,以获得校验数据的功能,可以通过存储服务器中的处理器314调用存储器
313里面的程序315实现,处理模块612对所述数据块副本进行纠删码计算的功能,可以参考
图4所示的步骤S440描述的当所述多个数据块副本的数量达到预设数值时,对所述数据块
副本进行纠删码计算以获得校验数据的具体细节,在这里不再赘述。

作为一种可选的实施方式,所述处理模块612,还用于在接收模块611获得所述校
验数据之后删除所述数据块副本。本实施方式中的处理模块612删除所述数据块副本的功
能,可以通过存储服务器中的处理器314调用存储器313里面的程序315实现,处理模块612
删除所述数据块副本的功能,可以参考图4所示的步骤S460描述的在获得所述校验数据之
后,删除所述数据块副本的具体细节,在这里不再赘述。

作为一种可选的实施方式,所述分布式存储系统包括其他数据校验装置610,所述
处理模块612,还用于将所述校验数据划分为多个校验块,还用于将本地存储的一个校验块
之外的其他校验块发送给所述其他数据校验装置610。本实施方式中的处理模块612划分校
验数据,以及发送校验块至其他数据校验装置610的功能,可以通过存储服务器中的处理器
314调用存储器313里面的程序315实现,处理模块612划分校验数据,以及发送校验块至其
他数据校验装置610的功能,可以参考图4所示的实施例中描述的当冗余节点为多个时,冗
余节点在获得所述校验数据之后划分校验数据为多个校验块的具体细节,在这里不再赘
述。

作为一种可选的实施方式,所述处理模块612,还用于统计接收所述多个数据块的
太阳城集团段的时长,所述时长未达到预设的时长阈值,所述太阳城集团段结束于所述数据校验装置610
接收所述多个数据块的最后一个数据块。本实施方式中的处理模块612统计接收所述多个
数据块的太阳城集团段的时长的功能,可以通过存储服务器中的处理器314调用存储器313里面的
程序315实现。

作为一种可选的实施方式,所述预设数值是根据所述分布式存储系统的校验模式
确定的。所述校验模式的实现细节可参照图4所示的实施例中描述的具体细节,在这里不再
赘述。

请参见图7,图7为本发明实施例提供的另一种数据校验装置的结构图,如图7所
示,本发明实施例提供的数据校验装置710位于分布式存储系统的冗余节点700中,所述分
布式存储系统还包括至少两个数据节点;所述数据校验装置710包括接收模块711和处理模
块712。接收模块711和处理模块712连接。与图6所示的数据校验装置600的不同之处在于,
考虑到在实际应用中冗余节点700获取数据块的等待太阳城集团过长,数据块丢失的风险可能越
大,图7所示的数据校验装置710实现等待太阳城集团超时,进行纠删码计算以提高目标数据存储
可靠性的功能。下面详细介绍数据校验装置710中的每个模块的功能:

所述接收模块711,用于接收应用服务器110发送的多个数据块,将所述多个数据
块保存为多个数据块副本,所述多个数据块存储于所述至少两个数据节点中。本实施方式
中接收模块711接收应用服务器110发送的多个数据块的功能可以通过存储服务器中的接
口311实现,接收模块711接收应用服务器110发送的多个数据块的功能,可以参考图4所示
的步骤S410描述的应用服务器110发送多个数据块的具体细节,在这里不再赘述。以及,接
收模块711将所述多个数据块保存为多个数据块副本的功能可以通过存储服务器中的处理
器314调用存储器313里面的程序315实现,接收模块711接收应用服务器110发送的多个数
据块的功能,可以参考图4所示的步骤S420描述的存储数据块的具体细节,在这不再赘述。

所述处理模块712,用于当所述多个数据块副本的数量未达到预设数值,且所述冗
余节点700接收所述多个数据块的太阳城集团段的时长达到时长阈值时,对所述多个数据块副本
进行纠删码计算以获得校验数据,所述太阳城集团段结束于所述冗余节点接收所述多个数据块的
最后一个数据块。本实施方式中的处理模块712对所述数据块副本进行纠删码计算,以获得
校验数据的功能,可以通过存储服务器中的处理器314调用存储器313里面的程序315实现,
处理模块712对所述数据块副本进行纠删码计算的功能,可以参考图5所示的步骤S521描述
的当所述多个数据块副本的数量未达到预设数值时,然而获取数据块的等待太阳城集团超时,对
所述数据块副本进行纠删码计算以获得校验数据的具体细节,在这里不再赘述。

作为一种可选的实施方式,处理模块712,还用于在处理模块712获得所述校验数
据之后删除所述数据块副本。本实施方式中的处理模块712删除所述数据块副本的功能,可
以通过存储服务器中的处理器314调用存储器313里面的程序315实现,处理模块712删除所
述数据块副本的功能,可以参考图4所示的实施例中的,步骤S460描述的在获得所述校验数
据之后,删除所述数据块副本的具体细节,在这里不再赘述。

作为一种可选的实施方式,所述分布式存储系统包括其他数据校验装置710,所述
处理模块712,还用于将所述校验数据划分为多个校验块,还用于将本地存储的一个校验块
之外的其他校验块发送给所述其他数据校验装置710。本实施方式中的处理模块712划分校
验数据,以及发送校验块至其他数据校验装置710的功能,可以通过存储服务器中的处理器
314调用存储器313里面的程序315实现,处理模块712划分校验数据,以及发送校验块至其
他数据校验装置710的功能,可以参考图4所示的实施例中描述的当冗余节点为多个时,冗
余节点在获得所述校验数据之后划分校验数据为多个校验块的具体细节,在这里不再赘
述。

作为一种可选的实施方式,所述预设数值是根据所述分布式存储系统的校验模式
确定的。所述校验模式的实现细节可参照图4所示的实施例中描述的具体细节,在这里不再
赘述。

请参见图8,图8为本发明实施例提供的一种冗余节点的结构图。如图8所示,本发
明实施例提供的冗余节点800位于分布式存储系统中,所述分布式存储系统还包括至少两
个数据节点。所述冗余节点800包括处理器810和接口820,所述接口820用于与应用服务器
110通信。

所述处理器810用于通过所述接口820接收所述应用服务器110发送的多个数据
块,将所述多个数据块保存为多个数据块副本,所述多个数据块存储于所述至少两个数据
节点中。本实施方式中处理器810接收并保存应用服务器110发送的数据块的细节可参考图
4所示的步骤S410和S420的描述,在这不再赘述。

所述处理器810还用于当所述多个数据块副本的数量达到预设数值时,对所述数
据块副本进行纠删码计算以获得校验数据。处理器810对所述数据块副本进行纠删码计算
的功能,可以参考图4所示的步骤S440描述的当所述多个数据块副本的数量达到预设数值
时,对所述数据块副本进行纠删码计算以获得校验数据的具体细节,在这不再赘述。

作为一种可选的实施方式,所述处理器810还用于在获得所述校验数据之后删除
所述数据块副本。所述处理器810获得所述校验数据之后删除所述数据块副本的细节可以
参考图4所示的步骤S460的描述,在这不再赘述。

作为一种可选的实施方式,所述分布式存储系统包括其他冗余节点,所述处理器
810还用于将所述校验数据划分为多个校验块,以及将本地存储的一个校验块之外的其他
校验块发送给所述其他冗余节点。所述处理器810划分校验数据,以及发送校验块至其他冗
余节点的功能,可以参考图4所示的实施例中描述的获得所述校验数据之后划分校验数据
为多个校验块,并发给其他冗余节点的具体细节,在这不再赘述。

作为一种可选的实施方式,所述处理器810还用于统计接收所述多个数据块的时
间段的时长,所述时长未达到预设的时长阈值,所述太阳城集团段结束于所述数据校验装置610接
收所述多个数据块的最后一个数据块。

作为一种可选的实施方式,所述预设数值是根据所述分布式存储系统的校验模式
确定的。所述校验模式的实现细节可参照图4所示的实施例中描述的具体细节,在这里不再
赘述。

请参见图9,图9为本发明实施例提供的另一种冗余节点的结构图。如图9所示,本
发明实施例提供的冗余节点900位于分布式存储系统中,所述分布式存储系统还包括至少
两个数据节点。所述冗余节点900包括处理器910和接口920,所述接口920用于与应用服务
器110通信。与图8所示的冗余节点800的不同之处在于,考虑到在实际应用中冗余节点获取
数据块的等待太阳城集团过长,数据块丢失的风险可能越大,图9所示的冗余节点900实现等待时
间超时,进行纠删码计算以提高目标数据存储可靠性的功能。

所述处理器910用于通过所述接口920接收所述应用服务器110发送的多个数据
块,将所述多个数据块保存为多个数据块副本,所述多个数据块存储于所述至少两个数据
节点中。本实施方式中处理器910接收并保存应用服务器110发送的数据块的细节可参考图
4所示的步骤S410和S420的描述,在这不再赘述。

所述处理器910,还用于当所述多个数据块副本的数量未达到预设数值,且所述冗
余节点900接收所述多个数据块的太阳城集团段的时长达到时长阈值时,对所述多个数据块副本
进行纠删码计算以获得校验数据,所述太阳城集团段结束于所述冗余节点接收所述多个数据块的
最后一个数据块。本实施方式中的处理器910对所述数据块副本进行纠删码计算的功能,可
以参考图5所示的步骤S521描述的当所述多个数据块副本的数量未达到预设数值时,然而
获取数据块的等待太阳城集团超时,对所述数据块副本进行纠删码计算以获得校验数据的具体细
节,在这不再赘述。

作为一种可选的实施方式,处理器910,还用于在处理器910获得所述校验数据之
后删除所述数据块副本。本实施方式中的处理器910删除所述数据块副本的功能,可以参考
图4所示的实施例中的步骤S460描述的,在获得所述校验数据之后,删除所述数据块副本的
具体细节,在这不再赘述。

作为一种可选的实施方式,所述分布式存储系统包括其他冗余节点,处理器910,
还用于将所述校验数据划分为多个校验块,还用于将本地存储的一个校验块之外的其他校
验块发送给所述其他冗余节点。本实施方式中的处理器910划分校验数据,以及发送校验块
至其他冗余节点的功能,可以参考图4所示的实施例中描述的当冗余节点为多个时,冗余节
点在获得所述校验数据之后划分校验数据为多个校验块的具体细节,在这里不再赘述。

作为一种可选的实施方式,所述预设数值是根据所述分布式存储系统的校验模式
确定的。所述校验模式的实现细节可参照图4所示的实施例中描述的具体细节,在这里不再
赘述。

请参见图10a,图10a为本发明实施例提供的一种数据校验系统的结构图,如图10a
所示,本发明实施例提供的数据校验系统1000包括应用服务器1010、至少两个数据节点
1020和冗余节点1030;应用服务器1010分别和至少两个数据节点1020,冗余节点1030连接,
应用服务器1010、至少两个数据节点1020和冗余节点1030的功能如下分别描述:

所述应用服务器1010,用于发送多个数据块至所述至少两个数据节点1020,并且
将所述多个数据块发送至所述冗余节点1030。

所述冗余节点1030,用于接收所述应用服务器1010发送的所述多个数据块,将所
述多个数据块保存为多个数据块副本,当所述多个数据块副本的数量达到预设数值时,所
述冗余节点1030还用于对所述数据块副本进行纠删码计算以获得校验数据。

所述至少两个数据节点1020中的每个数据节点1020,用于接收并存储所述应用服
务器1010发送的所述多个数据块中的一个数据块,每个数据节点1020存储的数据块不相
同。

作为一种可选的实施方式,所述冗余节点1030,还用于在获得所述校验数据之后
删除所述数据块副本。

作为一种可选的实施方式,请参见图10b,图10b为本发明实施例提供的另一种数
据校验系统的结构图。如图10b所示,与图10a所示的数据校验系统不同的是,所述数据校验
系统1000还包括其他冗余节点1040,冗余节点1040与冗余节点1030连接。图10b中只示出一
个其他冗余节点1040,在其他校验模式下,还可以有多个其他冗余节点1040,分别与冗余节
点1030连接。所述冗余节点1030,还用于将所述校验数据划分为多个校验块。所述冗余节点
1030,还用于将除本地存储的一个校验块之外的其它校验块发送至所述其他冗余节点
1040。

作为一种可选的实施方式,请参见图10c,图10c为本发明实施例提供的另一种数
据校验系统的结构图,如图10c所示,与图10c所示的数据校验系统不同的是,如果要存储数
据块为多个副本,则应用服务器1010将数据块发送给冗余节点1030存储为数据块副本的同
时,还用于发送数据块给冗余节点1040存储为数据块副本。如果需要数据块的数据块副本
的个数更多,则应用服务器1010同时发送多个相同的数据块至更多的冗余节点,每一个冗
余节点分别存储一个相同数据块,以将应用服务器1010发送给数据节点1020的数据块存储
为多个相同的数据块副本,多副本的存储提高了纠删码计算之前,目标数据的可靠性。

作为一种可选的实施方式,所述冗余节点1030,还用于统计接收所述多个数据块
的太阳城集团段的时长,所述时长未达到预设的时长阈值,所述太阳城集团段结束于所述冗余节点800接
收所述多个数据块的最后一个数据块。

作为一种可选的实施方式,所述预设数值是根据所述分布式存储系统的校验模式
确定的。

请参见图11a,图11a为本发明实施例提供的另一种数据校验系统的结构图,如图
11a所示,本发明实施例提供的数据校验系统1100包括应用服务器1110、至少两个数据节点
1120和至少一个冗余节点1130;应用服务器1110分别和至少两个数据节点1120,冗余节点
1130连接。与图10a所示的数据校验系统1000的不同之处在于,考虑到在实际应用中冗余节
点获取数据块的等待太阳城集团过长,数据块丢失的风险可能越大,图11a所示的冗余节点1130实
现等待太阳城集团超时,进行纠删码计算以提高目标数据存储可靠性的功能。应用服务器1110、至
少两个数据节点1120和冗余节点1130的功能如下分别描述:

所述应用服务器1110,用于发送多个数据块至所述至少两个数据节点,还用于将
所述多个数据块发送至所述冗余节点1130。

所述冗余节点1130,用于接收所述应用服务器1110发送的所述多个数据块,将所
述多个数据块保存为多个数据块副本。当所述多个数据块副本的数量未达到预设数值,且
所述冗余节点1130接收所述多个数据块的太阳城集团段的时长达到时长阈值时,所述冗余节点
1130还用于对所述数据块副本进行纠删码计算以获得校验数据,所述太阳城集团段结束于所述冗
余节点1130接收所述多个数据块的最后一个数据块。

所述至少两个数据节点1120中的每个数据节点1120,用于接收所述应用服务器
1110发送的所述多个数据块中的一个数据块,每个数据节点1120存储的数据块不相同。

作为一种可选的实施方式,所述冗余节点800,还用于在获得所述校验数据之后删
除所述数据块副本。

作为一种可选的实施方式,请参见图11b,图11b为本发明实施例提供的另一种数
据校验系统的结构图,如图11b所示,与图11a所示的数据校验系统不同的是,所述数据校验
系统1000还包括其他冗余节点1140,冗余节点1140与冗余节点1130连接。图11b中只示出一
个其他冗余节点1140,在其他校验模式下,还可以有多个其他冗余节点1140,分别与冗余节
点1130连接。所述冗余节点1140,还用于将所述校验数据划分为多个校验块。所述冗余节点
1130,还用于将除本地存储的一个校验块之外的其它校验块发送至所述其他冗余节点
1140。

作为一种可选的实施方式,请参见图11c,图11c为本发明实施例提供的另一种数
据校验系统的结构图,如图11c所示,如果要存储数据块为多个副本,则应用服务器1110将
数据块发送给冗余节点1130存储为数据块副本的同时,还用于发送数据块给冗余节点1140
存储为数据块副本。如果需要数据块的数据块副本的个数更多,则应用服务器1110同时发
送多个相同的数据块至更多的冗余节点,每一个冗余节点分别存储一个相同数据块,以将
应用服务器1110发送给数据节点1120的数据块存储为多个相同的数据块副本,多副本的存
储提高了在纠删码计算之前,目标数据存储的可靠性。

作为一种可选的实施方式,所述预设数值是根据所述分布式存储系统的校验模式
确定的。

本发明实施例提供的数据校验方法、装置及系统,通过包含于冗余节点中的数据
校验装置接收应用服务器发送的多个数据块,将所述多个数据块保存为多个数据块副本,
不会直接计算其校验数据,以保证纠删码计算之前的所述目标数据的可靠性。当所述多个
数据块副本的数量达到预设数值时,所述冗余节点对所述多个数据块副本进行纠删码计算
以获得校验数据。避免了频繁进行纠删码计算,减轻了冗余节点的工作负荷。另外,冗余节
点可以将其计算获得的校验数据存储在本地,不用再发送给其他存储节点,减少了存储节
点之间的数据交互次数。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以
通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的
划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以
结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论
的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或
通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显
示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个
网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目
的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以
是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模
块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存
储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部
分步骤。而前述的存储介质包括:移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等
各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管
参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范
围。

关 键 词:
一种 数据 校验 方法 装置 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种数据校验方法、装置及系统.pdf
链接地址:http://zh228.com/p-6019764.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');