CN118244975A - 分布式存储数据的可靠性保障方法、装置、设备及介质 - Google Patents
分布式存储数据的可靠性保障方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN118244975A CN118244975A CN202311721588.5A CN202311721588A CN118244975A CN 118244975 A CN118244975 A CN 118244975A CN 202311721588 A CN202311721588 A CN 202311721588A CN 118244975 A CN118244975 A CN 118244975A
- Authority
- CN
- China
- Prior art keywords
- data block
- protection group
- reliability
- data
- checking
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000001514 detection method Methods 0.000 claims abstract description 40
- 230000008859 change Effects 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008439 repair process Effects 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 125000006239 protecting group Chemical group 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000035899 viability Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式存储数据的可靠性保障方法,所述可靠性保障方法包括:将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务同步至组中的预设个数的数据块;若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。通过上述方式,本申请基于数据块可靠性保护组的事务模块进行数据块可靠性保护组的的可靠性决策以及成员变更,无需依赖外部组件,实现了数据块的自我管理。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种分布式存储数据的可靠性保障方法、装置、设备及介质。
背景技术
分布式存储的数据可靠性保障是指通过集群应用、网络技术或者分布式计算等功能,利用网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同提高数据可靠性的一个***。
在分布式***中,数据的可靠性尤其重要,当数据出现损坏情况、或者数据所处的存储设备与外界断连,会导致此数据的可靠性降低。目前,为了提高分布式存储***的数据可靠性,需要对数据的可靠性进行检测,具体包含如下三种检测方式:
1、采用定期从存储***读取数据并计算数据摘要值与此数据最初存储时生成的摘要值进行比较,来保障数据的无损性。
2、定期对数据发送心跳包,由此来确认数据的存活性。
3、对未存活的数据采取迁移行为。
然而,目前的检测方法需要通过外部组件进行可靠性检测,造成了对外部组件的依赖性。
发明内容
本申请提供了一种分布式存储数据的可靠性保障方法、装置、设备及介质,旨在解决目前的数据可靠性检测需要依赖外部组件的技术问题。
第一方面,本申请提供了一种分布式存储数据的可靠性保障方法,所述分布式存储数据的可靠性保障方法包括:
将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
进一步地,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
基于所述事务模块以及所述信息表,检测各保护组中的各个数据块成员本地是否具有成员初始化信息;
对没有成员初始化信息的数据块成员进行初始化;
将具有成员初始化信息的保护组的标识加入检查队列;
从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更。
进一步地,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,还包括:
将所述保护组标识对应的保护组中的各个数据块成员加入本地数据MD5检查队列,并在下一次Check模块运行时,检查所述MD5检查队列中的各数据块成员的运行状态,并将所述各个数据块成员的运行状态写入状态地图StatMap。
当数据块的检查结果显示MD5值与初始化不一致时,将数据损坏信息提交到Restore模块的修复队列。
进一步地,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,包括:
检查所述保护组标识对应的保护组中各数据块成员是否发生更新;
若发生更新,则在所述保护组标识对应的保护组中各数据块成员进行数据更新。
进一步地,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
基于所述事务模块,判断所述数据块可靠性保护组中的各个数据块成员是否确定领导数据块Leader;
在确定所述Leader时,组成员通过租约的形式检查所述Leader处于的节点是否健康;
若所述Leader的租约失效,则判定所述Leader处于的节点处于非健康状态,基于所述事务模块发起选举,以重新选举Leader;
若所述Leader处于的节点健康,基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更。
进一步地,所述基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更,包括:
若基于所述Leader检测到成员处于不可连接状态,则记录不可连接的持续时间;或
基于所述L l eader检测到成员处于数据修复状态,则记录数据修复的持续时间;或
基于所述l eader检测到成员处于过载载体上面,则记录处于过载载体的持续时间;
在所述持续时间超过预设时间后,去掉不可连接状态的成员,根据成员变更信息形成事务日志,并向所有其他成员发送所述事务日志。
进一步地,所述将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块之后,还包括:
若所述待校验保护组同步失败或一致性校验失败,则删除所述待校验保护组,并重新组建数据块可靠性保护组。
第二方面,本申请还提供了一种分布式存储数据的可靠性保障装置,所述可靠性保障装置包括:
保护组组成模块,用于将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
信息表同步模块,用于将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
保护组校验模块,用于若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
可靠性检测模块,用于基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的分布式存储数据的可靠性保障方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的分布式存储数据的可靠性保障方法。
本申请公开了一种分布式存储数据的可靠性保障方法、装置、设备及介质,所述可靠性保障方法包括:将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。通过上述方式,本申请基于数据块可靠性保护组的事务模块进行数据块可靠性保护组的的可靠性决策以及成员变更,无需依赖外部组件,实现了数据块的自我管理。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的第一实施例提供的一种分布式存储数据的可靠性保障方法的示意流程图;
图2是本申请实施例提供的***装置示意图;
图3是本申请的实施例提供的一种分布式存储数据的可靠性保障装置的示意性框图;
图4为本申请的实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请的第一实施例提供的一种分布式存储数据的可靠性保障方法的示意流程图。
如图1所示,该分布式存储数据的可靠性保障方法具体包括步骤S10至步骤S40。
步骤S10、将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
步骤S20、将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
步骤S30、若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
步骤S40、基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
进一步地,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
基于所述事务模块以及所述信息表,检测各保护组中的各个数据块成员本地是否具有成员初始化信息;
对没有成员初始化信息的数据块成员进行初始化;
将具有成员初始化信息的保护组的标识加入检查队列;
从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更。
进一步地,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,还包括:
将所述保护组标识对应的保护组中的各个数据块成员加入本地数据MD5检查队列,并在下一次Check模块运行时,检查所述MD5检查队列中的各数据块成员的运行状态,并将所述各个数据块成员的运行状态写入状态地图StatMap。
当数据块的检查结果显示MD5值与初始化不一致时,将数据损坏信息提交到Restore模块的修复队列。
进一步地,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,包括:
检查所述保护组标识对应的保护组中各数据块成员是否发生更新;
若发生更新,则在所述保护组标识对应的保护组中各数据块成员进行数据更新。
进一步地,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
基于所述事务模块,判断所述数据块可靠性保护组中的各个数据块成员是否确定领导数据块Leader;
在确定所述Leader时,组成员通过租约的形式检查所述Leader处于的节点是否健康;
若所述Leader的租约失效,则判定所述Leader处于的节点处于非健康状态,基于所述事务模块发起选举,以重新选举Leader;
若所述Leader处于的节点健康,基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更。
进一步地,所述基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更,包括:
若基于所述Leader检测到成员处于不可连接状态,则记录不可连接的持续时间;或
基于所述L l eader检测到成员处于数据修复状态,则记录数据修复的持续时间;或
基于所述l eader检测到成员处于过载载体上面,则记录处于过载载体的持续时间;
在所述持续时间超过预设时间后,去掉不可连接状态的成员,根据成员变更信息形成事务日志,并向所有其他成员发送所述事务日志。
进一步地,所述将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块之后,还包括:
若所述待校验保护组同步失败或一致性校验失败,则删除所述待校验保护组,并重新组建数据块可靠性保护组。
本实施例提供的可靠性检测方法,可用于保证分布式存储数据的数据在网络出现分区时,也能够保证数据的高可靠性。
首先,数据在初始化的时候,选择具有相关性的数据块形成数据块可靠性保护组。将数据块可靠性保护组的组员信息以事务的形式,提交给所有数据块可靠性保护组的每个成员。
相关性的数据块可以由一个中控节点进行选择即初始化。中控节点选择数据块形成数据块可靠性保护组的策略为:选择具有副本关系,具有计算冗余的数据块关系形成数据块可靠性保护组。
数据可靠性组的组员信息描述为下:
{可靠性组摘要信息:描述数据块的冗余关系描述等;
数据块可靠性保护组的组员信息:
{节点D1:{数据块ID,数据块MD5值,版本号};
节点D2:{数据块ID,数据块MD5值,版本号};
……
节点D7:{数据块ID,数据块MD5值,版本号};
};
};
中控节点选择形成数据块保护性组以后,将数据保护性组以串行方式或者并行方式推送给每个数据保护性成员。当数据可靠性组推送完成组员的半数以上以后,成员信息就算推送成功。
其次,初始化过程中,数据块可靠性保护组的事务由中控节点以及保护性组的事务模块保证。
1、中控节点保证数据块保护性组成员不相交,且同一个数据保护性组的组员信息在推送时,以幂等的形式保证推送到数据块可靠性保护组的多数派成员。
2、数据块可靠性保护组的每个成员在收到数据可靠性组的组员信息时,启动其事务模块的运行,运用事务模块来保证最终所有成员都能够拥有数据可靠性组的组员信息。或者,在X时间后,会与中控节点达成一致:这个可靠性组是否需要保留,或者需要删除:当可靠性组能够通过事务模块将可靠性组数据保障可靠性,即保留此可靠性组。当可靠性组无法通过事务模块保障事务可靠性,与中控节点达成一致,重新组建可靠性组,并删除本次具有失败行为的可靠性组。
最后,每个数据块可靠性保护组的成员多数派都收到成员数据可靠性组的组员信息后,且完成一致性校验后,数据块可靠性保护组形成。之后在***中,一个数据块可靠性保护组就负责利用事务模块来保障其包含成员的数据可靠性。
进一步地,数据块可靠性保护组的事务模块进行可靠性检查的过程如下:
每个数据块可靠性保护组的成员,在收到成员数据可靠性组的组员信息后,检查本地是否有这个可靠性成员的数据,如果没有,接受初始化信息。如果有,拒绝初始化信息。
如果成员初始化成功,将成员组ID加入Check队列。
Check模块从Check队列中读取成员组ID,开始执行如下可靠性检查以及处理:
检查成员数据可靠性组的组员信息是否存在;若不存在,将在X时间后,删除本地此成员。
将成员加入本地数据MD5检查队列,并在下一次Check模块运行时,检查MD5检查队列此数据成员的运行状态。Check模块仅仅负责触发检查,以及根据检查结果将数据投递到另外的处理模块。并将检查的状态写入StatMap,StatMap中包含本地Check模块获取的自检状态:数据是否损坏、是否正在修复、是否是慢盘等信息。较佳地,StatMap中,还应该包含该可靠性成员的访问流量信息,更多的,还应该包含该可靠性成员的物理设备的整个流量信息。
MD5检查队列的一条数据内容描述如下:
{成员ID;
成员本地存储地址;
成员初始化时记录的MD5值;
检查运行状态;
}
检查运行状态具体包含如下信息:
{开始时间;
持续时间;
预估结束时间;
当前速度(使用10分钟的值计算);
}
当数据检查结果显示MD5值与初始化不一致,Check模块会将数据损坏信息提交到Restore模块的队列;
当数据结果显示修复时间超过预估结束时间,提示可能当前数据占用的硬盘可能是慢盘,提交Superv i sory contro l模块,由该模块搜集日志决策是否是慢盘。
当修复持续时间超过***定义的规格,Check模块会提示MD5检查模块停止检查。
Check模块检查数据可靠性组,是否已经通过事务模块产生一个组Leader,如果已经产生Leader,通过租约的形式检查Leader是否健康。如果Leader租约失效,即Leader处于的节点处于非健康状态,可靠性组将会利用事务模块发起选举。
Check模块如果检查到当前成员是该成员组的Leader,行使Leader职权:检查该成员组中所有成员的可靠性状态。
进一步地,Leader进行检查的过程如下:
检查成员组所有成员是否健康,并且,带外的携带续租约的时间:
本地获取所有成员组的组员;
向所有组员发送是否健康的状态,并携带续租约信息;
组员收到Leader的信息后,更新Leader续的租约,并到本地Check模块的StatMap中取获取本地自检的状态:数据是否损坏、是否正在修复、是否是慢盘、是否是容量超载、性能超载节点等信息,回复给Leader;
成员组Leader获取成员组成员的状态信息后,将根据成员状态进行决策和处理:
若是成员处于不可连接状态,记录不可连接的持续时间,超过规格定义的时间后,Leader将会选择新的成员加入成员组,去掉此不可连接状态的成员,形成事务日志,向成员组所有成员进行提交。
若是该成员处理数据修复状态,Leader将会判定数据修复时间是否超过规格定义时间,如果超过规格定义的时间后,Leader将会选择新的成员加入成员组,去掉此不可连接状态的成员,形成事务日志,向成员组所有成员进行提交。较佳地,规格定义时间应该更换为Superv i sory contro l模块根据Restore模块的日志形成的总体统计时间形成的预估完成时间。
若是该成员处于容量超载、或者性能超载的状态,Leader将会选择新的成员加入成员组,去掉此不可连接状态的成员,形成事务日志,向成员组所有成员进行提交。由此更换成员。
如上所有的步骤,提交变更事务日志,均会触发成员的更换。
Leader将会对每次检查的结论提交处理结论事务日志。
Restore模块根据事务日志,决策本地要修复的数据。
当Leader发生切换时,会通过同步可靠性组的事务日志,继续之前Leader的检查及保障工作。
进程重新启动时,均会启动本地已经看到的事务日志的回放,并会向自己看到的每个事务性可靠性组的最新的Leader询问事务日志的变化状态并学习,每次学习到的事务日志,继续发起追踪,直到找到最新的Leader记录的事务组成员,学习到最新的事务日志,由此决策自己是否需要再次参与此数据块事务组的数据可靠性保障。
通过上述方式,本申请与传统的数据可靠性保障方法相比,增加了具有事务特性的自管理数据块可靠性保障方法、***和电子设备。数据块可靠性保护组通过事务模块选择Leader,并由Leader通过事务模块获取、判定数据可靠性组的检测状态,根据可靠性组的检测状态,决策可靠性组成员的变更,并通过事务模块提交变更记录、以及检测状态记录,由此,成员组可以实现自我管理的高可靠***。
根据本申请的方法,可以不依赖于外部组件实现数据块可靠性保护组的高可靠保障,而依赖于本***的事务日志模块来实现数据的高可靠性保障。
本***可以用于需要数据可靠性保障的场景,例如分布式存储***可靠性场景。也可以用于分布式中,各种任务执行状态的管理。
本申请旨在提出一种具有事务特征的分布式存储数据可靠性保护方法,用于在不依赖外部组件的情况下,提供自我管理的更加可靠的数据检测与修复方式。本申请利用分布式事务,来提交数据检测的结果到事务日志,由此来监督数据变更的有效性,并利用分布式事务来保障数据修复的一致性。由此提高数据块组可靠性的保障。
进一步地,如图2所示,***装置A-D是有事务特性的自管理数据块可靠性保障的装置。其中,虚线内的***装置A-C是一个数据块可靠性保护组,当数据块可靠性保护组组内利用事务进行自管理时,若***装置C不可用。本申请中的数据块可靠性保护组组内利用事务以及自管理功能,自动选择***装置D加入***参与数据可靠性保障工作。
本实施例提供一种分布式存储数据的可靠性保障方法、装置、设备及介质,所述可靠性保障方法包括:将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;将存储所述待校验保护组中的各个数据块成员信息的信息表,同步至组中的预设个数的数据块;若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。通过上述方式,本申请基于数据块可靠性保护组的事务模块进行数据块可靠性保护组的的可靠性决策以及成员变更,无需依赖外部组件,实现了数据块的自我管理。
请参阅图3,图3是本申请的实施例提供一种分布式存储数据的可靠性保障装置,所述可靠性保障装置包括:
保护组组成模块10,用于将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
信息表同步模块20,用于将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
保护组校验模块30,用于若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
可靠性检测模块40,用于基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
进一步地,所述可靠性检测模块还用于:
基于所述事务模块,判断所述数据块可靠性保护组中的各个数据块成员是否确定领导数据块Leader;
在确定所述Leader时,组成员通过租约的形式检查所述Leader处于的节点是否健康;
若所述Leader的租约失效,则判定所述Leader处于的节点处于非健康状态,基于所述事务模块发起选举,以重新选举Leader;
若所述Leader处于的节点健康,基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更。
进一步地,所述可靠性检测模块还用于:
若基于所述Leader检测到成员处于不可连接状态,则记录不可连接的持续时间;或
基于所述L l eader检测到成员处于数据修复状态,则记录数据修复的持续时间;或
基于所述l eader检测到成员处于过载载体上面,则记录处于过载载体的持续时间;
在所述持续时间超过预设时间后,去掉不可连接状态的成员,根据成员变更信息形成事务日志,并向所有其他成员发送所述事务日志。
进一步地,所述可靠性检测模块还用于:
基于所述事务模块以及所述信息表,检测各保护组中的各个数据块成员本地是否具有成员初始化信息;
对没有成员初始化信息的数据块成员进行初始化;
将具有成员初始化信息的保护组的标识加入检查队列;
从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更。
进一步地,所述可靠性检测模块还用于:
将所述保护组标识对应的保护组中的各个数据块成员加入本地数据MD5检查队列,在下一次Check模块运行时,检查所述MD5检查队列中的各数据块成员的运行状态,并将所述各个数据块成员的运行状态写入状态地图StatMap。
当数据块的检查结果显示MD5值与初始化不一致时,将数据损坏信息提交到Restore模块的修复队列。
进一步地,所述保护组检查单元还用于:
检查所述保护组标识对应的保护组中各数据块成员是否发生更新;
若发生更新,则在所述保护组标识对应的保护组中各数据块成员进行数据更新。
进一步地,所述可靠性保障装置还包括:
保护组重建模块,用于若所述待校验保护组同步失败或一致性校验失败,则删除所述待校验保护组,并重新组建数据块可靠性保护组。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图4所示的计算机设备上运行。
请参阅图4,图4是本申请的实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器。
参阅图4,该计算机设备包括通过***总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作***和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种分布式存储数据的可靠性保障方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种分布式存储数据的可靠性保障方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
进一步地,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
基于所述事务模块以及所述信息表,检测各保护组中的各个数据块成员本地是否具有成员初始化信息;
对没有成员初始化信息的数据块成员进行初始化;
将具有成员初始化信息的保护组的标识加入检查队列;
从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更。
进一步地,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
将所述保护组标识对应的保护组中的各个数据块成员加入本地数据MD5检查队列,并在下一次Check模块运行时,检查所述MD5检查队列中的各数据块成员的运行状态,并将所述各个数据块成员的运行状态写入状态地图StatMap。
当数据块的检查结果显示MD5值与初始化不一致时,将数据损坏信息提交到Restore模块的修复队列。
进一步地,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
检查所述保护组标识对应的保护组中各数据块成员是否发生更新;
若发生更新,则在所述保护组标识对应的保护组中各数据块成员进行数据更新。
进一步地,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
基于所述事务模块,判断所述数据块可靠性保护组中的各个数据块成员是否确定领导数据块Leader;
在确定所述Leader时,组成员通过租约的形式检查所述Leader处于的节点是否健康;
若所述Leader的租约失效,则判定所述Leader处于的节点处于非健康状态,基于所述事务模块发起选举,以重新选举Leader;
若所述Leader处于的节点健康,基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更。
进一步地,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
若基于所述Leader检测到成员处于不可连接状态,则记录不可连接的持续时间;或
基于所述L l eader检测到成员处于数据修复状态,则记录数据修复的持续时间;或
基于所述l eader检测到成员处于过载载体上面,则记录处于过载载体的持续时间;
在所述持续时间超过预设时间后,去掉不可连接状态的成员,根据成员变更信息形成事务日志,并向所有其他成员发送所述事务日志。
进一步地,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
若所述待校验保护组同步失败或一致性校验失败,则删除所述待校验保护组,并重新组建数据块可靠性保护组。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项分布式存储数据的可靠性保障方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(Smart Medi a Card,SMC),安全数字(Secure D i g ita l,SD)卡,闪存卡(F l ash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种分布式存储数据的可靠性保障方法,其特征在于,所述分布式存储数据的可靠性保障方法包括:
将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
2.根据权利要求1所述的可靠性保障方法,其特征在于,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
基于所述事务模块以及所述信息表,检测各保护组中的各个数据块成员本地是否具有成员初始化信息;
对没有成员初始化信息的数据块成员进行初始化;
将具有成员初始化信息的保护组的标识加入检查队列;
从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更。
3.根据权利要求2所述的可靠性保障方法,其特征在于,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,还包括:
将所述保护组标识对应的保护组中的各个数据块成员加入本地数据MD5检查队列,在下一次Check模块运行时,检查所述MD5检查队列中的各数据块成员的运行状态,并将所述各个数据块成员的运行状态写入状态地图StatMap。
当数据块的检查结果显示MD5值与初始化不一致时,将数据损坏信息提交到Restore模块的修复队列。
4.根据权利要求2所述的可靠性保障方法,其特征在于,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,包括:
检查所述保护组标识对应的保护组中各数据块成员是否发生更新;
若发生更新,则在所述保护组标识对应的保护组中各数据块成员进行数据更新。
5.根据权利要求1所述的可靠性保障方法,其特征在于,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
基于所述事务模块,判断所述数据块可靠性保护组中的各个数据块成员是否确定领导数据块Leader;
在确定所述Leader时,组成员通过租约的形式检查所述Leader处于的节点是否健康;
若所述Leader的租约失效,则判定所述Leader处于的节点处于非健康状态,基于所述事务模块发起选举,以重新选举Leader;
若所述Leader处于的节点健康,基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更。
6.根据权利要求5所述的可靠性保障方法,其特征在于,所述基于所述Leader,从各个数据块成员的本地检查模块中的状态地图StatMap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更,包括:
若基于所述Leader检测到成员处于不可连接状态,则记录不可连接的持续时间;或
基于所述Lleader检测到成员处于数据修复状态,则记录数据修复的持续时间;或
基于所述leader检测到成员处于过载载体上面,则记录处于过载载体的持续时间;
在所述持续时间超过预设时间后,去掉不可连接状态的成员,根据成员变更信息形成事务日志,并向所有其他成员发送所述事务日志。
7.根据权利要求1-6中任一项所述的可靠性保障方法,其特征在于,所述将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块之后,还包括:
若所述待校验保护组同步失败或一致性校验失败,则删除所述待校验保护组,并重新组建数据块可靠性保护组。
8.一种分布式存储数据的可靠性保障装置,其特征在于,所述可靠性保障装置包括:
保护组组成模块,用于将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
信息表同步模块,用于将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
保护组校验模块,用于若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
可靠性检测模块,用于基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7中任一项所述的分布式存储数据的可靠性保障方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的分布式存储数据的可靠性保障方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311721588.5A CN118244975A (zh) | 2023-12-14 | 2023-12-14 | 分布式存储数据的可靠性保障方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311721588.5A CN118244975A (zh) | 2023-12-14 | 2023-12-14 | 分布式存储数据的可靠性保障方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118244975A true CN118244975A (zh) | 2024-06-25 |
Family
ID=91556294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311721588.5A Pending CN118244975A (zh) | 2023-12-14 | 2023-12-14 | 分布式存储数据的可靠性保障方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118244975A (zh) |
-
2023
- 2023-12-14 CN CN202311721588.5A patent/CN118244975A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108932249B (zh) | 一种管理文件***的方法及装置 | |
CN113163011A (zh) | 区块链中修改数据的方法、***、设备及存储介质 | |
CN112579327A (zh) | 一种故障检测方法、装置及设备 | |
CN111625400B (zh) | 一种数据冗余处理方法、装置及存储介质 | |
CN117391099B (zh) | 智能卡的数据下载及校验方法及其***、存储介质 | |
CN113312205B (zh) | 数据校验方法、装置、存储介质和计算机设备 | |
CN110781039B (zh) | 哨兵进程选举方法及装置 | |
CN112068935A (zh) | kubernetes程序部署监控方法、装置以及设备 | |
WO2024113534A1 (zh) | 存储节点中存储资源的控制方法和装置,以及存储节点 | |
CN118244975A (zh) | 分布式存储数据的可靠性保障方法、装置、设备及介质 | |
CN106445737A (zh) | 一种多备份启动方法 | |
CN113391956B (zh) | 一种双园区的数据校验方法及装置 | |
CN115470041A (zh) | 一种数据灾备管理方法及装置 | |
CN110908821A (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
CN112463019A (zh) | 数据读取方法及装置 | |
CN117271225B (zh) | 一种fru信息备份方法、装置和服务器 | |
CN115904819B (zh) | 数据库备份数据的验证方法及装置 | |
CN110955556B (zh) | 数据库恢复方法及装置、存储介质、数据库*** | |
CN111292796B (zh) | 一种raid损坏详细信息获取方法、***、终端及存储介质 | |
CN112817789B (zh) | 一种基于浏览器传输的建模方法及装置 | |
CN112860338B (zh) | 软件启动方法和装置 | |
CN116401118A (zh) | 一种文件共享服务Samba监测方法及装置 | |
CN117744086A (zh) | 一种写漏洞处理方法及电子设备和存储介质 | |
CN118051383A (zh) | 一种分区损坏切换备份的方法及*** | |
CN116775596A (zh) | 数据迁移方法及装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |