一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据验证方法和分布式存储系统与流程

2021-10-24 12:45:00 来源:中国专利 TAG:分布式 数据存储 验证 存储系统 方法


1.本技术涉及数据存储技术领域,尤其涉及一种数据验证方法和分布式存储系统。


背景技术:

2.在现今的大数据时代,为了提升数据的读写性能,分布式存储应运而生。所谓分布式存储,就是将数据分成多个数据块,并将不同的数据块存储在不同的物理设备上。通过多个物理设备的并行读写,从而提升数据的读写性能。
3.一般来说,参与的物理设备越多,数据损坏的风险就越高。为了确保数据分布式存储的可靠性,现有的,可以通过分布式文件系统(hadoopdistributed file system,hdfs)使用纠删码对每个数据块进行编码,进而将编码后的数据块存储在分布式存储系统相应的节点。这样,读取数据时,就可以利用纠删码验证数据的正确性。进而当发现数据错误时,就可以利用纠删码对数据进行恢复。
4.但是,在高可靠性要求的部署环境中,往往需要更多的节点使用更高冗余度的编码,才能够避免多节点失效而导致数据可靠性低的问题。更高的冗余度带来的就是更高的计算成本、延迟、存储容量以及网络带宽的浪费。这对于低成本低性能的边缘设备,显然不适用。


技术实现要素:

5.本技术实施例的目的是提供一种数据验证方法和分布式存储系统,使得边缘设备也能够通过纠删码提高数据分布式存储的可靠性。
6.为解决上述技术问题,本技术实施例提供如下技术方案:
7.本技术第一方面提供一种数据验证方法,所述方法包括:分布式存储系统中的第一节点采用第一预设验证算法对第一数据块进行计算,得到所述第一节点的第一存储证明,所述第一数据块为经过纠删码处理并存储于所述第一节点中的数据块;分布式存储系统中的第二节点接收所述第一存储证明;所述第二节点采用第二预设验证算法解析所述第一存储证明,得到第一解析结果,所述第二预设验证算法能够验证采用所述第一预设验证算法计算的数据是否正确;所述第二节点根据所述第一解析结果确定所述第一节点存储的所述第一数据块是否正确。
8.本技术第二方面提供一种分布式存储系统,所述系统包括:第一节点,用于采用第一预设验证算法对第一数据块进行计算,得到所述第一节点的第一存储证明,所述第一数据块为经过纠删码处理并存储于所述第一节点中的数据块;第二节点,用于接收所述第一存储证明;采用第二预设验证算法解析所述第一存储证明,得到第一解析结果,所述第二预设验证算法能够验证采用所述第一预设验证算法计算的数据是否正确;根据所述第一解析结果确定所述第一节点存储的所述第一数据块是否正确。
9.相较于现有技术,本技术第一方面提供的数据验证方法,首先,分布式存储系统中的第一节点采用第一预设验证算法对第一数据块进行计算,得到第一节点的第一存储证
明;然后,分布式存储系统中的第二节点接收第一存储证明;接着,第二节点采用第二预设验证算法解析第一存储证明,得到第一解析结果;最后,第二节点根据第一解析结果确定第一节点存储的第一数据块是否正确。第一节点通过第一预设验证算法对其中的第一数据块进行处理,得到第一存储证明,进而第二节点通过第二预设验证算法对第一存储证明进行解析,得到第一解析结果,从而根据第一解析结果确定第一节点存储的第一数据块是否正确。这样,使得在调用分布式存储系统中各节点存储的数据块之前,就能够针对单个节点存储的数据块进行验证,进而避免在使用各节点存储的数据块时,通过更多节点使用高冗余度的编码进行各节点存储的数据块的验证,进而使得分布式存储系统中低成本低性能的边缘设备也能够采用纠删码(冗余度降低)确保数据存储的可靠性,进而提高分布式存储系统的整体安全性。
10.本技术第二方面提供的分布式存储系统,与第一方面提供的方法具有相同或相似的有益效果。
附图说明
11.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:
12.图1为本技术实施例中数据验证方法的流程示意图一;
13.图2为本技术实施例中数据验证方法的流程示意图二;
14.图3为本技术实施例中分布式存储系统的结构示意图一;
15.图4为本技术实施例中分布式存储系统的结构示意图二。
具体实施方式
16.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
17.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
18.在现有的分布式存储系统中,为了提升节点数据存储的可靠性,即避免节点中存储的数据发生错误,通常先采用纠删码对数据进行编码,再将编码后的数据块存储到各个节点。这样,当某个节点存储的数据块发生错误时,通过纠删码就能够恢复该节点中存储的数据块,从而确保节点中数据存储的可靠性。然而,对于高可靠性存储来说,单单使用纠删码是无法保证单个节点存储的数据的可靠性,往往需要多节点使用更高冗余度的编码,才能够避免多节点失效而导致节点中存储的数据出现问题。而高冗余度带来的是高计算成本、高延迟、大存储容量、高网络带宽等。这对于分布式存储系统中低成本低性能的边缘设备,显然不适用。由于边缘设备的此种实际情况,边缘设备就更容易遭受到恶意攻击,进而降低分布式存储系统整体的安全性。
19.有鉴于此,本技术实施例提供了一种数据验证方法,该方法通过某一验证算法处
理节点中存储的编码后的数据块,获得该节点的存储证明,然后通过相应的另一验证算法,基于该存储证明对该节点存储的数据块进行验证,以确定该节点存储的数据块是否出现问题。如此,在调用分布式存储系统中各节点存储的数据块之前,就能够针对单个节点存储的数据块进行验证,进而避免在使用各节点存储的数据块时,需要通过更多节点使用更高冗余度的编码来进行各节点存储的数据块的验证。
20.另外,将该方法应用于分布式存储系统的边缘设备中,能够针对单个边缘设备验证其存储的数据块是否出现问题,在确定某个边缘设备存储的数据块出现问题时,可以采用较低冗余度的编码即可恢复该边缘设备中存储的数据。这样,除了能够提高分布式存储系统的可靠性和安全性,还满足了边缘设备的低成本、低性能的要求。
21.当然,本技术实施例提供的数据验证方法也可以应用于分布式存储系统的中心设备中。这样,中心设备无需使用更高冗余度的编码,也可以对中心设备存储的数据块进行验证,进而采用低冗余度的编码恢复出现问题的中心设备中的数据块,进而确保中心设备存储的数据块的可靠性。本技术实施例提供的数据验证方法可以应用于分布式存储系统的任一设备中,对于任一设备的具体类型,此处不做限定。
22.接下来,针对本技术实施例提供的数据验证方法进行详细说明。
23.图1为本技术实施例中数据验证方法的流程示意图一,参见图1所示,该方法可以包括:
24.s101:分布式存储系统中的第一节点采用第一预设验证算法对第一数据块进行计算,得到第一节点的第一存储证明。其中,第一数据块为经过纠删码处理并存储于第一节点中的数据块。
25.在分布式存储系统中,包含有多个节点。当需要将数据存储到分布式存储系统中时,为了提升数据存储的可靠性,首先,需要使用纠删码对该数据进行处理,即将该数据拆分成多个数据块,并进行编码。然后,将编码后的数据块分别存储在分布式存储系统的各节点中。
26.这里需要说明的是,以上编码,可以是较低冗余度的编码。该冗余度能够适用于边缘设备低成本低性能的限制。对于具体的冗余度,此处不做限定,只要能够满足边缘设备低成本低性能的限制即可。
27.而纠删码,是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置。由于采用纠删码处理数据的过程为现有技术,故此处不再赘述。
28.在实际应用中,上述第一节点可以是指分布式存储系统中的边缘设备之一。这样,在无需提升边缘设备成本及性能的情况下,边缘设备也能够基于纠删码确保数据存储的可靠性。
29.这里还需说明的是,上述的第一节点中的“第一”并不是对节点类型的限制,而是为了与后文中出现的第二节点进行区分。无论是第一节点还是第二节点,都是分布式存储系统中的节点。
30.为了验证第一节点存储的第一数据块是否正确,就需要第一节点针对其存储的第一数据块生成一个存储证明,即第一存储证明。所谓存储证明,就是存储数据的节点基于其存储的数据块生成的一个证明,用于表征其存储的数据块是否正确。这样,后续通过解析该存储证明就能够确定第一节点存储的第一数据块是否正确。
31.当需要生成第一节点的第一存储证明时,可以采用第一预设验证算法对第一节点中存储的数据块进行计算,计算得到的结果就是第一节点的第一存储证明。
32.s102:分布式存储系统中的第二节点接收所述第一存储证明。
33.为了验证第一节点存储的第一数据块是否正确,就需要分布式存储系统中的第二节点对第一节点的第一存储证明进行验证,以确定第一节点存储的第一数据块是否正确。因此,第二节点需要先获取第一节点的第一存储证明。
34.s103:第二节点采用第二预设验证算法解析第一存储证明,得到第一解析结果。
35.其中,第二预设验证算法能够验证采用第一预设验证算法计算的数据是否正确。在实际应用中,第一预设验证算法与第二预设验证算法是配套使用的。第一预设验证算法与第二预设验证算法可以是计算过程相反的算法。例如:携带有随机数的加密验证算法与解密验证算法等。第一预设验证算法与第二预设验证算法也可以是同一种算法。例如:校验和算法、异或校验算法、循环冗余校验(cyclic redundancy check,crc)算法、信息

摘要(message

digest algorithm 5,md5)算法等。第一预设验证算法与第二预设验证算法可以是现有技术中任何能够对数据进行验证的算法。对于第一预设验证算法与第二预设验证算法具体为何种算法,此处不做限定。
36.第二节点在得到第一节点的第一存储证明后,就可以采用第二预设验证算法对第一存储证明进行解析。实际上,对第一存储证明进行解析的过程就是对第一存储证明采用第二预设验证算法进行计算的过程。在采用第二预设验证算法对第一存储证明进行解析后,就得到了第一解析结果。从而根据解析结果就能够确定第一节点存储的第一数据块是否正确。
37.s104:第二节点根据第一解析结果确定第一节点存储的第一数据块是否正确。
38.在这里,第一解析结果的具体内容至少可以是以下两种中的任意一种。
39.第一种:第一解析结果就是“正确”或“错误”。
40.此时,若第一解析结果为“正确”,第二节点则确定第一节点存储的第一数据块没有问题,此后可正常进行数据块的调用。若第一解析结果为“错误”,第二节点则确定第一节点存储的第一数据块存在问题,此时第二节点需要使用纠删码恢复第一节点中的数据块,在恢复完成后,第一节点的数据块才可能进行正常的调用。而使用纠删码恢复节点中的数据为现有技术,故此处对于数据恢复的具体过程不再赘述。
41.第二种:第一解析结果为对第一存储证明进行解析后得到的第一数据块及其携带的其它信息。
42.此时,第二节点可以对第一数据块进行分析,分析其是否符合预设条件。这是因为,如果节点存储的数据块没有问题,解析后的数据块应该与预先划分好的数据块的相关信息(例如:格式、大小等)一致。因此,第二节点若确定解析后的数据块符合预设条件,则确定第一节点存储的第一数据没有问题。而第二节点若确定解析后的数据块不符合预设条件,则确定第一节点存储的第一数据存在问题,需要进行恢复。
43.当然,第二节点还可以将第一数据块携带的其它信息与预设信息进行对比,根据对比结果确定第一节点存储的第一数据块是否正确。这里的预设信息可以是生成的一个随机数,每个节点中生成的随机数都相同。这样,从第一存储证明中解析得到随机数后,可以将解析出的随机数与第二节点生成的随机数进行对比,若一致,则确定第一节点存储的第
一数据块没有问题。若不一致,则确定第一节点存储的第一数据块存在问题,需要进行恢复。当然,预设信息还可以是采用预设算法对数据块或随机数进行计算后得到的信息。每个节点都能够运行该预设算法。通过该信息验证第一节点中的第一数据块与通过随机数进行验证的原理类似,此处不再赘述。
44.由上述内容可知,本技术实施例提供的数据验证方法,首先,分布式存储系统中的第一节点采用第一预设验证算法对第一数据块进行计算,得到第一节点的第一存储证明;然后,分布式存储系统中的第二节点接收第一存储证明;接着,第二节点采用第二预设验证算法解析第一存储证明,得到第一解析结果;最后,第二节点根据第一解析结果确定第一节点存储的第一数据块是否正确。第一节点通过第一预设验证算法对其中的第一数据块进行处理,得到第一存储证明,进而第二节点通过第二预设验证算法对第一存储证明进行解析,得到第一解析结果,从而根据第一解析结果确定第一节点存储的第一数据块是否正确。这样,使得在调用分布式存储系统中各节点存储的数据块之前,就能够针对单个节点存储的数据块进行验证,进而避免在使用各节点存储的数据块时,需要通过更多节点使用更高冗余度的编码进行各节点存储的数据块的验证,进而使得分布式存储系统中低成本低性能的边缘设备也能够采用纠删码(冗余度降低)确保数据存储的可靠性,进而提高分布式存储系统的整体安全性。
45.进一步地,作为图1所示方法的细化和扩展,本技术实施例还提供了一种数据验证方法。以分布式存储系统包含有第一节点、第二节点和第三节点为例。当然,这并不意味着分布式存储系统中仅包含三个节点,在此仅为示例性说明。
46.图2为本技术实施例中数据验证方法的流程示意图二,参见图2所示,该方法可以包括:
47.s201:对数据进行纠删码处理,得到编码后的第一数据块、第二数据块和第三数据块。
48.将数据分为多少个数据块,需要根据分布式存储系统中节点的数量确定。一般来说,分布式存储系统中存在多少能够存储数据块的节点,就将数据分成多少个数据块。
49.s202:将第一数据块、第二数据块和第三数据块分别存储于分布式存储系统的第一节点、第二节点和第三节点中。
50.具体来说,对于存储数据d,经过纠删码处理后,得到编码后的多个数据块d1、d2、
……
、d
n
。然后,将数据块d1存储于节点a1,将数据块d2存储于节点a2中,
……
,将数据块d
n
存储于节点a
n
中,如在本例中n=3。
51.s203:分别计算第一数据块、第二数据块和第三数据块的特征值。
52.s204:将第一数据块、第二数据块和第三数据块的特征值和元信息分别存储于第一节点、第二节点和第三节点。
53.特征值可以是偏移等各种数据统计信息。元信息是关于信息的信息,用于描述信息的结构、语义、用途和用法等。将第一数据块、第二数据块和第三数据块的特征值和元信息分别存储于第一节点、第二节点和第三节点中,能够丰富节点中存储的数据块的信息,进而在后续恢复节点中的数据块时,能够提高数据块恢复的准确性。
54.这里需要说明的是,以上步骤s201

s204的执行主体可以是分布式存储系统中的接入节点,当然,也可以是分布式存储系统中的任意一个节点。
55.s205:在预设周期内,第一节点、第二节点和第三节点分别生成并发布其存储的数据块的第一存储证明、第二存储证明和第三存储证明。
56.以第一节点生成并发布其存储的数据块的第一存储证明为例,步骤s205具体可以包括:
57.s205a:第一节点生成随机数。
58.随机数也可以称之为随机数挑战s。在本例中,分布式存储系统中各节点生成的随机数挑战s都相同。
59.s205b:第一节点获取其存储的第一数据块。
60.s205c:第一节点采用加密验证算法对第一数据块和随机数进行计算,得到第一节点的第一存储证明。
61.也就是说,第一节点采用p=e(d,s)生成第一节点的第一存储证明。其中,d表示数据块,s表示随机数,e()表示加密验证算法,p表示存储证明。
62.s206:第二节点对第一节点进行验证。
63.当然,也可以是第三节点验证第一节点的第一存储证明。在分布式存储系统中,各节点之间可以相互验证存储证明。
64.具体的,步骤s206可以包括:
65.s206a:第二节点判断在预设周期内是否接收到第一节点的第一存储证明;若否,则执行s206b

s206d;若是,则执行s206e。
66.如果第二节点在预设周期内没有接收到第一节点的第一存储证明,说明第一节点无法生成第一存储证明,或者第一节点无法发出第一存储证明,那么,第二节点就可以确定第一节点已失效,进而采用纠删码恢复第一节点的第一数据块。在第二节点恢复了第一数据块后,由于第一节点已失效,因此将第一数据块存储于第二节点,以确保第一数据块的正确存储。而如果第二节点在预设周期内接收到第一节点的第一存储证明,那么,就初步确定第一节点还没有失效。接下来,第二节点就需要进一步对第一节点的第一存储证明进行解析,进而确认第一节点存储的第一数据块是否正确存储,即是否可靠。
67.这里需要说明的是,预设周期,就是对分布式存储系统中每个节点存储的数据块进行一轮可靠性判断的周期。预设周期可以是1小时、1天、1周、1个月等。对于预设周期的具体数值,可以基于分布式存储系统的实际使用情况确定,此处不做具体限定。
68.s206b:第二节点确定第一节点失效。
69.当第二节点确定第一节点时效时,第二节点可以对第一节点进行标记,该标记能够指示第一节点失效。例如:该标记可以是“第二节点

第一节点失效”。这样,在分布式存储系统中的其它节点(例如:第三节点)对第一节点进行验证时,当看到第一节点上的失效标记时,其它节点就知道第一节点已失效,并且是第二节点发现的。此时,其它节点就无需再针对第一节点进行验证,进而提高节点间的验证效率。
70.此时,还存在有一种情况,就是第二节点本身失效了,其无法接收到第一节点的第一存储证明,但是其可以发出其对应的第二存储证明。而分布式存储系统中的其它节点没有失效,都能够接收到第一节点的第一存储证明。此时,第二节点标记出“第二节点

第一节点失效”。其它节点(分布式存储系统中至少一个节点)在能够接收到第一节点的第一存储证明的情况下,就确定第二节点失效,并标记“其它节点

第二节点失效”。这样,通过标记能
够提高判断节点是否失效的准确性。
71.或者,为了提高第一节点失效判断的准确性,可以是在分布式存储系统中除第一节点外的所有节点或部分节点(大于预设数量或预设比例的节点)确定第一节点失效的情况下,才确定第一节点失效。
72.s206c:第二节点恢复第一节点的第一数据块。
73.在恢复第一节点中的第一数据块时,采用的仍然是现有的纠删码。对于采用纠删码对节点中的数据块进行恢复的具体过程,此处不再赘述。
74.s206d:第二节点将恢复的第一数据块存储于第二节点。
75.当第二节点再次判断出第一节点存储的第一数据块出现问题时,说明第一数据块无法在第一节点中正常存储,换言之,第一节点失效了。为了确保第一数据块的正确存储,可以将第一数据块存储于第二节点。这样,能够避免恢复的数据块再次出现错误,进而提升分布式存储系统的可靠性。
76.在确定第一数据块出现问题后,以上是第二节点执行第一数据块的恢复,以及将恢复的第一数据块存储于第二节点。当然,还可以是分布式存储系统中的其它节点恢复第一数据块,以及将恢复的第一数据块存储于分布式存储系统中的其它节点,例如:第三节点。在选择执行恢复第一数据块或存储恢复的数据块的节点时,可以选择分布式存储系统中运行效率高的节点,也可以选择分布式存储系统中剩余容量最大的节点。对于选择的具体节点,此处不做限定。
77.在步骤s206a中判断在预设周期内接收到第一节点的第一存储证明后,则进入步骤s206e中。
78.s206e:第二节点采用解密验证算法解析第一存储证明,得到第一解析结果。
79.也就是说,第二节点采用x=v(p,s)解析第一节点的第一存储证明。其中,p表示存储证明,s表示随机数,v()表示解密验证算法,x表示解析结果。
80.s206f:第二节点判断第一解析结果是否表征第一节点的第一数据块存储出现错误;若是,则执行s206g

s206k;若否,则执行s206n。
81.当第一解析结果表征第一节点的第一数据块存储出现错误时,说明第一节点的存储出现问题,此时,第二节点需要恢复第一节点中的第一数据块,并将第一数据块存储于第一节点中,以确保第一节点存储的是正确的第一数据块,进而确保第一节点数据存储的可靠性。而当第一解析结果表征第一节点的第一数据块存储没有出现错误时,说明第一节点的存储没有出现问题,第一节点存储的数据可靠。如此,可以继续下一个节点的可靠性验证。
82.基于第一解析结果进行判断的具体过程,可参见上述步骤s104中的说明,此处不再赘述。
83.s206g:第二节点恢复第一节点的第一数据块。
84.步骤s206g与步骤s206c的具体实现方式相同,此处不再赘述。
85.s206h:第二节点将恢复的第一数据块存储于第一节点。
86.s206i:第一节点采用加密验证算法计算恢复的第一数据块,得到第一节点的再次存储证明。
87.s206j:第二节点采用解密验证算法解析再次存储证明,得到再次解析结果。
88.s206k:第二节点判断再次解析结果是否表征恢复的第一数据块存储出现错误;若是,则执行s206l

s206m;若否,则执行s206n。
89.这里需要说明的是,以上步骤s206i

s206k与前述步骤s205c、s206e

s206f中生成存储证明、解析存储证明、判断结果的方式相同,仅仅是再次执行而已。
90.s206l:第二节点恢复第一节点的第一数据块。
91.s206m:第二节点将恢复的第一数据块存储于第二节点。
92.步骤s206l与步骤s206c的具体实现方式相同,步骤s206m与步骤s206d的具体实现方式相同,此处不再赘述。
93.当然,在执行s206l

s206m时,可以是在多次将恢复的第一数据块存储于第一节点中仍出现问题的情况下,才将恢复的第一数据块存储于第二节点。这样,能够避免第二节点中存储过多的数据。
94.在步骤s206f以及s206k中第二节点判断第一解析结果以及再次解析结果并不表征第一节点的第一数据块存储出现错误后,则进入步骤s206n。
95.s206n:第二节点确定第一节点验证通过。
96.这样,第一节点存储的第一数据块就没有问题了,从而能够正常地进行数据的读取。
97.在步骤s206d、s206m中将第一数据块存储于第二节点后,则进入步骤s206o中。
98.s206o:第二节点向分布式存储系统中的第三节点发布恢复的第一数据块的存储位置。
99.第二节点在恢复完成第一数据块,并将恢复的第一数据块存储完成后,第二节点将恢复的第一数据块的存储位置发送至分布式存储系统中的第三节点,这里的第三节点为分布式存储系统中除第一节点、第二节点外的至少一个节点。例如:分布式存储系统中的所有节点。这样,分布式存储系统中的所有节点就都能够获知恢复的第一数据块最后的存储位置,进而能够正确的调用数据。
100.s206p:第三节点获知第一数据块存储于第二节点。
101.由上述内容可知,本技术实施例提供的数据验证方法,分布式存储系统中的第一节点通过加密验证算法生成第一数据块的第一存储证明,分布式存储系统中的第二节点通过是否在预设周期内接收到第一存储证明确定第一节点是否失效,进而在确定第一节点时效时,第二节点恢复第一数据块,并将恢复的第一数据块存储于第二节点。以及,在第二节点在预设周期内接收到第一存储证明时,第二节点通过解密验证算法对第一存储证明进行解析,进而确定第一节点存储的第一数据块是否正确,当确定第一数据块异常时,第二节点恢复第一数据块,并将恢复的第一数据块存储于第一节点。这样,使得在调用分布式存储系统中各节点存储的数据块之前,就能够针对单个节点存储的数据块进行验证,进而避免在使用各节点存储的数据块时,通过更多节点使用高冗余度的编码进行各节点存储的数据块的验证,进而使得分布式存储系统中低成本低性能的边缘设备也能够采用纠删码(冗余度降低)确保数据存储的可靠性,进而提高分布式存储系统的整体安全性。
102.基于同一发明构思,作为对上述方法的实现,本技术实施例还提供了一种分布式存储系统。图3为本技术实施例中分布式存储系统的结构示意图一,参见图3所示,该系统可以包括:
103.第一节点301,用于采用第一预设验证算法对第一数据块进行计算,得到所述第一节点的第一存储证明,所述第一数据块为经过纠删码处理并存储于所述第一节点中的数据块。
104.第二节点302,用于接收所述第一存储证明;采用第二预设验证算法解析所述第一存储证明,得到第一解析结果,所述第二预设验证算法能够验证采用所述第一预设验证算法计算的数据是否正确;根据所述第一解析结果确定所述第一节点存储的所述第一数据块是否正确。
105.进一步地,作为对图3所示方法的细化和扩展,本技术实施例还提供了一种分布式存储系统。图4为本技术实施例中分布式存储系统的结构示意图二,参见图4所示,该系统可以包括:第一节点401、第二节点402和第三节点403。
106.第一节点401可以包括:
107.生成模块401a,用于生成随机数。
108.存储证明模块401b,用于采用加密验证算法对所述第一数据块和所述随机数进行计算,以及采用所述第一预设验证算法计算恢复的所述第一节点的数据块,得到所述第一节点的再次存储证明。
109.第二节点402可以包括:
110.确定模块402a,用于在预设周期内未接收到所述第一节点的第一存储证明的情况下,确定所述第一节点失效。
111.证明验证模块402b,用于采用解密验证算法解析所述第一存储证明,以及采用所述第二预设验证算法解析所述再次存储证明,得到再次解析结果。
112.判断模块402c,用于根据所述再次解析结果确定恢复的所述第一节点的数据块是否正确。
113.数据恢复模块402d,用于恢复所述第一节点的数据块。
114.存储模块402e,用于将恢复的所述第一节点的数据块存储于所述第二节点,或者将恢复的所述第一节点的数据块存储于所述第一节点。
115.发布模块402f,用于将恢复的所述第一节点的数据块的存储位置发送至第三节点,所述第三节点为所述分布式存储系统中除所述第一节点、所述第二节点外的至少一个节点。
116.这里需要指出的是,以上系统实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术系统实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
117.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜