CN108614749B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN108614749B
CN108614749B CN201810367047.XA CN201810367047A CN108614749B CN 108614749 B CN108614749 B CN 108614749B CN 201810367047 A CN201810367047 A CN 201810367047A CN 108614749 B CN108614749 B CN 108614749B
Authority
CN
China
Prior art keywords
algorithm
data
blocks
data blocks
rack
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
CN201810367047.XA
Other languages
English (en)
Other versions
CN108614749A (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.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology 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 Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201810367047.XA priority Critical patent/CN108614749B/zh
Publication of CN108614749A publication Critical patent/CN108614749A/zh
Application granted granted Critical
Publication of CN108614749B publication Critical patent/CN108614749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Abstract

本发明提供一种数据处理方法及装置,在获取待存储的原始数据后,将待存储的原始数据划分成至少两个数据块,并分别利用第一算法和第二算法对至少两个数据块进行编码,得到其对应的至少一个第一编码块和至少一个第二编码块,将得到的数据块、第一编码块和第二编码块存储至不同机房的机架式服务器中,以通过编码方式实现数据冗余,从而可以在保证数据的可靠性的同时降低存储成本。在某个机房发生机房级别故障时可以对其进行数据恢复,实现机房级别故障的存储容灾。并且第一算法和第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率,在发生机架级别故障时,可以通过数据恢复速率较优的算法进行数据恢复,提高数据恢复速率。

Description

一种数据处理方法及装置
技术领域
本发明属于数据处理技术领域,更具体地说,尤其涉及一种数据处理方法及装置。
背景技术
对于分布式存储系统来说,在分布式存储系统发生机器级别、机架级别和机房级别等任意一种级别的故障时,保障在这些故障发生时分布式存储系统中存储的数据的可靠性是分布式存储系统的重中之重。
目前分布式存储系统保障其存储的数据的可靠性采用数据冗余方式,即对于任意一份数据,将该份数据的不同副本存储在不同机房的不同机架式服务器中,这样分布式存储系统中某份数据丢失,仍可以通过其他机房的机架式服务器中存储的该份数据的副本来恢复所丢失的数据,但是这种数据冗余方式会增加存储成本,因此在保证数据的可靠性的同时降低存储成本是分布式存储系统的一个重要问题。
发明内容
有鉴于此,本发明的目的在于提供一种数据处理方法及装置,用于在保证数据的可靠性的同时降低存储成本。技术方案如下:
本发明提供一种数据处理方法,所述方法包括:
获取待存储的原始数据,并将所述待存储的原始数据划分成至少两个数据块;
利用第一算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第一编码块;
利用第二算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第二编码块,其中所述第一算法和所述第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率;
将所述至少两个数据块、所述至少一个第一编码块和所述至少一个第二编码块存储至不同机房的机架式服务器中,其中任一机房的机架式服务器中存储有所述至少两个数据块中的至少一个数据块、所述至少一个第一编码块和所述至少一个第二编码块其中之一的编码块。
优选的,所述方法还包括:对任一机房:在确定该机房的机架式服务器发生机房级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
利用所获取的编码块对应的算法,对所获取的编码块和数据块进行处理,得到该机房的机架式服务器中丢失的数据块。
优选的,所述方法还包括:对任一机房:在确定该机房的机架式服务器发生机架级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
根据预设规则从所述第一算法和所述第二算法中选取一个算法;
利用所选取的算法,对所获取的数据块和编码块进行处理,得到该机房的机架式服务器中丢失的数据块。
优选的,所述根据预设规则从所述第一算法和所述第二算法中选取一个算法包括:
从所述第一算法和所述第二算法中随机选取一个算法;
或者
从所述第一算法和所述第二算法中选取数据恢复速率优于没有被选取算法的数据恢复速率的算法。
本发明还提供一种数据处理装置,所述装置包括:
获取单元,用于获取待存储的原始数据,并将所述待存储的原始数据划分成至少两个数据块;
编码单元,用于利用第一算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第一编码块,以及利用第二算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第二编码块,其中所述第一算法和所述第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率;
存储单元,用于将所述至少两个数据块、所述至少一个第一编码块和所述至少一个第二编码块存储至不同机房的机架式服务器中,其中任一机房的机架式服务器中存储有所述至少两个数据块中的至少一个数据块、所述至少一个第一编码块和所述至少一个第二编码块其中之一的编码块。
优选的,所述获取单元,还用于对任一机房:在确定该机房的机架式服务器发生机房级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
所述装置还包括:第一恢复单元,用于利用所获取的编码块对应的算法,对所获取的编码块和数据块进行处理,得到该机房的机架式服务器中丢失的数据块。
优选的,所述获取单元,还用于对任一机房:在确定该机房的机架式服务器发生机架级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
所述装置还包括:选取单元和第二恢复单元;所述选取单元,用于根据预设规则从所述第一算法和所述第二算法中选取一个算法;所述第二恢复单元,用于利用所选取的算法,对所获取的数据块和编码块进行处理,得到该机房的机架式服务器中丢失的数据块。
优选的,所述选取单元,具体用于从所述第一算法和所述第二算法中随机选取一个算法;
或者
所述选取单元,具体用于从所述第一算法和所述第二算法中选取数据恢复速率优于没有被选取算法的数据恢复速率的算法。
本发明还提供一种存储介质,所述存储介质上存储有程序,所述程序被处理器执行时实现上述数据处理方法。
本发明还提供一种处理器,所述处理器用于运行程序,其中所述程序运行时执行上述数据处理方法。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
从上述技术方案可知,在获取待存储的原始数据后,将待存储的原始数据划分成至少两个数据块,并分别利用第一算法和第二算法对至少两个数据块进行编码,得到至少两个数据块对应的至少一个第一编码块和至少一个第二编码块,将至少两个数据块、至少一个第一编码块和至少一个第二编码块存储至不同机房的机架式服务器中,以通过编码方式实现数据冗余,从而可以在保证数据的可靠性的同时降低存储成本。
对于任一机房的机架式服务器来说,其存储有至少两个数据块中的至少一个数据块、至少一个第一编码块和至少一个第二编码块其中之一的编码块,这样在某个机房发生机房级别故障的情况下,可以通过其他机房的机架式服务器中存储的数据块和编码块进行数据恢复,实现机房级别故障的存储容灾。并且第一算法和第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率,这样在发生机架级别故障时,可以通过数据恢复速率较优的算法进行数据恢复,提高数据恢复速率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据处理方法的一种流程图;
图2是本发明实施例提供的数据处理方法的另一种流程图;
图3是本发明实施例提供的数据处理方法的再一种流程图;
图4是本发明实施例提供的数据处理装置的一种结构示意图;
图5是本发明实施例提供的数据处理装置的另一种结构示意图;
图6是本发明实施例提供的数据处理装置的再一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的数据处理方法的一种流程图,用于通过编码方式实现数据冗余,从而可以在保证数据的可靠性的同时降低存储成本,并且可以实现机房级别故障的存储容灾和提高数据恢复速率。图1所示数据处理方法可以包括以下步骤:
101:获取待存储的原始数据,并将待存储的原始数据划分成至少两个数据块。也就是说,对于待存储至机房的机架式服务器中的原始数据来说,将原始数据划分成一段段的数据,每段数据可以视为是一个数据块,对于如何将原始数据划分成一段段的数据以及划分多少段本实施例不进行限定。
102:利用第一算法对至少两个数据块进行编码,得到至少两个数据块对应的至少一个第一编码块。
103:利用第二算法对至少两个数据块进行编码,得到至少两个数据块对应的至少一个第二编码块。其中第一算法和第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率,即在本实施例中,用于对至少两个数据块进行编码的两个算法中有一个算法的数据恢复速率优于另一个算法的数据恢复速率,如第一算法可以采用RS(ReedSolomon,里德-所罗门)纠删码算法,第二算法可以采用XOR(异或)纠删码算法,使得第二算法的数据恢复速率优于第一算法的数据恢复速率,当然第一算法可以采用XOR纠删码算法,第二算法可以采用RS纠删码算法,使得第一算法的数据恢复速率优于第二算法的数据恢复速率。
在利用第一算法和第二算法分别对至少两个数据块进行编码时,可以并行利用第一算法和第二算法进行编码,并且在编码过程中可以将划分得到的所有数据块作为一个整体进行编码,也可以将所有数据块分成多组,对每组进行编码。
例如划分得到10块大小一致的数据块(D1,D2,D3,D4,D5,D6,D7,D8,D9,D10),将这10块数据块作为一个整体采用RS纠删码算法对其进行编码,生成4块RS编码块(可以作为第一编码块的一种可行方式)。将10块数据块分成两组,分别记为:G1(D1,D2,D3,D4,D5),G2(D6,D7,D8,D9,D10),对G1和G2分别采用XOR纠删码算法进行编码,生成G1和G2各自对应的1块XOR编码块(可以作为第二编码块的一种可行方式),记为XOR1编码块和XOR2编码块。
104:将至少两个数据块、至少一个第一编码块和至少一个第二编码块存储至不同机房的机架式服务器中,其中任一机房的机架式服务器中存储有至少两个数据块中的至少一个数据块、至少一个第一编码块和至少一个第二编码块其中之一的编码块。
也就是说,在存储上述数据块和编码块时基于的规则是:在某个机房发生机房级别故障的情况下,可以通过没有发生机房级别故障的机房的机架式服务器中存储的数据块和编码块来恢复发生机房级别故障的机房内存储的数据,在此规则的基础上对于任一机房来说,该机房的机架式服务器中均存储有至少一个数据块和至少一种编码块中的至少一个编码块,其中至少一种编码块是指第一编码块和第二编码块对应的两种类型编码块中的至少一种,如上述RS编码块和XOR编码块中的至少一种,以便于在发生机房级别故障时可以恢复数据,实现机房级别故障的存储容灾。
仍以上述划分得到10块大小一致的数据块(D1,D2,D3,D4,D5,D6,D7,D8,D9,D10)为例,上述数据块需要存储在机房A、机房B和机房C的机架式服务器中,基于上述规则在进行存储时可以将G1中任意4块数据块(假设为D1,D2,D3,D4)和XOR1编码块存入机房A的机架式服务器中,将G2中任意4块数据块(假设为D6,D7,D8,D9)和XOR2编码块存入机房B的机架式服务器中,将剩下的2块数据块(D5,D10)和4块RS编码块存入机房C的机架式服务器中,这样在任一机房发生机房级别故障的情况下,均可以通过剩余两个机房内存入的数据块和编码块进行数据恢复。
仍以上述划分得到10块大小一致的数据块(D1,D2,D3,D4,D5,D6,D7,D8,D9,D10),得到4块RS编码块和2块XOR编码块(上述XOR1编码块和XOR2编码块)为例,与现有以副本存储方式进行比对说明,假设磁盘或机器宕机的概率为p,以三个副本方式实现数据冗余时数据的可靠性1-p^3,而采用10块数据块、4块RS编码块和2块XOR编码块得到的数据的可靠性为1–C(6,10)*p^6=1–210*p^6,根据现有磁盘故障概率统计,每年一块磁盘宕机的概率为2%左右,可见采用10块数据块、4块RS编码块和2块XOR编码块得到的数据的可靠性比3副本方式得到的数据的可靠性高500倍以上。并且采用10块数据块、4块RS编码块和2块XOR编码块时一份数据需要1.6倍的存储空间,由此使得成本比3副本方式降低一半左右。
从上述技术方案可知,在获取待存储的原始数据后,将待存储的原始数据划分成至少两个数据块,并分别利用第一算法和第二算法对至少两个数据块进行编码,得到至少两个数据块对应的至少一个第一编码块和至少一个第二编码块,将至少两个数据块、至少一个第一编码块和至少一个第二编码块存储至不同机房的机架式服务器中,以通过编码方式实现数据冗余,从而可以在保证数据的可靠性的同时降低存储成本。
对于任一机房的机架式服务器来说,其存储有至少两个数据块中的至少一个数据块、至少一个第一编码块和至少一个第二编码块其中之一的编码块,这样在某个机房发生机房级别故障的情况下,可以通过其他机房的机架式服务器中存储的数据块和编码块进行数据恢复,实现机房级别故障的存储容灾。并且第一算法和第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率,这样在发生机架级别故障时,可以通过数据恢复速率较优的算法进行数据恢复,提高数据恢复速率。
请参阅图2,其示出了本发明实施例提供的数据处理方法的另一种流程图,阐述在发生机房级别故障的情况下的数据恢复,在图1基础上还可以包括以下步骤:
105:对任一机房:在确定该机房的机架式服务器发生机房级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块。
也就是说,在确定出某个机房发生机房级别故障时,仅需要从其他没有发生故障的机房的机架式服务器中获取到可以恢复该机房中丢失的数据块的数据块和编码块,而不需要获取其他没有发生故障的机房中的所有数据块和编码块。
以划分得到10块大小一致的数据块(D1,D2,D3,D4,D5,D6,D7,D8,D9,D10)存储至机房A、机房B和机房C为例,机房A发生机房级别故障,若需要访问D1,D2,D3,D4,则可以从机房B中获取4块数据块(D6,D7,D8,D9),从机房C中获取2块数据块(D10,D5)和4块RS编码块来进行数据恢复;机房B发生机房级别故障时,若需要访问D6,D7,D8,D9,则可以从机房A中获取4块数据块(D1,D2,D3,D4),从机房C中获取2块数据块(D10,D5)和4块RS编码块来进行数据恢复;机房C发生机房级别故障,若需要访问D5,则可以从机房A中获取4块数据块(D1,D2,D3,D4)和XOR1编码块,若需要访问D10,则可以从机房B中获取4块数据块(D6,D7,D8,D9)和XOR2编码块。
106:利用所获取的编码块对应的算法,对所获取的编码块和数据块进行处理,得到该机房的机架式服务器中丢失的数据块。
如在恢复机房A或机房B中丢失的数据块,获取到的编码块对应的算法为RS纠删码算法,则可以利用RS纠删码算法对所获取的编码块和数据块进行处理;而在恢复机房C中丢失的数据块,获取到的编码块对应的算法为XOR纠删码算法,则可以利用XOR纠删码算法对所获取的编码块和数据块进行处理。
在这里需要说明的一点是:在机房A或机房B发生机房级别故障时,对应的XOR编码块中的XOR1编码块或XOR2编码块也已丢失,因此无法通过XOR纠删码算法进行恢复,只能通过RS编码块和RS纠删码算法进行恢复。而机房C发生机房级别故障时,RS编码块都已丢失,无法通过RS纠删码算法进行恢复,XOR1编码块和XOR2编码块仍存在,因此此时通过XOR纠删码算法恢复。
上述阐述了机房级别故障的数据恢复,本实施例还可以实现机架级别故障的数据恢复,相对应的流程图如图3所述,在上述图1基础上还可以包括以下步骤:
107:对任一机房:在确定该机房的机架式服务器发生机架级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块,对于如何获取数据块和编码块本实施例不再阐述。
108:根据预设规则从第一算法和第二算法中选取一个算法。可以理解的是:机架级别故障是机房的机架式服务器中存储的一块数据块丢失,这就意味着机架式服务器中存储的编码块并没有丢失,因此本实施例可以利用第一算法和第二算法中的任一算法来恢复,在本实施例中根据预设规则选取算法的方式可以如下:
从第一算法和第二算法中随机选取一个算法,或者从第一算法和第二算法中选取数据恢复速率优于没有被选取算法的数据恢复速率的算法,即从第一算法和第二算法中选取数据恢复速率较优的算法,以上述RS纠删码算法和XOR纠删码算法为例,XOR纠删码算法的数据恢复速率优于RS纠删码算法,因此可以XOR纠删码算法进行数据恢复,并且RS纠删码算法在进行数据恢复时需要消耗M*恢复数据大小的带宽(M为利用RS纠删码算法对数据块进行编码生成的编码块数量),而XOR纠删码算法仅消耗M/2*恢复数据大小的带宽,因此XOR纠删码算法在进行数据恢复时还可以节省带宽。
109:利用所选取的算法,对所获取的数据块和编码块进行处理,得到该机房的机架式服务器中丢失的数据块。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
与上述方法实施例相对应,本发明实施例还提供一种数据处理装置,其结构如图4所示,可以包括:获取单元11、编码单元12和存储单元13。
获取单元11,用于获取待存储的原始数据,并将待存储的原始数据划分成至少两个数据块。也就是说,对于待存储至机房的机架式服务器中的原始数据来说,将原始数据划分成一段段的数据,每段数据可以视为是一个数据块,对于如何将原始数据划分成一段段的数据以及划分多少段本实施例不进行限定。
编码单元12,用于利用第一算法对至少两个数据块进行编码,得到至少两个数据块对应的至少一个第一编码块,以及利用第二算法对至少两个数据块进行编码,得到至少两个数据块对应的至少一个第二编码块。
其中第一算法和第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率,即在本实施例中,用于对至少两个数据块进行编码的两个算法中有一个算法的数据恢复速率优于另一个算法的数据恢复速率,如第一算法可以采用RS(Reed Solomon,里德-所罗门)纠删码算法,第二算法可以采用XOR(异或)纠删码算法,使得第二算法的数据恢复速率优于第一算法的数据恢复速率,当然第一算法可以采用XOR纠删码算法,第二算法可以采用RS纠删码算法,使得第一算法的数据恢复速率优于第二算法的数据恢复速率。
在利用第一算法和第二算法分别对至少两个数据块进行编码时,编码单元12可以并行利用第一算法和第二算法进行编码,并且在编码过程中可以将划分得到的所有数据块作为一个整体进行编码,也可以将所有数据块分成多组,对每组进行编码,具体请参阅方法实施例中的相关说明,对此本实施例不再阐述。
存储单元13,用于将至少两个数据块、至少一个第一编码块和至少一个第二编码块存储至不同机房的机架式服务器中,其中任一机房的机架式服务器中存储有至少两个数据块中的至少一个数据块、至少一个第一编码块和至少一个第二编码块其中之一的编码块。
也就是说,存储单元13存储上述数据块和编码块时基于的规则是:在某个机房发生机房级别故障的情况下,可以通过没有发生机房级别故障的机房的机架式服务器中存储的数据块和编码块来恢复发生机房级别故障的机房内存储的数据,在此规则的基础上对于任一机房来说,该机房的机架式服务器中均存储有至少一个数据块和至少一种编码块中的至少一个编码块,其中至少一种编码块是指第一编码块和第二编码块对应的两种类型编码块中的至少一种,如上述RS编码块和XOR编码块中的至少一种,以便于在发生机房级别故障时可以恢复数据,实现机房级别故障的存储容灾,相对应的举例说明请参阅方法实施例中的相关说明,对此本实施例不再阐述。
从上述技术方案可知,在获取待存储的原始数据后,将待存储的原始数据划分成至少两个数据块,并分别利用第一算法和第二算法对至少两个数据块进行编码,得到至少两个数据块对应的至少一个第一编码块和至少一个第二编码块,将至少两个数据块、至少一个第一编码块和至少一个第二编码块存储至不同机房的机架式服务器中,以通过编码方式实现数据冗余,从而可以在保证数据的可靠性的同时降低存储成本。
对于任一机房的机架式服务器来说,其存储有至少两个数据块中的至少一个数据块、至少一个第一编码块和至少一个第二编码块其中之一的编码块,这样在某个机房发生机房级别故障的情况下,可以通过其他机房的机架式服务器中存储的数据块和编码块进行数据恢复,实现机房级别故障的存储容灾。并且第一算法和第二算法其中之一算法的数据恢复速率优于另一个算法的数据恢复速率,这样在发生机架级别故障时,可以通过数据恢复速率较优的算法进行数据恢复,提高数据恢复速率。
请参阅图5,其示出了本发明实施例提供的数据处理装置的另一种结构,阐述在发生机房级别故障情况下的数据恢复,在图4基础上还可以包括:第一恢复单元14。
其中获取单元11,还用于对任一机房:在确定该机房的机架式服务器发生机房级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块。
也就是说,在确定出某个机房发生机房级别故障时,获取单元11仅需要从其他没有发生故障的机房的机架式服务器中获取到可以恢复该机房中丢失的数据块的数据块和编码块,而不需要获取其他没有发生故障的机房中的所有数据块和编码块。
第一恢复单元14,用于利用所获取的编码块对应的算法,对所获取的编码块和数据块进行处理,得到该机房的机架式服务器中丢失的数据块。例如所获取的编码块是利用第一算法编码得到的编码块,则第一恢复单元14进行数据恢复时采用的算法是第一算法,相对应的若所获取的编码块是利用第二算法编码得到的编码块,则第一恢复单元14进行数据恢复时采用的算法是第二算法。
此外,本发明实施例提供的数据处理装置还可以对机架级别故障进行数据恢复,相对应的结构如图6所示,在图4基础上还可以包括:选取单元15和第二恢复单元16。
获取单元11,还用于对任一机房:在确定该机房的机架式服务器发生机架级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块,对于如何获取数据块和编码块本实施例不再阐述。
选取单元15,用于根据预设规则从第一算法和第二算法中选取一个算法。可以理解的是:机架级别故障是机房的机架式服务器中存储的一块数据块丢失,这就意味着机架式服务器中存储的编码块并没有丢失,因此本实施例可以利用第一算法和第二算法中的任一算法来恢复,在本实施例中根据预设规则选取算法的方式可以如下:
从第一算法和第二算法中随机选取一个算法,或者从第一算法和第二算法中选取数据恢复速率优于没有被选取算法的数据恢复速率的算法,即从第一算法和第二算法中选取数据恢复速率较优的算法,具体请参阅方法实施例中的相关说明,对此本实施例不再阐述。
第二恢复单元16,用于利用所选取的算法,对所获取的数据块和编码块进行处理,得到该机房的机架式服务器中丢失的数据块,实现机架级别故障的数据恢复。
与上述方法实施例相对应,本发明实施例还提供一种存储介质,存储介质上存储有程序,程序被处理器执行时实现上述数据处理方法。
与上述方法实施例相对应,本发明实施例还提供一种处理器,处理器用于运行程序,其中程序运行时执行上述数据处理方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
获取待存储的原始数据,并将所述待存储的原始数据划分成至少两个数据块;
利用第一算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第一编码块;
利用第二算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第二编码块,其中所述第一算法和所述第二算法中有一个算法的数据恢复速率优于另一个算法的数据恢复速率;
将所述至少两个数据块、所述至少一个第一编码块和所述至少一个第二编码块存储至不同机房的机架式服务器中,其中任一机房的机架式服务器中存储有:所述至少两个数据块中的至少一个数据块;所述至少一个第一编码块或所述至少一个第二编码块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对任一机房:在确定该机房的机架式服务器发生机房级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
利用所获取的编码块对应的算法,对所获取的编码块和数据块进行处理,得到该机房的机架式服务器中丢失的数据块。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:对任一机房:在确定该机房的机架式服务器发生机架级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
根据预设规则从所述第一算法和所述第二算法中选取一个算法;
利用所选取的算法,对所获取的数据块和编码块进行处理,得到该机房的机架式服务器中丢失的数据块。
4.根据权利要求3所述的方法,其特征在于,所述根据预设规则从所述第一算法和所述第二算法中选取一个算法包括:
从所述第一算法和所述第二算法中随机选取一个算法;
或者
从所述第一算法和所述第二算法中选取数据恢复速率优于没有被选取算法的数据恢复速率的算法。
5.一种数据处理装置,其特征在于,所述装置包括:
获取单元,用于获取待存储的原始数据,并将所述待存储的原始数据划分成至少两个数据块;
编码单元,用于利用第一算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第一编码块,以及利用第二算法对所述至少两个数据块进行编码,得到所述至少两个数据块对应的至少一个第二编码块,其中所述第一算法和所述第二算法中有一个算法的数据恢复速率优于另一个算法的数据恢复速率;
存储单元,用于将所述至少两个数据块、所述至少一个第一编码块和所述至少一个第二编码块存储至不同机房的机架式服务器中,其中任一机房的机架式服务器中存储有:所述至少两个数据块中的至少一个数据块;所述至少一个第一编码块或所述至少一个第二编码块。
6.根据权利要求5所述的装置,其特征在于,所述获取单元,还用于对任一机房:在确定该机房的机架式服务器发生机房级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
所述装置还包括:第一恢复单元,用于利用所获取的编码块对应的算法,对所获取的编码块和数据块进行处理,得到该机房的机架式服务器中丢失的数据块。
7.根据权利要求5或6所述的装置,其特征在于,所述获取单元,还用于对任一机房:在确定该机房的机架式服务器发生机架级别故障的情况下,从其他没有发生故障的机房的机架式服务器中获取数据块和编码块,其中所获取的数据块和编码块用于恢复该机房的机架式服务器中丢失的数据块;
所述装置还包括:选取单元和第二恢复单元;所述选取单元,用于根据预设规则从所述第一算法和所述第二算法中选取一个算法;所述第二恢复单元,用于利用所选取的算法,对所获取的数据块和编码块进行处理,得到该机房的机架式服务器中丢失的数据块。
8.根据权利要求7所述的装置,其特征在于,所述选取单元,具体用于从所述第一算法和所述第二算法中随机选取一个算法;
或者
所述选取单元,具体用于从所述第一算法和所述第二算法中选取数据恢复速率优于没有被选取算法的数据恢复速率的算法。
9.一种存储介质,其特征在于,所述存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至4任意一项所述的数据处理方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中所述程序运行时执行如权利要求1至4任意一项所述的数据处理方法。
CN201810367047.XA 2018-04-23 2018-04-23 一种数据处理方法及装置 Active CN108614749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810367047.XA CN108614749B (zh) 2018-04-23 2018-04-23 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810367047.XA CN108614749B (zh) 2018-04-23 2018-04-23 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN108614749A CN108614749A (zh) 2018-10-02
CN108614749B true CN108614749B (zh) 2020-11-03

Family

ID=63660542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810367047.XA Active CN108614749B (zh) 2018-04-23 2018-04-23 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN108614749B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488239B (zh) * 2019-01-28 2023-07-07 伊姆西Ip控股有限责任公司 存储数据的方法、装置和计算机程序产品
CN112162967A (zh) * 2020-09-24 2021-01-01 中广核工程有限公司 工控系统数据安全的拟态存储系统及方法
CN113568786B (zh) * 2021-09-23 2021-12-31 四川大学 一种数据恢复方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270161A (zh) * 2011-06-09 2011-12-07 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
CN105117303A (zh) * 2012-11-23 2015-12-02 华为技术有限公司 一种数据恢复的方法及设备
CN107885615A (zh) * 2016-09-30 2018-04-06 上海云熵网络科技有限公司 分布式存储数据的复原方法与系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011010613B4 (de) * 2011-02-08 2020-09-10 Fujitsu Ltd. Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
US8595586B2 (en) * 2012-04-25 2013-11-26 Facebook, Inc. Distributed system for fault-tolerant data storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270161A (zh) * 2011-06-09 2011-12-07 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
CN105117303A (zh) * 2012-11-23 2015-12-02 华为技术有限公司 一种数据恢复的方法及设备
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
CN107885615A (zh) * 2016-09-30 2018-04-06 上海云熵网络科技有限公司 分布式存储数据的复原方法与系统

Also Published As

Publication number Publication date
CN108614749A (zh) 2018-10-02

Similar Documents

Publication Publication Date Title
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US9983959B2 (en) Erasure coding of data within a group of storage units based on connection characteristics
US9600365B2 (en) Local erasure codes for data storage
CN108614749B (zh) 一种数据处理方法及装置
US20150142752A1 (en) Priority based reliability mechanism for archived data
US8775860B2 (en) System and method for exact regeneration of a failed node in a distributed storage system
WO2017039795A1 (en) Systems and methods for verification of code resiliency for data storage
CN107003933B (zh) 部分复制码的构建方法、装置及其数据修复的方法
EP2208138A2 (en) Generating a parallel recovery plan for a data storage system
US10644726B2 (en) Method and apparatus for reconstructing a data block
CN114281270B (zh) 一种数据存储方法、系统、设备以及介质
US11748197B2 (en) Data storage methods and systems
CN112000512B (zh) 一种数据修复方法及相关装置
CN113190377B (zh) 一种基于分布式存储系统的可靠冗余方法及设备
WO2024001494A1 (zh) 一种数据存储的方法、单节点服务器及设备
CN113687975A (zh) 数据处理方法、装置、设备及存储介质
US20150229339A1 (en) Adjusting Redundancy In An Erasure Code Object Store To Account For Varying Data Value
US20150227423A1 (en) Mitigating The Impact Of A Single Point Of Failure In An Object Store
CN115098295A (zh) 数据局部恢复方法、设备及存储介质
WO2012007715A2 (en) Distributed data storage and recovery
KR101934204B1 (ko) 데이터 저장을 위한 소실 부호의 부호화 방법 및 장치
CN111541512B (zh) 数据的处理方法、终端设备、可读存储介质
CN114691414A (zh) 一种校验块生成方法及一种数据恢复方法
Yongmei et al. Large LDPC codes for big data storage

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