CN110348245A - 基于nvm的数据完整性保护方法、系统、装置及存储介质 - Google Patents

基于nvm的数据完整性保护方法、系统、装置及存储介质 Download PDF

Info

Publication number
CN110348245A
CN110348245A CN201810283972.4A CN201810283972A CN110348245A CN 110348245 A CN110348245 A CN 110348245A CN 201810283972 A CN201810283972 A CN 201810283972A CN 110348245 A CN110348245 A CN 110348245A
Authority
CN
China
Prior art keywords
verification
memory space
backwash
nvm
state
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.)
Granted
Application number
CN201810283972.4A
Other languages
English (en)
Other versions
CN110348245B (zh
Inventor
古亮
李诗逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201810283972.4A priority Critical patent/CN110348245B/zh
Publication of CN110348245A publication Critical patent/CN110348245A/zh
Application granted granted Critical
Publication of CN110348245B publication Critical patent/CN110348245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开了一种基于NVM的数据完整性保护方法,该方法使用不同的NVM存储空间实现在同一时间能够执行不同的操作,当其中一块存储空间执行校验和存储操作时另一块存储空间则根据自身实际状态选择性处于执行校验和回刷操作的状态或等待接收待存储校验和的状态,有效避免了在同一存储空间中同时执行校验和回刷操作和存储校验和易产生的冲突和干扰现象,能够无等待的存储实时生成的校验和,消除了暂时保存在缓存中的校验和因断电而丢失的隐患。本申请还同时公开了一种基于NVM的数据完整性保护系统、装置及计算机可读存储介质,具有上述有益效果。

Description

基于NVM的数据完整性保护方法、系统、装置及存储介质
技术领域
本申请涉及数据完整性保护技术领域,特别涉及一种基于NVM的数据完整性保护方法、系统、装置及计算机可读存储介质。
背景技术
保持数据的完整性是现代存储系统中最重要的职责,为尽可能完善这一机制,不断有各式相关技术被开发和应用于增强或改进这一机制,其中目前常用的且较为成熟的方法为利用校验和来完成数据完整性的校验。
校验和是从由数据块导出的小块基准,用于检测该数据块是否在传输或存储期间引入或发生了错误,通常情况下不对数据的真实性做判别。利用校验和来完成数据完整性的校验原理为:利用校验和生成算法为写入的数据计算得到一个校验和,而该校验和还用于与在实际读取该数据时重新生成的另一校验和进行比对,仅当两者一致时才能说明数据通过了完整性校验。
通常情况下直接生成的校验和会存在缓存中,在满足一定条件下再下发至磁盘中进行持久化保存,但因为缓存为易失性随机访问存储器,在掉电、关机、重启等情况发生时都会造成数据丢失。因此出现了使用读写速度快且断电不易失的NVM(非易失性随机访问存储器)来保存校验和的方法,但其价格昂贵且存储空间远小于大容量的磁盘,且在NVM存储满后将存储的校验和回刷至本地磁盘进行持久化保存时会由于存在冲突无法同时存储新的校验和,若强行执行会使得不同数据之间产生干扰造成数据损坏等情况发生。
所以,如何克服现有使用NVM对校验和进行存储及回刷方法中存在的技术缺陷,提供一种能够避免发生冲突和数据干扰、无需等待且任意时间均可保存校验和的数据完整性保护机制是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种基于NVM的数据完整性保护方法,使用不同的NVM存储空间实现在同一时间能够执行不同的操作,当其中一块存储空间执行校验和存储操作时另一块存储空间则根据自身实际状态选择性处于执行校验和回刷操作的状态或等待接收待存储校验和的状态,有效避免了在同一存储空间中同时执行校验和回刷操作和存储校验和易产生的冲突和干扰现象,能够无等待的存储实时生成的校验和,消除了暂时保存在缓存中的校验和因断电而丢失的隐患。
本申请的另一目的在于提供了一种基于NVM的数据完整性保护系统、装置及计算机可读存储介质。
为实现上述目的,本申请提供一种基于NVM的数据完整性保护方法,该数据完整性保护方法包括:
利用校验和生成算法得到写入的数据的校验和;
将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间;
每当接收到执行完校验和回刷操作的完成信号,且当前用于保存所述校验和的另一存储空间的当前状态符合预设的所述校验和回刷操作的执行要求时,将所述校验和转而保存至已返回所述完成信号的存储空间,并对符合所述执行要求的另一存储空间执行所述校验和回刷操作。
可选的,在将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间之前,包括:
将所述NVM的总存储空间划分为第一存储空间和第二存储空间;其中所述第一存储空间与所述第二存储空间处于逻辑隔离状态。
可选的,将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间,包括:
实时获取所述第一存储空间和所述第二存储空间的状态信息;
根据所述状态信息确定当前未处于所述校验和回刷操作执行状态的存储空间;
当所述第一存储空间和所述第二存储空间均未处于所述校验和回刷操作执行状态时,按照预设的校验和保存优先级将所述校验和保存至所述第一存储空间;
当仅有所述第一存储空间处于所述校验和回刷操作执行状态时,将所述校验和转而保存至所述第二存储空间。
可选的,每当接收到执行完校验和回刷操作的完成信号时,包括:
当所述第一存储空间执行所述校验和回刷操作完毕时,通过预设信号反馈路径返回所述完成信号以供接收。
可选的,该数据完整性保护方法还包括:
为已返回所述完成信号的第一存储空间附加校验和待存储标记。
可选的,当当前用于保存所述校验和的另一存储空间的当前状态符合预设的所述校验和回刷操作的执行要求时,包括:
判断当前用于保存所述校验和的第二存储空间的实时空间占用率是否超过阈值;
若所述实时空间占用率超过所述阈值,则判定所述第二存储空间的当前状态符合预设的所述校验和回刷操作的执行要求。
可选的,在判定所述第二存储空间的当前状态符合预设的所述校验和回刷操作的执行要求之后,还包括:
为已判定符合所述执行要求的第二存储空间附加校验和回刷标记。
可选的,将所述校验和转而保存至已返回所述完成信号的存储空间,并对符合所述执行要求的另一存储空间执行所述校验和回刷操作,包括:
将所述校验和保存至附加有所述校验和待存储标记的第一存储空间;
同时对附加有所述校验和回刷标记的第二存储空间执行所述校验和回刷操作。
可选的,该数据完整性保护方法还包括:
将所述校验和缓存至内存进行备份保存。
为实现上述目的,本申请还提供了一种基于NVM的数据完整性保护系统,该数据完整性保护系统包括:
校验和生成单元,用于利用校验和生成算法得到写入的数据的校验和;
存储空间判定及校验和保存单元,用于将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间;
校验和轮换保存及回刷操作执行单元,用于每当接收到执行完校验和回刷操作的完成信号,且当前用于保存所述校验和的另一存储空间的当前状态符合预设的所述校验和回刷操作的执行要求时,将所述校验和转而保存至已返回所述完成信号的存储空间,并对符合所述执行要求的另一存储空间执行所述校验和回刷操作。
可选的,该数据完整性保护系统还包括:
存储空间划分单元,用于将所述NVM的总存储空间划分为第一存储空间和第二存储空间;其中所述第一存储空间与所述第二存储空间处于逻辑隔离状态。
可选的,所述存储空间判定及校验和保存单元包括:
状态信息获取子单元,用于实时获取所述第一存储空间和所述第二存储空间的状态信息;
状态确定子单元,用于根据所述状态信息确定当前未处于所述校验和回刷操作执行状态的存储空间;
优先级存储判定子单元,用于当所述第一存储空间和所述第二存储空间均未处于所述校验和回刷操作执行状态时,按照预设的校验和保存优先级将所述校验和保存至所述第一存储空间;
轮换存储判定子单元,用于当仅有所述第一存储空间处于所述校验和回刷操作执行状态时,将所述校验和转而保存至所述第二存储空间。
可选的,所述校验和轮换保存及回刷操作执行单元包括:
回刷完成信号反馈子单元,用于当所述第一存储空间执行所述校验和回刷操作完毕时,通过预设信号反馈路径返回所述完成信号以供接收;
空间占用率判断子单元,用于判断当前用于保存所述校验和的第二存储空间的实时空间占用率是否超过阈值;
满足判定子单元,用于当所述实时空间占用率超过所述阈值时,判定所述第二存储空间的当前状态符合预设的所述校验和回刷操作的执行要求。
可选的,所述校验和轮换保存及回刷操作执行单元还包括:
待存储标记附加子单元,用于为已返回所述完成信号的第一存储空间附加校验和待存储标记;
回刷标记附加子单元,用于为已判定符合所述执行要求的第二存储空间附加校验和回刷标记。
可选的,所述校验和轮换保存及回刷操作执行单元包括:
标记判定存储子单元,用于将所述校验和保存至附加有所述校验和待存储标记的第一存储空间;
标记判定回刷子单元,用于同时对附加有所述校验和回刷标记的第二存储空间执行所述校验和回刷操作。
可选的,该数据完整性保护系统还包括:
内存备份单元,用于将所述校验和缓存至内存进行备份保存。
为实现上述目的,本申请还提供了一种基于NVM的数据完整性保护装置,该数据完整性保护装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的数据完整性保护方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的数据完整性保护方法的步骤。
本申请所提供的一种基于NVM的数据完整性保护方法:利用校验和生成算法得到写入的数据的校验和;将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间;每当接收到执行完校验和回刷操作的完成信号,且当前用于保存所述校验和的另一存储空间的当前状态符合预设的所述校验和回刷操作的执行要求时,将所述校验和转而保存至已返回所述完成信号的存储空间,并对符合所述执行要求的另一存储空间执行所述校验和回刷操作。
显然,本申请所提供的技术方案,使用不同的NVM存储空间实现在同一时间能够执行不同的操作,当其中一块存储空间执行校验和存储操作时另一块存储空间则根据自身实际状态选择性处于执行校验和回刷操作的状态或等待接收待存储校验和的状态,有效避免了在同一存储空间中同时执行校验和回刷操作和存储校验和易产生的冲突和干扰现象,能够无等待的存储实时生成的校验和,消除了暂时保存在缓存中的校验和因断电而丢失的隐患。本申请同时还提供了一种基于NVM的数据完整性保护系统、装置及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种基于NVM的数据完整性保护方法的流程图;
图2为本申请实施例所提供的基于NVM的数据完整性保护方法中一种确定当前未处于校验和回刷操作执行状态的存储空间的流程图;
图3为本申请实施例所提供的基于NVM的数据完整性保护方法中一种校验和轮换保存及回刷操作执行的流程图;
图4为本申请实施例所提供的一种基于NVM的数据完整性保护系统的结构框图;
图5为本申请实施例所提供的一种基于NVM的校验和写入过程的逻辑示意图;
图6为本申请实施例所提供的一种基于NVM的校验和验证过程的逻辑示意图。
具体实施方式
本申请的核心是提供一种基于NVM的数据完整性保护方法、系统、装置及计算机可读存储介质,使用不同的NVM存储空间实现在同一时间能够执行不同的操作,当其中一块存储空间执行校验和存储操作时另一块存储空间则根据自身实际状态选择性处于执行校验和回刷操作的状态或等待接收待存储校验和的状态,有效避免了在同一存储空间中同时执行校验和回刷操作和存储校验和易产生的冲突和干扰现象,能够无等待的存储实时生成的校验和,消除了暂时保存在缓存中的校验和因断电而丢失的隐患。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合图1,图1为本申请实施例所提供的一种基于NVM的数据完整性保护方法的流程图。
其具体包括以下步骤:
S101:利用校验和生成算法得到写入的数据的校验和;
本步骤旨在对写入的数据利用校验和生成算法得到对应的校验和。从数据写入至产生校验和的过程通常基于校验和生成算法。根据其设计目标,良好的校验和生成算法能够在即使两数据差别很小的情况也能够输出显著不同的值,从而可用于检测许多数据损坏错误并验证整体数据完整性。进一步的,基于特殊的校验和生成算法得到的纠错码不仅可以检测常见错误,还可以在一定程度上修复错误数据。
校验和生成算法已经广泛使用,本领域技术人员能够轻易举出多个在不同实际场景、拥有不同侧重点和功能的具体校验和生成算法,本申请在仅是利用这一算法得到能够匹配写入的数据的校验和,因此并不对此处详细展开说明。
S102:将校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间;
在S101的基础上,本步骤旨在实现将生成的校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间。从本步骤描述中可以很明显说明,并不只存在一个单独的NVM存储空间,因为在只有一个单独的NVM存储空间的情况下,受到操作执行冲突的固有限制,无法同时执行校验和回刷操作和校验和存储操作。因此为实现本步骤能够将校验和保存在未处于校验和回刷操作执行状态的存储空间的目的,至少要存在两个相互之间处于逻辑隔离状态的NVM存储空间,这样就可以在其中一个NVM存储空间执行校验和回刷操作时还能够使用另一个NVM存储保存新生成的校验和。
当然,如何得到两个相互之间处于逻辑隔离状态的NVM存储空间的实现方式有很多,例如可以在使用一个NVM硬件的前提下,对其进行存储空间的分割划分,将其划分为两个互不干涉的、均能够单独执行相关操作的存储空间;更简单的,还可以直接使用两个NVM实体硬件,就相当于使用其中一个NVM实体硬件保存校验和,当存满了且需要执行校验和回刷操作时,就转而使用另一个NVM实体硬件保存校验和,此时两NVM实体硬件处于比逻辑隔离更高层次的物理隔离状态。
进一步的,还可以将多个NVM实体硬件的存储空间组合成总存储空间,再对该总存储空间进行分割划分,甚至可以划分出更多数量的、相互之间处于逻辑隔离状态的存储空间,而各存储空间的容量大小也可以根据实际情况进行灵活调整,例如,将最初用于保存校验和的NVM存储空间的容量大小设置的稍大于其它NVM存储空间,也可以直接采用等容量分割方式得到的等容量大小的NVM存储空间,此处并不做具体限定。
S103:每当接收到执行完校验和回刷操作的完成信号,且当前用于保存校验和的另一存储空间的当前状态符合预设的校验和回刷操作的执行要求时,将校验和转而保存至已返回完成信号的存储空间,并对符合执行要求的另一存储空间执行校验和回刷操作。
在S102的基础上,本步骤旨在阐述分别执行校验和回刷操作和校验和存储操作的不同NVM存储空间如何轮换交替的执行任务,因为不同的NVM存储空间在实际情况中一定会不断交替执行上述两种操作,一个NVM存储空间最先开始执行的一定是校验和存储操作,当该NVM存储空间中存储的校验和满足一定的要求时,就需要执行校验和回刷操作将自身存储的校验和回刷至本地磁盘中进行数据的持久化保存。
虽然NVM本身也能够实现数据的持久化保存,但NVM相较HHD(机械硬盘)/SSD(固态硬盘)而言,突出的特性为能够实现数据的高速读写,但不仅成本高昂而且存储容量原小于HHD或SSD,这些原因导致了不能够依靠NVM实现数据的持久化保存,因此最终还是需要将其存储的校验和回刷至本地磁盘中进行持久化保存。
执行不同操作的NVM存储空间的轮换时机应为其中一个NVM存储空间执行校验和回刷操作完毕、另一NVM存储空间的当前状态符合预设的校验和回刷操作的执行要求,即一个NVM存储空间执行完校验和回刷操作后自身为空,说明处于等待新校验和存储的状态,而另一个NVM存储空间则因自身存储的校验和已经到达一定程度需要执行校验和回刷操作,此时刚好需要在这个NVM存储空间执行校验和回刷操作期间将新生成的校验和保存至另一处于等待新校验和存储状态的NVM存储空间。
通常情况下完成校验和回刷操作所需的时间会小于从空存储校验和至需要执行校验回刷操作的时间,相应的,也就会出现在其中一个NVM存储空间在存储校验和时另一NVM存储空间已经完成校验和回刷操作并处于等待新校验和存储的状态。在此种情况下,轮换的时机为当前负责存储校验和的NVM存储空间的满足预设的校验和回刷操作的执行要求时。
当然,也不能排除在特殊情况下出现执行上述两种不同操作所耗费时间相等或时长相反的现象,在出现特殊情况下,可以借助区别于执行上述两个NVM存储空间的第三NVM存储空间消除时间差造成的不良影响,也可以通过其它手段进行一些适应性调整等等,此处并不做具体限定,本领域技术人员应可以根据上述各步骤的解释说明内容在无需付出创造性劳动的前提下得出适应性调整后的方案。
进一步的,如何判定是否符合预设的校验和回刷操作的执行要求可以灵活设定,例如,可以简单的为存储校验和的NVM存储空间设定数据存储上限、空间占用率阈值来判断是否需要执行校验和回刷操作,也可以在需要满足的其它特殊要求下影响下制定自己的执行要求满足规则,此处并不做具体限定。
至于如何判断出不同NVM存储空间的当前状态的方法也存在很多,例如在开始执行相应操作时附加相应的识别标志;通过特殊的信号反馈路径反馈相应信号等方法,此处也同样不做具体限定,只需要能够完成各NVM存储空间状态的判别即可。
更进一步的,为防止NVM硬件本身出现故障或错误,还可以在利用NVM存储/回刷校验和的同时,也借助内存进行备份保存,以防止在特殊情况下出现的数据丢失现象,但需要注意的是,利用内存进行备份保存的数据会在断电后全部丢失,因此需要在断电前判断是否有必要从内存中取出备份保存的数据。
基于上述技术方案,本申请实施例提供的一种基于NVM的数据完整性保护方法,使用不同的NVM存储空间实现在同一时间能够执行不同的操作,当其中一块存储空间执行校验和存储操作时另一块存储空间则根据自身实际状态选择性处于执行校验和回刷操作的状态或等待接收待存储校验和的状态,有效避免了在同一存储空间中同时执行校验和回刷操作和存储校验和易产生的冲突和干扰现象,能够无等待的存储实时生成的校验和,消除了暂时保存在缓存中的校验和因断电而丢失的隐患。
以下结合图2,图2为本申请实施例所提供的基于NVM的数据完整性保护方法中一种确定当前未处于校验和回刷操作执行状态的存储空间的流程图。
本步骤旨在针对实施例一提供一种具体的实现方式,具体包括以下步骤:
S201:利用校验和生成算法得到写入的数据的校验和;
S202:将NVM的总存储空间划分为第一存储空间和第二存储空间;其中第一存储空间与第二存储空间处于逻辑隔离状态;
本实施例采用了将NVM的总存储空间划分为第一存储空间和第二存储空间的方式解决单一NVM存储空间无法在同一时间内执行不同操作的缺陷。
S203:实时获取第一存储空间和第二存储空间的状态信息;
S204:根据状态信息确定当前未处于校验和回刷操作执行状态的存储空间;
通过获取各NVM存储的状态信息来判断其当前是否处于校验和回刷操作执行状态,并最终确定当前能够用于保存校验和的NVM存储空间。
S205:当第一存储空间和第二存储空间均未处于校验和回刷操作执行状态时,按照预设的校验和保存优先级将校验和保存至第一存储空间;
此处的校验和保存优先级是将第一存储空间设定为默认存储空间,因为在第一次使用NVM硬件保存校验和时,划分出的两个NVM存储空间应均为空,也就是说两个NVM存储空间均可以用于存储校验和,但只能选择一个进行保存,因此通过将其中一个NVM存储空间设定为默认存储空间解决了这个问题。当然,也可以基于诸如随机选择的规则解决校验和的首次保存问题。
S206:当仅有第一存储空间处于校验和回刷操作执行状态时,将校验和转而保存至第二存储空间。
根据上述内容的阐述,可以看出由于机制的设定,不会出现两个不同的NVM存储空间同时执行相同的校验和,最多会出现两个不同的NVM存储空间同时分别执行不同的操作,因此当其中一个NVM存储空间处于校验和回刷操作操作时,一定能够存在另一NVM存储空间用于保存新生成的校验和。
以下结合图3,图3为本申请实施例所提供的基于NVM的数据完整性保护方法中一种校验和轮换保存及回刷操作执行的流程图。
本步骤旨在针对实施例二提供另一种情境下如何进行校验和轮换保存及回刷操作执行的实现方式,该情景为第一存储空间正在执行该校验和回刷操作,同时第二存储空间用于存储新的校验和,具体包括以下步骤:
S301:当第一存储空间执行校验和回刷操作完毕时,通过预设信号反馈路径返回完成信号以供接收;
S302:为已返回完成信号的第一存储空间附加校验和待存储标记;
S303:判断当前用于保存校验和的第二存储空间的实时空间占用率是否超过阈值;
S304:判定第二存储空间的当前状态符合预设的校验和回刷操作的执行要求;
S305:为已判定符合执行要求的第二存储空间附加校验和回刷标记;
S306:将校验和保存至附加有校验和待存储标记的第一存储空间;
S307:同时对附加有校验和回刷标记的第二存储空间执行校验和回刷操作。
本实施例采用了附加不同状态标记的方式用于确定各NVM存储的实时状态,并基于空间占用率是否超过设定的阈值来判断是否需要执行校验和回刷操作,最终实现不同NVM存储空间轮换执行不同的操作,解决了在单一存储空间中无法同时执行两种不同操作的缺陷。
基于上述技术方案,本申请实施例提供的一种基于NVM的数据完整性保护方法,使用不同的NVM存储空间实现在同一时间能够执行不同的操作,当其中一块存储空间执行校验和存储操作时另一块存储空间则根据自身实际状态选择性处于执行校验和回刷操作的状态或等待接收待存储校验和的状态,有效避免了在同一存储空间中同时执行校验和回刷操作和存储校验和易产生的冲突和干扰现象,能够无等待的存储实时生成的校验和,消除了暂时保存在缓存中的校验和因断电而丢失的隐患。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图4,图4为本申请实施例所提供的一种基于NVM的数据完整性保护系统的结构框图。
该数据完整性保护系统可以包括:
校验和生成单元100,用于利用校验和生成算法得到写入的数据的校验和;
存储空间判定及校验和保存单元200,用于将校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间;
校验和轮换保存及回刷操作执行单元300,用于每当接收到执行完校验和回刷操作的完成信号,且当前用于保存校验和的另一存储空间的当前状态符合预设的校验和回刷操作的执行要求时,将校验和转而保存至已返回完成信号的存储空间,并对符合执行要求的另一存储空间执行校验和回刷操作。
进一步的,该数据完整性保护系统还可以包括:
存储空间划分单元,用于将NVM的总存储空间划分为第一存储空间和第二存储空间;其中第一存储空间与第二存储空间处于逻辑隔离状态。
其中,存储空间判定及校验和保存单元200包括:
状态信息获取子单元,用于实时获取第一存储空间和第二存储空间的状态信息;
状态确定子单元,用于根据状态信息确定当前未处于校验和回刷操作执行状态的存储空间;
优先级存储判定子单元,用于当第一存储空间和第二存储空间均未处于校验和回刷操作执行状态时,按照预设的校验和保存优先级将校验和保存至第一存储空间;
轮换存储判定子单元,用于当仅有第一存储空间处于校验和回刷操作执行状态时,将校验和转而保存至第二存储空间。
其中,校验和轮换保存及回刷操作执行单元300包括:
回刷完成信号反馈子单元,用于当第一存储空间执行校验和回刷操作完毕时,通过预设信号反馈路径返回完成信号以供接收;
空间占用率判断子单元,用于判断当前用于保存校验和的第二存储空间的实时空间占用率是否超过阈值;
满足判定子单元,用于当实时空间占用率超过阈值时,判定第二存储空间的当前状态符合预设的校验和回刷操作的执行要求。
进一步的,校验和轮换保存及回刷操作执行单元300还可以包括:
待存储标记附加子单元,用于为已返回完成信号的第一存储空间附加校验和待存储标记;
回刷标记附加子单元,用于为已判定符合执行要求的第二存储空间附加校验和回刷标记。
其中,校验和轮换保存及回刷操作执行单元300包括:
标记判定存储子单元,用于将校验和保存至附加有校验和待存储标记的第一存储空间;
标记判定回刷子单元,用于同时对附加有校验和回刷标记的第二存储空间执行校验和回刷操作。
更进一步的,该数据完整性保护系统还可以包括:
内存备份单元,用于将校验和缓存至内存进行备份保存。
以下为一个基于实际使用场景的例子:
在每次写入数据时,将校验和写入到NVM中,由于NVM具有远超本地磁盘的读写性能,因此校验和写入所带来的额外性能影响很小。但由于NVM非常昂贵,把校验和都存入NVM中实现持久化保存是不明智的。因此本实施例选取一小部分NVM的存储空间来做缓存,当缓存满了时再将缓存中保存的校验和回刷至本地磁盘。
由于校验和写入NVM与NVM回刷到本地磁盘会发生冲突,为了减少干扰,采用将NVM区域划分为两部分的方法,一部分写入,另一部分回刷,而且两部分之间会相互轮换。当一个部分满了就回刷,在回刷过程中将校验和写入另一部分,直到这部分被写满,通常情况下在这部分写满前之前执行回刷操作的部分区域已经可以再次用于校验和的写入,依此不断轮换。为了减少读取和写入、刷回的冲突,每个待刷回区域以及写入区域的校验和在被刷回过程中也可以同时会缓存在内存中,并保证在校验和刷回到本地磁盘前不会被内存淘汰,当然内存中也可以缓存其它在本地磁盘中的校验和。
以下请参见图5和图6对各步骤详细进行说明,图5为本申请实施例所提供的一种基于NVM的校验和写入过程的逻辑示意图;图6为本申请实施例所提供的一种基于NVM的校验和验证过程的逻辑示意图。
如图5所示,客户端/用户发下来的写请求,用需要写入的数据块d去生成校验和c,然后把校验和c写入到NVM的区域K中,同时会缓存在内存中,并为防止使用单一区域时易出现的校验和写入NVM与NVM回刷到本地磁盘相冲突现象,将区域K再次划分为两部分A和B,一部分写入,另一部分回刷,而且两部分之间会相互轮换执行的操作。假设刚开始A用来写入,此时B也没有校验和不用刷回。校验和一直写入直到A区域满了,这时候A就锁定写入,开始回刷,而这时校验和重定向写入到B区域,然后直到区域B被写满,而这时区域A中的校验和都被回刷至本地磁盘,所以可以用来重新写入校验和,而区域B中的校验和这时就被批量刷回,这样不断循环。同时校验和的批量回刷还可以有效的避免直接写入本地磁盘时出现的写放大现象。
由于校验和本身所占空间比较小(往往只有几个到20个字节),但直接写入本地磁盘时,就需要先把同一个页/扇区中的旧数据全部读出来,然后用校验和替换旧校验和(就是对应同一个数据块的那几个到20个字节的校验和),最后整页/扇区写入本地磁盘。SSD一个页通常为4KB或更大,而HHD的扇区是512字节,这样一个几个到20个字节的写入对SSD就会至少放大为一个4K读加一个4K写,对HHD就放大为一个512字节读加一个512字节写。因此,使用NVM的优点是:读写速度比普通磁盘快两个数量级以上,而且可以按需读写,因此不会造成读写放大。
如图6所示,用户执行读取d操作,系统会从对应的本地磁盘上读取数据并向上返回。在返回时,需要用数据块d去生成校验和c’,并去查找之前存储的校验和c,如果直接在内存中就直接返回。否则就去本地磁盘去查找对应的校验和。而因为校验和存储时保证NVM中的校验和一定缓存在内存中,所以在本步骤中不需要从NVM读取校验和,因为NVM中有的数据,内存中也一定都有,若内存中没有,NVM也一定没有。而对内存中没有的就直接从本地磁盘中读取即可。
基于上述实施例,本申请还提供了一种基于NVM的数据完整性保护装置,可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然该装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (18)

1.一种基于NVM的数据完整性保护方法,其特征在于,包括:
利用校验和生成算法得到写入的数据的校验和;
将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间;
每当接收到执行完校验和回刷操作的完成信号,且当前用于保存所述校验和的另一存储空间的当前状态符合预设的所述校验和回刷操作的执行要求时,将所述校验和转而保存至已返回所述完成信号的存储空间,并对符合所述执行要求的另一存储空间执行所述校验和回刷操作。
2.根据权利要求1所述的数据完整性保护方法,其特征在于,在将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间之前,包括:
将所述NVM的总存储空间划分为第一存储空间和第二存储空间;其中所述第一存储空间与所述第二存储空间处于逻辑隔离状态。
3.根据权利要求2所述的数据完整性保护方法,其特征在于,将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间,包括:
实时获取所述第一存储空间和所述第二存储空间的状态信息;
根据所述状态信息确定当前未处于所述校验和回刷操作执行状态的存储空间;
当所述第一存储空间和所述第二存储空间均未处于所述校验和回刷操作执行状态时,按照预设的校验和保存优先级将所述校验和保存至所述第一存储空间;
当仅有所述第一存储空间处于所述校验和回刷操作执行状态时,将所述校验和转而保存至所述第二存储空间。
4.根据权利要求2所述的数据完整性保护方法,其特征在于,每当接收到执行完校验和回刷操作的完成信号时,包括:
当所述第一存储空间执行所述校验和回刷操作完毕时,通过预设信号反馈路径返回所述完成信号以供接收。
5.根据权利要求2所述的数据完整性保护方法,其特征在于,还包括:
为已返回所述完成信号的第一存储空间附加校验和待存储标记。
6.根据权利要求5所述的数据完整性保护方法,其特征在于,当当前用于保存所述校验和的另一存储空间的当前状态符合预设的所述校验和回刷操作的执行要求时,包括:
判断当前用于保存所述校验和的第二存储空间的实时空间占用率是否超过阈值;
若所述实时空间占用率超过所述阈值,则判定所述第二存储空间的当前状态符合预设的所述校验和回刷操作的执行要求。
7.根据权利要求6所述的数据完整性保护方法,其特征在于,在判定所述第二存储空间的当前状态符合预设的所述校验和回刷操作的执行要求之后,还包括:
为已判定符合所述执行要求的第二存储空间附加校验和回刷标记。
8.根据权利要求7所述的数据完整性保护方法,其特征在于,将所述校验和转而保存至已返回所述完成信号的存储空间,并对符合所述执行要求的另一存储空间执行所述校验和回刷操作,包括:
将所述校验和保存至附加有所述校验和待存储标记的第一存储空间;
同时对附加有所述校验和回刷标记的第二存储空间执行所述校验和回刷操作。
9.根据权利要求1至8任一项所述的数据完整性保护方法,其特征在于,还包括:
将所述校验和缓存至内存进行备份保存。
10.一种基于NVM的数据完整性保护系统,其特征在于,包括:
校验和生成单元,用于利用校验和生成算法得到写入的数据的校验和;
存储空间判定及校验和保存单元,用于将所述校验和保存至NVM中未处于校验和回刷操作执行状态的存储空间;
校验和轮换保存及回刷操作执行单元,用于每当接收到执行完校验和回刷操作的完成信号,且当前用于保存所述校验和的另一存储空间的当前状态符合预设的所述校验和回刷操作的执行要求时,将所述校验和转而保存至已返回所述完成信号的存储空间,并对符合所述执行要求的另一存储空间执行所述校验和回刷操作。
11.根据权利要求10所述的数据完整性保护系统,其特征在于,还包括:
存储空间划分单元,用于将所述NVM的总存储空间划分为第一存储空间和第二存储空间;其中所述第一存储空间与所述第二存储空间处于逻辑隔离状态。
12.根据权利要求11所述的数据完整性保护系统,其特征在于,所述存储空间判定及校验和保存单元包括:
状态信息获取子单元,用于实时获取所述第一存储空间和所述第二存储空间的状态信息;
状态确定子单元,用于根据所述状态信息确定当前未处于所述校验和回刷操作执行状态的存储空间;
优先级存储判定子单元,用于当所述第一存储空间和所述第二存储空间均未处于所述校验和回刷操作执行状态时,按照预设的校验和保存优先级将所述校验和保存至所述第一存储空间;
轮换存储判定子单元,用于当仅有所述第一存储空间处于所述校验和回刷操作执行状态时,将所述校验和转而保存至所述第二存储空间。
13.根据权利要求11所述的数据完整性保护系统,其特征在于,所述校验和轮换保存及回刷操作执行单元包括:
回刷完成信号反馈子单元,用于当所述第一存储空间执行所述校验和回刷操作完毕时,通过预设信号反馈路径返回所述完成信号以供接收;
空间占用率判断子单元,用于判断当前用于保存所述校验和的第二存储空间的实时空间占用率是否超过阈值;
满足判定子单元,用于当所述实时空间占用率超过所述阈值时,判定所述第二存储空间的当前状态符合预设的所述校验和回刷操作的执行要求。
14.根据权利要求11所述的数据完整性保护系统,其特征在于,所述校验和轮换保存及回刷操作执行单元还包括:
待存储标记附加子单元,用于为已返回所述完成信号的第一存储空间附加校验和待存储标记;
回刷标记附加子单元,用于为已判定符合所述执行要求的第二存储空间附加校验和回刷标记。
15.根据权利要求14所述的数据完整性保护系统,其特征在于,所述校验和轮换保存及回刷操作执行单元包括:
标记判定存储子单元,用于将所述校验和保存至附加有所述校验和待存储标记的第一存储空间;
标记判定回刷子单元,用于同时对附加有所述校验和回刷标记的第二存储空间执行所述校验和回刷操作。
16.根据权利要求10至15任一项所述的数据完整性保护系统,其特征在于,还包括:
内存备份单元,用于将所述校验和缓存至内存进行备份保存。
17.一种基于NVM的数据完整性保护装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述的数据完整性保护方法的步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的数据完整性保护方法的步骤。
CN201810283972.4A 2018-04-02 2018-04-02 基于nvm的数据完整性保护方法、系统、装置及存储介质 Active CN110348245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810283972.4A CN110348245B (zh) 2018-04-02 2018-04-02 基于nvm的数据完整性保护方法、系统、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810283972.4A CN110348245B (zh) 2018-04-02 2018-04-02 基于nvm的数据完整性保护方法、系统、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110348245A true CN110348245A (zh) 2019-10-18
CN110348245B CN110348245B (zh) 2023-07-14

Family

ID=68172545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810283972.4A Active CN110348245B (zh) 2018-04-02 2018-04-02 基于nvm的数据完整性保护方法、系统、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110348245B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666046A (zh) * 2020-05-20 2020-09-15 西安奥卡云数据科技有限公司 一种数据存储方法、装置及设备
CN117234791A (zh) * 2023-11-09 2023-12-15 联和存储科技(江苏)有限公司 存储芯片的数据丢失检测方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831786A (zh) * 2005-12-14 2006-09-13 兆日科技(深圳)有限公司 闪速存储器数据完整性保护方法
CN102053802A (zh) * 2010-12-31 2011-05-11 中国科学院计算技术研究所 网络独立冗余磁盘阵列系统
US20120050812A1 (en) * 2010-08-30 2012-03-01 Seiko Epson Corporation Data storage processing apparatus in printing apparatus, printing apparatus, and data storage processing method
US20140201442A1 (en) * 2013-01-15 2014-07-17 Lsi Corporation Cache based storage controller
CN104571959A (zh) * 2014-12-31 2015-04-29 曙光信息产业股份有限公司 数据处理方法和装置
CN104932834A (zh) * 2014-03-21 2015-09-23 西部数据技术公司 使用终极手段区域进行数据存储设备的数据管理
CN105095112A (zh) * 2015-07-20 2015-11-25 华为技术有限公司 控制缓存刷盘方法、装置及非易失性计算机可读存储介质
CN106371764A (zh) * 2016-08-23 2017-02-01 浪潮(北京)电子信息产业有限公司 一种虚拟块设备数据处理的方法及装置
CN106527974A (zh) * 2016-10-09 2017-03-22 华为技术有限公司 一种写数据的方法、设备及系统
CN106681665A (zh) * 2016-12-29 2017-05-17 北京奇虎科技有限公司 缓存数据的持久化存储方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831786A (zh) * 2005-12-14 2006-09-13 兆日科技(深圳)有限公司 闪速存储器数据完整性保护方法
US20120050812A1 (en) * 2010-08-30 2012-03-01 Seiko Epson Corporation Data storage processing apparatus in printing apparatus, printing apparatus, and data storage processing method
CN102053802A (zh) * 2010-12-31 2011-05-11 中国科学院计算技术研究所 网络独立冗余磁盘阵列系统
US20140201442A1 (en) * 2013-01-15 2014-07-17 Lsi Corporation Cache based storage controller
CN104932834A (zh) * 2014-03-21 2015-09-23 西部数据技术公司 使用终极手段区域进行数据存储设备的数据管理
CN104571959A (zh) * 2014-12-31 2015-04-29 曙光信息产业股份有限公司 数据处理方法和装置
CN105095112A (zh) * 2015-07-20 2015-11-25 华为技术有限公司 控制缓存刷盘方法、装置及非易失性计算机可读存储介质
CN106371764A (zh) * 2016-08-23 2017-02-01 浪潮(北京)电子信息产业有限公司 一种虚拟块设备数据处理的方法及装置
CN106527974A (zh) * 2016-10-09 2017-03-22 华为技术有限公司 一种写数据的方法、设备及系统
CN106681665A (zh) * 2016-12-29 2017-05-17 北京奇虎科技有限公司 缓存数据的持久化存储方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666046A (zh) * 2020-05-20 2020-09-15 西安奥卡云数据科技有限公司 一种数据存储方法、装置及设备
CN111666046B (zh) * 2020-05-20 2023-07-25 西安奥卡云数据科技有限公司 一种数据存储方法、装置及设备
CN117234791A (zh) * 2023-11-09 2023-12-15 联和存储科技(江苏)有限公司 存储芯片的数据丢失检测方法及装置
CN117234791B (zh) * 2023-11-09 2024-01-26 联和存储科技(江苏)有限公司 存储芯片的数据丢失检测方法及装置

Also Published As

Publication number Publication date
CN110348245B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
CN106201338B (zh) 数据存储方法及装置
CN100559351C (zh) 远程复制系统以及远程复制控制方法
CN103871447B (zh) 与非门快闪存储器阵列及芯片及其存取、读取及管理方法
US20090037646A1 (en) Method of using a flash memory for a circular buffer
CN106168920B (zh) 控制包括只读闪速数据存储设备的独立磁盘冗余阵列
CN103034592B (zh) 数据处理方法和装置
CN109558457A (zh) 一种数据写入方法、装置、设备及存储介质
CN107731262A (zh) 一种存储磁盘坏块管理方法、装置、设备及可读存储介质
CN108255740A (zh) 一种flash均衡擦写方法及系统
CN110399247A (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
CN103544995B (zh) 一种坏道修复方法及装置
CN105302665A (zh) 一种改进的写时拷贝快照方法及系统
CN110348245A (zh) 基于nvm的数据完整性保护方法、系统、装置及存储介质
CN102609224B (zh) 一种独立冗余磁盘阵列系统及其初始化方法
CN106775481A (zh) 数据读取方法及设备
CN104407806B (zh) 独立磁盘冗余阵列组硬盘信息的修改方法和装置
CN105744200B (zh) 视频监控录像的存储方法及装置
CN115509466B (zh) 一种数据管理方法、装置及电子设备和存储介质
CN115309591B (zh) 一种全闪存储系统的恢复方法及相关装置
CN105404475B (zh) MCU片内小容量flash的存储管理系统及方法
CN116382582A (zh) 一种raid重映射方法、系统、设备以及存储介质
CN109271275A (zh) 一种固态硬盘中的坏块的标记方法、装置、设备及介质
CN106708445A (zh) 链路选择方法及装置
CN109614037A (zh) 数据巡检方法、装置和分布式存储系统
CN105095352A (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