一种分布式存储系统的数据一致性校验方法、装置及设备

文档序号:1860763 发布日期:2021-11-19 浏览:3次 >En<

阅读说明:本技术 一种分布式存储系统的数据一致性校验方法、装置及设备 (Data consistency verification method, device and equipment of distributed storage system ) 是由 孙润宇 李彦博 孟祥瑞 于 2021-07-09 设计创作,主要内容包括:本申请公开了一种分布式存储系统的数据一致性校验方法,该方法通过设置一致性校验的配置信息,能够确定每次一致性校验的开始时间和结束时间,实现一致性校验过程的全自动化,而且,在达到本次一致性校验的结束时间时,即便没有校验完存储池的全部对象也可以停止本次一致性校验,并记录一致性校验的进度信息,下一次一致性校验时可以根据进度信息从本次校验位置继续进行一致性校验,显著提升了一致性校验过程的灵活性。此外,本申请还提供了一种分布式存储系统的数据一致性校验装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。(The method can determine the starting time and the ending time of each consistency check by setting the configuration information of the consistency check, realizes the full automation of the consistency check process, and can stop the consistency check even if all objects in a storage pool are not checked when the ending time of the consistency check is reached, and record the progress information of the consistency check, and can continue the consistency check from the check position according to the progress information during the next consistency check, thereby obviously improving the flexibility of the consistency check process. In addition, the application also provides a data consistency checking device, equipment and a readable storage medium of the distributed storage system, and the technical effect of the device corresponds to that of the method.)

一种分布式存储系统的数据一致性校验方法、装置及设备

技术领域

本申请涉及计算机技术领域,特别涉及一种分布式存储系统的数据一致性校验方法、装置、设备及可读存储介质。

背景技术

在分布式存储系统中,存储的数据按照固定大小切割,这一块固定大小的数据称为一个对象,PG(Placement Group,放置组)是多个对象的集合,是一个逻辑上的概念,PG和对象之间通过一致性哈希算法对应起来,一个PG对应多个对象。而每个PG与OSD(Object-based Storage Device,对象存储设备)的对应是通过数据分布算法对应起来的,一个PG对应多个OSD,OSD可以简单理解为物理上的磁盘,一个OSD上可以有多个PG。

在存储集群中,由于硬件故障或软件缺陷可能会造成存储集群内的数据出现不一致的问题,为了检测识别这种不一致,一个普遍的做法是对存储集群内的对象进行数据一致性校验。就目前来看,数据一致性校验会耗费一定的系统资源且一旦开始就必须全部校验完成才能结束,无法暂停和继续,这使得数据一致性校验功能受到了很大的制约。

综上,目前的数据一致性校验方案无法暂停,灵活性较差,如何克服上述缺陷是亟待本领域技术人员解决的问题。

发明内容

本申请的目的是提供一种分布式存储系统的数据一致性校验方法、装置、设备及可读存储介质,用以解决目前的数据一致性校验方案无法暂停,灵活性较差的问题。其具体方案如下:

第一方面,本申请提供了一种分布式存储系统的数据一致性校验方法,包括:

读取一致性校验的配置信息,根据所述配置信息确定下一次一致性校验的开始时间和结束时间;

在达到所述开始时间时,读取一致性校验的进度信息,根据所述进度信息对目标存储池的对象进行一致性校验;

在达到所述结束时间时,停止一致性校验,并更新所述进度信息。

可选的,在所述读取一致性校验的进度信息,根据所述进度信息对目标存储池的对象进行一致性校验之前,还包括:

根据所述配置信息中的存储池标识信息,确定待进行一致性校验的目标存储池。

可选的,所述在达到所述开始时间时,读取一致性校验的进度信息,根据所述进度信息对目标存储池的对象进行一致性校验,包括:

在达到所述开始时间时,读取一致性校验的进度信息,唤醒所述目标存储池的一致性校验线程,调用所述一致性校验线程根据所述进度信息对所述目标存储池的对象进行一致性校验;

相应的,所述在达到所述结束时间时,停止一致性校验,并更新所述进度信息,包括:

在达到所述结束时间时,停止一致性校验,休眠所述一致性校验线程,并更新所述进度信息。

可选的,所述在达到所述结束时间时,停止一致性校验,并更新所述进度信息,包括:

在达到所述结束时间时,等待当前正在进行一致性校验的目标对象完成一致性校验,停止一致性校验,并更新所述进度信息。

可选的,所述更新所述进度信息,包括:

根据所述目标对象更新所述进度信息,其中所述进度信息包括最后一个完成一致性校验的对象的标识信息。

可选的,在所述根据所述配置信息确定下一次一致性校验的开始时间和结束时间之后,还包括:

根据所述开始时间设置并启动开始定时器,通过所述开始定时器监测是否达到所述开始时间;

相应的,在达到所述开始时间时,还包括:

根据所述结束时间设置并启动结束定时器,通过所述结束定时器监测是否达到所述结束时间。

可选的,在根据所述进度信息对目标存储池的对象进行一致性校验的过程中,还包括:

若所述目标存储池的全部对象均完成一致性校验,则重置所述进度信息,并根据重置后的进度信息重新对所述目标存储池的对象进行一致性校验。

第二方面,本申请提供了一种分布式存储系统的数据一致性校验装置,包括:

时间确定模块,用于读取一致性校验的配置信息,根据所述配置信息确定下一次一致性校验的开始时间和结束时间;

校验模块,用于在达到所述开始时间时,读取一致性校验的进度信息,根据所述进度信息对目标存储池的对象进行一致性校验;

进度更新模块,用于在达到所述结束时间时,停止一致性校验,并更新所述进度信息。

第三方面,本申请提供了一种分布式存储系统的数据一致性校验设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序,以实现如上所述的分布式存储系统的数据一致性校验方法。

第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的分布式存储系统的数据一致性校验方法。

本申请所提供的一种分布式存储系统的数据一致性校验方法,包括:读取一致性校验的配置信息,根据配置信息确定下一次一致性校验的开始时间和结束时间;在达到开始时间时,读取一致性校验的进度信息,根据进度信息对目标存储池的对象进行一致性校验;在达到结束时间时,停止一致性校验,并更新进度信息。可见,该方法通过设置一致性校验的配置信息,能够确定每次一致性校验的开始时间和结束时间,实现一致性校验过程的全自动化,而且,在达到本次一致性校验的结束时间时,即便没有校验完存储池的全部对象也可以停止本次一致性校验,并记录一致性校验的进度信息,因此下一次一致性校验时根据进度信息可以从本次校验位置继续进行一致性校验,显著提升了一致性校验过程的灵活性。可在深夜系统资源较充足时或例行维护时进行一致性校验,减少数据一致性校验对存储系统性能的影响,保证系统可靠性,提高产品竞争力。

此外,本申请还提供了一种分布式存储系统的数据一致性校验装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。

附图说明

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

图1为本申请所提供的分布式存储系统的数据一致性校验方法实施例一的流程图;

图2为本申请所提供的分布式存储系统的数据一致性校验方法实施例二的流程图;

图3为本申请所提供的分布式存储系统的数据一致性校验装置实施例的功能框图;

图4为本申请所提供的分布式存储系统的数据一致性校验设备实施例的结构示意图。

具体实施方式

本申请的核心是提供一种分布式存储系统的数据一致性校验方法、装置、设备及可读存储介质,实现了一致性校验过程的全自动化,且允许中间暂停并记录一致性校验的进度信息,下一次一致性校验时根据进度信息可以从本次校验位置继续进行一致性校验,显著提升了一致性校验过程的灵活性。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面对本申请提供的分布式存储系统的数据一致性校验方法实施例一进行介绍,参见图1,实施例一包括:

S11、读取一致性校验的配置信息,根据配置信息确定下一次一致性校验的开始时间和结束时间;

S12、在达到开始时间时,读取一致性校验的进度信息,根据进度信息对目标存储池的对象进行一致性校验;

S13、在达到结束时间时,停止一致性校验,并更新进度信息。

具体的,预先对存储池的一致性校验过程进行配置,配置内容包括但不限于一致性校验的时间段,包括上述开始时间和结束时间。例如,可自定义设置每天、每周或每月的某个时间段进行数据一致性校验,并在该时间段结束后自动暂停,在下一个时间段从上次结束位置继续进行一致性校验,提高数据一致性校验的灵活性。实际应用中,可以分别配置多个存储池的一致性校验时间段,为方便描述,下文以单个存储池的一致性校验过程为例进行说明。

为方便后续一致性校验过程能够从之前一致性校验过程的结束位置继续进行一致性校验,本实施例在每次一致性校验结束后,都会记录/更新整个存储池的一致性校验过程的进度信息。具体的,实际在执行一致性校验操作的时候,校验的目标是存储池中的对象,会根据某种顺序依次对存储池中的各个对象进行一致性校验,如在对象ID为顺序编号的情况下,可以按照对象ID从小到大的顺序对存储池中的各个对象依次进行一致性校验,此时,在每次一致性校验结束后可以记录已完成一致性校验的对象的ID,或者最后一个完成一致性校验的对象的ID,以作为进度信息。

具体的一致性校验流程如下:通过一致性哈希算法,确定目标对象所属的PG;该PG的主OSD向所有备OSD发出请求,请求锁定目标对象相同版本的校验信息,如果OSD间版本不相同,则会先同步至相同;主OSD收到版本相同的确认信息后,会要求所有OSD计算目标对象的校验信息,校验信息包括对象的元信息,如大小、扩展属性的所有键、历史版本信息等;主OSD接收这些校验信息,通过比较这些校验信息判断目标对象是否数据一致,如果不一致,则上报给集群监控者Monitor,由它进行告警的上报来通知用户。

值得一提的是,在达到结束时间时,可能正在对某个对象进行一致性校验,这种情况下,可以稍作等待,等待该对象完成一致性校验再停止本次的一致性校验流程。

本实施例所提供一种分布式存储系统的数据一致性校验方法,通过设置一致性校验的配置信息,能够确定每次一致性校验的开始时间和结束时间,实现一致性校验过程的全自动化,而且,在达到本次一致性校验的结束时间时,即便没有校验完存储池的全部对象也可以停止本次一致性校验,并记录一致性校验的进度信息,因此下一次一致性校验时根据进度信息可以从本次校验位置继续进行一致性校验,显著提升了一致性校验过程的灵活性。可在深夜系统资源较充足时或例行维护时进行一致性校验,减少数据一致性校验对存储系统性能的影响,保证系统可靠性,提高产品竞争力。

下面开始详细介绍本申请提供的分布式存储系统的数据一致性校验方法实施例二,参见图2,实施例二具体包括:

S21、读取一致性校验的配置信息,根据配置信息中的存储池标识信息,确定待进行一致性校验的目标存储池,并确定目标存储池下一次一致性校验的开始时间和结束时间;

S22、根据开始时间设置并启动开始定时器,通过开始定时器监测是否达到开始时间;

S23、在达到开始时间时,读取一致性校验的进度信息,唤醒目标存储池的一致性校验线程,调用一致性校验线程根据进度信息对目标存储池的对象进行一致性校验;

S24、在达到开始时间时,根据结束时间设置并启动结束定时器,通过结束定时器监测是否达到结束时间;

S25、在一致性校验过程中,若目标存储池的全部对象均完成一致性校验,则重置进度信息,并根据重置后的进度信息重新对目标存储池的对象进行一致性校验;

S26、在达到结束时间时,等待当前正在进行一致性校验的目标对象完成一致性校验,停止一致性校验,休眠一致性校验线程;

S27、根据目标对象更新进度信息,回到S21,其中进度信息包括最后一个完成一致性校验的对象的标识信息。

基于上述实施例二,下面以实际应用为例,对本申请的一致性校验流程进行介绍,流程如下:

(1)自定义存储池的一致性校验时间段,如选择每天,或每周的哪几天,或每月的哪几天,24小时制的开始时间和结束时间,存储池标识。

如果数据库中已有该存储池的时间段信息则清除,如果该存储池在本次自定义时间段之前进行过数据一致性校验,则提示用户是否需要重新开始,是则清除已保存的一致性校验相关信息。

(2)读取一致性校验时间段和存储池标识并进行保存,计算存储池本次一致性校验的开始时间和结束时间,并开启开始定时器,创建该存储池的数据一致性校验线程。

若当前时间已在一致性校验时间段内,则立即对存储池进行数据一致性校验,否则到开始时间时再进行数据一致性校验。

(3)开始定时器检测到当前时间达到本次一致性校验的开始时间时,则唤醒存储池的数据一致性校验线程,并开启结束定时器,开始进行数据一致性校验,如果检测出数据不一致则上报提示,且继续进行校验。

(4)结束定时器检测到当前时间到达本次一致性校验的结束时间时,首先等待当前正在进行一致性校验的对象完成校验,记录下该对象的标识信息,以便下次从该对象开始继续校验。

(5)读取当前设置的一致性校验时间段,计算出存储池下一次一致性校验的开始时间和结束时间,再次开启开始定时器,并休眠该存储池的数据一致性校验线程。

之后重复之前的过程,开始定时器检测到当前时间达到下一次一致性校验的开始时间时,首先获取上次结束时的对象标识信息,以该对象为起点继续进行校验。当该存储池内所有对象均校验完成后,则根据一致性校验时间段重新开始校验。

值得一提的是,在上次一致性校验结束且下次一致性校验开始的时间间隔内,如果发生删除存储池操作,则提示并清除存储池的一致性校验时间段设置、数据一致性校验结束时保存的进度信息、相关定时器以及数据一致性校验线程。

下面对本申请实施例提供的分布式存储系统的数据一致性校验装置进行介绍,下文描述的分布式存储系统的数据一致性校验装置与上文描述的分布式存储系统的数据一致性校验方法可相互对应参照。

如图3所示,本实施例的分布式存储系统的数据一致性校验装置,包括:

时间确定模块31,用于读取一致性校验的配置信息,根据所述配置信息确定下一次一致性校验的开始时间和结束时间;

校验模块32,用于在达到所述开始时间时,读取一致性校验的进度信息,根据所述进度信息对目标存储池的对象进行一致性校验;

进度更新模块33,用于在达到所述结束时间时,停止一致性校验,并更新所述进度信息。

本实施例的分布式存储系统的数据一致性校验装置用于实现前述的分布式存储系统的数据一致性校验方法,因此该装置的具体实施方式可见前文中的分布式存储系统的数据一致性校验方法的实施例部分,例如,时间确定模块31,校验模块32,进度更新模块33,分别用于实现上述分布式存储系统的数据一致性校验方法中步骤S11,S12,S13。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。

另外,由于本实施例的分布式存储系统的数据一致性校验装置用于实现前述的分布式存储系统的数据一致性校验方法,因此其作用与上述方法的作用相对应,这里不再赘述。

此外,本申请还提供了一种分布式存储系统的数据一致性校验设备,如图4所示,包括:

存储器100:用于存储计算机程序;

处理器200:用于执行所述计算机程序,以实现如上文所述的分布式存储系统的数据一致性校验方法。

最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的分布式存储系统的数据一致性校验方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:存储系统的带宽资源分配方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类