CN110955916B - 一种数据完整性保护方法、系统及相关设备 - Google Patents
一种数据完整性保护方法、系统及相关设备 Download PDFInfo
- Publication number
- CN110955916B CN110955916B CN201811124515.7A CN201811124515A CN110955916B CN 110955916 B CN110955916 B CN 110955916B CN 201811124515 A CN201811124515 A CN 201811124515A CN 110955916 B CN110955916 B CN 110955916B
- Authority
- CN
- China
- Prior art keywords
- target data
- checksum
- memory
- data
- complete
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
Abstract
本发明实施例提供了一种数据完整性保护方法、系统及相关设备,用于及时发现目标数据刷写和读取过程中是否出现错误,有效避免刷写错误数据,保障了数据的完整性。本发明实施例方法包括:当目标数据存储在内存储器中时,采用第一校验和算法计算目标数据的第一校验和;当接收到将内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算目标数据的第二校验和;采用第一校验和校验目标数据是否完整,若目标数据完整,则将第一校验和、目标数据及第二校验和刷写到第二存储器中;当接收到读取第二存储器中的目标数据的指令时,采用第二校验和校验目标数据是否完整,若目标数据不完整,则报错。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及一种数据完整性保护方法、系统及相关设备。
背景技术
保持数据完整性是现代存储系统最重要的职责,因此有各种各样的技术被开发和应用来改进数据完整性保护。其中最常用,最受欢迎的就是校验和方法。传统的针对存储系统的校验和方法同常采用端到端校验。端到端校验,一般在应用程序把数据传给后端系统接口开始,使用一种计算出一个校验和,之后一直到数据被读出才使用校验和进行验证。
这样的话存在几个缺陷,一是发现错误慢,如果数据不读出的话,就一直没法进行校验和验证。二是不灵活,因为数据在整个生命周期中会经过存储系统的不同层次,包括内存、磁盘及固态盘等。不同存储部件的失效率、故障率、错误率等都不同,如果都使用同一种校验和算法的话,会造成有的存储部件上校验和算法能力过强对性能影响过大。而有些存储部件上校验和算法能力过弱而无法达到数据完整性保护的需求。
发明内容
本发明实施例提供了一种数据完整性保护方法、系统及相关设备,用于及时发现目标数据刷写和读取过程中是否出现错误,有效避免刷写错误数据,保障了数据的完整性。
本发明实施例第一方面提供了一种数据完整性保护方法,其特征在于,包括:
当目标数据存储在内存储器中时,采用第一校验和算法计算所述目标数据的第一校验和;
当接收到将所述内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算所述目标数据的第二校验和;
采用所述第一校验和校验目标数据是否完整,若所述目标数据完整,则将所述第一校验和、所述目标数据及所述第二校验和刷写到所述第二存储器中;
当接收到读取所述第二存储器中的目标数据的指令时,采用所述第二校验和校验所述目标数据是否完整,若所述目标数据不完整,则报错。
可选的,作为一种可能的实施方式,本发明实施例中的数据完整性保护方法还包括:
当接收到将所述第二存储器中的目标数据刷写到第三存储器的指令时,采用第三校验和算法计算所述目标数据的第三校验和;
采用所述第二校验和校验所述目标数据是否完整;
若所述目标数据完整,则将所述第一校验和、所述目标数据及所述第三校验和刷写到所述第三存储器中。
可选的,作为一种可能的实施方式,本发明实施例中的数据完整性保护方法还包括:
当接收到读取所述第三存储器中的目标数据的指令时,采用所述第三校验和校验所述目标数据是否完整;
若所述目标数据不完整,则报错。
可选的,作为一种可能的实施方式,本发明实施例中的数据完整性保护方法还包括:
当接收到读取所述内存储器中的目标数据的指令或将所述内存储器中的目标数据刷写到其他存储器的指令时,采用所述第一校验和校验所述目标数据是否完整;
若所述目标数据不完整,则报错。
本发明实施例第二方面提供了一种数据完整性保护系统,其特征在于,包括:
第一计算模块,当目标数据存储在内存储器中时,用于采用第一校验和算法计算所述目标数据的第一校验和;
第二计算模块,当接收到将所述内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算所述目标数据的第二校验和;
第一校验模块,用于采用所述第一校验和校验目标数据是否完整;
第一刷写模块,若所述目标数据完整,则用于将所述第一校验和、所述目标数据及所述第二校验和刷写到所述第二存储器中;
第二校验模块,当接收到读取所述第二存储器中的目标数据的指令时,采用所述第二校验和校验所述目标数据是否完整;
第一提示模块,若所述目标数据不完整,则报错。
可选的,作为一种可能的实施方式,本发明实施例中的数据完整性保护系统还包括:
第三计算模块,当接收到将所述第二存储器中的目标数据刷写到第三存储器的指令时,采用第三校验和算法计算所述目标数据的第三校验;
第一触发模块,用于采用所述第二校验和校验所述目标数据是否完整;
第二刷写模块,若所述目标数据完整,则用于将所述第一校验和、所述目标数据及所述第三校验和刷写到所述第三存储器中。
可选的,作为一种可能的实施方式,本发明实施例中的数据完整性保护系统还包括:
第三校验模块,当接收到读取所述第三存储器中的目标数据的指令时,采用所述第三校验和校验所述目标数据是否完整;
第二提示模块,若所述目标数据不完整,则报错。
可选的,作为一种可能的实施方式,本发明实施例中的数据完整性保护系统还包括:
第二触发模块,当接收到读取所述内存储器中的目标数据的指令或将所述内存储器中的目标数据刷写到其他存储器的指令时,用于触发所述第一校验模块;
第三提示模块,若所述目标数据不完整,则报错。
本发明实施例第三方面提供了一种计算机装置,其特征在于,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面及第一方面任意一种可能的实施方式中的步骤。
本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如第一方面及第一方面任意一种可能的实施方式中的步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,当目标数据需要存储在不同的存储器中时,可以根据存储器的实际性能,分别采用各个存储器性能相匹配的校验和算法计算目标数据的校验和。在多级存储系统中,目标数据在不同的存储中进行刷写之前,需要采用目标数据当前所采用的存储器对应的校验和算法对目标数据进行校验,只有校验通过才能将目标数据刷写到新的存储器中。在多级存储系统中可以及时发现目标数据刷写和读取过程中是否出现错误,有效避免刷写错误数据,保障了数据的完整性。
附图说明
图1为本发明实施例中一种数据完整性保护方法的一个实施例示意图;
图2为本发明实施例中一种数据完整性保护方法的另一个实施例示意图;
图3为本发明实施例中一种多级存储系统的系统架构例示意图;
图4为本发明实施例中一种数据完整性保护方法的一个具体运用实施例示意图;
图5为本发明实施例中一种数据完整性保护系统的一个实施例示意图;
图6为本发明实施例中一种数据完整性保护系统的另一个实施例示意图;
图7为本发明实施例中一种数据完整性保护系统的另一个实施例示意图;
图8为本发明实施例中一种计算机装置的一个实施例示意图。
具体实施方式
本发明实施例提供了一种数据完整性保护方法、系统及相关设备,用于及时发现目标数据刷写和读取过程中是否出现错误,有效避免刷写错误数据,保障了数据的完整性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明适用于多级存储系统的数据完整性保护,通过在不同的存储部件上使用不同的校验和算法,并在不同的存储部件交互时采用严格校验和切换策略,达到及时发现数据错误,提供足够的数据完整性保护和性能需求。为了便于理解,下面将对现有的多级存储系统进行简单说明,现有的存储系统通常包含至少两级,以计算机存储系统为例,在应用程序数据传给后端系统接口时,数据是缓存在计算机的内存储器(第一级)中,当数据变冷之后就存储在固态盘或磁盘(第二级)中。此外,对于大型的数据中心往往还存在第三级甚至更多层级的存储器,具体的存储系统的层级,此处不做限定。
其中,内存储器又称为内存,通常也泛称为主存储器,是计算机中的主要部件,它是相对于外存而言的,内存储器通常可以由内存芯片、电路板、金手指等部分组成的,具体的此处不做限定。
为了便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中一种数据完整性保护方法的一个实施例可包括:
101、当目标数据存储在内存储器中时,采用第一校验和算法计算目标数据的第一校验和。
当应用程序将目标数据第一次缓存在内存储器中时,为了后续校验目标数据的完整性,可以根据内存储器的性能及用户的要求合理的设置第一校验和算法,例如,CRC-8、Adler-8及Fletcher-8等算法,并采用第一校验和算法计算目标数据的第一校验和。
102、当接收到将内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算目标数据的第二校验和。
不同存储部件的失效率、故障率、错误率等都不同,如果都使用同一种复杂的校验和算法的话,会造成有的存储部件上校验和算法能力过强对性能影响过大;如果都使用同一种简单的校验和算法的话,会无法满足有些存储部件的数据完整性保护的需求。
有鉴于此,本发明实施例根据不同的存储器及用户的需求,可以设置不同的校验和算法。具体的,内存储器中的目标数据在刷写到第二存储器之前,可以采用第二校验和算法计算目标数据的第二校验和。具体的第二校验和算法可以根据第二存储器的性能及用户的需求进行合理的设置,例如,CRC-32,Adler-32,Flethcer-32等,具体此处不做限定。
103、采用第一校验和校验目标数据是否完整,若目标数据完整,则将第一校验和、目标数据及第二校验和刷写到第二存储器中。
在计算完第二校验和之后,还需要使用第一校验和算法和第一校验和来验证目标数据是否完整。如果完整,说明计算第二校验和时使用的是完整的目标数据,进而第二校验和是可信。
具体的,可以采用第一校验和算法再次内存储器中的目标数据进行计算,得到新的校验和,并将该新的校验和与第一校验和进行比对,如果两者一致,则说明内存储器中的目标数据完整,进而第二校验和是可信。进而,可以将第一校验和、目标数据及第二校验和刷写到第二存储器中。
104、当接收到读取第二存储器中的目标数据的指令时,采用第二校验和校验目标数据是否完整,若目标数据不完整,则报错。
在将目标数据刷写到第二存储器之后,当需要从第二存储器调用目标数据时,需要采用第二校验和校验目标数据是否完整。具体的,可以将第一校验和、目标数据及第二校验缓存到内存储器中,采用第二校验和算法重新对目标数据进行计算得到新的校验和,并比较该新的校验和与原有的第二校验和是否一致,若一致,则目标数据完整,反之,则目标数据不完整。若检测到目标数据不完整,则可以进行报错。
本发明实施例中,当目标数据需要存储在不同的存储器中时,可以根据存储器的实际性能,分别采用各个存储器性能相匹配的校验和算法计算目标数据的校验和。在多级存储系统中,目标数据在不同的存储中进行刷写之前,需要采用目标数据当前所采用的存储器对应的校验和算法对目标数据进行校验,只有校验通过才能将目标数据刷写到新的存储器中。在多级存储系统中可以及时发现目标数据刷写和读取过程中是否出现错误,有效避免刷写错误数据,保障了数据的完整性。
上述实施例中仅以两级存储系统为例,本发明实施例中的数据完整性保护方法,还可以运用于三级存储系统或三级以上的存储系统,下面将结合三级存储系统进行说明。请参阅图2,在上述图1所示的实施例的基础上,本发明实施例中一种数据完整性保护方法的另一个实施例可包括:
201、当目标数据存储在内存储器中时,采用第一校验和算法计算目标数据的第一校验和。
202、当接收到将内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算目标数据的第二校验和。
203、采用第一校验和校验目标数据是否完整,若目标数据完整,则将第一校验和、目标数据及第二校验和刷写到第二存储器中。
本发明实施例中的步骤201至203中所描述的内容与上述图1中步骤101至103中描述的内容类似,具体请参阅步骤101至103,此处不再赘述。
204、在将第二存储器中的目标数据刷写到第三存储器之前,采用第三校验和算法计算目标数据的第三校验和。
如果内存储器中的目标数据删除之后,当需要将目标数据刷写到第三存储器时,需要从第二存储器中读取目标数据,具体的,可以将第一校验和、目标数据及第二校验缓存到内存储器中,并采用第三存储器对应的第三校验和算法计算目标数据的第三校验和。
205、采用第二校验和校验目标数据是否完整,若目标数据不完整,则报错。
由于需要在第二存储器调用目标数据,为保证数据的完整性,需要采用第二校验和校验目标数据是否完整。具体的,可以采用第二校验和算法重新对目标数据进行计算得到新的校验和,并比较该新的校验和与原有的第二校验和是否一致,若一致,则目标数据完整,反之,则目标数据不完整。若检测到目标数据不完整,则可以进行报错。
206、若目标数据完整,则将第一校验和、目标数据及第三校验和刷写到第三存储器中。
若通过第二校验和的验证之后确定从第二存储器中读取的目标数据是完整的,则可以将第一校验和、目标数据及第三校验和刷写到第三存储器中。
本发明实施例中,当目标数据需要存储在不同的存储器中时,可以根据内存储器、第一存储器及第二存储器的实际性能,分别采用各个存储器性能相匹配的校验和算法计算目标数据的校验和。在多级存储系统中,目标数据在不同的存储中进行刷写之前,需要采用目标数据当前所采用的存储器对应的校验和算法对目标数据进行校验,只有校验通过才能将目标数据刷写到新的存储器中。在多级存储系统中可以及时发现目标数据刷写和读取过程中是否出现错误,有效避免刷写错误数据,保障了数据的完整性。
可以理解的是,在本发明的各种实施例中,上述各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在上述图1所示的实施例的基础上,当需要将目标数据刷写到第三存储器时,如果内存储器中的目标数据没有删除,则只需要采用第三存储器对应的第三校验和算法对目标数据进行计算得到第三校验和,然后采用第一校验和校验内存储器中的目标数据是否完整,若目标数据完整,则可以直接将第一校验和、目标数据及第三校验和刷写到第三存储器中。
在上述图1及图2所示的实施例的基础上,当接收到读取内存储器中的目标数据的指令时,例如,当运用程序需要读取内存储中的目标数据或将内存储器中的目标数据刷写到第三存储器时,采用第一校验和校验目标数据是否完整,若目标数据完整,则执行对应的读取或刷写操作;若目标数据不完整,则报错。
上述实施例对本发明实施例中的数据完整性保护方法的流程进行了描述,为了便于理解,下面结合具体运用实例对本发明实施例中的数据完整性保护方法进行描述,请参阅图3至图4,仅以如图3所示的,由内存、固态盘、磁盘组成的三级存储系统为例,本发明实施例中一种数据完整性保护方法的一个具体运用实例中,在应用程序数据传给后端系统接口时,使用类似CRC-8,Adler-8,Fletcher-8等的高性能低存储需求校验和算法去生成校验和(叫c1);在数据需要存储到固态盘时执行校验和切换,校验和切换是先用数据生成新的校验和(叫c2),然后再使用c1和生成c1的算法去验证数据是否正确。如果错误,则报错。反之,则把c1,c2和数据都刷到固态盘。生成c2的校验和算法是在固态盘上使用的校验和算法(类似CRC-32,Adler-32,Flethcer-32等),有更强检错能力,相应的对性能有更大影响同时需要更多的存储空间。而当存在固态盘上的数据变冷,需要转存到磁盘上时候,需要再次执行校验和切换。先把c1,c2和数据从固态盘读取上来,使用c2和生成c2的算法去验证数据是否正确。如果错误,则报错。反之,则用数据生成新的校验和(叫c3),再使用c1去验证数据是否正确。如果错误,则报错。反之,则把c1,c3和数据都刷到磁盘。生成c3的校验和算法是在磁盘上使用校验和算法(SHA-1,SHA-256等),有更强检错能力的,相应的对性能有更大影响同时需要更多的存储空间。
如图3所示,该存储系统是个由内存-固态盘-磁盘组成的三级存储系统,用户IO进入系统都是应用程序通过接口传给后端系统的,这时是在内存中。为了可靠性需求,需要及时刷到底层持久化存储系统中去。而一般为了下次访问的性能,会同时存到读缓存和下层固态盘中。这样下次访问就可以从读缓存命中或从快速固态盘读取,而不会从慢速磁盘读取。而当数据变冷,会从固态盘读取出来,然后存储到磁盘中去。
如图4所示,是在多级存储系统中使用本发明的整个IO周期。在t0时刻有用户写请求d0达到,系统使用高性能低存储需求低检错能力的校验和算法(如CRC-8,Adler-8,Fletcher-8等)来生成内存级校验和c1。那么之后只要有对内存中该数据d0的访问,都会使用内存级校验和c1与对应的校验和算法来验证数据的正确性。如果正确则返回正确数据,否则报错。之后在t1时刻,数据d0需要被刷到持久化存储固态盘中。这时使用固态盘级校验和算法(如CRC-32,Adler-32,Fletcher-32等)来生成固态盘级校验和c2。相对于内存级校验和算法,固态盘级校验和算法有更高的检错能力,同时有更高的计算开销和存储需求。这是因为固态盘相对于内存有更大容量,所以对存储开销有更大的支持。同时由于固态盘性能比内存低几个数量级,因此固态盘对性能要求没有内存那么严格。在计算完固态盘级校验和之后还需要使用内存级校验和算法和内存级校验和c1来验证数据。如果正确,说明计算固态盘级校验和c2时使用的是正确的数据,进而固态盘级校验和c2是可信。否则,有可能本来就是使用错误的数据去计算固态盘级校验和c2。这个顺序不能反,如果反了,就是先验证数据的正确性,然后再计算固态盘级校验和c2。这样的话,在验证完数据正确性到计算完固态盘级校验和c2之间数据d0是未受数据完整性保护的,存在数据出错而无法检测到的可能,说明保护不完备。
在计算完固态盘级校验和c2并使用内存级校验和来验证之后把数据d0,内存级校验和c1,固态盘级校验和c2都刷到固态盘。把内存级校验和c1刷下去的原因是之后读上来不用再生成内存级校验和。在t2时,有对数据d0的访问且内存中并没有数据d0,那么就会从固态盘中读取数据d0,同时会把内存级校验和c1,固态盘级校验和c2一起读上去。读上去之后,使用固态盘级校验和c2和固态盘级校验和算法来验证数据d0的正确性。如果正确则返回正确数据给用户,否则报错。同时数据d0和内存级校验和c1存在读缓存中,之后如果有对d0的访问,都会使用内存级校验和c1与对应的校验和算法来验证数据的正确性。可以看到,由于内存级校验和c1由于之前存在固态盘中,所以不需要重新生成。在时刻t3,由于数据d0变冷,需要刷到磁盘中去。具体可以分为两种情况,具体如下:
A.这时如果d0在固态盘中,如图4所示,就会重复t2时刻的操作,从固态盘中读取数据d0,同时会把内存级校验和c1,固态盘级校验和c2一起读上去。读上去之后,使用磁盘级校验和算法(如MD5,SHA-1,SHA-2等)来生成磁盘级校验和c3。生成完磁盘级校验和c3之后使用固态盘级校验和c2和固态盘级校验和算法来验证数据d0的正确性,这同样是为了保证用正确的数据去生成校验和。如果错误,则报错。反之,则把数据d0,内存级校验和c1,磁盘级校验和c3都刷到磁盘。
B.这时如果d0在内存中,就使用磁盘级校验和算法(如MD5,SHA-1,SHA-2等)来生成磁盘级校验和c3。生成完磁盘级校验和c3之后使用内存级校验和c1和内存级校验和算法来验证数据d0的正确性,这同样是为了保证用正确的数据去生成校验和。如果错误,则报错。反之,则把数据d0,内存级校验和c1,磁盘级校验和c3都刷到磁盘。
在t4时,有对数据d0的访问且内存中并没有数据d0,那么就会从磁盘中读取数据d0,同时会把内存级校验和c1,磁盘级校验和c3一起读上去。读上去之后,使用磁盘级校验和c3和磁盘级校验和算法来验证数据d0的正确性。如果正确则返回正确数据给用户,否则报错。同时数据d0和内存级校验和c1存在读缓存中,之后如果有对d0的访问,都会使用内存级校验和c1与对应的校验和算法来验证数据的正确性。在时刻t5,有对d0的访问,直接使用内存级校验和c1与对应的校验和算法来验证数据的正确性。如果正确,则返回正确数据;否则,报错。
具体的,从磁盘上读取的数据总是使用c3和磁盘级校验和算法去验证数据的正确性。从固态盘上读取的数据总是使用c2和固态盘级校验和算法验证数据的正确性。当需要从内存读取数据或把内存中的数据刷到固态盘或磁盘时,总是使用c1和内存级校验和算法去验证数据的正确性。
上述实施例对本发明实施例中的数据完整性保护方法进行了描述,下面将对本发明实施例中的数据完整性保护系统进行描述,请参阅图5,本发明实施例中一种数据完整性保护系统的一个实施例可包括:
第一计算模块501,当目标数据存储在内存储器中时,用于采用第一校验和算法计算目标数据的第一校验和;
第二计算模块502,当接收到将内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算目标数据的第二校验和;
第一校验模块503,用于采用第一校验和校验目标数据是否完整;
第一刷写模块504,若目标数据完整,则用于将第一校验和、目标数据及第二校验和刷写到第二存储器中;
第二校验模块505,当接收到读取第二存储器中的目标数据的指令时,采用第二校验和校验目标数据是否完整;
第一提示模块506,若目标数据不完整,则报错。
本发明实施例中,当目标数据需要存储在不同的存储器中时,可以根据存储器的实际性能,分别采用各个存储器性能相匹配的校验和算法计算目标数据的校验和。在多级存储系统中,目标数据在不同的存储中进行刷写之前,需要采用目标数据当前所采用的存储器对应的校验和算法对目标数据进行校验,只有校验通过才能将目标数据刷写到新的存储器中。在多级存储系统中可以及时发现目标数据刷写和读取过程中是否出现错误,有效避免刷写错误数据,保障了数据的完整性。
可选的,作为一种可能的实施方式,请参阅图6,本发明实施例中的数据完整性保护系统,还可以进一步包括:
第三计算模块507,当接收到将第二存储器中的目标数据刷写到第三存储器的指令时,采用第三校验和算法计算目标数据的第三校验;
第一触发模块508,用于触发第二校验模块;
第二刷写模块509,若目标数据完整,则用于将第一校验和、目标数据及第三校验和刷写到第三存储器中。
可选的,作为一种可能的实施方式,请采参阅图7,本发明实施例中的数据完整性保护系统,还可以进一步包括:
第三校验模块510,当接收到读取第三存储器中的目标数据的指令时,采用第三校验和校验目标数据是否完整;
第二提示模块511,若目标数据不完整,则报错。
可选的,作为一种可能的实施方式,请采参阅图7,本发明实施例中的数据完整性保护系统,还可以进一步包括:
第二触发模块512,当接收到读取内存储器中的目标数据的指令或将内存储器中的目标数据刷写到其他存储器的指令时,用于触发第一校验模块;
第三提示模块513,若目标数据不完整,则报错。
上面从模块化功能实体的角度对本发明实施例中的用于数据完整性保护系统进行了描述,下面从硬件处理的角度对本发明实施例中的计算机装置进行描述:
本发明实施例还提供了一种计算机装置8,如图8所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机装置8一般指服务器等处理能力较强的计算机设备。
参考图8,计算机装置8包括:电源810、存储器820、处理器830、有线或无线网络接口840以及存储在存储器中并可在处理器上运行的计算机程序。处理器执行计算机程序时实现上述数据完整性保护方法方法实施例中的步骤,例如图1所示的步骤101至104。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
本发明的一些实施例中,处理器具体用于实现如下步骤:
当目标数据存储在内存储器中时,采用第一校验和算法计算目标数据的第一校验和;
当接收到将内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算目标数据的第二校验和;
采用第一校验和校验目标数据是否完整,若目标数据完整,则将第一校验和、目标数据及第二校验和刷写到第二存储器中;
当接收到读取第二存储器中的目标数据的指令时,采用第二校验和校验目标数据是否完整,若目标数据不完整,则报错。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
当接收到将第二存储器中的目标数据刷写到第三存储器的指令时,采用第三校验和算法计算目标数据的第三校验和;
采用第二校验和校验目标数据是否完整;
若目标数据完整,则将第一校验和、目标数据及第三校验和刷写到第三存储器中。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
当接收到读取第三存储器中的目标数据的指令时,采用第三校验和校验目标数据是否完整;
若目标数据不完整,则报错。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
当接收到读取内存储器中的目标数据的指令或将内存储器中的目标数据刷写到其他存储器的指令时,采用第一校验和校验目标数据是否完整;
若目标数据不完整,则报错。
计算机装置8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
本领域技术人员可以理解,图8中示出的结构并不构成对计算机装置8的限定,计算机装置8可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如计算机装置还可以包括输入输出设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现如下步骤:
当目标数据存储在内存储器中时,采用第一校验和算法计算目标数据的第一校验和;
当接收到将内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算目标数据的第二校验和;
采用第一校验和校验目标数据是否完整,若目标数据完整,则将第一校验和、目标数据及第二校验和刷写到第二存储器中;
当接收到读取第二存储器中的目标数据的指令时,采用第二校验和校验目标数据是否完整,若目标数据不完整,则报错。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
当接收到将第二存储器中的目标数据刷写到第三存储器的指令时,采用第三校验和算法计算目标数据的第三校验和;
采用第二校验和校验目标数据是否完整;
若目标数据完整,则将第一校验和、目标数据及第三校验和刷写到第三存储器中。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
当接收到读取第三存储器中的目标数据的指令时,采用第三校验和校验目标数据是否完整;
若目标数据不完整,则报错。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
当接收到读取内存储器中的目标数据的指令或将内存储器中的目标数据刷写到其他存储器的指令时,采用第一校验和校验目标数据是否完整;
若目标数据不完整,则报错。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据完整性保护方法,其特征在于,包括:
当目标数据存储在内存储器中时,采用第一校验和算法计算所述目标数据的第一校验和;
当接收到将所述内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算所述目标数据的第二校验和;
采用所述第一校验和校验目标数据是否完整,若所述目标数据完整,则将所述第一校验和、所述目标数据及所述第二校验和刷写到所述第二存储器中;
所述采用所述第一校验和校验目标数据是否完整,包括:
采用第一校验和算法重新对所述目标数据进行计算,得到新的第一校验和;
若所述目标数据完整,包括:
若所述新的第一校验和与原有的所述第一校验和一致,则确定所述目标数据完整;
当接收到读取所述第二存储器中的目标数据的指令时,采用所述第二校验和校验所述目标数据是否完整,若所述目标数据不完整,则报错;
所述采用所述第二校验和校验所述目标数据是否完整,包括:
采用第二校验和算法重新对所述目标数据进行计算,得到新的第二校验和;
所述若所述目标数据不完整,包括:
若所述新的第二校验和与原有的所述第二校验和不一致,则确定所述目标数据不完整。
2.根据权利要求1所述的方法,其特征在于,还包括:
当接收到将所述第二存储器中的目标数据刷写到第三存储器的指令时,采用第三校验和算法计算所述目标数据的第三校验和;
采用所述第二校验和校验所述目标数据是否完整;
若所述目标数据完整,则将所述第一校验和、所述目标数据及所述第三校验和刷写到所述第三存储器中。
3.根据权利要求2所述的方法,其特征在于,还包括:
当接收到读取所述第三存储器中的目标数据的指令时,采用所述第三校验和校验所述目标数据是否完整;
若所述目标数据不完整,则报错。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
当接收到读取所述内存储器中的目标数据的指令或将所述内存储器中的目标数据刷写到其他存储器的指令时,采用所述第一校验和校验所述目标数据是否完整;
若所述目标数据不完整,则报错。
5.一种数据完整性保护系统,其特征在于,包括:
第一计算模块,当目标数据存储在内存储器中时,用于采用第一校验和算法计算所述目标数据的第一校验和;
第二计算模块,当接收到将所述内存储器中的目标数据刷写到第二存储器的指令时,采用第二校验和算法计算所述目标数据的第二校验和;
第一校验模块,用于采用所述第一校验和校验目标数据是否完整;
所述第一校验模块,具体用于采用第一校验和算法重新对所述目标数据进行计算,得到新的第一校验和;
第一刷写模块,若所述目标数据完整,则用于将所述第一校验和、所述目标数据及所述第二校验和刷写到所述第二存储器中;
所述第一刷写模块,具体用于若所述新的第一校验和与原有的所述第一校验和一致,则确定所述目标数据完整;
第二校验模块,当接收到读取所述第二存储器中的目标数据的指令时,采用所述第二校验和校验所述目标数据是否完整;
所述第二校验模块,具体用于采用第二校验和算法重新对所述目标数据进行计算,得到新的第二校验和;
第一提示模块,若所述目标数据不完整,则报错;
所述第一提示模块,具体用于若所述新的第二校验和与原有的所述第二校验和不一致,则确定所述目标数据不完整。
6.根据权利要求5所述的系统,其特征在于,还包括:
第三计算模块,当接收到将所述第二存储器中的目标数据刷写到第三存储器的指令时,采用第三校验和算法计算所述目标数据的第三校验;
第一触发模块,用于触发所述第二校验模块;
第二刷写模块,若所述目标数据完整,则用于将所述第一校验和、所述目标数据及所述第三校验和刷写到所述第三存储器中。
7.根据权利要求6所述的系统,其特征在于,还包括:
第三校验模块,当接收到读取所述第三存储器中的目标数据的指令时,采用所述第三校验和校验所述目标数据是否完整;
第二提示模块,若所述目标数据不完整,则报错。
8.根据权利要求5至7中任一项所述的系统,其特征在于,还包括:
第二触发模块,当接收到读取所述内存储器中的目标数据的指令或将所述内存储器中的目标数据刷写到其他存储器的指令时,用于触发所述第一校验模块;
第三提示模块,若所述目标数据不完整,则报错。
9.一种计算机装置,其特征在于,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至4中任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至4中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811124515.7A CN110955916B (zh) | 2018-09-26 | 2018-09-26 | 一种数据完整性保护方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811124515.7A CN110955916B (zh) | 2018-09-26 | 2018-09-26 | 一种数据完整性保护方法、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955916A CN110955916A (zh) | 2020-04-03 |
CN110955916B true CN110955916B (zh) | 2023-09-05 |
Family
ID=69964551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811124515.7A Active CN110955916B (zh) | 2018-09-26 | 2018-09-26 | 一种数据完整性保护方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955916B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343314A (zh) * | 2021-07-02 | 2021-09-03 | 北京汽车集团越野车有限公司 | 一种数据刷写的数据校验方法及装置 |
CN113900846A (zh) * | 2021-10-15 | 2022-01-07 | 苏州佳世达电通有限公司 | 显示装置、显示器识别数据恢复系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
DE102013223234A1 (de) * | 2013-11-14 | 2015-05-21 | Siemens Aktiengesellschaft | Zugriff auf einen Speicher |
CN106325773A (zh) * | 2016-08-23 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统数据的一致性保障方法、系统及缓存装置 |
CN107844273A (zh) * | 2017-11-01 | 2018-03-27 | 深信服科技股份有限公司 | 一种数据写入方法及装置、验证方法及装置 |
CN107844714A (zh) * | 2017-11-01 | 2018-03-27 | 深信服科技股份有限公司 | 一种验证方法及装置、计算机装置、可读存储介质 |
CN107944300A (zh) * | 2017-11-01 | 2018-04-20 | 深信服科技股份有限公司 | 一种数据写入方法及装置、验证方法及装置 |
CN108196975A (zh) * | 2017-11-21 | 2018-06-22 | 深信服科技股份有限公司 | 基于多校验和的数据验证方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7577848B2 (en) * | 2005-01-18 | 2009-08-18 | Microsoft Corporation | Systems and methods for validating executable file integrity using partial image hashes |
US9225780B2 (en) * | 2012-02-24 | 2015-12-29 | Xyratex Technology Limited | Data integrity in a networked storage system |
-
2018
- 2018-09-26 CN CN201811124515.7A patent/CN110955916B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
DE102013223234A1 (de) * | 2013-11-14 | 2015-05-21 | Siemens Aktiengesellschaft | Zugriff auf einen Speicher |
CN106325773A (zh) * | 2016-08-23 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统数据的一致性保障方法、系统及缓存装置 |
CN107844273A (zh) * | 2017-11-01 | 2018-03-27 | 深信服科技股份有限公司 | 一种数据写入方法及装置、验证方法及装置 |
CN107844714A (zh) * | 2017-11-01 | 2018-03-27 | 深信服科技股份有限公司 | 一种验证方法及装置、计算机装置、可读存储介质 |
CN107944300A (zh) * | 2017-11-01 | 2018-04-20 | 深信服科技股份有限公司 | 一种数据写入方法及装置、验证方法及装置 |
CN108196975A (zh) * | 2017-11-21 | 2018-06-22 | 深信服科技股份有限公司 | 基于多校验和的数据验证方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110955916A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10802910B2 (en) | System for identifying and correcting data errors | |
US10963327B2 (en) | Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management | |
JP5192587B2 (ja) | メモリシステムのコピーバック最適化 | |
US8468423B2 (en) | Data verification using checksum sidefile | |
US20140068208A1 (en) | Separately stored redundancy | |
US9632863B2 (en) | Track error-correcting code extension | |
US8321757B2 (en) | Method and apparatus for error correction | |
CN101937373A (zh) | 比特错误阈值和重映射存储装置 | |
KR101343262B1 (ko) | 동시 판독 및 기록 메모리 동작을 수행하는 방법 및 장치 | |
KR102385138B1 (ko) | 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치 | |
US10558524B2 (en) | Computing system with data recovery mechanism and method of operation thereof | |
CN103218271B (zh) | 一种数据纠错方法及装置 | |
US20170187391A1 (en) | Error locator polynomial decoder and method | |
CN103699337A (zh) | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 | |
US8566689B2 (en) | Data integrity units in nonvolatile memory | |
CN110955916B (zh) | 一种数据完整性保护方法、系统及相关设备 | |
CN109669800B (zh) | 用于写入路径错误的高效数据恢复 | |
CN101634938A (zh) | 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘 | |
US20170345456A1 (en) | Programmable error-correcting code for a host device | |
US7340672B2 (en) | Providing data integrity for data streams | |
US7577804B2 (en) | Detecting data integrity | |
US9928135B2 (en) | Non-local error detection in processor systems | |
US20190018733A1 (en) | High performance memory controller | |
CN108572882B (zh) | 一种数据存储的方法及存储设备 | |
CN114442953A (zh) | 一种数据校验的方法、系统、芯片和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |