CN113590042B - 一种数据保护存储方法、装置及设备 - Google Patents

一种数据保护存储方法、装置及设备 Download PDF

Info

Publication number
CN113590042B
CN113590042B CN202110863883.9A CN202110863883A CN113590042B CN 113590042 B CN113590042 B CN 113590042B CN 202110863883 A CN202110863883 A CN 202110863883A CN 113590042 B CN113590042 B CN 113590042B
Authority
CN
China
Prior art keywords
data
storage
stored
blocks
target
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.)
Active
Application number
CN202110863883.9A
Other languages
English (en)
Other versions
CN113590042A (zh
Inventor
柯丹丹
沈泽宇
高志远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN202110863883.9A priority Critical patent/CN113590042B/zh
Publication of CN113590042A publication Critical patent/CN113590042A/zh
Application granted granted Critical
Publication of CN113590042B publication Critical patent/CN113590042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Abstract

本申请提供一种数据保护存储方法、装置及设备,该方法依据已确定的对待存储数据划分的数据块数量N和校验块数量M确定的存储节点数量K,确定出PN的数量,建立映射表,以将PN映射于K个存储节点对应的存储介质中,在存储数据时,利用待存储数据对应的桶名和对象名确定出目标PN,并依据目标PN与存储介质的映射关系,以对该待存储数据进行存储。可见,该方法存储待存储数据所需要的存储节点数量只要为N与M的比值向上取整后与1之和,便可支持任意M个存储介质故障而不影响对象数据读写,而这远远小于现有技术中所需存储节点数至少为N与M之和,可见,应用本实施例提供的技术方案能够减少存储节点数量,降低成本。

Description

一种数据保护存储方法、装置及设备
技术领域
本申请涉及存储领域,尤其涉及一种数据保护存储方法、装置及设备。
背景技术
随着海量非结构化数据的飞速增长,在满足能够从海量数据中快速定位到待读取对象以及保证对象数据写入容量均衡要求的情况下,在成本可控的基础上,现对数据冗余性提出更高要求,以应对分布式系统中存储节点突然失效或存储介质突然故障等情况。
为了使有限存储资源支持更高的冗余性,现有技术提供了一种数据保护存储方法,该方法将待存储数据切成N个数据块和M个校验块,将切割后的数据块和校验块存储在存储节点中,要求该存储节点的数量至少大于N与M之和。可见,虽然该方法能够支持任意M个存储介质故障而不影响对象数据读写,但该方法要求用于存储待存储数据的存储节点数量至少大于待存储数据切分的数据块数量N和校验块数量M之和。这就表明,将待存储数据切成的待存储数据越多,则对存储节点数目要求较高,相应地,成本也较高。
发明内容
有鉴于此,本申请提供一种数据保护存储方法、装置及设备,以减少存储节点数量。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请实施例提供了一种数据保护存储方法,所述方法包括:
依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P;其中,所述K大于或等于第一设定值,所述第一设定值为N与M的比值向上取整后与1之和,N大于或等于M,每一存储节点包含的存储介质数量大于或等于M;
按照均匀分布存储数据的原则建立映射表,所述映射表包括P个定位节点PN与K个存储节点上的存储介质之间的映射关系;
将第一待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块;
依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;
依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
本申请的一个实施例中,所述P靠近2的幂次方且为第二设定值的整数倍,所述第一设定值为N和M之和;所述按照均匀分布存储数据的原则建立映射表,包括:
按照第一预设方式将P个PN映射在每一存储节点包含的各存储介质中,其中,所述第一预设方式为:将所述第二设定值个PN构成一组定位条带组PSG,在所述PSG中相邻PN序号的差值为所述P与所述第二设定值的比值,且每一PSG包含所述第二设定值个定位条带PS,PS是所述第二设定值个PN进行排序的序列,各PS为首的PN均不同,同一组PSG中的PN分布在不同存储节点中或同一个存储节点的不同存储介质中。
本申请的一个实施例中,所述按照均匀分布存储数据的原则建立映射表,包括:
P个PN中的部分PN按照第一规则均匀地映射分布于K个存储节点的部分存储介质中;
P个PN中的余下部分PN按照第二规则均匀地映射分布于K个存储节点的余下部分存储介质中,第二规则为与第一规则不同的规则。
本申请的一个实施例中,所述依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN,包括:
对第一待存储数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待存储PN;
查找首位为所述待存储PN的目标PS,并将所述目标PS中包含的各PN确定为用于存储所述第一待存储数据的各数据块和各校验块对应的目标PN;
所述依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质,包括:
按照PN在所述目标PS排序的先后顺序,将所述N块数据块和所述M块校验块依次存储在所述PS包含的各PN对应的存储介质中。
本申请的一个实施例中,所述对第一待存储数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待存储PN,包括:
对第一待存储数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果;
将所述哈希结果除以P并取余,并将取余结果确定为用于存储数据块的待存储PN的序号。
本申请的一个实施例中,该方法进一步包括:
获取待读取数据对应的桶名和对象名;
对所述待读取数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待读取PN;
查找首位为所述待读取PN的目标PS;
从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的各数据块。
本申请的一个实施例中,所述对所述待读取数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待读取PN,包括:
对所述待读取数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果;
将所述哈希结果除以P并取余,并将取余结果确定为运算结果。
本申请的一个实施例中,在所述从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的各数据块之后,包括:
检测获取的各数据块的数量是否等于N,若不等于,则从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的校验块,并利用所述校验块,将已获取的各数据块还原成N块数据块。
本申请的一个实施例中,所述方法还进一步包括:
将第二待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块,其中,N大于或等于M;
依据N和M确定用于存储所述第二待存储数据的存储节点的数量K;
依据已确定的存储节点的数量K确定出按照均匀分布存储数据原则已建立的映射表;
依据所述第二待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;
依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
第二方面,本申请实施例还提供了一种数据保护存储装置,所述装置包括:
存储节点获取单元,用于依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P;其中,所述K大于或等于第一设定值,所述第一设定值为N与M的比值向上取整后与1之和,N大于或等于M,每一存储节点包含的存储介质数量大于或等于M;
定位节点分布单元,用于按照均匀分布存储数据的原则建立映射表,所述映射表包括P个定位节点PN与K个存储节点上的存储介质之间的映射关系;
数据块切分单元,用于将第一待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块;
确定单元,用于依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;
存储单元,用于依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
本申请的一个实施例中,所述P靠近2的幂次方且为第二设定值的整数倍,所述第二设定值为N和M之和;所述定位节点分布单元具体用于:
按照第一预设方式将P个PN映射在每一存储节点包含的各存储介质中,其中,所述第一预设方式为:将所述第二设定值个PN构成一组定位条带组PSG,在所述PSG中相邻PN序号的差值为所述P与所述第二设定值的比值,且每一PSG包含所述第二设定值个定位条带PS,PS是所述第二设定值个PN进行排序的序列,各PS为首的PN均不同,同一组PSG中的PN分布在不同存储节点中或同一个存储节点的不同存储介质中。
第二方面,本申请实施例还提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述任一实施例所描述的数据保护存储方法。
由此可见,本申请实施例提供的数据保护存储方法、装置及设备,该方法依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P,K大于或等于N与M的比值向上取整后与1之和,并按照均匀分布存储数据的原则建立用于表示PN与K个存储节点上的存储介质之间映射关系的映射表,以将PN映射于K个存储节点对应的存储介质中,在存储数据时,利用待存储数据对应的桶名和对象名,确定出用于存储该待存储数据的目标PN,并依据目标PN与存储介质的映射关系,对该待存储数据进行存储。可见,该方法存储待存储数据所需要的存储节点数量只要为N与M的比值向上取整后与1之和,便可支持任意M个存储介质故障而不影响对象数据读写,而这远远小于现有技术中所需存储节点数至少为N与M之和,可见,应用本实施例提供的技术方案能够减少存储节点数量,降低成本。
附图说明
图1是本申请一示例性实施例示出的一种数据保护存储方法的流程图;
图2是本申请一示例性实施例示出的一种数据读取方法的流程图;
图3是本申请一示例性实施例示出的另一种数据读取方法的流程图;
图4是本申请一示例性实施例示出的一种数据保护存储装置的结构示意图;
图5是本申请提供一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使有限存储资源支持更高的冗余性,现有技术提供的数据保护存储方法虽然能够支持任意M个存储介质故障而不影响对象数据读写,但该方法要求用于存储待存储数据的存储节点数量至少大于待存储数据切分的数据块数量N和校验块数量M之和,比如,若要将待存储数据切成4块数据块和2块校验块,则必须要求6个存储节点,才能支持任意2个存储介质故障;若要将待存储数据切成8块数据块和4块校验块,则必须有12个存储节点,才能支持任意4个存储介质故障。可见,将待存储数据切成的待存储数据越多,对存储节点数目要求较高,相应地,成本也较高。
为了解决上述技术问题,本申请实施例提供了一种数据保护存储方法,该方法依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P;其中,所述K大于或等于第一设定值,所述第一设定值为N与M的比值向上取整后与1之和,N大于或等于M,每一存储节点包含的存储介质数量大于或等于M;按照均匀分布存储数据的原则建立映射表,所述映射表包括P个定位节点PN与K个存储节点上的存储介质之间的映射关系;将第一待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块;依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。可见,该方法存储待存储数据所需要的存储节点数量只要为N与M的比值向上取整后与1之和,便可支持任意M个存储介质故障而不影响对象数据读写,而这远远小于现有技术中所需存储节点数至少为N与M之和,可见,应用本实施例提供的技术方案能够减少存储节点数量,降低成本。
参见图1,图1是本申请实施例示出的一种数据保护存储方法的流程图,该方法包括如下步骤:
步骤101,依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN(Placement Node,定位节点)的数量P;
其中,所述K大于或等于第一设定值,所述第一设定值为N与M的比值向上取整后与1之和,N大于或等于M,每一存储节点包含的存储介质数量大于或等于M。
本步骤形成的用于存储数据的存储节点是事先设定成将待存储数据划分成N块数据块,并依据N块数据块计算出对应的M块校验块。
在本实施例中,可以采用EC(Erasure Code,纠删码)策略将待存储数据分切成N块数据块,根据N块数据块计算出M块校验块。N为数据块个数,M为校验块个数,N>=M。上述EC是一种编码技术,该编码技术可以将数据文件切分为N块数据块,并计算出M块冗余数据块即校验块,如果该数据文件中N+M中任意的小于或等于M块损坏或丢失,能够通过剩余的块修复或还原损坏数据。
示例性的,如将待存储的数据块A1依据EC策略切成2块数据块和1块校验块,将待存储的数据块A2依据EC策略切成4块数据块和2块校验块、将待存储的数据块A3依据EC策略切成6块数据块和3块校验块和将待存储的数据块A4依据EC策略切成8块数据块和4块校验块。
本步骤的K个存储节点是来存储待存储数据的。存储节点实际就是存储待存储数据的节点。
第一设定值也只是为便于和后文的设定值区分而进行的命名,并非用于限定某一设定值。
第一设定值确定过程为:先计算出N与M的比值,并将比值向上取整,然后将取整结果加1,得到的结果就是第一设定值。
示例性的,若N为7,M为3,那么第一设定值为7/3+1,也就是4,这也表示需要4个存储节点,而现有技术需要的存储节点为7+3,也就是10,3明显远远少于10,本申请实施例提供的技术方案相对于现有技术明显远远减少了存储节点数量,节约了成本。
步骤102,按照均匀分布存储数据的原则建立映射表。
其中,所述映射表包括P个定位节点PN与K个存储节点上的存储介质之间的映射关系;
本步骤建立的映射表,能够将PN(Placement Node,定位节点)对应映射于各存储节点的存储介质中,以使各PN有规则的映射于各存储介质。
其中,每一存储节点包含的存储介质数量大于或等于M。
本实施例的每一存储节点包含的存储介质数量大于或等于M,能够保证各PN有规则的映射于各存储介质。
PN,是一个逻辑概念。创建池Pool时需设定该Pool中PN总数,一个对象经一致性Hash运算会对应到一个Pool中的一个PN,其实质是映射到一组PN,一个PN映射到一个磁盘,一个磁盘可以被多个PN映射,即一个磁盘可以对应多个PN。
本步骤中均匀分布存储数据的原则的实现方式可以是尽可能将PN均匀地分布映射于各存储节点上的存储介质,若不能够均匀分布,则可以P个PN中的部分PN按照第一规则均匀地映射分布于K个存储节点上的部分存储介质中,如第一种规则是部分PN以三对一的方式对应映射于每个存储节点上的部分存储介质;P个PN中的余下部分PN按照第二规则均匀地映射分布于K个存储节点的余下部分存储介质中,第二规则为与第一规则不同的规则。第二种规则就是与第一种规则不同的余下PN以四对一的方式对应映射于各存储节点上余下部分存储介质中。
第一种规则只是为便于和后文的规则区分而进行的命名,并非用于限定某一规则。
这里,第二种规则只是为便于描述而进行的命名,并非用于限定某一规则。
在一些实施例中,实现上述步骤102的实现方式可以包括如下步骤:依据各存储节点上存储介质数量或/和容量的大小,对所述存储节点中各存储节点设置对应的权重,并按照权重大小将PN分配至与权重对应的存储节点的存储介质中。
在本实施例中,存储节点中某些存储节点的数量和容量可以相同,也可以不同,本实施例对此不再限定。
在本实施例中,针对依据存储介质的数量或/和容量的大小,预先设定各存储介质的权重,针对存储介质的数量或/和容量较大的存储节点,设置高的权重,这就意味着,针对存储节点中容量大或/和数量大的存储介质分配数量多的PN,针对存储介质的数量或/和容量均较小的存储节点,设置低的权重,这就意味着,针对存储节点中容量小或/和数量小的存储介质分配数量少的PN,进而将PN均匀地分配于各存储介质中。在一些实施例中,若这些存储节点中存在存储介质数量相同,但存储介质容量不同,可以基于存储介质容量大小设定的权重大小,按照权重高的分配PN数量多些,权重低的分配PN数量少些的分配方式将PN映射于这些存储节点的存储介质中,以将PN按照各存储介质的数量和容量均匀地映射于各存储介质。
为了便于均匀地分配PN,作为一个实施例,每个存储节点上的存储介质容量、存储类型和数量中的至少一项均相同。
在本实施例中,各存储节点的存储介质容量相同能够为了避免木桶效应或容量浪费。存储类型可以一致,也可以不必一致,而数量要求尽量一致,也可接近,需控制在预设差值范围内。
在本步骤中,各PN映射于各存储节点的存储介质之后,在查到找PN后,便可以获知该PN对应的存储节点中的存储介质。
步骤103,将第一待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块。
第一待存储数据只是为便于和后文的数量区分而进行的命名,并非用于限定某一存储数据。
在建立好映射表之后,就可以依据映射表将数据存储在对于存储节点的存储介质中。
步骤104,依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN。
在本实施例中,对象可以理解为对象存储中存储的基本实体,用于保存对象的容器。而桶就是对象存储中存储的基本实体,用于保存对象的容器。相应地,对象名就是唯一标识存储桶中的对象。
第一待存储数据就是对象。
目标PN可以理解为用于存储第一待存储数据对应的各PN。
步骤105,依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
各PN与存储介质均有映射关系,在确定出PN后,便可依据PN确定出该PN对应的存储节点中的存储介质。
作为一个实施例,实现步骤104的实现方式可以包括步骤A~步骤C:
步骤A,对第一待存储数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待存储PN。
本步骤可以依据运算结果,确定出用于存储待存储数据的一个PN。
步骤B,查找首位为所述待存储PN的目标PS,并将所述目标PS中包含的各PN确定为用于存储所述第一待存储数据的各数据块和各校验块对应的目标PN。
待存储PN对应于PS中各PN排序的首位PN。
在步骤A~B的基础上,实现步骤105的实现方式可以包括步骤C:
步骤C,按照PN在所述目标PS排序的先后顺序,将所述N块数据块和所述M块校验块依次存储在所述PS包含的各PN对应的存储介质中。
在确定出目标PS后,可以将N块数据块和M块校验块依次对应于该目标PS中的各PN中,借助PN与存储介质之间的对应关系,可以将N块数据块和M块校验块按照该目标PS中各PN在存储介质中的逻辑映射存储于各PN对应的存储介质中。值得一提的是,PS恰好是N与M之和个PN,这样能够将待存储数据存储在一个PS中各PN对应的存储介质中。
可见,通过本实施例提供的技术方案,能够快速有序地确定出待存储数据对应存储在存储节点中的位置,并进行存储。
作为一个实施例,实现步骤A的实现方式可以包括如下步骤A1和步骤A2:
步骤A1,对第一待存储数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果。
将桶名和对象名输入如下表达式后,鉴于直接计算出的哈希值与PN总数量不是同一数量级,需要进一步对哈希值进行处理,以使哈希值与PN总数量在相同的数量级上,处理后的哈希值就是哈希结果。
该表达式为:Hash(桶名+对象名),其中,Hash(.)为哈希函数。
步骤A2,将所述哈希结果除以P并取余,并将取余结果确定为用于存储数据块的待存储PN的序号。
可见,通过本实施例提供的技术方案,能够依据桶名和对象名快速确定出存储待存储数据存储介质对应的首个待存储PN。
至此,完成图1示的描述。
由此可见,在本申请实施例的技术方案中,依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P,K大于或等于N与M的比值向上取整后与1之和,并按照均匀分布存储数据的原则建立用于表示PN与K个存储节点上的存储介质之间映射关系的映射表,以将PN映射于K个存储节点对应的存储介质中,在存储数据时,利用待存储数据对应的桶名和对象名,确定出用于存储该待存储数据的目标PN,并依据目标PN与存储介质的映射关系,对该待存储数据进行存储。可见,该方法存储待存储数据所需要的存储节点数量只要为N与M的比值向上取整后与1之和,便可支持任意M个存储介质故障而不影响对象数据读写,而这远远小于现有技术中所需存储节点数至少为N与M之和,可见,应用本实施例提供的技术方案能够减少存储节点数量,降低成本。
如何建立映射表,以将PN对应映射于各存储节点的存储介质中,使得各PN有规则的尽量均匀地映射于各存储介质,在一些实施例中,P靠近2的幂次方且为第二设定值的整数倍,所述第二设定值为N和M之和,本实施例之所以将PN设置为接近2的幂次方且为第二设定值的整数倍,其目的是为选取一个合适的值,以将PN均匀分布在存储节点上。
实现步骤103的实现方式可以包括步骤D:
步骤D,按照第一预设方式将P个PN映射在每一存储节点包含的各存储介质中。
其中,所述第一预设方式为:将所述第二设定值个PN构成一组定位条带组PSG,在所述PSG中相邻PN序号的差值为所述P与所述第二设定值的比值,且每一PSG包含所述第二设定值个定位条带PS,PS是所述第二设定值个PN进行排序的序列,各PS为首的PN均不同,同一组PSG中的PN分布在不同存储节点中或同一个存储节点的不同存储介质中。
第一预设方式只是为便于和后文的第二预设方式区分而进行的命名,并非用于限定某一预设方式。
PS,也是一个逻辑概念,每个PS有第二设定值(N+M)个PN组成,每一PS为首的PN均不同。
每一PS中各PN的序号按照一定顺序有规律的设定,作为一个实施例,一个PSG中的序号最小的PS中的PN序号可以构成一个递增的等差数列。
示例性的,若第二设定值为3,则3个PN构成一组PSG,这次PN分别为PN0、PN1和PN2,以PN0、PN1和PN2组成的PS也为3个,分别为以PN0为首的PS1,即PN0、PN1和PN2,以PN1为首的PS2,即PN1、PN2和PN0,以PN2为首的PS3,即PN2、PN0和PN1。
作为一个实施例,各存储节点尽量均分所有PN,以使每个存储节点上的存储介质均分该存储节点上的PN,各PN的序号之间的差值不大于1。
为了更加容易理解,现举一具体实施例,具体为:
示例性的,使用EC策略将待存储数据块切成4块数据块和2块校验块,依据存储节点K>=N/M+1,计算4/2经向上取整后与1之和得知存储节点大于或等于3,则这3个存储节点以组成一个存储池,每个存储节点有10块磁盘(存储介质),按照接近2的幂次方,且能被N+M=6整除的数字作为PN总数量的选择方式,选择P的数量为60,而6个PN组成一个PSG,一个PSG包含6个PS。
基于此,先按表1所展示的6个节点确认PN与PS的分布情况:
表1PN与PS的分布情况
s1 s2 s3 s5 s5 s6
0 10 20 30 40 50
1 11 21 31 41 51
2 12 22 32 42 52
3 13 23 33 43 53
4 14 24 34 44 54
5 15 25 35 45 55
6 16 26 36 46 56
7 17 27 37 47 57
8 18 28 38 48 58
9 19 29 39 49 59
表1中,s1~s6分别对应虚拟的6个虚拟节点。表格中的数字均是PN序号。
由于实际上有3个存储节点,基于此,再将PSG上6个虚拟节点映射的PN折半均分到各个存储节点中,存储节点及其上磁盘和PN分布的关系如表2所示:
表2磁盘与PN的分布情况
表2中,S1~S3是实际的3个存储节点。
在表2中的,N+M个PN组成一个PSG,即6个PN组成一个PSG,如序号为0、10、20、30、40、50的PN,每个PN的差值为P/(N+M),即60/6=10。每个PSG含有4+2个PS,每个PS以某个PN为首。在本实施例的3个存储节点中,每个PSG中的2个PN分布在同一个存储节点的2个不同存储介质中,如表3所示。
表3PS与PN构成的一个PSG
PS0 0 10 20 30 40 50
PS10 10 20 30 40 50 0
PS20 20 30 40 50 0 10
PS30 30 40 50 0 10 20
PS40 40 50 0 10 20 30
PS50 50 0 10 20 30 40
表3中,PS0~PS50分别为序号为0、10、20、30、40和50对应的PS。
可见,在本实施例提供的技术方案中,能够将PN有规律地且尽可能均匀地对应映射于各存储节点的存储介质中,以便于依据PN直接能够定位出存唯一储介质。
在另一些实施例中,所述P是接近2的幂次方且为第二设定值的整数倍。本实施例之所以将PN设置为接近2的幂次方且为第二设定值的整数倍,其目的是为选取一个合适的PN,以将PN均匀分布在存储节点上,实现步骤103的实现方式还可以包括步骤E:
步骤E,按照第二预设方式将P个PN映射在每一存储节点包含的各存储介质中。
其中,各存储节点上的存储介质数量均相同,第二预设方式为将第二设定值个PN构成一组定位条带组PSG中,在PSG中相邻PN序号的差值为P与第二设定值的比值,且每一PSG包含所述第二设定值个定位条带PS,PS是所述第二设定值个PN进行排序的序列,各PS为首的PN均不同,同一组PSG中的PN分布在不同存储节点中或同一个存储节点的不同存储介质中,每一存储节点中各存储介质分布PN的数量为P与第三设定值的比值,所述第三设定值为该存储节点的存储介质数量与K的乘积。
这里,第二预设方式只是为便于描述而进行的命名,并非用于限定某一预设方式。
PS,也是一个逻辑概念,每个PS有第二设定值个PN组成,每一PS为首的PN均不同。
每一PS中各PN的序号按照一定顺序有规律的设定,作为一个实施例,一个PSG中的序号最小的PS中的PN序号可以构成一个递增的等差数列。
示例性的,若定位节点为4,则4个PN构成一组PSG,则分别为PN0、PN1、PN2和PN3,以PN0、PN1、PN2和PN3组成的PS也为4个,分别为以PN0为首的PS0,即PN0、PN1、PN2和PN3,以PN1为首的PS1,即PN1、PN2、PN3和PN0,以PN2为首的PS2,即PN2、PN3、PN0和PN1,以PN3为首的PS3,即PN3、PN0、PN1和PN2。
作为一个实施例,各存储节点尽量均分所有PN,以使每个存储节点上的存储介质均分该存储节点上的PN,各PN的序号之间的差值不大于1。
为了更加容易理解,现举一具体实施例,具体为:
示例性的,使用EC策略将待存储数据块切成4块数据块和2块校验块,依据存储节点n>=N/M+1,4/2经过向上取整后与1之和计算得知存储节点大于或等于3,则获取4个存储节点,每个存储节点有6块磁盘(存储介质),按照接近2的幂次方,且能被N+M=6整除的数字作为PN总数量的选择方式,选择P的数量为48,而一个PSG中PS的数量为4+2=6。每个存储节点分48/4=12个PN,每个节点上的磁盘分12/6=2个PN。
先按N+M=6个虚拟存储节点,确认PN与PS的分布情况如表4所示,具体见如下表4:
表4 PN与PS的分布情况
s1 s2 s3 S4 s5 s6
0 8 16 24 32 40
1 9 17 25 33 41
2 10 18 26 34 42
3 11 19 27 35 43
4 12 20 28 36 44
5 13 21 29 37 45
6 14 22 30 38 46
7 15 23 31 39 47
由于实际上有4个存储节点,基于此,再将PSG上虚拟6个虚拟存储节点映射的PN分到各个存储节点中,需满足每个PSG中的PN分布在不同存储节点,或相同存储节点的不同存储介质中(同一个PSG中,有2个存储节点需各分2个PN,其余2个存储节点各分1个PN),存储节点及其上磁盘和PN分布的关系如表5所示:
基于此,节点及其上磁盘和PN分布如下表5所示:
表5磁盘与PN的分布情况
/>
表5中,S1~S4是4个存储节点,Disk1~Disk6是对应各存储节点的存储介质。表格中数字均是PN序号。
在表5中的,4+2个PN组成一个PSG,即6个PN组成一个PSG,如序号为0、8、16、24、32、40的PN,每个PN的差值为P/(N+M),即48/6=8。每个PSG含有6个PS,每个PS以某个PN为首。在本实施例的4个存储节点中,每个PSG中的2个PN分布在同一个存储节点的2个不同存储介质中,如表6所示。
表6 PS与PN构成的一个PSG
PS0 0 8 16 24 32 40
PS8 8 16 24 32 40 0
PS16 16 24 32 40 0 8
PS24 24 32 40 0 8 16
PS32 32 40 0 8 16 24
PS40 40 0 8 16 24 32
在存储时,按照如下方式进行计算,按照Hash(桶名+对象名)%P确定出一个PN后,确定出以该PN为首的一个PS。若对象经计算后PN=16,则其数据存储到PS16对应的存储介质中。将该对象数据切分为N块(4块),并利用EC算法计算出M块(2块)校验块,前N=4数据块存储在序号为16的PN、序号为24的PN、序号为32的PN和序号为40的PN对应的存储介质中,即S3的Disk1、S4的Disk1、S1的Disk5和S2的Disk5;后M=2校验块存储在序号为0的PN、序号为8的PN对应的存储介质中,即S1的Disk1、S2的Disk1。基于此,本实施例的方案支持任意1个存储节点故障或任意2个存储介质故障。
可见,在本实施例提供的技术方案中,能够将PN有规律地且尽可能均匀地对应映射于各存储节点的存储介质中,以便于依据PN直接能够定位出存唯一储介质。
映射表可以按照如下情形进行建立,如:
(1)3个存储节点,支持EC策略切成8块数据块和4块校验块,每12个PN组成一组PSG,每个PSG中的4个PN分布在同一个存储节点的4个不同存储介质中,支持任意1个存储节点故障或任意4个存储介质故障。
(2)3个存储节点,支持EC策略切成6块数据块和3块校验块,每9个PN组成一组PSG,每个PSG中的3个PN分布在同一个存储节点上的3个不同存储介质中,支持任意1个存储节点故障或任意3个存储介质故障。
(3)6个存储节点,支持EC策略切成8块数据块和4块校验块,每12个PN组成一组PSG,每个PSG中的2个PN分布在同一个存储节点的2个不同存储介质中,支持任意1个存储节点故障或任意4个存储介质故障。
(4)8个存储节点,支持EC策略切成6块数据块和3块校验块,每9个PN组成一组PSG,每个PSG中的2个PN分布在同一个存储节点的2个不同存储介质中,其余7个PN分布在其他7个存储节点中,支持任意2个存储节点故障或任意3个存储介质故障。
在建立好映射表之后,在对其他待存储数据进行存储时,直接可以利用映射表中描述的PN与存储介质的映射关系存储该待存储数据,作为一个实施例,该方法还可以进一步包括如下步骤F~步骤J:
步骤F,将第二待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块,其中,N大于或等于M。
这里,第二待存储数据只是为便于描述而进行的命名,并非用于限定某一待存储数据。
步骤G,依据N和M确定用于存储所述第二待存储数据的存储节点的数量K。
步骤H,依据已确定的存储节点的数量K确定出按照均匀分布存储数据原则已建立的映射表。
步骤I,依据所述第二待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN。
步骤J,依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
可见,应用本实施例提供的技术方案能够利用较少的存储节点,快速有效地存储待存储数据。
在待存储数据按照上述实施例进行存储之后,可以按照如下方式进行读取,在一些实施例中,如图2所示,图2为本实施例提供的一种存储数据读取方法的流程图,该方法包括如下步骤:
步骤201,获取待读取数据的桶名和对象名。
步骤202,对所述桶名和对象名进行运算处理,并获得序号为运算处理结果的待读取PN。
作为一个实施例,实现步骤202的实现方式可以包括如下步骤:
对所述待读取数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果。
将所述哈希结果除以P并取余,并将取余结果确定为运算结果。
步骤203,查找首位为所述待读取PN的目标PS。
待读取PN对应于PS中各PN排序的首位PN,基于此,依据待读取PN确定出该待读取PN为首位的存储待读取数据的目标PS,该目标PS就是存储了待读取数据的PS。
步骤204,从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的各数据块。
在确定出PS之后,则按照该目标PS中各PN在目标PS中的排序,就能够确定出各PN定位映射的存储介质,进而从对应的存储介质中读取到各数据块。
可见,在本实施例提供的技术方案中,能够简单准确地将数据从已存储的存储节点中获取。
若从存储节点中读取的数据块只有部分数据块,这就导致读取的数据块不全,即小于N,基于此,可以从存储节点中读取校验块以还原数据块,若从存储节点中读取的数据块是待读取数据的全部数据块,即N块,则无需再继续读取校验块。基于此,针对读取的数据块不全的情况,作为一个实施例,如图3所示,该方法还包括如下步骤205~步骤206:
步骤205,检测获取的各数据块的数量是否等于N,若不等于,则执行步骤206。
步骤206,从所述存储节点中获取所述待读取PS中各PN对应存储介质中存储的校验块,并利用所述校验块,将已获取的各数据块还原成N块数据块。
本步骤中,获取的数据块与校验块总和为N,便可利用校验块将不足N块的数据块进行还原,以最终获得N块数据块。
可见,通过本实施例提供的技术方案,能够将部分损坏或丢失的数据进行还原。
下面基于一个实施例对图1至图2所示流程进行描述:
在实际应用中,利用EC策略技术对待存储数据R进行处理,切成2块数据块和1块校验块,依据N/M向上取整后+1为3,则获取3个存储节点以用于存储待存储数据R,各存储节点有5个存储介质。选择PN的数量P=30,30是接近的幂次方且为6的整数倍。
确认PN与PS的分布情况如7所示,具体见如下表7:
表7磁盘与PN的分布情况
表7中,S1~S3是实际的3个存储节点。
在表7中的,2+1个PN组成一个PSG,即3个PN组成一个PSG,如序号为0、10、20的PN,每个PN的差值为P/(N+M),即30/3=10。每个PSG含有2+1个PS,每个PS以某个PN为首。在本实施例的3个存储节点中,每个PSG,如表8所示。
表8 PS与PN构成的一个PSG
PS0 0 10 20
PS10 10 20 0
PS20 20 0 10
该方案支持任意1个存储节点故障或任意1个存储介质故障。
获取待存储数据R的桶名和对象名,对桶名和对象名进行哈希计算,得到哈希结果,并将哈希结果除以30并取余,并将取余结果确定为运算结果,假设该运算结果为10,那么,将该10作为存储待存储数据R的首个PN,查找以序号为10为首的PN对应的PS,从表8确定出该PS中各PN依次为序号为10、20、0对应的PN。按照PN在该PS存储的排序的先后顺序,将2块数据块和1块校验块依次存储在与待存储PS中各PN对应的存储介质中。即2块数据块依次存储在序号为10、20对应映射的磁盘,依次为存储节点S2中的Disk1、存储节点S3中的Disk1,1块校验块依次存储在序号为0对应映射的磁盘,依次为存储节点S1中的Disk1。
在存储完待存储数据R之后,在读取该数据R时,具体步骤为:
获取待读取数据R的桶名和对象名,并对桶名和对象名进行哈希计算,得到哈希结果,并将哈希结果除以30并取余,并将取余结果确定为运算结果,假设该运算结果为10,那么,将该10作为存储待读取数据R的首个PN,查找以序号为10为首的PN对应的PS,即为表8中序号为10、20、0对应的PN所组成的PS。从存储节点中获取所述待读取PS中各PN对应存储介质中存储的各数据块。
依据该PS中各PN与存储节点中各存储介质的映射关系,从存储节点中获取该PS中各PN对应存储介质中存储的各数据块。在读取该数据块之后,需要检测获取的各数据块的数量是否等于2,若低于2,则继续从存储节点中获取该PS中各PN对应存储介质中存储的各校验块,并利用校验块,将已获取的各数据块还原成2块数据块。
至此,完成实施例的描述。
下面对本申请提供的装置进行描述:
参见图4,图4为本申请提供的一种数据保护存储装置400的结构示意图。该装置包括:
存储节点获取单元401,用于已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P;其中,所述K大于或等于第一设定值,所述第一设定值为N与M的比值向上取整后与1之和,N大于或等于M,每一存储节点包含的存储介质数量大于或等于M;
定位节点分布单元402,用于按照均匀分布存储数据的原则建立映射表,所述映射表包括P个定位节点PN与K个存储节点上的存储介质之间的映射关系;
数据块切分单元403,用于将第一待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块;
确定单元404,用于依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;
存储单元405,用于依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
作为一个实施例,所述P靠近2的幂次方且为第二设定值的整数倍,所述第二设定值为N和M之和;所述定位节点分布单元具体用于:
按照第一预设方式将P个PN映射在每一存储节点包含的各存储介质中,其中,所述第一预设方式为:将所述第二设定值个PN构成一组定位条带组PSG,在所述PSG中相邻PN序号的差值为所述P与所述第二设定值的比值,且每一PSG包含所述第二设定值个定位条带PS,PS是所述第二设定值个PN进行排序的序列,各PS为首的PN均不同,同一组PSG中的PN分布在不同存储节点中或同一个存储节点的不同存储介质中。
作为一个实施例,所述确定单元404具体用于:
对第一待存储数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待存储PN;
查找首位为所述待存储PN的目标PS,并将所述目标PS中包含的各PN确定为用于存储所述第一待存储数据的各数据块和各校验块对应的目标PN;
所述存储单元405具体用于:
按照PN在所述目标PS排序的先后顺序,将所述N块数据块和所述M块校验块依次存储在所述PS包含的各PN对应的存储介质中。
作为一个实施例,
所述对第一待存储数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待存储PN,包括:
对第一待存储数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果;
将所述哈希结果除以P并取余,并将取余结果确定为用于存储数据块的待存储PN的序号。
作为一个实施例,该装置进一步包括:
获取单元,用于获取待读取数据的对象名和桶名;
运算单元,用于对所述桶名和对象名进行运算处理,并获得序号为运算处理结果的待读取PN;
查找单元,用于查找首位为所述待读取PN的目标PS;
读取单元,用于从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的各数据块。
作为一个实施例,所述运算单元具体用于:
对所述待读取数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果;
将所述哈希结果除以P并取余,并将取余结果确定为运算结果。
作为一个实施例,该装置还包括:
检测单元,用于检测获取的各数据块的数量是否等于N,若不等于,则从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的校验块,并利用所述校验块,将已获取的各数据块还原成N块数据块。
作为一个实施例,该装置还进一步包括存储数据单元,该存储数据单元具体用于:
将第二待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块,其中,N大于或等于M;
依据N和M确定用于存储所述第二待存储数据的存储节点的数量K;
依据已确定的存储节点的数量K确定出按照均匀分布存储数据原则已建立的映射表;
依据所述第二待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;
依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
至此,完成图4示的描述。
由此可见,在本申请实施例的技术方案中,该装置依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P,K大于或等于N与M的比值向上取整后与1之和,并按照均匀分布存储数据的原则建立用于表示PN与K个存储节点上的存储介质之间映射关系的映射表,以将PN映射于K个存储节点对应的存储介质中,在存储数据时,利用待存储数据对应的桶名和对象名,确定出用于存储该待存储数据的目标PN,并依据目标PN与存储介质的映射关系,对该待存储数据进行存储。可见,该方法存储待存储数据所需要的存储节点数量只要为N与M的比值向上取整后与1之和,便可支持任意M个存储介质故障而不影响对象数据读写,而这远远小于现有技术中所需存储节点数至少为N与M之和,可见,应用本实施例提供的技术方案能够减少存储节点数量,降低成本。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本申请实施例提供的电子设备,从硬件层面而言,硬件架构示意图可以参见图5所示。包括:机器可读存储介质和处理器,其中:所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述示例公开的数据保护存储。
本申请实施例提供的机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述示例公开的数据保护存储。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种数据保护存储方法,其特征在于,所述方法包括:
依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P;其中,所述K大于或等于第一设定值,所述第一设定值为N与M的比值向上取整后与1之和,N大于或等于M,每一存储节点包含的存储介质数量大于或等于M;
按照均匀分布存储数据的原则建立映射表,所述映射表包括P个定位节点PN与K个存储节点上的存储介质之间的映射关系;
将第一待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块;
依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;
依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
2.根据权利要求1所述的方法,其特征在于,使用EC策略将待存储数据切成N块数据块和M块校验块,依据存储节点K>=N/M+1,N/M经过向上取整后与1之和计算得知存储节点,每个存储节点有若干块存储介质;按照接近2的幂次方,且能被第二设定值整除的数字作为PN总数量的选择方式,选择P的数量,所述第二设定值为N和M之和;所述按照均匀分布存储数据的原则建立映射表,包括:
按照第一预设方式将P个PN映射在每一存储节点包含的各存储介质中,其中,所述第一预设方式为:将所述第二设定值个PN构成一组定位条带组PSG,在所述PSG中相邻PN序号的差值为所述P与所述第二设定值的比值,且每一PSG包含所述第二设定值个定位条带PS,PS是所述第二设定值个PN进行排序的序列,各PS为首的PN均不同,同一组PSG中的PN分布在不同存储节点中或同一个存储节点的不同存储介质中。
3.根据权利要求2所述的方法,其特征在于,所述依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN,包括:
对第一待存储数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待存储PN;
查找首位为所述待存储PN的目标PS,并将所述目标PS中包含的各PN确定为用于存储所述第一待存储数据的各数据块和各校验块对应的目标PN;
所述依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质,包括:
按照PN在所述目标PS排序的先后顺序,将所述N块数据块和所述M块校验块依次存储在所述PS包含的各PN对应的存储介质中。
4.根据权利要求3所述的方法,其特征在于,所述对第一待存储数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待存储PN,包括:
对第一待存储数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果;
将所述哈希结果除以P并取余,并将取余结果确定为用于存储数据块的待存储PN的序号。
5.根据权利要求2所述的方法,其特征在于,该方法进一步包括:
获取待读取数据对应的桶名和对象名;
对所述待读取数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待读取PN;
查找首位为所述待读取PN的目标PS;
从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的各数据块。
6.根据权利要求5所述的方法,其特征在于,所述对所述待读取数据对应的桶名和对象名进行运算处理,并获得序号为运算处理结果的待读取PN,包括:
对所述待读取数据对应的桶名和对象名进行哈希计算并处理,得到哈希结果;
将所述哈希结果除以P并取余,并将取余结果确定为运算结果。
7.根据权利要求6所述的方法,其特征在于,在所述从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的各数据块之后,包括:
检测获取的各数据块的数量是否等于N,若不等于,则从所述存储节点中获取所述目标PS中各PN对应存储介质中存储的校验块,并利用所述校验块,将已获取的各数据块还原成N块数据块。
8.一种数据保护存储装置,其特征在于,所述装置包括:
存储节点获取单元,用于依据已设定的对待存储数据进行划分的数据块数量N和校验块数据M,确定用于存储待存储数据的存储节点的数量K和定位节点PN的数量P;其中,所述K大于或等于第一设定值,所述第一设定值为N与M的比值向上取整后与1之和,N大于或等于M,每一存储节点包含的存储介质数量大于或等于M;
定位节点分布单元,用于按照均匀分布存储数据的原则建立映射表,所述映射表包括P个定位节点PN与K个存储节点上的存储介质之间的映射关系;
数据块切分单元,用于将第一待存储数据划分成N块数据块,并依据所述N块数据块计算出对应的M块校验块;
确定单元,用于依据第一待存储数据对应的桶名和对象名确定出与所述桶名和对象名对应的目标PN;
存储单元,用于依据所述目标PN在映射表中与存储介质的映射关系,将所述N块数据块和所述M块校验块存储至所述目标PN对应的存储介质。
9.根据权利要求8所述的装置,其特征在于,使用EC策略将待存储数据切成N块数据块和M块校验块,依据存储节点K>=N/M+1,N/M经过向上取整后与1之和计算得知存储节点,每个存储节点有若干块存储介质;按照接近2的幂次方,且能被第二设定值整除的数字作为PN总数量的选择方式,选择P的数量,所述第二设定值为N和M之和;所述定位节点分布单元具体用于:
按照第一预设方式将P个PN映射在每一存储节点包含的各存储介质中,其中,所述第一预设方式为:将所述第二设定值个PN构成一组定位条带组PSG,在所述PSG中相邻PN序号的差值为所述P与所述第二设定值的比值,且每一PSG包含所述第二设定值个定位条带PS,PS是所述第二设定值个PN进行排序的序列,各PS为首的PN均不同,同一组PSG中的PN分布在不同存储节点中或同一个存储节点的不同存储介质中。
10.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-7任一所述的方法步骤。
CN202110863883.9A 2021-07-29 2021-07-29 一种数据保护存储方法、装置及设备 Active CN113590042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110863883.9A CN113590042B (zh) 2021-07-29 2021-07-29 一种数据保护存储方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110863883.9A CN113590042B (zh) 2021-07-29 2021-07-29 一种数据保护存储方法、装置及设备

Publications (2)

Publication Number Publication Date
CN113590042A CN113590042A (zh) 2021-11-02
CN113590042B true CN113590042B (zh) 2024-03-19

Family

ID=78251849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110863883.9A Active CN113590042B (zh) 2021-07-29 2021-07-29 一种数据保护存储方法、装置及设备

Country Status (1)

Country Link
CN (1) CN113590042B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153651B (zh) * 2022-02-09 2022-04-29 苏州浪潮智能科技有限公司 一种数据编码方法、装置、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203439A (ja) * 2011-03-23 2012-10-22 Sony Corp 情報処理装置および情報処理方法、記録媒体、並びにプログラム
CN103246484A (zh) * 2013-05-03 2013-08-14 华为技术有限公司 一种数据存储方法、装置及系统
CN103810244A (zh) * 2013-12-09 2014-05-21 北京理工大学 一种基于数据分布的分布式数据存储系统的扩容方法
CN104572842A (zh) * 2014-12-04 2015-04-29 长沙数析信息科技有限公司 一种分布式文件系统中的条带化卷扩展数据迁移方法
CN107046722A (zh) * 2016-02-05 2017-08-15 中兴通讯股份有限公司 调度定时间隔的确定方法及装置
JP2017174302A (ja) * 2016-03-25 2017-09-28 日本電気株式会社 ボリューム管理装置、ボリューム管理方法、論理ブロック番号の割り当て方法、およびプログラム
WO2020048488A1 (zh) * 2018-09-04 2020-03-12 杭州海康威视系统技术有限公司 一种数据存储方法及存储装置
CN110928497A (zh) * 2019-11-15 2020-03-27 浪潮电子信息产业股份有限公司 一种元数据处理方法、装置、设备及可读存储介质
CN111782439A (zh) * 2020-07-09 2020-10-16 河北工业大学 一种基于水平编码的双盘循环校验方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203439A (ja) * 2011-03-23 2012-10-22 Sony Corp 情報処理装置および情報処理方法、記録媒体、並びにプログラム
CN103246484A (zh) * 2013-05-03 2013-08-14 华为技术有限公司 一种数据存储方法、装置及系统
CN103810244A (zh) * 2013-12-09 2014-05-21 北京理工大学 一种基于数据分布的分布式数据存储系统的扩容方法
CN104572842A (zh) * 2014-12-04 2015-04-29 长沙数析信息科技有限公司 一种分布式文件系统中的条带化卷扩展数据迁移方法
CN107046722A (zh) * 2016-02-05 2017-08-15 中兴通讯股份有限公司 调度定时间隔的确定方法及装置
JP2017174302A (ja) * 2016-03-25 2017-09-28 日本電気株式会社 ボリューム管理装置、ボリューム管理方法、論理ブロック番号の割り当て方法、およびプログラム
WO2020048488A1 (zh) * 2018-09-04 2020-03-12 杭州海康威视系统技术有限公司 一种数据存储方法及存储装置
CN110928497A (zh) * 2019-11-15 2020-03-27 浪潮电子信息产业股份有限公司 一种元数据处理方法、装置、设备及可读存储介质
CN111782439A (zh) * 2020-07-09 2020-10-16 河北工业大学 一种基于水平编码的双盘循环校验方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于定位目录的元数据管理方法;穆飞;薛巍;舒继武;郑纬民;;清华大学学报(自然科学版)网络.预览(08);全文 *
闪存数据管理中闪存转换层映射策略研究;王丽娜;王强;;中国新通信(13);全文 *

Also Published As

Publication number Publication date
CN113590042A (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
EP3238100B1 (en) Efficient determination of join paths via cardinality estimation
CN106407207B (zh) 一种实时新增数据更新方法和装置
CN110262773B (zh) 一种计算机数据处理方法及装置
CN111310784B (zh) 资源数据的处理方法及装置
CN113590042B (zh) 一种数据保护存储方法、装置及设备
CN105487823A (zh) 一种数据迁移的方法及装置
CN103246484B (zh) 一种数据存储方法、装置及系统
CN105677755A (zh) 一种处理图数据的方法及装置
CN113032007A (zh) 一种数据处理方法及装置
JP2020107016A (ja) 類似度判定装置および異常検出装置
CN113961145A (zh) 数据迁移方法及装置
CN104461706A (zh) 一种将共享全局变量共享的方法和多处理装置
US20200336157A1 (en) Systematic and xor-based coding technique for distributed storage systems
CN113590041B (zh) 一种数据保护存储方法、装置及设备
CN111431977B (zh) 区块链系统中作恶节点的处理方法及系统
CN101571820A (zh) 一种冗余保护方法、装置及系统
CN113590041A (zh) 一种数据保护存储方法、装置及设备
CN106445960A (zh) 一种数据聚类方法和装置
US20200333985A1 (en) Datafall: a policy-driven algorithm for decentralized placement and reorganization of replicated data
CN112463050A (zh) 一种存储系统扩容方法、装置、设备及机器可读存储介质
CN104298614A (zh) 数据块在存储设备中存储方法和存储设备
CN105159619B (zh) 一种虚拟内存的扩展方法及装置
CN109460185B (zh) 组建分块组ckg的方法、装置、虚拟存储池及存储介质
CN102193942B (zh) 数据块的查找方法和装置
CN107168649B (zh) 一种分布式存储系统中数据分布的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant