CN111381767A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN111381767A CN111381767A CN201811628150.1A CN201811628150A CN111381767A CN 111381767 A CN111381767 A CN 111381767A CN 201811628150 A CN201811628150 A CN 201811628150A CN 111381767 A CN111381767 A CN 111381767A
- Authority
- CN
- China
- Prior art keywords
- data
- fragment
- fragments
- target data
- node
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 19
- 239000012634 fragment Substances 0.000 claims abstract description 279
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims description 16
- 238000013467 fragmentation Methods 0.000 claims description 8
- 238000006062 fragmentation reaction Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 13
- 238000011084 recovery Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据处理方法及装置,方法包括:对原始数据进行切分和纠删码编码后形成编码组,所述编码组包括多个数据分片和至少一个校验分片;将所述编码组中的每个数据分片以多副本方式写入到分布式存储系统的多个数据节点中,将所述编码组中的每个校验分片以至少一副本方式写入到分布式存储系统中的至少一个数据节点中,其中,所述数据分片和校验分片的副本所在的数据节点各不相同。
Description
技术领域
本发明涉及分布式存储领域,特别涉及一种分布式存储系统中的数据处理方法及装置。
背景技术
分布式存储系统中有众多的数据节点用来存储数据,系统需要解决数据的可用性和可靠性两个问题。可用性解决数据随时随地都可以读写,可靠性则保证数据不会丢失。数据节点的失效会影响上述两个指标,而造成数据节点失效的原因非常多,例如数据节点的硬盘损坏、数据节点宕机、数据节点所在的网络分区不可达等等。
为了解决上述问题,可以对用户数据以多副本的方式进行存储,例如使用3副本的方式进行存储,这样可以保证在少于3份副本失效的情况下,数据还是可以被读写的。但是多副本的方式至少要使用3倍于用户原始数据容量的存储空间来存储数据,增加了数据的存储成本。
为了解决多副本方式的数据存储成本问题,普遍采用了纠删码(ErasureCoding,EC)编码技术,对用户原始数据先进行编码,然后存储编码后分组,同时合理配置编码参数还可以进一步提高数据的可靠性。例如EC编码的编码参数为M:N=6:3,在该种编码参数下,将原始数据切分成6个数据分片,然后计算3个校验分片,可以有效抵御3个数据节点同时失效的场景,使用的存储空间为(M+N)/M=(6+3)/6=1.5,即使用1.5倍的原始存储空间。
但是,在EC编码方式下,如果存储M个数据分片中的某个数据节点失效,则需要读取到其他M个分片(包括数据分片和校验分片),来重建失效的数据分片,需要的读写(IO)流量是原来的M倍,导致数据的读取延时明显增加。另外,在跨地域容灾的方式中,如果M+N个数据分片分布到多个地域,为了在某个地域中读取到所有的用户原始数据,还有可能会产生跨机房流量。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据处理方法及装置。
根据本发明的一个方面,提供了一种数据处理方法,包括:
对原始数据进行切分和纠删码编码后形成编码组,所述编码组包括多个数据分片和至少一个校验分片;
将所述编码组中的每个数据分片以多副本方式写入到分布式存储系统的多个数据节点中,将所述编码组中的每个校验分片以至少一副本方式写入到分布式存储系统中的至少一个数据节点中,其中,所述数据分片和校验分片的副本所在的数据节点各不相同。
可选地,在根据本发明的数据处理方法中,所述编码组中所有数据分片和校验分片的副本所在的多个数据节点位于同一区域中。
可选地,在根据本发明的数据处理方法中,所述编码组中所有数据分片的一个完整副本所在的多个数据节点位于第一区域,所述编码组中所有数据分片的另一个完整副本所在的多个数据节点位于第二区域,且所述第一区域和第二区域中的每个区域至少存储所述编码组的一个校验分片。
可选地,在根据本发明的数据处理方法中,所述多副本方式为二副本方式,和/或,所述至少一副本方式为单副本方式。
可选地,根据本发明的数据处理方法,还包括:向目标数据分片所在的一个数据节点发送读数据请求,以获取该数据节点中存储的目标数据分片;若存储目标数据分片的该数据节点失效,则向该目标数据分片所在的其他数据节点发送读数据请求,以获取该其他数据节点中存储的目标数据分片。
可选地,根据本发明的数据处理方法,还包括:若存储目标数据分片的所有数据节点均失效,则向目标数据分片所在的编码组对应的多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
可选地,根据本发明的数据处理方法,还包括:向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;若存储目标数据分片的第一数据节点失效,则向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
可选地,根据本发明的数据处理方法,还包括:若存储目标数据分片的第二数据节点失效,则向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
可选地,根据本发明的数据处理方法,还包括:向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;若存储目标数据分片的第一数据节点失效,则向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
可选地,根据本发明的数据处理方法,还包括:若重建目标数据分片失败,则向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
根据本发明的另一个方面,提供了一种数据处理装置,包括:
编码模块,适于对原始数据进行切分和纠删码编码后形成编码组,所述编码组包括多个数据分片和至少一个校验分片;
写请求模块,适于将所述编码组中的每个数据分片以多副本方式写入到分布式存储系统的多个数据节点中,将所述编码组中的每个校验分片以至少一副本方式写入到分布式存储系统中的至少一个数据节点中,其中,所述数据分片和校验分片的副本所在的数据节点各不相同。
可选地,在根据本发明的数据处理装置中,所述编码组中所有数据分片和校验分片的副本所在的多个数据节点位于同一区域中。
可选地,在根据本发明的数据处理装置中,所述编码组中所有数据分片的一个完整副本所在的多个数据节点位于第一区域,所述编码组中所有数据分片的另一个完整副本所在的多个数据节点位于第二区域,且所述第一区域和第二区域中的每个区域至少存储所述编码组的一个校验分片。
可选地,根据本发明的数据处理装置,还包括读请求模块,适于:向目标数据分片所在的一个数据节点发送读数据请求,以获取该数据节点中存储的目标数据分片;若存储目标数据分片的该数据节点失效,则向该目标数据分片所在的其他数据节点发送读数据请求,以获取该其他数据节点中存储的目标数据分片。
可选地,在根据本发明的数据处理装置中,所述读请求模块还适于:
若存储目标数据分片的所有数据节点均失效,则向目标数据分片所在的编码组对应的多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
可选地,根据本发明的数据处理装置,还包括读请求模块,适于:向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;若存储目标数据分片的第一数据节点失效,则向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
可选地,在根据本发明的数据处理装置中,所述读请求模块还适于:向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;若存储目标数据分片的第一数据节点失效,则向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行上述方法的指令。
根据本发明的又一个方面,一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行上述的方法。
本发明通过对多副本和EC编码进行结合使用,一方面能够降低数据的存储成本,另一方面能够解决数据节点失效场景下的读数据流量增加的问题。进一步,对于跨地域容灾场景,还能够解决数据跨地域读取占用网络带宽导致的延迟问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的分布式存储系统的结构图;
图2示出了根据本发明一个实施例的数据存储方式示意图;
图3示出了根据本发明另一个实施例的数据存储方式示意图;
图4示出了根据本发明一个实施例的计算设备的结构图;
图5示出了根据本发明一个实施例的写数据的流程图;
图6示出了根据本发明一个实施例的读数据的流程图;
图7示出了根据本发明另一个实施例的读数据的流程图;
图8示出了根据本发明又一个实施例的读数据的流程图
图9示出了根据本发明一个实施例的数据处理装置的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的分布式存储系统100的结构图。参见图1,分布式存储系统100包括一组元数据节点120(图中示出了1个)和一组数据节点(图中示出了n个),分别为数据节点130-1、130-2…130-n,对外提供数据存储服务。在客户端110将数据写入文件的过程中,会先将用户待写入的原始数据切分为多个数据分片,并将相同数据分片的不同副本存储至多个数据节点中。同时,分布式存储系统100还将文件与数据分片的映射关系、数据分片的路由信息(例如存储数据分片的数据节点的地址信息)等元数据存储在元数据节点120中。另外,分布式存储系统200中的数据节点和元数据节点还可以位于不同的区域(地域),即每个区域可以包括多个数据节点和相应的元数据节点。
在本发明实施例的分布式存储系统100中,还将多副本和EC编码进行结合使用,一方面能够降低数据的存储成本,另一方面能够解决数据节点失效场景下的读数据流量增加的问题;对于跨地域容灾场景,还能够解决数据跨地域读取占用网络带宽导致的延迟问题。
具体而言,客户端110需要将数据写入到分布式存储系统100时,首先会对待写入的原始数据进行切分,将原始数据切分为多个分片;然后进行纠删码编码,得到一个或多个编码组,每个编码组包括多个数据(Data)分片和至少一个校验(Parity)分片;最后将编码组中的Data分片以多副本方式写入分布式存储系统100中,将编码组中的Parity分片以至少一副本方式写入分布式存储系统100中。
如下,以数据分片采用二副本方式,校验分片采用单副本方式,EC编码的编码参数为M:N=5:3为例,对分布式存储系统中数据的存储方式进行介绍。
图2示出了根据本发明一个实施例的数据存储方式示意图。如图2所示,在该种实现方式中,编码组数据存储在一个区域(区域A)中,在区域A中存储数据分片的两个副本,和校验分片的一个副本。图中,D1、D2、D3、D4、D5为5个数据分片,每个数据分片存储两份,P1、P2、P3为3个校验分片,每个校验分片存储一份。这样,一个编码组的数据会存储在区域A的5+5+3=13个不同的数据节点中。
图3示出了根据本发明另一个实施例的数据存储方式示意图。如图3所示,在该种实现方式中,编码组数据存储在两个区域(区域A和区域B)中,在区域A中存储编码组的数据分片的一个完整副本,在区域B中存储编码组的数据分片的另一个完整副本,区域A和区域B均至少存储一个校验分片。图中,D1、D2、D3、D4、D5为5个数据分片,在区域A中存储这5个数据分片的一个完整副本,在区域B中存储这5个数据分片的另一个完整副本;P1、P2、P3为3个校验分片,在区域A中存储两个校验分片P1、P2,在区域B中存储一个校验分片P3。这样,对于一个编码组的数据,分布在区域A的5+2=7个不同的数据节点以及区域B的5+1=6个不同的数据节点中。
以上给出了分布式存储系统中的两种数据存储方式。本领域技术人员根据类似的原理,结合具体应用场景,还能够选择其他类型的数据存储方式。例如,在跨地域场景中,在区域A存储编码组的数据分片的一个完整副本以及校验分片的一个完整副本,同样,在区域B存储编码组的数据分片的另一个完整副本以及校验分片的另一个完整副本。
根据上述数据存储原理,以下描述本发明实施例的分布式存储系统中的数据处理方法(包括读数据和写数据)。
本发明实施例的数据处理方法可以在客户端的计算设备中执行。图4示出了根据本发明一个实施例的计算设备400的结构图。如图4所示,在基本的配置402中,计算设备400典型地包括系统存储器406和一个或者多个处理器404。存储器总线408可以用于在处理器404和系统存储器406之间的通信。
取决于期望的配置,处理器404可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器404可以包括诸如一级高速缓存410和二级高速缓存412之类的一个或者多个级别的高速缓存、处理器核心414和寄存器416。示例的处理器核心414可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器418可以与处理器404一起使用,或者在一些实现中,存储器控制器418可以是处理器404的一个内部部分。
取决于期望的配置,系统存储器406可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器406可以包括操作系统420、一个或者多个应用422以及程序数据424。应用422实际上是多条程序指令,其用于指示处理器404执行相应的操作。在一些实施方式中,应用422可以布置为在操作系统上使得处理器404利用程序数据424进行操作。
计算设备400还可以包括有助于从各种接口设备(例如,输出设备442、外设接口444和通信设备446)到基本配置402经由总线/接口控制器430的通信的接口总线440。示例的输出设备442包括图形处理单元448和音频处理单元450。它们可以被配置为有助于经由一个或者多个A/V端口452与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口444可以包括串行接口控制器454和并行接口控制器456,它们可以被配置为有助于经由一个或者多个I/O端口458和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备446可以包括网络控制器460,其可以被布置为便于经由一个或者多个通信端口464与一个或者多个其他计算设备462通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备400中,应用422包括数据处理装置900,装置900包括多条程序指令,这些程序指令可以指示处理器404执行写数据流程500、读数据流程600、700、800。
图5示出了根据本发明一个实施例的写数据的流程图。参照图5,写数据流程500始于步骤S510,在步骤S510中,对原始数据进行切分和纠删码编码后形成一个或多个编码组,每个编码组包括多个数据分片和至少一个校验分片。
纠删码(EC)编码是一种对原始数据进行切分,然后计算冗余编码分片(校验分片)后形成编码组的方法。在EC编码方式下,编码组内任意原始数据分片数量的分片可以恢复出其他所有分片。在存储系统中利用该编码技术可以有效降低存储成本,同时提高数据在硬件损坏情况下的可靠性。
客户端需要将待写入的原始数据写入到文件中时,可以先从元数据节点中获取元数据信息,例如EC编码策略和用于存储文件的数据分片和校验分片的数据节点的地址信息等。在根据编码策略形成编码组之后,方法进入步骤S520。
在步骤S520中,将编码组中的每个数据分片以多副本方式写入到分布式存储系统的多个数据节点中,将编码组中的每个校验分片以至少一副本方式写入到分布式存储系统中的至少一个数据节点中。其中,数据分片和校验分片的副本所在的数据节点各不相同。
编码组在分布式存储系统中的数据存储方式可参见上文的描述,这里不做赘述。
图6示出了根据本发明一个实施例的读数据的流程图。该读数据流程适用于数据存储在一个区域,且数据分片采用二副本、校验分片采用一副本的应用场景(参见图2)。参照图6,读数据流程600始于步骤S610,在步骤S610中,客户端向目标数据分片所在的一个数据节点发送读数据请求,以获取该数据节点中存储的目标数据分片。
当客户端需要读取某个文件中的数据时,可以先从元数据节点获取元数据信息,包括文件与数据分片的映射关系、数据分片的路由信息(例如存储数据分片的数据节点的地址信息)等。然后向待读取数据分片(目标数据分片)对应的数据节点发送读数据请求,该数据节点会根据请求向客户端返回目标数据分片。客户端读取数据成功,则进行下一个分片的读取。如果存储目标数据分片的该数据节点失效,导致读取数据失败,则进入步骤S620。
在步骤S620中,向该目标数据分片所在的其他数据节点发送读数据请求,以获取该其他数据节点中存储的目标数据分片。客户端读取数据成功,则进行下一个分片的读取。如果存储目标数据分片的所有数据节点均失效,导致读取数据失败,则进入步骤S630。
在步骤S630中,向目标数据分片所在的编码组对应的多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
以图2中的数据存储方式为例,假设目标数据分片为D1,在向一个数据节点获取D1时失败,则向另一个数据节点获取D1,向另一个数据节点获取D1也失败,则可以向其他数据节点获取D2、D3、D4、D5、P1(也可以是P2或P3),然后,利用D2、D3、D4、D5、P1来重建D1。
图7示出了根据本发明另一个实施例的读数据的流程图。该读数据流程适用于数据存储在两个区域,且数据分片采用二副本、校验分片采用一副本的应用场景(参见图3)。参照图7,读数据流程700始于步骤S710,在步骤S710中,客户端向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片。
客户端读取数据成功,则进行下一个分片的读取。如果存储目标数据分片的该第一数据节点失效,导致读取数据失败,则进入步骤S720。
在步骤S720中,向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。客户端读取数据成功,则进行下一个分片的读取。如果存储目标数据分片的该第二数据节点失效,导致读取数据失败,则进入步骤S730。
在步骤S730中,向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
以图3中的数据存储方式为例,假设目标数据分片为D1,在向区域A的一个数据节点获取D1时失败,则向区域B的一个数据节点获取D1,向区域B的一个数据节点获取D1也失败,则可以向区域A的其他数据节点获取D2、D3、D4、D5、P1(也可以是P2),然后,利用D2、D3、D4、D5、P1来重建D1。
图8示出了根据本发明又一个实施例的读数据的流程图。该读数据流程适用于数据存储在两个区域,且数据分片采用二副本、校验分片采用一副本的应用场景(参见图3)。参照图8,读数据流程800始于步骤S810,在步骤S810中,客户端向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片。
客户端读取数据成功,则进行下一个分片的读取。如果存储目标数据分片的该第一数据节点失效,导致读取数据失败,则进入步骤S820。
在步骤S820中,向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。如果重建数据失败,则进入步骤S830,如果重建数据成功,则进行下一个分片的读取。
在步骤S830中,向目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
以图3中的数据存储方式为例,假设目标数据分片为D1,在向区域A的一个数据节点获取D1时失败,则可以向区域A的其他数据节点获取D2、D3、D4、D5、P1(也可以是P2),然后,利用D2、D3、D4、D5、P1来重建D1。如果重建D1失败,则向区域B的一个数据节点获取D1。
综上所述,根据本发明实施例的数据处理方法,在读取数据时,如果有存储Data分片的数据节点失效,此时可以选择当前分片的另一个副本进行读取,有效解决了此场景下由于需要重建数据分片导致的数据流量增加、额外CPU占用、请求延迟增长的问题,让系统更加稳定。另外,在跨地域的存储系统中,可以就近读取本地域的数据来达到节省跨地域网络带宽和降低延迟的效果。
在存储成本上,相对于3副本方案,本发明实施例中数据分片存储2个副本、校验分片存储1个副本,其存储成本为接近2份、小于3份,存储成本得到了有效降低。
而且数据可靠性相对于单纯的EC编码更加可靠,主要表现在两个方面:1)数据节点异常时,数据恢复更快,可以直接使用多副本的恢复方式来恢复数据,将多个数据节点同时失效的概率降低到最低;2)丢失掉多余校验分片个数个分片后,系统仍然具有数据恢复能力,可靠性相对于单纯的EC编码进一步提高。
图9示出了根据本发明一个实施例的数据处理装置900的结构图。装置900驻留于计算设备(例如前述计算设备400)中,以使计算设备执行本发明的数据处理方法(例如前述流程500、600、700、800)。如图9所示,装置900包括编码模块910、写请求模块920和读请求模块930。
编码模块910,适于对原始数据进行切分和纠删码编码后形成编码组,所述编码组包括多个数据分片和至少一个校验分片;
写请求模块920,适于将所述编码组中的每个数据分片以多副本方式写入到分布式存储系统的多个数据节点中,将所述编码组中的每个校验分片以至少一副本方式写入到分布式存储系统中的至少一个数据节点中,其中,所述数据分片和校验分片的副本所在的数据节点各不相同。
在一种实现方式中,读请求模块930适于:
向目标数据分片所在的一个数据节点发送读数据请求,以获取该数据节点中存储的目标数据分片;
若存储目标数据分片的该数据节点失效,则向该目标数据分片所在的其他数据节点发送读数据请求,以获取该其他数据节点中存储的目标数据分片;
若存储目标数据分片的所有数据节点均失效,则向目标数据分片所在的编码组对应的多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
在另一种实现方式中,读请求模块930适于:
向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;
若存储目标数据分片的第一数据节点失效,则向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
在又一种实现方式中,读请求模块930适于:
向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;
若存储目标数据分片的第一数据节点失效,则向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
编码模块910、写请求模块920和读请求模块930的功能以及具体执行逻辑可参照流程500、600、700、800所述,这里不做赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
Claims (19)
1.一种数据处理方法,包括:
对原始数据进行切分和纠删码编码后形成编码组,所述编码组包括多个数据分片和至少一个校验分片;
将所述编码组中的每个数据分片以多副本方式写入到分布式存储系统的多个数据节点中,将所述编码组中的每个校验分片以至少一副本方式写入到分布式存储系统中的至少一个数据节点中,其中,所述数据分片和校验分片的副本所在的数据节点各不相同。
2.如权利要求1所述的方法,其中,所述编码组中所有数据分片和校验分片的副本所在的多个数据节点位于同一区域中。
3.如权利要求1所述的方法,其中,所述编码组中所有数据分片的一个完整副本所在的多个数据节点位于第一区域,所述编码组中所有数据分片的另一个完整副本所在的多个数据节点位于第二区域,且所述第一区域和第二区域中的每个区域至少存储所述编码组的一个校验分片。
4.如权利要求1所述的方法,其中,所述多副本方式为二副本方式,和/或,所述至少一副本方式为单副本方式。
5.如权利要求2所述的方法,还包括:
向目标数据分片所在的一个数据节点发送读数据请求,以获取该数据节点中存储的目标数据分片;
若存储目标数据分片的该数据节点失效,则向该目标数据分片所在的其他数据节点发送读数据请求,以获取该其他数据节点中存储的目标数据分片。
6.如权利要求5所述的方法,还包括:
若存储目标数据分片的所有数据节点均失效,则向目标数据分片所在的编码组对应的多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
7.如权利要求3所述的方法,还包括:
向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;
若存储目标数据分片的第一数据节点失效,则向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
8.如权利要求7所述的方法,还包括:
若存储目标数据分片的第二数据节点失效,则向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
9.如权利要求3所述的方法,还包括:
向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;
若存储目标数据分片的第一数据节点失效,则向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
10.如权利要求9所述的方法,还包括:
若重建目标数据分片失败,则向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
11.一种数据处理装置,包括:
编码模块,适于对原始数据进行切分和纠删码编码后形成编码组,所述编码组包括多个数据分片和至少一个校验分片;
写请求模块,适于将所述编码组中的每个数据分片以多副本方式写入到分布式存储系统的多个数据节点中,将所述编码组中的每个校验分片以至少一副本方式写入到分布式存储系统中的至少一个数据节点中,其中,所述数据分片和校验分片的副本所在的数据节点各不相同。
12.如权利要求11所述的装置,其中,所述编码组中所有数据分片和校验分片的副本所在的多个数据节点位于同一区域中。
13.如权利要求11所述的装置,其中,所述编码组中所有数据分片的一个完整副本所在的多个数据节点位于第一区域,所述编码组中所有数据分片的另一个完整副本所在的多个数据节点位于第二区域,且所述第一区域和第二区域中的每个区域至少存储所述编码组的一个校验分片。
14.如权利要求12所述的装置,还包括读请求模块,适于:
向目标数据分片所在的一个数据节点发送读数据请求,以获取该数据节点中存储的目标数据分片;
若存储目标数据分片的该数据节点失效,则向该目标数据分片所在的其他数据节点发送读数据请求,以获取该其他数据节点中存储的目标数据分片。
15.如权利要求14所述的装置,其中,所述读请求模块还适于:
若存储目标数据分片的所有数据节点均失效,则向目标数据分片所在的编码组对应的多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
16.如权利要求13所述的装置,其中,还包括读请求模块,适于:
向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;
若存储目标数据分片的第一数据节点失效,则向该目标数据分片所在的第二区域的第二数据节点发送读数据请求,以获取第二数据节点中存储的目标数据分片。
17.如权利要求13所述的装置,其中,所述读请求模块还适于:
向目标数据分片所在的第一区域的第一数据节点发送读数据请求,以获取第一数据节点中存储的目标数据分片;
若存储目标数据分片的第一数据节点失效,则向目标数据分片所在的编码组对应的第一区域中多个数据节点发送读数据请求,以获取编码组中的其他数据分片和检验分片,并利用获取到的其他数据分片和检验分片重建目标数据分片。
18.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-10中任一项所述方法的指令。
19.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811628150.1A CN111381767B (zh) | 2018-12-28 | 2018-12-28 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811628150.1A CN111381767B (zh) | 2018-12-28 | 2018-12-28 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381767A true CN111381767A (zh) | 2020-07-07 |
CN111381767B CN111381767B (zh) | 2024-03-26 |
Family
ID=71222988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811628150.1A Active CN111381767B (zh) | 2018-12-28 | 2018-12-28 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111381767B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558875A (zh) * | 2020-12-14 | 2021-03-26 | 北京百度网讯科技有限公司 | 数据校验方法、装置、电子设备及存储介质 |
WO2023016456A1 (zh) * | 2021-08-09 | 2023-02-16 | 华为技术有限公司 | 一种数据发送的方法、网卡和计算设备 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136940A (zh) * | 2006-08-31 | 2008-03-05 | 国际商业机器公司 | 用于备份分层结构存储池的方法和系统 |
US20120266044A1 (en) * | 2011-04-18 | 2012-10-18 | The Chinese University Of Hong Kong | Network-coding-based distributed file system |
CN102937967A (zh) * | 2012-10-11 | 2013-02-20 | 南京中兴新软件有限责任公司 | 数据冗余实现方法及装置 |
CN103118133A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 基于文件访问频次的混合云存储方法 |
CN103699494A (zh) * | 2013-12-06 | 2014-04-02 | 北京奇虎科技有限公司 | 一种数据存储方法、数据存储设备和分布式存储系统 |
CA2892019A1 (en) * | 2012-11-21 | 2014-05-30 | Huawei Technologies Co., Ltd. | Method and apparatus for recovering data |
CN104052576A (zh) * | 2014-06-07 | 2014-09-17 | 华中科技大学 | 一种云存储下基于纠错码的数据恢复方法 |
CN104503706A (zh) * | 2014-12-23 | 2015-04-08 | 中国科学院计算技术研究所 | 一种基于磁盘阵列的数据存储及读取方法 |
US20150355974A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Rebuilding data across storage nodes |
CN105159603A (zh) * | 2015-08-18 | 2015-12-16 | 福建省海峡信息技术有限公司 | 一种分布式数据存储系统的修复方法 |
CN105302500A (zh) * | 2015-11-24 | 2016-02-03 | 中国科学技术大学 | 一种基于动态条带构造的分布式编码方法 |
CN105335150A (zh) * | 2014-08-13 | 2016-02-17 | 苏宁云商集团股份有限公司 | 纠删码数据的快速编解码方法和系统 |
CN105530294A (zh) * | 2015-12-04 | 2016-04-27 | 中科院成都信息技术股份有限公司 | 一种海量数据分布式存储的方法 |
CN106095807A (zh) * | 2016-05-31 | 2016-11-09 | 中广天择传媒股份有限公司 | 一种分布式文件系统纠删码缓存装置及其缓存方法 |
CN106708653A (zh) * | 2016-12-29 | 2017-05-24 | 广州中国科学院软件应用技术研究所 | 一种基于纠删码与多副本的混合税务大数据安全保护方法 |
CN107817947A (zh) * | 2016-09-14 | 2018-03-20 | 北京金山云网络技术有限公司 | 一种数据存储方法、装置及系统 |
CN108196978A (zh) * | 2017-12-22 | 2018-06-22 | 新华三技术有限公司 | 数据存储方法、装置、数据存储系统及可读存储介质 |
-
2018
- 2018-12-28 CN CN201811628150.1A patent/CN111381767B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136940A (zh) * | 2006-08-31 | 2008-03-05 | 国际商业机器公司 | 用于备份分层结构存储池的方法和系统 |
US20120266044A1 (en) * | 2011-04-18 | 2012-10-18 | The Chinese University Of Hong Kong | Network-coding-based distributed file system |
CN102937967A (zh) * | 2012-10-11 | 2013-02-20 | 南京中兴新软件有限责任公司 | 数据冗余实现方法及装置 |
CA2892019A1 (en) * | 2012-11-21 | 2014-05-30 | Huawei Technologies Co., Ltd. | Method and apparatus for recovering data |
CN103118133A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 基于文件访问频次的混合云存储方法 |
CN103699494A (zh) * | 2013-12-06 | 2014-04-02 | 北京奇虎科技有限公司 | 一种数据存储方法、数据存储设备和分布式存储系统 |
US20150355974A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Rebuilding data across storage nodes |
CN104052576A (zh) * | 2014-06-07 | 2014-09-17 | 华中科技大学 | 一种云存储下基于纠错码的数据恢复方法 |
CN105335150A (zh) * | 2014-08-13 | 2016-02-17 | 苏宁云商集团股份有限公司 | 纠删码数据的快速编解码方法和系统 |
CN104503706A (zh) * | 2014-12-23 | 2015-04-08 | 中国科学院计算技术研究所 | 一种基于磁盘阵列的数据存储及读取方法 |
CN105159603A (zh) * | 2015-08-18 | 2015-12-16 | 福建省海峡信息技术有限公司 | 一种分布式数据存储系统的修复方法 |
CN105302500A (zh) * | 2015-11-24 | 2016-02-03 | 中国科学技术大学 | 一种基于动态条带构造的分布式编码方法 |
CN105530294A (zh) * | 2015-12-04 | 2016-04-27 | 中科院成都信息技术股份有限公司 | 一种海量数据分布式存储的方法 |
CN106095807A (zh) * | 2016-05-31 | 2016-11-09 | 中广天择传媒股份有限公司 | 一种分布式文件系统纠删码缓存装置及其缓存方法 |
CN107817947A (zh) * | 2016-09-14 | 2018-03-20 | 北京金山云网络技术有限公司 | 一种数据存储方法、装置及系统 |
CN106708653A (zh) * | 2016-12-29 | 2017-05-24 | 广州中国科学院软件应用技术研究所 | 一种基于纠删码与多副本的混合税务大数据安全保护方法 |
CN108196978A (zh) * | 2017-12-22 | 2018-06-22 | 新华三技术有限公司 | 数据存储方法、装置、数据存储系统及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
LI, JJ等: "A data-check based distributed storage model for storing hot temporary data", FUTURE GENERATION COMPUTER SYSTEMS-THE INTERNATIONAL JOURNAL OF ESCIENCE, 31 August 2017 (2017-08-31) * |
孙程;谢军;: "一种基于纠删码的分布式存储容灾的设计与实现", 中国集成电路, no. 10, 5 October 2009 (2009-10-05) * |
王惠清;周雷;: "基于Paillier加密的数据多副本持有性验证方案", 计算机科学, no. 1, 15 June 2016 (2016-06-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558875A (zh) * | 2020-12-14 | 2021-03-26 | 北京百度网讯科技有限公司 | 数据校验方法、装置、电子设备及存储介质 |
WO2023016456A1 (zh) * | 2021-08-09 | 2023-02-16 | 华为技术有限公司 | 一种数据发送的方法、网卡和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111381767B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200042223A1 (en) | System and method for facilitating a high-density storage device with improved performance and endurance | |
US20180260130A1 (en) | Making consistent reads more efficient in ida+copy system | |
US8972779B2 (en) | Method of calculating parity in asymetric clustering file system | |
US10013191B2 (en) | Encoding data for storage in a dispersed storage network | |
JP2020509490A (ja) | 分散型ストレージ・ネットワーク内のゾーンにおけるデータの順次記憶 | |
CN110058953B (zh) | 用于改变存储系统的类型的方法、设备和存储介质 | |
US20170212836A1 (en) | Coordinating cache memory updates in a dispersed storage network | |
WO2019137323A1 (zh) | 一种数据存储方法、装置及系统 | |
CN114415976B (zh) | 一种分布式数据存储系统与方法 | |
CN113176858B (zh) | 数据处理方法、存储系统及存储设备 | |
CN109445681B (zh) | 数据的存储方法、装置和存储系统 | |
US11074124B2 (en) | Method and system for enhancing throughput of big data analysis in a NAND-based read source storage | |
US20200097182A1 (en) | Compacting data in a dispersed storage network | |
WO2019080370A1 (zh) | 一种数据读写方法、装置和存储服务器 | |
WO2015067073A1 (zh) | 一种数据操作的方法和设备 | |
CN111124945B (zh) | 用于提供高速缓存服务的方法、设备和计算机可读介质 | |
CN111381767B (zh) | 一种数据处理方法及装置 | |
CN111782152A (zh) | 数据存储方法、数据恢复方法、装置、服务器及存储介质 | |
US20230137007A1 (en) | Data storage method, storage system, storage device, and storage medium | |
US10528282B2 (en) | Modifying and utilizing a file structure in a dispersed storage network | |
US10481833B2 (en) | Transferring data encoding functions in a distributed storage network | |
CN111506450B (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
US10880040B1 (en) | Scale-out distributed erasure coding | |
US20180113747A1 (en) | Overdrive mode for distributed storage networks | |
US10838660B2 (en) | Identifying and processing predefined dispersed storage network workflows |
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 |