首页> 中国专利> 一种存储系统数据的一致性保障方法、系统及缓存装置

一种存储系统数据的一致性保障方法、系统及缓存装置

摘要

本发明公开了一种存储系统数据的一致性保障方法、一致性保障系统及缓存装置,包括:在缓存中设置回滚段和数据校验段;接收第一目标数据刷写指令,并将第一目标数据写入回滚段中,计算第一目标数据的第一校验值并存入数据校验段;将第一目标数据刷写入磁盘,计算刷写入磁盘的第一目标数据的第二校验值;若第一校验值与第二校验值不一致,则将回滚段中存储的第一目标数据重新刷写入磁盘;可见,通过在缓存中设置回滚段和数据校验段,能在数据写入磁盘后,通过校验数据检测是否存在数据不一致现象,若存在,则通过回写段内的数据的原值直接回滚,重建速度快,避免在写入过程中由于写操作错误引起数据不一致的问题,提高了数据存储的安全性。

著录项

  • 公开/公告号CN106325773A

    专利类型发明专利

  • 公开/公告日2017-01-11

    原文格式PDF

  • 申请/专利权人 浪潮(北京)电子信息产业有限公司;

    申请/专利号CN201610709272.8

  • 发明设计人 葛冬玲;

    申请日2016-08-23

  • 分类号G06F3/06(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人罗满

  • 地址 100085 北京市海淀区上地信息路2号2-1号C栋1层

  • 入库时间 2023-06-19 01:18:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-28

    授权

    授权

  • 2017-02-08

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20160823

    实质审查的生效

  • 2017-01-11

    公开

    公开

说明书

技术领域

本发明涉及服务器存储领域,更具体地说,涉及一种存储系统数据的一致性保障方法、系统及缓存装置。

背景技术

目前存储数据读写安全和可靠是存储系统优劣的重要指标,在关键业务应用中,数据不一致会给数据安全带来极大的威胁,给客户造成严重的损失,业务数据读写时无法实时读取和校对,也增加了关键业务数据错误的风险。

因此,如何保证存储系统数据一致性是本领域技术人员需要决绝的问题。

发明内容

本发明的目的在于提供一种存储系统数据的一致性保障方法、系统及缓存装置,以保证存储系统数据的一致性。

为实现上述目的,本发明实施例提供了如下技术方案:

一种存储系统数据的一致性保障方法,包括:

在缓存中设置回滚段和数据校验段;

接收第一目标数据刷写指令,并将所述第一目标数据写入所述回滚段中,计算所述第一目标数据的第一校验值并存入所述数据校验段;

将所述第一目标数据刷写入磁盘,计算刷写入磁盘的第一目标数据的第二校验值;

若所述第一校验值与所述第二校验值不一致,则将所述回滚段中存储的第一目标数据重新刷写入磁盘。

其中,若所述第一校验值与所述第二校验值不一致,则将所述回滚段中存储的目标数据重新刷写入磁盘,包括:

若所述第一校验值与所述第二校验值不一致,则根据预设工具及所述回滚段中存储的目标数据,检测所述写入磁盘的第一目标数据被修改的数据块;

根据所述回滚段中存储的第一目标数据重建所述被修改的数据块,并以重建后的数据块代替被修改的数据块。

其中,若所述第一校验值与所述第二校验值一致,则清空所述回滚段中存储的所述第一目标数据、所述第一校验值和所述第二校验值。

其中,在缓存中设置回滚段之后,还包括:

接收第二目标数据修改指令;

将要被修改的所述第二目标数据写入所述回写段;

若检测到所述第二目标数据修改指令执行失败,则将所述回写段中存储的所述第二目标数据刷写入磁盘原位置。

其中,所述接收第二目标数据修改指令之后,还包括:

计算所述第二目标数据的第三校验值并存入所述数据校验段;

若检测到所述第二目标数据修改指令执行失败之后,且检测到所述回写段中存储的所述第二目标数据存在部分丢失现象,则根据所述第二目标数据未丢失部分和所述第三校验值恢复第二目标数据,并将恢复的第二目标数据刷写入磁盘原位置。

其中,若检测到所述第二目标数据修改指令执行成功,则清空所述回滚段中存储的所述第二目标数据和所述第三校验值。

一种存储系统数据的一致性保障系统,包括:

设置模块,用于在缓存中设置回滚段和数据校验段;

第一写入模块,用于接收第一目标数据刷写指令,并将所述第一目标数据写入所述回滚段中;

第一计算模块,用于计算所述第一目标数据的第一校验值并存入所述数据校验段;

数据刷写模块,用于将所述第一目标数据刷写入磁盘;

第二计算模块,用于计算刷写入磁盘的第一目标数据的第二校验值;

判断模块,用于判断所述第一校验值与所述第二校验值不一致时,触发所述数据刷写模块将所述回滚段中存储的第一目标数据重新刷写入磁盘。

其中,还包括:

接收模块,用于接收第二目标数据修改指令;

第二写入模块,用于将要被修改的所述第二目标数据写入所述回写段;

第一检测模块,用于检测到所述第二目标数据修改指令执行失败时,触发所述数据刷写模块将所述回写段中存储的所述第二目标数据刷写入磁盘原位置。

其中,还包括:

第三计算模块,用于计算所述第二目标数据的第三校验值并存入所述数据校验段;

第二检测模块,用于检测所述第二目标数据修改指令是否执行失败,

第三检测模块,用于检测所述回写段中存储的所述第二目标数据是否存在部分丢失现象;

恢复模块,用于在所述第二检测模块检测到所述第二目标数据修改指令执行失败,且所述第三检测模块检测到所述第二目标数据存在部分丢失现象,则根据所述第二目标数据未丢失部分和所述第三校验值恢复第二目标数据,并触发所述数据刷写模块将恢复的第二目标数据刷写入磁盘原位置。

一种缓存装置,包括:回滚段和数据校验段;

所述回滚段用于保存将要刷写入磁盘的第一目标数据;

所述数据校验段,用于保存所述第一目标数据的第一校验值;

其中,当检测到刷写入磁盘的第一目标数据的第二校验值与所述第一校验值不一致,则将所述回滚段中存储的第一目标数据重新刷写入磁盘。

通过以上方案可知,本发明实施例提供的一种存储系统数据的一致性保障方法,包括:在缓存中设置回滚段和数据校验段;接收第一目标数据刷写指令,并将所述第一目标数据写入所述回滚段中,计算所述第一目标数据的第一校验值并存入所述数据校验段;将所述第一目标数据刷写入磁盘,计算刷写入磁盘的第一目标数据的第二校验值;若所述第一校验值与所述第二校验值不一致,则将所述回滚段中存储的第一目标数据重新刷写入磁盘;可见,在本实施例中,通过在缓存中设置回滚段和数据校验段,能在数据写入磁盘后,通过校验数据检测是否存在数据不一致现象,若存在,则通过回写段内的数据的原值直接回滚,重建速度快,避免在写入过程中由于写操作错误引起数据不一致的问题,提高了数据存储的安全性;本发明还公开了一种存储系统数据的一致性保障系统及缓存装置,同样能实现上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种存储系统数据的一致性保障方法流程示意图;

图2为本发明实施例公开的数据重建方法示意图;

图3为本发明实施例公开的一种存储系统数据的一致性保障系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种存储系统数据的一致性保障方法、系统及缓存装置,以保证存储系统数据的一致性。

参见图1,本发明实施例提供的一种存储系统数据的一致性保障方法,包括:

S101、在缓存中设置回滚段和数据校验段;

具体的,在本方案中,首先在缓存中设置一部分固定空间作为回滚段,段中保存未刷写到磁盘的数据或最近刷写的数据中所修改的数据原值,段中信息还要生成一个保证数据一致性的数据校验信息,能通过数据校验信息来确定数据是否发生了一致性错误。若发生数据不一致时,使用回滚段中的信息重建此数据块,并以重建后的数据块代替被修改的数据块供数据读取。

S102、接收第一目标数据刷写指令,并将所述第一目标数据写入所述回滚段中,计算所述第一目标数据的第一校验值并存入所述数据校验段;

具体的,本实施例中计算校验值的方法,可使用哈希算法或MD5等均可,并不做具体规定;由于生成校验值时会占用系统资源并对系统整体性能有所影响,所以需要选择资源占用小、对性能影响更小的算法来实现,具体可以根据实际情况而定。

S103、将所述第一目标数据刷写入磁盘,计算刷写入磁盘的第一目标数据的第二校验值;

S104、若所述第一校验值与所述第二校验值不一致,则将所述回滚段中存储的第一目标数据重新刷写入磁盘。

其中,若所述第一校验值与所述第二校验值不一致,则将所述回滚段中存储的目标数据重新刷写入磁盘,包括:

若所述第一校验值与所述第二校验值不一致,则根据预设工具及所述回滚段中存储的目标数据,检测所述写入磁盘的第一目标数据被修改的数据块;

根据所述回滚段中存储的第一目标数据重建所述被修改的数据块,并以重建后的数据块代替被修改的数据块。

其中,若所述第一校验值与所述第二校验值一致,则清空所述回滚段中存储的所述第一目标数据、所述第一校验值和所述第二校验值。

基于上述技术方案,在本实施例中,在缓存中设置回滚段之后,还包括:

S11、接收第二目标数据修改指令;

其中,所述接收第二目标数据修改指令之后,还包括:

计算所述第二目标数据的第三校验值并存入所述数据校验段;

若检测到所述第二目标数据修改指令执行失败之后,且检测到所述回写段中存储的所述第二目标数据存在部分丢失现象,则根据所述第二目标数据未丢失部分和所述第三校验值恢复第二目标数据,并将恢复的第二目标数据刷写入磁盘原位置。

具体的,在本实施例中在回滚时直接使用回滚段中的原值可重新写入磁盘,使得正确的数据再次落盘,不需要使用校验信息来恢复数据;但是如果回滚段中缓存的数据部分丢失,可以使用校验信息和部分原值将全部原值恢复并重新写入。

S12、将要被修改的所述第二目标数据写入所述回写段;

S13、若检测到所述第二目标数据修改指令执行失败,则将所述回写段中存储的所述第二目标数据刷写入磁盘原位置。

其中,若检测到所述第二目标数据修改指令执行成功,则清空所述回滚段中存储的所述第二目标数据和所述第三校验值。

具体的,参见图2,若发生数据不一致时,使用回滚段中的信息重建此数据块,并以重建后的数据块代替被修改的数据块供数据读取。

具体的,由于本方案中的回滚段和数据校验段设置在缓存中,该方式适合带有BBU的存储系统,保障缓存数据安全;由于牺牲了一小部分缓存作为提高可靠性的代价,势必对存储性能有部分影响,所以本发明可以使用在与关键数据业务应用中,并在存储系统中可设置是否开启该功能的开关,由客户根据业务类型来进行选择,即可以设置成仅在关键业务中的关键时刻有选择的使用,既保证了关键业务的安全又不影响日常的普通业务的性能。

具体的,在本实施例提供的这种基于存储系统软件实现数据一致性的方法,在存储进行读写时通过固定一点缓存空间作为回滚段和校验信息段的方式,当读写时通过校验信息段能立即检测到数据不一致的现象,并及时重建和恢复数据,为数据存储安全提供了可靠的保障,降低了硬件成本,又提高了系统的可靠性和安全性。

下面对本发明实施例提供的一致性保障系统进行介绍,下文描述的一致性保障系统与上文描述的一致性保障方法可以相互参照。

参见图3,本发明实施例提供的一种存储系统数据的一致性保障系统,包括:

设置模块100,用于在缓存中设置回滚段和数据校验段;

第一写入模块200,用于接收第一目标数据刷写指令,并将所述第一目标数据写入所述回滚段中;

第一计算模块300,用于计算所述第一目标数据的第一校验值并存入所述数据校验段;

数据刷写模块400,用于将所述第一目标数据刷写入磁盘;

第二计算模块500,用于计算刷写入磁盘的第一目标数据的第二校验值;

判断模块600,用于判断所述第一校验值与所述第二校验值不一致时,触发所述数据刷写模块将所述回滚段中存储的第一目标数据重新刷写入磁盘。

基于上述技术方案,还包括:

接收模块,用于接收第二目标数据修改指令;

第二写入模块,用于将要被修改的所述第二目标数据写入所述回写段;

第一检测模块,用于检测到所述第二目标数据修改指令执行失败时,触发所述数据刷写模块将所述回写段中存储的所述第二目标数据刷写入磁盘原位置。

基于上述技术方案,还包括:

第三计算模块,用于计算所述第二目标数据的第三校验值并存入所述数据校验段;

第二检测模块,用于检测所述第二目标数据修改指令是否执行失败,

第三检测模块,用于检测所述回写段中存储的所述第二目标数据是否存在部分丢失现象;

恢复模块,用于在所述第二检测模块检测到所述第二目标数据修改指令执行失败,且所述第三检测模块检测到所述第二目标数据存在部分丢失现象,则根据所述第二目标数据未丢失部分和所述第三校验值恢复第二目标数据,并触发所述数据刷写模块将恢复的第二目标数据刷写入磁盘原位置。

在本实施例中还公开了一种缓存装置,包括:回滚段和数据校验段;

所述回滚段用于保存将要刷写入磁盘的第一目标数据;

所述数据校验段,用于保存所述第一目标数据的第一校验值;

其中,当检测到刷写入磁盘的第一目标数据的第二校验值与所述第一校验值不一致,则将所述回滚段中存储的第一目标数据重新刷写入磁盘。

综上可见,本发明提供的保障存储数据一致性的实现方式,具有以下优点:保障数据读写时的一致性,防止存储系统数据读写错误;检测速度快,当数据不一致时能立即检测;发生数据不一致时,数据通过回滚段内的数据原值直接回滚,重建数据库速度快;包含BBU的存储系统能时刻保障缓存数据的安全,回滚段和数据校验段信息不易丢失;直接通过软件实现,减少了硬件投入成本。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号