本文是关于一种跨节点的数据组管理方法、装置及介质。跨节点的数据组管理方法包括将i组EC组数据按预设算法生成j组结果数据;将所述i组EC组数据和j组结果数据存储在i+j个节点中,其中,i为≥2的整数,j为≥1的整数。即使多个节点瘫痪,依然能够快速将原始数据恢复出来。
【技术实现步骤摘要】
跨节点的数据组管理方法、装置及介质
本文涉及分布式存储,尤其涉及跨节点的数据组管理方法、装置及介质。
技术介绍
EC,即ErasureCode,是一种通过冗余数据来提高实际数据可靠性的方法。通过实际数据和选定的EC算法,即刻创建包含冗余数据和实际数据的EC组。在系统中同时存储冗余数据和实际数据。当出现数据丢失,损坏的情况下,通过现存的实际数据和冗余数据来恢复丢失和损坏的数据。提高数据安全性的同时,降低存储成本。相关技术中,对EC组数据的管理方式分为单节点存储和多节点分散存储,单节点存储将EC组数据存储在单个节点中,多节点分散存储将EC组数据分散存储到多个节点中。单节点存储的方式,当存储EC组数据的节点瘫痪或者因为网络原因与系统其它部分失联,极易导致数据不可访问,系统可用性降低。这种存储方式要求节点极其稳定,并且在可接受的时间内即可恢复工作。而多节点分散存储的方式,数据的创建,更新,恢复都要通过跨节点的方式,读取或者发送数据,导致效率低,失败率高。
技术实现思路
为克服相关技术中存在的问题,本文提供一种跨节点的数据组管理方法、装置及介质。根据本文的第一方面,提供一种跨节点的数据组管理方法,包括:将i组EC组数据按预设算法生成j组结果数据;将所述i组EC组数据和j组结果数据存储在i+j个节点中,其中,i为≥2的整数,j为≥1的整数。所述EC组数据包括m个实际数据块和n个冗余数据块;所述将i组EC组数据按预设算法生成j组结果数据包括:对所述i组EC组数据中每组EC组数据中的m个实际数据块和n个冗余数据块按相同顺序编号,对每一编号对应的i个数据块按预设算法得到j个结果数据块,将m+n个编号对应的m+n个结果数据块作为一组结果数据,得到j组结果数据。同一EC组数据存储在一个节点中,同一组结果数据存储在一个节点中。所述同一EC组数据存储在一个节点中包括:将所述同一EC组的m个实际数据块和n个冗余数据块分别存储在m+n个存储服务器中;所述同一组结果数据存储在一个节点中包括:将所述同一组结果数据的m+n个结果数据块存储在m+n个存储服务器中。j=1,所述预设算法为:异或运算。当所述EC组数据部分损毁,通过所处节点中m+n个存储服务器内现存的实际数据块和冗余数据块恢复所述损毁数据;当所述损毁数据无法通过所处节点中的m+n个存储服务器内的实际数据块和冗余数据块恢复或所处节点故障时,通过其他节点中的其他EC组中的数据块和j个节点中的结果数据块恢复所述损毁数据。根据本文的另一方面,提供一种跨节点的数据组管理装置,包括:结果数据生成模块,用于将i组EC组数据按预设算法生成j组结果数据;分布存储模块,用于将所述i组EC组数据和j组结果数据存储在i+j个节点中,其中,i为≥2的整数,j为≥1的整数。所述EC组数据包括m个实际数据块和n个冗余数据块;所述分布存储模块生成j组结果数据包括:对所述i组EC组数据中每组EC组数据中的m个实际数据块和n个冗余数据块按相同顺序编号,对每一编号对应的i个数据块按预设算法得到j个结果数据块,将m+n个编号对应的m+n个结果数据块作为一组结果数据,得到j组结果数据。同一EC组数据存储在一个节点中,同一组结果数据存储在一个节点中。所述同一EC组数据存储在一个节点中包括:将所述同一EC组的m个实际数据块和n个冗余数据块分别存储在m+n个存储服务器中;所述同一组结果数据存储在一个节点中包括:将所述同一组结果数据的m+n个结果数据块存储在m+n个存储服务器中。j=1,所述预设算法为:异或运算。当所述EC组数据部分损毁,通过所处节点中m+n个存储服务器内现存的实际数据块和冗余数据块恢复所述损毁数据;当所述损毁数据无法通过所处节点中的m+n个存储服务器内的实际数据块和冗余数据块恢复或所处节点故障时,通过其他节点中的其他EC组中的数据块和j个节点中的结果数据块恢复所述损毁数据。根据本文的另一方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现跨节点的数据组管理方法的步骤。本文通过跨节点的多个数据组管理方法,可以降低系统对节点环境的要求,在节点和网络环境一般的情况下,仍能够提供较高的数据可靠性。即使单个节点瘫痪,通过异或运算的方式,依然能够将原始数据恢复出来。同时兼顾EC构建,更新和恢复数据的效率以及系统可用性。EC方式的构建,更新和数据恢复均发生在本地节点之内,提高了数据传输的效率,去除了跨节点进行数据拉取和结果保存可能导致失败的可能性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。附图说明构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。图1是根据一示例性实施例示出的一种跨节点的数据组管理方法的流程图。图2是根据一示例性实施例示出的一种跨节点的数据组管理装置的框图。具体实施方式为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。图1是根据一示例性实施例示出的一种跨节点的数据组管理方法的流程图。参考图1,跨节点的数据组管理方法包括:步骤S11,将i组EC组数据按预设算法生成j组结果数据;步骤S12,将i组EC组数据和j组结果数据存储在i+j个节点中,其中,i为≥2的整数,j为≥1的整数。本实施中,将i组EC组数据按预设算法生成j组结果数据,并将i+j组EC组数据和结果数据存储在i+j个节点中,实现分布式存储,提高数据安全性,即使单个节点瘫痪,依然能够快速将原始数据恢复出来。在一实施例中,EC组数据包括m个实际数据块和n个冗余数据块,其中,m>n,m为≥2的整数,n为≥1的整数。将i组EC组数据按预设算法生成j组结果数据包括:对i组EC组数据中每组EC组数据中的m个实际数据块和n个冗余数据块按相同顺序编号,对每一编号对应的i个数据块按预设算法得到j个结果数据块,将m+n个编号对应的m+n个结果数据块作为一组结果数据,得到j组结果数据。结果数据是i组EC组数据中,对应编号的i个数据块的结果数据块,是对应编号的i个数据块按预设算法生成的,预设算法可以是异或算法,也可以是EC算法,还可以是其他算法,本专利技术不做限制。在本实施例中,结果数据可以看作i个数据块的冗余数据块,根据实际环境,设定结果数据块的组数为j。当对应编号的i个数据块中有小于j个数据块损毁,例如,数据块损坏,丢失本文档来自技高网...
【技术保护点】
1.一种跨节点的数据组管理方法,其特征在于,包括:/n将i组EC组数据按预设算法生成j组结果数据;/n将所述i组EC组数据和j组结果数据存储在i+j个节点中,其中,i为≥2的整数,j为≥1的整数。/n
【技术特征摘要】
1.一种跨节点的数据组管理方法,其特征在于,包括:
将i组EC组数据按预设算法生成j组结果数据;
将所述i组EC组数据和j组结果数据存储在i+j个节点中,其中,i为≥2的整数,j为≥1的整数。
2.如权利要求1所述的跨节点的数据组管理方法,其特征在于,所述EC组数据包括m个实际数据块和n个冗余数据块,所述将i组EC组数据按预设算法生成j组结果数据包括:
对所述i组EC组数据中每组EC组数据中的m个实际数据块和n个冗余数据块按相同顺序编号,对每一编号对应的i个数据块按预设算法得到j个结果数据块,将m+n个编号对应的m+n个结果数据块作为一组结果数据,得到j组结果数据。
3.如权利要求2所述的跨节点的数据组管理方法,其特征在于,所述将所述i组EC组数据和j组结果数据存储在i+j个节点中包括:
将所述i组EC组数据存储在i个节点中,其中,同一EC组数据存储在同一个节点中;将所述j组结果数据存储在不同于所述i个节点的j个节点中,其中,同一组结果数据存储在同一个节点中。
4.如权利要求3所述的跨节点的数据组管理方法,其特征在于,所述同一EC组数据存储在同一个节点中包括:将所述同一EC组数据的m个实际数据块和n个冗余数据块分别存储在同一节点的m+n个存储服务器中;
所述同一组结果数据存储在同一个节点中包括:将所述同一组结果数据的m+n个结果数据块分别存储在同一节点的m+n个存储服务器中。
5.如权利要求4所述的跨节点的数据组管理方法,其特征在于,j=1,所述预设算法为:异或运算。
6.如权利要求1-5任一所述的跨节点的数据组管理方法,其特征在于,当所述EC组数据中有损毁数据块时,通过所处节点中m+n个存储服务器内现存的实际数据块和冗余数据块恢复所述损毁数据块;
当所述损毁数据块无法通过所处节点中的m+n个存储服务器内的实际数据块和冗余数据块恢复或所处节点故障时,通过其他节点中的其他EC组数据中的数据块和j个节点中的结果数据块恢复所述损毁数据块。
7.一种跨节点的数据组管理装置,其特征在于,所述装置包括:
结果数据生成模块,用于将i...
【专利技术属性】
技术研发人员:李树龙,张炎泼,
申请(专利权)人:北京白山耘科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。