CN114003174A - 一种纠删码存储方法、系统及电子设备 - Google Patents
一种纠删码存储方法、系统及电子设备 Download PDFInfo
- Publication number
- CN114003174A CN114003174A CN202111283184.3A CN202111283184A CN114003174A CN 114003174 A CN114003174 A CN 114003174A CN 202111283184 A CN202111283184 A CN 202111283184A CN 114003174 A CN114003174 A CN 114003174A
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- stored
- storing
- data block
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种纠删码存储方法、系统及电子设备,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种纠删码存储方法、系统及电子设备。
背景技术
纠删码在分布式存储系统中被广泛应用,其是将待存储的数据分成不同的数据块,并与校验块同时分别存储于不同的节点中,以便于当有数据块出现异常时,能够基于校验块与未出现异常的数据块共同确定出现异常的数据块中的数据。
然而,随着数据量的增加,数据的存储需求也越来越大,当集群节点扩展时,为了降低纠删码的存储成本,就需要对纠删码的存储方式进行调整。
发明内容
有鉴于此,本申请提供一种纠删码存储方法、系统及电子设备,其具体方案如下:
一种纠删码存储方法,包括:
基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,所述第三数据的数据块包括:所述第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
获得待存储的第二原始数据;
将基于所述第二原始数据确定的至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,删除所述至少一个虚拟数据块;
基于所述第一数量的第一纠删数据块、第二数量的第一校验块及所述至少一个第二纠删数据块确定第二数量的第二校验块,将所述第二数量的第一校验块更新为所述第二数量的第二校验块。
进一步的,所述将第三数量的数据块分别存储至不同的存储节点,包括:
将所述第一数量的第一纠删数据块及所述第二数量的第一校验块分别存储至不同的集群节点,将所述至少一个虚拟数据块分别存储至不同的虚拟节点。
所述将所述至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,包括:
在获得第二原始数据时,确定当前集群节点的数量大于获得第一原始数据时集群节点的数量,确定新增的扩展节点;
将基于所述第二原始数据确定的至少一个第二纠删数据块存储至所述扩展节点,删除与所述扩展节点数量匹配的所述虚拟节点。
进一步的,所述将第三数量的数据块分别存储至不同的存储节点,包括:
将所述第一数量的第一纠删数据块及所述第二数量的第一校验块分别存储至不同的第一集群节点,将所述至少一个虚拟数据块分别存储至至少一个第二集群节点;
其中,所述第二集群节点为实体存储节点或虚拟节点。
进一步的,还包括:
获得待存储的第三原始数据;
若确定当前集群节点的数量小于获得第二原始数据时集群节点的数量,将基于所述第三原始数据确定的第三纠删数据块及第三校验块分别存储至不同的集群节点,将与所述第三原始数据相关的至少一个虚拟数据块分别存储至不同的虚拟节点。
进一步的,还包括:
接收第一集群节点的删除指令;
基于所述删除指令确定待删除的第一集群节点中存储的不少于一个第一数据块,将所述不少于一个第一数据块分别存储至集群中除所述第一集群节点外的其他集群节点中;
更新所述集群中除所述第一集群节点外的其他集群节点中存储的校验块。
进一步的,所述将第三数量的数据块分别存储至不同的存储节点,包括:
将所述第三数量的数据块分别存储至各存储节点的第一条带;
将基于待存储的第四原始数据确定的第三数量的数据块分别存储至各存储节点的第二条带,其中,所述基于待存储的第四原始数据确定的第三数量的数据块包括:与第四原始数据相关的第一数量的第一纠删数据块,与第四原始数据相关的第二数量的第一校验块以及至少一个虚拟数据块。
进一步的,所述将所述至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,包括:
将所述至少一个第二纠删数据块依次存储至用于存储所述虚拟数据块的存储节点中不同条带对应的位置处。
进一步的,所述将所述至少一个第二纠删数据块依次存储至用于存储所述虚拟数据块的存储节点中不同条带对应的位置处,包括:
若所述第二纠删数据块的数量大于存储有数据块的条带的数量,将与存储有数据块的条带的数量相同数量的第二纠删数据块存储至用于存储所述虚拟数据块的存储节点中不同条带的位置处;
将未存储至用于存储所述虚拟数据块的存储节点中的第二纠删数据块依次存储至各存储节点中未进行数据块存储的第三条带中;
基于存储至所述第三条带中的数据块生成校验块,存储至第三条带中。
一种电子设备,包括:
处理器,用于基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,所述第三数量的数据块包括:所述第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;获得待存储的第二原始数据,将基于所述第二原始数据确定的至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,删除所述至少一个虚拟数据块;基于所述第一数量的第一纠删数据块、第二数量的第一校验块及所述至少一个第二纠删数据块确定第二数量的第二校验块,将所述第二数量的第一校验块更新为所述第二数量的第二校验块;
存储器,用于存储所述处理器执行上述处理过程的程序。
一种纠删码存储系统,包括:
第一存储单元,用于基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,所述第三数据的数据块包括:所述第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
获得单元,用于获得待存储的第二原始数据;
第二存储单元,用于将基于第二原始数据确定的至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,删除所述至少一个虚拟数据块;
确定单元,用于基于所述第一数量的第一纠删数据块、第二数量的第一校验块及所述至少一个第二纠删数据块确定第二数量的第二校验块,将所述第二数量的第一校验块更新为所述第二数量的第二校验块。
从上述技术方案可以看出,本申请公开的纠删码存储方法、系统及电子设备,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。本方案中通过虚拟数据块、校验块及纠删数据块对某一个数据的相关数据块进行存储,并在有新的待存储的数据后,将该新的待存储的数据对应的第二纠删数据块存储至虚拟数据块的存储节点中,从而实现通过第二纠删数据块替换虚拟数据块,只需要更新校验块即可,无需再重新为第二纠删数据块设置校验块,实现了对校验块的复用,节约了存储成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种纠删码存储方法的流程图;
图2为现有技术中的一种分布式存储系统存储数据块的示意图;
图3为本申请实施例公开的一种分布式存储系统存储数据块的示意图;
图4为本申请实施例公开的一种分布式存储系统存储数据块的示意图;
图5为本申请实施例公开的一种纠删码存储方法的流程图;
图6为本申请实施例公开的一种分布式存储系统存储数据块的示意图;
图7为本申请实施例公开的一种纠删码存储方法的流程图;
图8为本申请实施例公开的一种纠删码存储方法的流程图;
图9为本申请实施例公开的一种电子设备的结构示意图;
图10为本申请实施例公开的一种纠删码存储系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请公开了一种纠删码存储方法,其流程图如图1所示,包括:
步骤S11、基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数据的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
步骤S12、获得待存储的第二原始数据;
步骤S13、将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块;
步骤S14、基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。
随着分布式系统中数据量的增加,数据的存储需求也越来越大,目前,通常采用静态纠删码的方式进行存储,但是,当集群扩展时,会增加数据的存储成本。
其中,静态纠删码存储是在集群扩展时,保持纠删码配置不变,当有数据待存储时,直接将该数据对应的纠删数据块及生成的校验块进行存储即可。
例如:第一存储数据的纠删数据块包括D1和D2,第二存储数据的纠删数据块包括D3和D4,第一存储数据的纠删数据块对应的校验块为P1和P2,第二存储数据的纠删数据块对应的校验块为P3和P4。当对第一存储数据的相关数据块及第二存储数据的相关数据块进行存储时,如图2所示,将第一存储数据的第一纠删数据块D1存储至节点1,将第一存储数据的第二纠删数据块D2存储至节点2,将第一存储数据的第一校验块P1存储至节点3,将第一存储数据的第二校验块P2存储至节点4;将第二存储数据的第一纠删数据块D3存储至节点1,将第二存储数据的第二纠删数据块D4存储至节点2,将第二存储数据的第一校验块P3存储至节点3,将第二存储数据的第二校验块P4存储至节点4。
即在对第一存储数据的相关数据块及第二存储数据的相关数据块进行存储时,是将相应的数据块依次存入相应的节点,这就使得在以图2为例进行存储时,其存储成本为:(k+m)/k=(2+2)2=2,其中,k为纠删码数据块的数量,m为校验块的数量,k+m即存储的节点数量,即存储成本为2倍。
本方案中,当对数据进行存储时,为每一个数据生成一个单独的虚拟数据块,作为纠删数据块中的一个,并将该纠删数据块也存储在一个存储节点上,以便于当有新的数据待存储时,将该新的数据的纠删数据块替换该虚拟数据块存储在该存储节点上,并对校验块进行更新,以使得校验块是基于之前已存储的纠删数据块以及新存入的纠删数据块共同得到的,从而实现对校验块的存储节点的复用。
具体的,对第一原始数据进行存储时,首先生成该第一原始数据的第一纠删数据块,以及第一校验块,第一纠删数据块共第一数量个,第一校验块共第二数量个,当第一数量个第一纠删数据块中存在一个或几个数据块出现异常无法基于所有的第一纠删数据块得到完整的第一原始数据时,可采用第一校验块与未出现异常的第一纠删数据块共同确定第一原始数据,其中,出现异常的数据块的数量小于或等于第二数量。
在存储时,可直接将第一数量的第一纠删数据块及第二数量的第一校验块分别存储在不同的存储节点中,如:第一数量为3个,第二数量为2个,则将第一个第一纠删数据块存储在第一个节点,将第二个第一纠删数据块存储在第二个节点,将第三个第一纠删数据块存储在第三个节点,将第一个第一校验块存储在第四个节点,将第二个第一校验块存储在第五个节点。
另外,在对待存储的第一原始数据进行存储时,还可以增加虚拟数据块,将虚拟数据块也存储在独立的节点上,通过虚拟数据块占用存储节点的位置,以便于在有新的数据块需要存储时,可以直接将该虚拟数据块替换该虚拟数据块,并更新校验块,从而节省为新的数据块的校验块进行存储的存储节点。
其中,虚拟数据块可以为0,当基于虚拟数据块、第一纠删数据块确定第一校验块时,虚拟数据块并不会对最终生成的第一校验块的数据造成影响,即基于数值为0的虚拟数据块及第一纠删数据块确定的第一校验块,与,基于第一纠删数据块确定的第一校验块是相同的。
当有第二原始数据待存储时,确定该第二原始数据的第二纠删数据块,将至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,同时,删除至少一个虚拟数据块。
具体的,确定虚拟数据块的数量,若第二原始数据生成的第二纠删数据块的数量不大于虚拟数据块的数量,则直接将所有的第二纠删数据块分别存储至不同的虚拟数据块的存储节点上;若第二原始数据生成的第二纠删数据块的数量大于虚拟数据块的数量,则从第二纠删数据块中选择与虚拟数据块的数量相同的数据块,将选择的数据块分别存储至不同的虚拟数据块的存储节点。
其中,能够存储第二纠删数据块的虚拟数据块的存储节点必然为实际的存储节点,其可以为扩展节点后的存储节点。
例如:存储第一原始数据时,第一原始数据包括第一纠删数据块D1和D2,第一校验块P1和P2,在存储时,将D1存储在节点1,将D2存储在节点2,将P1存储在节点3,将P2存储在节点4,另外,还可设置虚拟数据块,将其虚拟存储在节点5,其中,该虚拟数据块为实际并不存在的数据块,则其存储也为实际并不存在的存储,只是为了方便解释及说明在此增加虚拟数据块及节点5,如图3所示,在图中虚拟数据块用方框表示。
在存储第二原始数据之前,上述各存储节点中可以存储多个第一原始数据,以存储2个原始数据为例进行说明,如图3所示,包括第一个第一原始数据的的相关数据块D1、D2、P1及P2,还包括第二个第一原始数据,即第四原始数据,其中,第二个第一原始数据包括:第一纠删数据块D3和D4,第一校验块P3和P4,将D1和D3存储在节点1,将D2和D4存储在节点2,将P1和P3存储在节点3,将P2和P4存储在节点4,其中,每一个第一原始数据的相关数据块中均还包括至少一个虚拟数据块,将虚拟数据块虚拟存储在节点5;
当第二原始数据待存储时,首先确定第二原始数据的第二纠删数据块,即确定D5和D6,在对D5和D6进行存储时,由于存储有多个第一原始数据的多个节点中至少包括用于存储2个虚拟数据块的存储节点,即节点5,只要节点5为实际的节点,而非虚拟节点,就可以优先将第二纠删数据块存储在节点5中,如图4所示,将第二纠删数据块D5存储至节点5中的第一条带,即第一个第一原始数据的虚拟数据块存储的位置处,将第二纠删数据块D6存储至节点5中的第二条带,即第二个第一原始数据的虚拟数据块存储的位置处,这就无需使第二原始数据的相关数据块再依次存储至节点1-节点4的相关位置处。
另外,由于将第二纠删数据块D5存储至第一个第一原始数据的虚拟数据块的存储位置,则第二纠删数据块D5需要与第一纠删数据块D1和第一纠删数据块D2共用相同的两个校验块,则需要对这两个校验块进行更新,即根据第一纠删数据块D1、第一纠删数据块D2及第二纠删数据块D5共同生成新的第一校验块P1’及新的第一校验块P2’,以使得当第一条带中的某一个或两个数据块出现异常时,基于未出现异常的数据块及校验块能够确定出现异常的数据块的正常数据,保证数据的安全性;
同时,将第二纠删数据块D6存储至第二个第一原始数据的虚拟数据块的存储位置,则第二纠删数据块D6需要与第一纠删数据块D3和第一纠删数据块D4共用相同的两个校验块,则需要对着两个校验块进行更新,即根据第一纠删数据块D3、第一纠删数据块D4及第二纠删数据块D6共同生成新的第一校验块P3’及新的第一校验块P4’,以使得当第二条带中的某一个或两个数据块出现异常时,基于未出现异常的数据块及校验块能够确定出现异常的数据块的正常数据,保证数据的安全性。
基于此,在存储第一原始数据时,其存储成本为:(k+m)/k=(2+2)2=2,则在通过本方案存储第二原始数据后,其存储成本为:(k+m)/k=(3+2)3=1.67,其存储成本降低,实现了动态纠删码存储,即校验块能够基于存储数据量的变化而变化。
另外,在存储第二原始数据时,对第一校验块进行更新,得到第二校验块,其可以为:按照上述举例所示,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块共同确定第二数量的第二校验块,也可以为:由于第二数量的第一校验块是基于第一数量的第一纠删数据块得到的,则在确定第二校验块时,可以仅基于第二数量的第一校验块及至少一个第二纠删数据块确定,而无需重新获取第一数量的第一纠删数据块。
本实施例公开的纠删码存储方法,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。本方案中通过虚拟数据块、校验块及纠删数据块对某一个数据的相关数据块进行存储,并在有新的待存储的数据后,将该新的待存储的数据对应的第二纠删数据块存储至虚拟数据块的存储节点中,从而实现通过第二纠删数据块替换虚拟数据块,只需要更新校验块即可,无需再重新为第二纠删数据块设置校验块,实现了对校验块的复用,节约了存储成本。
本实施例公开了一种纠删码存储方法,其流程图如图5所示,包括:
步骤S51、基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块;
步骤S52、将第一数量的第一纠删数据块及第二数量的第一校验块分别存储至不同的集群节点,将至少一个虚拟数据块分别存储至不同的虚拟节点;
步骤S53、获得待存储的第二原始数据,确定当前集群节点的数量大于获得第一原始数据时集群节点的数量,确定新增的扩展节点;
步骤S54、将基于第二原始数据确定的至少一个第二纠删数据块存储至扩展节点,删除与扩展节点数量匹配的虚拟节点;
步骤S55、基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。
对第三数量的数据块进行存储,其中,第三数量的数据块至少包括:第一数量的第一纠删数据块、第二数量的第一校验块以及至少一个虚拟数据块。
在对第三数据的数据块进行存储,其通常为将第一数量的第一纠删数据块及第二数量的第一校验块分别存储至不同的第一集群节点,其中,第一集群节点为实体存储节点,即第一集群节点是实际存在的集群节点;将至少一个虚拟数据块分别存储至至少一个第二集群节点,其中,第二集群节点可以为实体存储节点,也可以为虚拟节点。
具体的,当第二集群节点为实体存储节点时,其实际是在存储第一原始数据时,分布式存储系统中已经有扩展节点用于存储数据了,只是基于第一原始数据生成的第一纠删数据块及第一校验块并未存储在扩展节点,而是存储在原有的节点中,例如:原有的存储节点共有4个,之后分布式存储系统中增加了1个扩展节点,在存储第一原始数据时,将第一原始数据的第一纠删数据块及第一校验块分别存储在原有的4个存储节点中,设置一个虚拟数据块,将其存储在该扩展节点中,那么,当有第二原始数据需要进行存储时,直接将第二原始数据的第二纠删数据块存储在扩展节点中,替换虚拟数据块;
另外,若第二集群节点为虚拟节点,则第二集群节点并非实际存在的节点,至少在存储第一原始数据时,第二集群节点还是非实际存在的节点,将实际的纠删数据块及校验块存储在实体节点中,将虚拟数据块存储在虚拟节点中,并不会对存储的纠删数据块及校验块造成任何影响。
当有第二原始数据待存储时,首先确定当前的分布式存储系统中是否有新增的扩展节点,即系统中当前的存储节点的数量与存储第一原始数据时的存储节点的数量之间的差值是否大于0,若确定当前的存储节点的数量与存储第一原始数据时系统中存储节点的数量之间的差值等于0,则表明在存储第一原始数据后,系统中并未新增扩展节点,此时,待存储的第二原始数据的相关数据块只能存储在原有的存储节点中;若确定当前的存储节点的数量与存储第一原始数据时系统中存储节点的数量之间的差值大于0,则表明在存储第一原始数据之后,系统中有新增的扩展节点,此时,可将第二原始数据的相关数据块存储在扩展节点中。
具体的,若在存储第二原始数据时,确定存在新增的扩展节点,则在存储第一原始数据时,其实际为:将第一原始数据的第一纠删数据块及第一校验块分别存储在其实际存在的集群节点中,并设置至少一个虚拟数据块,分别虚拟存储在至少一个虚拟节点中;当分布式存储系统中有新增的扩展节点时,则将扩展节点替换虚拟节点,在有待存储的第二原始数据时,将第二原始数据的第二纠删数据块存储在扩展节点中,从而实现对虚拟节点及虚拟数据块的替换,通过同一条带中的不同节点实现对不同次数存储的数据块共用相同的校验块,避免了为每一次存储的数据都单独设置校验块,而导致的占用存储空间,提高存储成本的问题。
另外,当某次新增的扩展节点数量较多,扩展节点的数量大于或等于待存储的第二原始数据的第二纠删数据块的数量时,则在对第二纠删数据块进行存储时,优先将第二纠删数据块存储在第一条带中,当第一条带占满后,若有其他新增的原始数据,才会占用各存储节点的第二条带中的存储位置。
例如:以图6所示为例进行说明,在有新增扩展节点之前,分布式存储系统中仅包括节点1、节点2、节点3及节点4,上述4个节点的第一条带及第二条带均已占满;当新增的扩展节点为2个时,有待存储的第二原始数据,则优先将第二原始数据的第二纠删数据块D5存储至扩展节点1的第一条带位置处,将第二原始数据的第二纠删数据块D6存储至扩展节点2的第一条带位置处,而扩展节点1及扩展节点2的第二条带位置处仍然为虚拟数据块,基于D1、D2、D5及D6更新校验块P1及P2为P1’及P2’。
优先占用第一条带中的存储位置,这就使得在对校验块进行更新时,若新增的存储的数据块较少,则可以仅对第一条带中的校验块进行更新,无需对多个条带中的校验块均进行更新,减少系统的数据处理量。
本实施例公开的纠删码存储方法,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。本方案中通过虚拟数据块、校验块及纠删数据块对某一个数据的相关数据块进行存储,并在有新的待存储的数据后,将该新的待存储的数据对应的第二纠删数据块存储至虚拟数据块的存储节点中,从而实现通过第二纠删数据块替换虚拟数据块,只需要更新校验块即可,无需再重新为第二纠删数据块设置校验块,实现了对校验块的复用,节约了存储成本。
本实施例公开了一种纠删码存储方法,其流程图如图7所示,包括:
步骤S71、基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数据的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
步骤S72、获得待存储的第二原始数据;
步骤S73、将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块;
步骤S74、基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块;
步骤S75、获得待存储的第三原始数据;
步骤S76、若确定当前集群节点的数量小于获得第二原始数据时集群节点的数量,将基于第三原始数据确定的第三纠删数据块及第三校验块分别存储至不同的集群节点,将与第三原始数据相关的至少一个虚拟数据块分别存储至不同的虚拟节点。
在获得待存储的第三原始数据时,首先需要确定获得第三原始数据时分布式存储系统中的当前存储节点的数量是否小于获得第二原始数据时集群节点的数量,或者,是否小于获得第一原始数据是集群节点的数量。
若确定获得待存储的第三原始数据时,系统中的存储节点的数量与获得第二原始数据时集群节点的数量相同,则按照存储第二原始数据的相关数据块的方式对第三原始数据的相关数据块进行存储;
若确定获得待存储的第三原始数据时,系统中的存储节点的数量大于获得第二原始数据时集群节点的数量,则同样可按照存储第二原始数据的相关数据块的方式对第三原始数据的相关数据块进行存储;
若确定获得待存储的第三原始数据时,系统中的存储节点的数量小于获得第二原始数据时集群节点的数量,则可将第三原始数据的相关数据块分别存储至现有的集群节点中,并设置虚拟数据块及虚拟节点,将虚拟数据块存储至虚拟节点,以便于当有新增的扩展节点时,通过新增的扩展节点替换虚拟节点,当继续有其他数据块待存储时,将其他数据块优先存储至新增的扩展节点中。
若获得待存储的第三原始数据时,系统中的存储节点的数量大于存储第一原始数据时集群节点的数量,则按照第二原始数据的相关数据块的存储方式对第三原始数据的相关数据块进行存储;若等于存储第一原始数据时集群节点的数量,则按照第一原始数据的相关数据块的存储方式对第三原始数据的相关数据块进行存储;若小于存储第一原始数据时集群节点的数量,则将第三原始数据的相关数据块分别存储至现有的集群节点中。
进一步的,还包括:
接收第一集群节点的删除指令;基于删除指令确定待删除的第一集群节点中存储的不少于一个第一数据块,将不少于一个第一数据块分贝存储至集群中除第一集群节点外的其他集群节点中;同时更新集群中除第一集群节点外的其他集群节点中存储的校验块。
具体的,当接收到删除指令时,表明分布式存储系统中有集群节点待删除,则需要确定该待删除的集群节点中是否存储有数据块,若待删除的集群节点中未存储数据块,则直接删除该集群节点即可;
若待删除的集群节点中存储有数据块,则需要首先将其存储的数据块转移至无需删除的集群节点中,即将待删除的集群节点中存储的数据块转存至分布式存储系统中除待删除的集群节点外的其他集群节点中,在转存之后,由于分布式存储系统中各存储节点存储的数据结构发生变化,则需要对各存储节点中存储的校验块进行更新,如:分布式存储系统中各存储节点的第一条带中减少了一个存储位置,即减少了一个数据块,则基于第一条带中现有的纠删数据块更新校验块;若分布式存储系统中的第三条带中增加了一个数据块,则需要基于第三条带中现有的纠删数据块更新校验块,从而保证基于每一个条带中的至少部分数据能够得到对应的原始数据。
本实施例公开的纠删码存储方法,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。本方案中通过虚拟数据块、校验块及纠删数据块对某一个数据的相关数据块进行存储,并在有新的待存储的数据后,将该新的待存储的数据对应的第二纠删数据块存储至虚拟数据块的存储节点中,从而实现通过第二纠删数据块替换虚拟数据块,只需要更新校验块即可,无需再重新为第二纠删数据块设置校验块,实现了对校验块的复用,节约了存储成本。
本实施例公开了一种纠删码存储方法,其流程图如图8所示,包括:
步骤S81、基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数据的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
步骤S82、获得待存储的第二原始数据;
步骤S83、将基于第二原始数据确定的至少一个第二纠删数据块依次存储至用于存储虚拟数据块的存储节点中不同条带对应的位置处;
步骤S84、基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。
在对第二原始数据的至少一个第二纠删数据块进行存储时,将其依次存储至用于存储虚拟数据块的存储节点中不同条带对应的位置处,即若存储虚拟数据块的节点有1个,且该节点中有2个条带对应的位置处用于存储虚拟数据块,则从所有的第二纠删数据块中确定2个第二纠删数据块,将确定的2个第二纠删数据块分别替换虚拟数据块,存储至2个条带在该节点对应的2个位置处;
或者,若存储虚拟数据块的节点有2个,2个节点中分别有2个条带对应的位置处存储有虚拟数据块,若第二纠删数据块的数量为至少4个,即第二纠删数据块的数量大于存储有数据块的条带的数量,则首先从所有的第二纠删数据块中选择4个,用于替换虚拟数据块,分别存储至2个条带在2个节点对应的4个位置处;
若第二纠删数据块的数量为2个或3个,则首先从所有的第二纠删数据块中选择2个或3个,将其中2个第二纠删数据块存储至2个条带在第1个节点对应的2个位置处,之后将剩余的第3个第二纠删数据块存储至其中1个条带在第2个节点对应的1个位置处,即优先存储第一个节点,在第一个节点存储完之后再存储第二个节点。
或者,若第二纠删数据块的数量大于存储有数据块的条带的数量,将与存储有数据块的条带的数量相同数量的第二纠删数据块存储至用于存储虚拟数据块的存储节点中不同条带的位置处,将未存储至用于存储虚拟数据块的存储节点中的第二纠删数据块依次存储至各存储节点中未进行数据块存储的第三条带中,基于存储至第三条件中的数据块生成校验块,存储至第三条带中。
即若扩展节点为1个,当第二纠删数据块的数量大于存储有数据块的条带的数量时,将于条带数量相同数量的第二纠删数据块存储至不同条带中该扩展节点中的位置,而把剩余的第二纠删数据块存储至新的条带对应的存储节点中的位置。
例如:以图3为例进行说明,D1、D2、P1、P2所在的条带为第一条带,D3、D4、P3、P4所在的条带为第二条带,节点5为扩展节点,节点5中两个方框存储有虚拟数据块,当有新的原始数据待存储时,生成第二纠删数据块,若第二纠删数据块为2个,则将2个第二纠删数据块分别存储至节点5中的两个方框中;若第二纠删数据块为大于2个,则将其中2个第二纠删数据块分别存储至节点5中的两个方框中,而将剩余未存储至上述两个条带中的第二纠删数据块存储至第三条件,即除上述第一条带及第二条带外的其他未进行数据存储的条带中。
另外,若扩展节点为多个,则需要确定所有条带与所有扩展节点交叉的位置的数量,即存储有数据的条带中存在的虚拟数据块的数量,当第二纠删数据块的数量不大于虚拟数据块的数量时,将所有的第二纠删数据块存储至虚拟数据块的存储位置;当第二纠删数据块的数量大于虚拟数据块的数量时,将与虚拟数据块的数量相同数量的第二纠删数据块存储至不同条带中扩展节点中的位置,而把剩余的第二纠删数据块存储至新的条带对应的存储节点中的位置。
其中,新的条带对应的存储节点中的位置,该新的条带即在存储第二纠删数据之前,未存储数据的条带。
若新的条带中能够存储数据块的位置的数量大于剩余的第二纠删数据块的数量,则将剩余的第二纠删数据块全部存储至该新的条带中之后,该条带中的剩余位置用于存储虚拟数据块,并基于虚拟数据块及存储至该条带中的第二纠删数据块共同确定该条带中的校验块。
本实施例公开的纠删码存储方法,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。本方案中通过虚拟数据块、校验块及纠删数据块对某一个数据的相关数据块进行存储,并在有新的待存储的数据后,将该新的待存储的数据对应的第二纠删数据块存储至虚拟数据块的存储节点中,从而实现通过第二纠删数据块替换虚拟数据块,只需要更新校验块即可,无需再重新为第二纠删数据块设置校验块,实现了对校验块的复用,节约了存储成本。
本实施例公开了一种电子设备,其结构示意图如图9所示,包括:
处理器91及存储器92。
其中,处理器91用于基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块;基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块;
存储器92用于存储处理器执行上述处理过程的程序。
进一步的,处理器将第三数量的数据块分别存储至不同的存储节点,包括:
处理器将第一数量的第一纠删数据块及第二数量的第一校验块分别存储至不同的集群节点,将至少一个虚拟数据块分别存储至不同的虚拟节点。
则处理器将至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,包括:
在获得第二原始数据时,处理器确定当前集群节点的数量大于获得第一原始数据时集群节点的数量,确定新增的扩展节点;将基于第二原始数据确定的至少一个第二纠删数据块存储至扩展节点,删除与扩展节点数量匹配的虚拟节点。
进一步的,处理器将第三数量的数据块分别存储至不同的存储节点,包括:
处理器将第一数量的第一纠删数据块及第二数量的第一校验块分别存储至不同的第一集群节点,将至少一个虚拟数据块分别存储至至少一个第二集群节点;其中,第二集群节点为实体存储节点或虚拟节点。
进一步的,处理器还用于:
获得待存储的第三原始数据;若确定当前集群节点的数量小于获得第二原始数据时集群节点的数量,将基于第三原始数据确定的第三纠删数据块及第三校验块分别存储至不同的集群节点,将与第三原始数据相关的至少一个虚拟数据块分别存储至不同的虚拟节点。
进一步的,处理器还用于:
接收第一集群节点的删除指令;基于删除指令确定待删除的第一集群节点中存储的不少于一个第一数据块,将不少于一个第一数据块分别存储至集群中除第一集群节点外的其他集群节点中;更新集群中除第一集群节点外的其他集群节点中存储的校验块。
进一步的,处理器将第三数量的数据块分别存储至不同的存储节点,包括:
处理器将第三数量的数据块分别存储至各存储节点的第一条带;将基于待存储的第四原始数据确定的第三数量的数据块分别存储至各存储节点的第二条带,其中,基于待存储的第四原始数据确定的第三数量的数据块包括:与第四原始数据相关的第一数量的第一纠删数据块,与第四原始数据相关的第二数量的第一校验块以及至少一个虚拟数据块。
进一步的,处理器将至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,包括:
处理器将至少一个第二纠删数据块依次存储至用于存储虚拟数据块的存储节点中不同条带对应的位置处。
进一步的,处理器将至少一个第二纠删数据块依次存储至用于存储虚拟数据块的存储节点中不同条带对应的位置处,包括:
若第二纠删数据块的数量大于存储有数据块的条带的数量,处理器将与存储有数据块的条带的数量相同数量的第二纠删数据块存储至用于存储虚拟数据块的存储节点中不同条带的位置处;将未存储至用于存储虚拟数据块的存储节点中的第二纠删数据块依次存储至各存储节点中未进行数据块存储的第三条带中;基于存储至第三条带中的数据块生成校验块,存储至第三条带中。
本实施例公开的电子设备是基于上述实施例公开的纠删码存储方法实现的,在此不再赘述。
本实施例公开的电子设备,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。本方案中通过虚拟数据块、校验块及纠删数据块对某一个数据的相关数据块进行存储,并在有新的待存储的数据后,将该新的待存储的数据对应的第二纠删数据块存储至虚拟数据块的存储节点中,从而实现通过第二纠删数据块替换虚拟数据块,只需要更新校验块即可,无需再重新为第二纠删数据块设置校验块,实现了对校验块的复用,节约了存储成本。
本实施例公开了一种纠删码存储系统,其结构示意图如图10所示,包括:
第一存储单元101,获得单元102,第二存储单元103及确定单元104。
其中,第一存储单元101用于基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数据的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
获得单元102用于获得待存储的第二原始数据;
第二存储单元103用于将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块;
确定单元104用于基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。
本实施例公开的纠删码存储系统是基于上述实施例公开的纠删码存储方法实现的,在此不再赘述。
本实施例公开的纠删码存储系统,基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,第三数量的数据块包括:第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块,获得待存储的第二原始数据,将基于第二原始数据确定的至少一个第二纠删数据块存储至至少一个虚拟数据块存储的存储节点,删除至少一个虚拟数据块,基于第一数量的第一纠删数据块、第二数量的第一校验块及至少一个第二纠删数据块确定第二数量的第二校验块,将第二数量的第一校验块更新为第二数量的第二校验块。本方案中通过虚拟数据块、校验块及纠删数据块对某一个数据的相关数据块进行存储,并在有新的待存储的数据后,将该新的待存储的数据对应的第二纠删数据块存储至虚拟数据块的存储节点中,从而实现通过第二纠删数据块替换虚拟数据块,只需要更新校验块即可,无需再重新为第二纠删数据块设置校验块,实现了对校验块的复用,节约了存储成本。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种纠删码存储方法,包括:
基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,所述第三数据的数据块包括:所述第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
获得待存储的第二原始数据;
将基于所述第二原始数据确定的至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,删除所述至少一个虚拟数据块;
基于所述第一数量的第一纠删数据块、第二数量的第一校验块及所述至少一个第二纠删数据块确定第二数量的第二校验块,将所述第二数量的第一校验块更新为所述第二数量的第二校验块。
2.根据权利要求1所述的方法,其中,所述将第三数量的数据块分别存储至不同的存储节点,包括:
将所述第一数量的第一纠删数据块及所述第二数量的第一校验块分别存储至不同的集群节点,将所述至少一个虚拟数据块分别存储至不同的虚拟节点;
所述将所述至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,包括:
在获得第二原始数据时,确定当前集群节点的数量大于获得第一原始数据时集群节点的数量,确定新增的扩展节点;
将基于所述第二原始数据确定的至少一个第二纠删数据块存储至所述扩展节点,删除与所述扩展节点数量匹配的所述虚拟节点。
3.根据权利要求1所述的方法,其中,所述将第三数量的数据块分别存储至不同的存储节点,包括:
将所述第一数量的第一纠删数据块及所述第二数量的第一校验块分别存储至不同的第一集群节点,将所述至少一个虚拟数据块分别存储至至少一个第二集群节点;
其中,所述第二集群节点为实体存储节点或虚拟节点。
4.根据权利要求1所述的方法,其中,还包括:
获得待存储的第三原始数据;
若确定当前集群节点的数量小于获得第二原始数据时集群节点的数量,将基于所述第三原始数据确定的第三纠删数据块及第三校验块分别存储至不同的集群节点,将与所述第三原始数据相关的至少一个虚拟数据块分别存储至不同的虚拟节点。
5.根据权利要求1所述的方法,其中,还包括:
接收第一集群节点的删除指令;
基于所述删除指令确定待删除的第一集群节点中存储的不少于一个第一数据块,将所述不少于一个第一数据块分别存储至集群中除所述第一集群节点外的其他集群节点中;
更新所述集群中除所述第一集群节点外的其他集群节点中存储的校验块。
6.根据权利要求1所述的方法,其中,所述将第三数量的数据块分别存储至不同的存储节点,包括:
将所述第三数量的数据块分别存储至各存储节点的第一条带;
将基于待存储的第四原始数据确定的第三数量的数据块分别存储至各存储节点的第二条带,其中,所述基于待存储的第四原始数据确定的第三数量的数据块包括:与第四原始数据相关的第一数量的第一纠删数据块,与第四原始数据相关的第二数量的第一校验块以及至少一个虚拟数据块。
7.根据权利要求6所述的方法,其中,所述将所述至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,包括:
将所述至少一个第二纠删数据块依次存储至用于存储所述虚拟数据块的存储节点中不同条带对应的位置处。
8.根据权利要求7所述的方法,其中,所述将所述至少一个第二纠删数据块依次存储至用于存储所述虚拟数据块的存储节点中不同条带对应的位置处,包括:
若所述第二纠删数据块的数量大于存储有数据块的条带的数量,将与存储有数据块的条带的数量相同数量的第二纠删数据块存储至用于存储所述虚拟数据块的存储节点中不同条带的位置处;
将未存储至用于存储所述虚拟数据块的存储节点中的第二纠删数据块依次存储至各存储节点中未进行数据块存储的第三条带中;
基于存储至所述第三条带中的数据块生成校验块,存储至第三条带中。
9.一种电子设备,包括:
处理器,用于基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,所述第三数量的数据块包括:所述第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;获得待存储的第二原始数据,将基于所述第二原始数据确定的至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,删除所述至少一个虚拟数据块;基于所述第一数量的第一纠删数据块、第二数量的第一校验块及所述至少一个第二纠删数据块确定第二数量的第二校验块,将所述第二数量的第一校验块更新为所述第二数量的第二校验块;
存储器,用于存储所述处理器执行上述处理过程的程序。
10.一种纠删码存储系统,包括:
第一存储单元,用于基于待存储的第一原始数据确定第一数量的第一纠删数据块及第二数量的第一校验块,将第三数量的数据块分别存储至不同的存储节点,所述第三数据的数据块包括:所述第一数量的第一纠删数据块、第二数量的第一校验块及至少一个虚拟数据块;
获得单元,用于获得待存储的第二原始数据;
第二存储单元,用于将基于第二原始数据确定的至少一个第二纠删数据块存储至所述至少一个虚拟数据块存储的存储节点,删除所述至少一个虚拟数据块;
确定单元,用于基于所述第一数量的第一纠删数据块、第二数量的第一校验块及所述至少一个第二纠删数据块确定第二数量的第二校验块,将所述第二数量的第一校验块更新为所述第二数量的第二校验块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111283184.3A CN114003174A (zh) | 2021-11-01 | 2021-11-01 | 一种纠删码存储方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111283184.3A CN114003174A (zh) | 2021-11-01 | 2021-11-01 | 一种纠删码存储方法、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003174A true CN114003174A (zh) | 2022-02-01 |
Family
ID=79926129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111283184.3A Pending CN114003174A (zh) | 2021-11-01 | 2021-11-01 | 一种纠删码存储方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003174A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075821A (zh) * | 2023-10-13 | 2023-11-17 | 杭州优云科技有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-01 CN CN202111283184.3A patent/CN114003174A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075821A (zh) * | 2023-10-13 | 2023-11-17 | 杭州优云科技有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
CN117075821B (zh) * | 2023-10-13 | 2024-01-16 | 杭州优云科技有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN110531940B (zh) | 视频文件处理方法及装置 | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
CN111124738B (zh) | 用于独立冗余磁盘阵列的数据管理方法、设备和计算机程序产品 | |
CN112000627B (zh) | 一种数据存储方法、系统、电子设备及存储介质 | |
US20220179642A1 (en) | Software code change method and apparatus | |
KR101765517B1 (ko) | 데이터베이스를 저널링하는 장치 및 방법 | |
CN115437581B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
EP3474143B1 (en) | Method and apparatus for incremental recovery of data | |
CN107479823B (zh) | 随机读写文件测试中的数据校验方法和装置 | |
CN111857592A (zh) | 基于对象存储系统的数据存储方法及装置、电子设备 | |
CN107992268B (zh) | 一种坏块标记的方法及相关装置 | |
CN114003174A (zh) | 一种纠删码存储方法、系统及电子设备 | |
CN114265613B (zh) | 一种整车所有电控单元固件差分升级方法及系统 | |
CN108830712A (zh) | 区块生成的方法、装置、设备和介质 | |
CN105550071A (zh) | 系统文件升级及检测方法、通信设备 | |
CN114116321A (zh) | 一种冗余数据管理方法、装置、计算机设备和存储介质 | |
JP6812826B2 (ja) | 格納方法、格納装置及び格納プログラム | |
CN115202589B (zh) | 放置组成员选择方法、装置、设备及可读存储介质 | |
CN115543693B (zh) | 数据恢复方法及相关设备 | |
CN115514644B (zh) | 表项一致性检查方法、电子设备及存储介质 | |
CN110059087B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
WO2010065050A1 (en) | Systems and methods for updating a data store using a transaction store | |
CN115878381A (zh) | 基于srm盘的数据恢复方法及装置、存储介质、电子装置 | |
CN110309149B (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 |