本技术涉及计算机,尤其涉及一种分布式存储数据的可靠性保障方法、装置、设备及介质。
背景技术:
1、分布式存储的数据可靠性保障是指通过集群应用、网络技术或者分布式计算等功能,利用网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同提高数据可靠性的一个系统。
2、在分布式系统中,数据的可靠性尤其重要,当数据出现损坏情况、或者数据所处的存储设备与外界断连,会导致此数据的可靠性降低。目前,为了提高分布式存储系统的数据可靠性,需要对数据的可靠性进行检测,具体包含如下三种检测方式:
3、1、采用定期从存储系统读取数据并计算数据摘要值与此数据最初存储时生成的摘要值进行比较,来保障数据的无损性。
4、2、定期对数据发送心跳包,由此来确认数据的存活性。
5、3、对未存活的数据采取迁移行为。
6、然而,目前的检测方法需要通过外部组件进行可靠性检测,造成了对外部组件的依赖性。
技术实现思路
1、本技术提供了一种分布式存储数据的可靠性保障方法、装置、设备及介质,旨在解决目前的数据可靠性检测需要依赖外部组件的技术问题。
2、第一方面,本技术提供了一种分布式存储数据的可靠性保障方法,所述分布式存储数据的可靠性保障方法包括:
3、将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
4、将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
5、若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
6、基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
7、进一步地,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
8、基于所述事务模块以及所述信息表,检测各保护组中的各个数据块成员本地是否具有成员初始化信息;
9、对没有成员初始化信息的数据块成员进行初始化;
10、将具有成员初始化信息的保护组的标识加入检查队列;
11、从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更。
12、进一步地,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,还包括:
13、将所述保护组标识对应的保护组中的各个数据块成员加入本地数据md5检查队列,并在下一次check模块运行时,检查所述md5检查队列中的各数据块成员的运行状态,并将所述各个数据块成员的运行状态写入状态地图statmap。
14、当数据块的检查结果显示md5值与初始化不一致时,将数据损坏信息提交到restore模块的修复队列。
15、进一步地,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,包括:
16、检查所述保护组标识对应的保护组中各数据块成员是否发生更新;
17、若发生更新,则在所述保护组标识对应的保护组中各数据块成员进行数据更新。
18、进一步地,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
19、基于所述事务模块,判断所述数据块可靠性保护组中的各个数据块成员是否确定领导数据块leader;
20、在确定所述leader时,组成员通过租约的形式检查所述leader处于的节点是否健康;
21、若所述leader的租约失效,则判定所述leader处于的节点处于非健康状态,基于所述事务模块发起选举,以重新选举leader;
22、若所述leader处于的节点健康,基于所述leader,从各个数据块成员的本地检查模块中的状态地图statmap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更。
23、进一步地,所述基于所述leader,从各个数据块成员的本地检查模块中的状态地图statmap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更,包括:
24、若基于所述leader检测到成员处于不可连接状态,则记录不可连接的持续时间;或
25、基于所述l l eader检测到成员处于数据修复状态,则记录数据修复的持续时间;或
26、基于所述l eader检测到成员处于过载载体上面,则记录处于过载载体的持续时间;
27、在所述持续时间超过预设时间后,去掉不可连接状态的成员,根据成员变更信息形成事务日志,并向所有其他成员发送所述事务日志。
28、进一步地,所述将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块之后,还包括:
29、若所述待校验保护组同步失败或一致性校验失败,则删除所述待校验保护组,并重新组建数据块可靠性保护组。
30、第二方面,本技术还提供了一种分布式存储数据的可靠性保障装置,所述可靠性保障装置包括:
31、保护组组成模块,用于将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;
32、信息表同步模块,用于将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;
33、保护组校验模块,用于若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;
34、可靠性检测模块,用于基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。
35、第三方面,本技术还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的分布式存储数据的可靠性保障方法。
36、第四方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的分布式存储数据的可靠性保障方法。
37、本技术公开了一种分布式存储数据的可靠性保障方法、装置、设备及介质,所述可靠性保障方法包括:将具有副本关系以及计算冗余的数据块关系的至少两个数据块,形成待校验保护组;将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块;若所述待校验保护组同步成功且通过一致性校验,形成数据块可靠性保护组;基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更。通过上述方式,本技术基于数据块可靠性保护组的事务模块进行数据块可靠性保护组的的可靠性决策以及成员变更,无需依赖外部组件,实现了数据块的自我管理。
1.一种分布式存储数据的可靠性保障方法,其特征在于,所述分布式存储数据的可靠性保障方法包括:
2.根据权利要求1所述的可靠性保障方法,其特征在于,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
3.根据权利要求2所述的可靠性保障方法,其特征在于,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,还包括:
4.根据权利要求2所述的可靠性保障方法,其特征在于,所述从所述检查队列中读取保护组标识,并对所述保护组标识对应的保护组进行可靠性检查以及成员变更,包括:
5.根据权利要求1所述的可靠性保障方法,其特征在于,所述基于所述数据块可靠性保护组的事务模块,对所述数据块可靠性保护组中各数据块成员进行可靠性检测以及成员变更,包括:
6.根据权利要求5所述的可靠性保障方法,其特征在于,所述基于所述leader,从各个数据块成员的本地检查模块中的状态地图statmap,获取各个数据块成员的自检状态参数,并根据所述自检状态参数,完成可靠性检测以及成员变更,包括:
7.根据权利要求1-6中任一项所述的可靠性保障方法,其特征在于,所述将存储所述待校验保护组中的各个数据块成员信息的信息表,运用事务,同步至组中的预设个数的数据块之后,还包括:
8.一种分布式存储数据的可靠性保障装置,其特征在于,所述可靠性保障装置包括:
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的分布式存储数据的可靠性保障方法。