一种数据块保护方法及装置的制造方法

文档序号:9432207阅读:303来源:国知局
一种数据块保护方法及装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,特别是涉及一种数据块保护方法及装置。
【背景技术】
[0002]目前,随着数据量的疯长,应用服务器与存储之间的距离也越来越远,在数据从应用服务器到达磁盘存储的过程中,总会有各种原因导致数据块损坏或数据改变,到达磁盘的数据块会出现损坏,这是实际存储在磁盘里的数据块是有损坏的,和以前写入时的数据块会不相同的,从而用户从磁盘读取的数据块和磁盘写入时的数据块就不一致了,会给用户带来损失。目前存储厂商越来越注重对数据的保护,以确保用户读取的数据和写入时是一致的,对数据安全性和一致性的要求越来越高,如何保护数据块的一致性是亟待解决的问题。

【发明内容】

[0003]本发明的目的是提供一种数据块保护方法及装置,以实现保证读出与写入的数据块的一致性。
[0004]为解决上述技术问题,本发明提供一种数据块保护方法,该方法包括:
[0005]当数据块写入缓存之前,利用校验算法对要写入的数据块进行校验,生成校验码;
[0006]将所述校验码插入所述数据块中,将所述数据块写入缓存;
[0007]当所述数据块从缓存移至磁盘时,对所述数据块进行校验码验证,验证成功之后,将所述数据块写入硬盘;
[0008]当需要读取所述数据块时,对所述数据块进行校验码验证,若验证成功,删除所述数据块中的校验码,读出删除校验码的数据块;若验证失败,修改所述数据块,使修改后的数据块与写入时的数据块相同,读出修改后的数据块。
[0009]优选的,所述校验算法包括奇偶校验算法或者哈希算法。
[0010]优选的,所述将所述校验码插入所述数据块中,包括:
[0011]将8位字节的校验码添加到512字节的数据块中。
[0012]优选的,所述当所述数据块从缓存移至磁盘时,对所述数据进行校验码验证,验证成功之后,将所述数据块写入硬盘,包括:
[0013]当所述数据块从缓存移至磁盘时,对所述数据块的校验码进行验证,验证所述数据块中是否含有校验码;若是,将所述数据块写入硬盘。
[0014]优选的,当需要读取所述数据块时,对所述数据块进行校验码验证,若验证成功,删除所述数据块中的校验码,读出删除校验码的数据块;若验证失败,修改所述数据块,使修改后的数据块与写入时的数据块相同,读出修改后的数据块,包括:
[0015]当需要读取所述数据块时,对所述数据块的校验码进行验证,验证所述数据块中是否含有验证码;若是,删除所述数据块中的校验码;若否,对所述数据块进行修改,使修改后的数据块与写入时的数据块相同,读出修改后的数据块。
[0016]本发明还提供一种数据块保护装置,该装置包括:
[0017]校验模块,用于当数据块写入缓存之前,利用校验算法对要写入的数据块进行校验,生成校验码;
[0018]插入模块,用于将所述校验码插入所述数据块中,将所述数据块写入缓存;
[0019]第一验证模块,用于当所述数据块从缓存移至磁盘时,对所述数据块进行校验码验证,验证成功之后,将所述数据块写入硬盘;
[0020]第二验证模块,用于当需要读取所述数据块时,对所述数据块进行校验码验证,若验证成功,删除所述数据块中的校验码,读出删除校验码的数据块;若验证失败,修改所述数据块,使修改后的数据块与写入时的数据块相同,读出修改后的数据块。
[0021]优选的,所述校验算法包括奇偶校验算法或者哈希算法。
[0022]优选的,所述插入模块包括:
[0023]添加单元,用于将8位字节的校验码添加到512字节的数据块中,插入过程结束后;
[0024]缓存写入单元,用于将所述数据块写入缓存。
[0025]优选的,所述第一验证模块包括:
[0026]第一验证单元,用于当所述数据块从缓存移至磁盘时,对所述数据块的校验码进行验证,验证所述数据块中是否含有校验码;
[0027]硬盘写入单元,用于若所述数据块中含有校验码,将所述数据块写入硬盘。
[0028]优选的,第二验证模块包括:
[0029]第二验证单元,用于当需要读取所述数据块时,对所述数据块的校验码进行验证,验证所述数据块中是否含有验证码;
[0030]删除单元,用于若所述数据块中含有验证码,删除所述数据块中的校验码;
[0031]修改单元,用于若所述数据块中不含有验证码,对所述数据块进行修改,使修改后的数据块与写入时的数据块相同,读出修改后的数据块。
[0032]本发明所提供的一种数据块保护方法及装置,当数据块写入缓存之前,利用校验算法对要写入的数据块进行校验,生成校验码;将所述校验码插入所述数据块中,将所述数据块写入缓存;当所述数据块从缓存移至磁盘时,对所述数据进行校验码验证,验证成功之后,将所述数据块写入硬盘;当需要读取所述数据块时,对所述数据块进行校验码验证,若验证成功,删除所述数据块中的校验码,读出删除校验码的数据块;若验证失败,修改所述数据块,使修改后的数据块与写入时的数据块相同,读出修改后的数据块。可见,利用校验算法对数据块进行校验并生成校验码,同时将校验码插入到数据块中一同存储,当读取数据块时,再完成校验码成功校验后删除校验码,若验证失败,表明数据块发生损坏,修改数据块,使修改后的数据块与写入时的数据块相同,以保证读取与写入数据块的完整性及一致性,这样会对写入或即将读出的数据块的每一步都进性校验码的验证,以确保读出与写入的数据完全一致,进而对数据块进行保护。
【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0034]图1为本发明所提供的一种数据块保护方法的流程图;
[0035]图2为本发明所提供的一种数据块保护装置的结构示意图。
【具体实施方式】
[0036]本发明的核心是提供一种数据块保护方法及装置,以实现保证读出与写入的数据的一致性。
[0037]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]请参考图1,图1为本发明所提供的一种数据块保护方法的流程图,该方法包括:
[0039]Sll:当数据块写入缓存之前,利用校验算法对要写入的数据块进行校验,生成校验码;
[0040]其中,校验算法包括奇偶校验算法或者哈希算法。写入数据时,对写入数据的每个数据块进行校验,生成对应的校验码。
[0041]S12:将校验码插入数据块中,将数据块写入缓存;
[0042]其中,将8位字节的校验码添加到512字节的数据块中。具体的,若写入的数据是A1、A2及A3这三个数据块构成的,验证码为CC,那么在数据块Al后面加上验证码CC,在在数据块A2后面加上验证码CC,在数据块A3后面加上验证码CC,再将添加验证码后的每个数据整合,那么添加验证码后的数据中每个数据块后面都有一个验证码CC,即在每个数据块中加入相应的校验码。
[0043]当然,可以利用哈希算法对数据块进行校验生成校验码,并将校验码插入到数据块中,从而利用校验码进行数据保护从而保证数据完整性。
[0044]S13:当数据块从缓存移至磁盘时,对数据块进行校验码验证,验证成功之后,将数据块写入硬盘;
[0045]其中,当数据块从缓存移至磁盘时,对数据块的校验码进行验证,验证数据块中是否含有校验码;若是,将数据块写入硬盘。
[0046]其中,若数据块中不含有校验码,即验证失败后,返回步骤Sll重新进行。
[0047]S14:当需要读取数据块时,对数据块进行校验码验证,若验证成功,删除数据块中的校验码,读出删除校验码的数据块;若验证失败,修改数据块,使修改后的数据块与写入时的数据块相同,读出修改后的数据块。
[0048]其中,当需要读取数据块时,对数据块的校验码进行验证,验证数据块中是否含有验证码;若是,删除数据块中的校验码;若否,对数据块进行修改,使修改后的数据块与写入时的数据块相同,读出修改后的数据块。
[0049]具体的,利用哈希算法对写入存储系统的数据进行校验,并将校验码连同数据块一起写入磁盘,从而对数据进行保护。当用户需要读取数据块时,对校验码进行验证成功后,删除校验码,读出正确数据块,若验证失败,表明数据块发生损坏,修改数据块,使修改后的数据块与写入时的数据块相同,这样保证读取与写入数据块的完整性及一致性,
[0050]在数据块中加入验证码,能够保证数据块无误,当数据写入存储系统缓存时,利用存储器NVram通过哈希算法对数据块进行校验,并将8位校验码加入到数据块的行列中,然后进行存盘,当需要读取数据时,对校验码就行验证,并删除校验码以正常数据读出。该方法不仅会验证读/写操作,还能够保证数据传输路径多个校验点处的数据完整性。
[0051]利用校验码进行数据块保护的方法主要包含以下三个过程:加入校验码、验证校验码及验证并删除
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1