CN109271360A - 分布式对象存储数据冗余方法、装置、设备及存储介质 - Google Patents
分布式对象存储数据冗余方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109271360A CN109271360A CN201810879632.8A CN201810879632A CN109271360A CN 109271360 A CN109271360 A CN 109271360A CN 201810879632 A CN201810879632 A CN 201810879632A CN 109271360 A CN109271360 A CN 109271360A
- Authority
- CN
- China
- Prior art keywords
- fragment
- data
- memory module
- verification
- data memory
- 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
Classifications
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了分布式对象存储数据冗余方法、装置、设备及存储介质,所述方法包括:基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;对m个数据分片和n个校验分片分别添加对应的分片身份标识;将各数据分片和校验分片随机存放到不同的数据存储模块。在接收到对目标数据的读取请求后,在存储有目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;根据m个分片的分片身份标识,进行纠删码解码,得到目标数据。本实施例所述方法,减轻了数据存储模块的负载,均衡了磁盘读写,使得资源利用更加合理。
Description
技术领域
本发明涉及大数据领域,尤其涉及一种分布式对象存储数据冗余方法、装置、设备及存储介质。
背景技术
随着云计算和大数据技术的发展,新兴的分布式文件,块和对象存储技术也正在逐渐取代NAS(Network Attached Storage,网络附属存储)、SAN (Storage Area Network,存储区域网络)等传统的存储技术。为了提高可靠性,分布式存储技术多采用多副本的方式进行数据存储,但是随着数据量的增加,这种技术会引起存储成本的大幅提升,在这样的背景下,纠删码技术应用到存储中,在一定程度上解决了这个问题。
Tfs(分布式文件系统)在文件写入时采用多副本存储,然后采用单独的编码模块对以存储的数据再进行纠删码存储,这种方式不够灵活,而且会耗费额外的存储空间和带宽资源;Ceph(可扩展、高性能分布式文件系统)支持文件写入时的纠删码存储,但是Ceph的实现方案存在资源分配上不够合理。
具体的,Ceph纠删码存储方案支持写入时进行编码存储,全部数据写入到主存储模块(primary osd)中,由此osd进行切片和编码,之后将原始切片和编码切片传输到指定的osd中,所有切片按顺序存放,某个osd只存放在原数据中相同位置的切片;读取时,读取所有原始切片合成源数据然后返回。
然而,Ceph的编解码是在存储模块中实现的,这无疑加重了存储模块的负载,同时指定的osd只存放原始数据中相同位置的切片,这导致读取时,只读取原始数据所在的osd,编码切片所在的osd不会读取,io(读写)都集中在原始数据所在磁盘,编码数据所在磁盘io空闲,资源分配不够合理。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种解决上述问题的分布式对象存储数据冗余方法、装置、设备及存储介质。
依据本发明实施例的一个方面,提供一种分布式对象存储数据冗余方法,包括:
基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;其中,m、n为正整数,且m>n;
对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
将各所述数据分片和校验分片随机存放到不同的数据存储模块;
其中,每个所述数据存储模块管理有一个或多个用于存储分片数据的超级文件;每个所述数据存储模块管理的超级文件个数相同、编号方式一致。
可选地,本发明实施例中,所述将各所述数据分片和校验分片随机存放到不同的数据存储模块,具体包括:
确定存放各所述数据分片和校验分片的数据存储模块组;所述数据存储模块组中的数据存储模块数量为m+n个;
将各所述数据分片和校验分片随机存放到所述数据存储模块组中的各数据存储模块中。
可选地,本发明实施例中,所述将各所述数据分片和校验分片随机存放到不同的数据存储模块,包括:
将各所述数据分片和校验分片随机存放到不同的数据存储模块中相同编号的超级文件中。
可选地,本发明实施例中,在将各所述数据分片和校验分片随机存放到不同的数据存储模块之前,还包括:
获取各所述数据分片和校验分片的存储调度信息;所述存储调度信息包括:存储所述数据分片和校验分片的超级文件的编号信息。
可选地,本发明实施例中,所述分片身份标识包括:分片类型和分片位置信息。
可选地,本发明实施例中,所述分片身份标识添加在对应分片的头部。
依据本发明实施例的另一个方面,提供一种分布式对象存储数据冗余方法,包括:
在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m为正整数;
在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
可选地,本发明实施例中,所述在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,包括:
获取所述目标数据的数据分片和校验分片的存储调度信息;所述存储调度信息包括存储所述数据分片和校验分片的超级文件的编号信息;
根据所述超级文件的编号信息,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片。
可选地,本发明实施例中,所述分片身份标识包括:分片类型和分片位置信息。
依据本发明实施例的第三个方面,提供一种分布式对象存储数据冗余装置,包括:
编码模块,用于基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;其中,m、n为正整数,且m>n;
分片处理模块,用于对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
存储处理模块,用于将各所述数据分片和校验分片随机存放到不同的数据存储模块;
其中,每个所述数据存储模块管理有一个或多个用于存储分片数据的超级文件;每个所述数据存储模块管理的超级文件个数相同、编号方式一致。
可选地,本发明实施例中,所述存储处理模块,具体用于确定存放各所述数据分片和校验分片的数据存储模块组;将各所述数据分片和校验分片随机存放到所述数据存储模块组中的各数据存储模块中;所述数据存储模块组中的数据存储模块数量为m+n个。
可选地,本发明实施例中,所述存储处理模块,具体用于将各所述数据分片和校验分片随机存放到不同的数据存储模块中相同编号的超级文件中。
可选地,本发明实施例中,所述存储处理模块,还用于在将各所述数据分片和校验分片随机存放到不同的数据存储模块之前,获取各所述数据分片和校验分片的存储调度信息;所述存储调度信息包括:存储所述数据分片和校验分片的超级文件的编号信息。
可选地,本发明实施例中,所述分片身份标识包括:分片类型和分片位置信息;所述分片身份标识添加在对应分片的头部。
依据本发明实施例的第四个方面,提供一种分布式对象存储数据冗余装置,包括:
选取模块,用于在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m为正整数;
分片读取模块,用于在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
分片处理模块,用于根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
可选地,本发明实施例中,所述分片读取模块,具体用于获取所述目标数据的数据分片和校验分片的存储调度信息;所述存储调度信息包括存储所述数据分片和校验分片的超级文件的编号信息;根据所述超级文件的编号信息,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片。
可选地,本发明实施例中,所述分片身份标识包括:分片类型和分片位置信息。
依据本发明实施例的第五个方面,提供一种计算设备,所述计算设备包括:存储器、处理器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的分布式对象存储数据冗余程序,以实现本发明实施例提供分布式对象存储数据冗余方法的步骤。
依据本发明实施例的第六个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供分布式对象存储数据冗余方法的步骤。
本发明实施例提供的分布式对象存储数据冗余方案:
在数据上传方面,将分片和编码过程从数据存储模块中抽离出来,减轻了数据存储模块的负载;并且将分片随机分配到不同的数据存储模块中,减轻了数据存储模块的负载;
在数据读取方面,在存储有目标数据的各数据存储模块中随机选取数据存储模块进行分片读取,以及将解码过程从数据存储模块中抽离出来,这样就将数据存储模块的读取更加均衡地分配到了所有负责存储的数据存储模块上,使资源利用更加均衡。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明第一实施例提供的一种分布式对象存储数据冗余方法的流程图;
图2为本发明第二实施例提供的一种分布式对象存储数据冗余方法的流程图;
图3为本发明第三实施例提供的一种分布式对象存储数据冗余方法的流程图;
图4为本发明第四实施例提供的一种分布式对象存储数据冗余方法的流程图;
图5为本发明第五实施例提供的一种分布式对象存储数据冗余方法的流程图;
图6为本发明第六实施例提供的一种分布式对象存储数据冗余方法应用架构图;
图7为本发明第七实施例提供的一种分布式对象存储数据冗余装置的结构框图;
图8为本发明第八实施例提供的一种分布式对象存储数据冗余装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明第一实施例中,提供一种分布式对象存储数据冗余方法,更为具体的,本实施例提出一种新的基于纠删码的分布式对象存储数据冗余方法,通过纠删码方式相比于传统的副本方式,可减少存储成本。
在具体阐述本发明前,先对纠删码编码的原理进行简单的介绍:
纠删码是一种前向错误纠正技术,最初应用在网络传输中避免包的丢失,后来存储系统利用它来提高存储可靠性。相比多副本复制而言,纠删码能够以更小的数据冗余度获得更高数据可靠性,它可以将m份原始数据,增加n 份校验数据,并能通过m+n份中的任意m份数据,还原为原始数据。即如果有任意小于等于n份的数据失效,仍然能通过剩下的数据还原出来。具体的,纠删码(Reed-Solomon Code,以下简称RS码)编码将输入数据分为m份,视为向量D=(D1,D2,...,Dm),编码后数据视为向量(D1,D2,...,Dm,C1,C2,.., Cn),RS编码可视为矩阵运算。
举个简单的例子,如果我们要存x,y,以三副本存放,需要存x,x,x,y,y,y 共六份,如果进行编码,比如2x+3y=z,我们只需存x,y,z三份数据就可以,如果这时x丢失了,我们可以根据x=(z-3y)/2来获得。
具体的,本实施例中,将数据写入过程中的数据分片和纠删码编码过程从数据存储模块中抽离出来,通过代理层Proxy来实现,具体的,如图1所示,数据写入过程包括如下步骤:
步骤S101A,基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;其中,m、n为正整数,且m>n;
可选地,本步骤中,在接收到数据上传请求时,执行分片及编码过程。
具体的,本步骤中,将接收到的要上传的数据分为m片,然后利用纠删码算法对所述m片数据进行编码,得到n片校验分片。
步骤S102A,对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
本步骤中,分片身份标识用来标识分片类型和分片位置;所述分片类型指分片是属于数据分片还是校验分片;分片位置是指分片的类型为数据分片时,该分片属于原始数据分片后的第几片分片;分片的类型为校验分片时,该分片属于校验分片中的第几片。
示例性的,设m=4,n=2,表示将原始数据分为4片,经过编码又得到2 片校验分片。对原始数据分片后,顺序得到分片1、分片2、分片3、分片4;编码后顺序得到校验分片1、校验分片2。
分片身份标识就是用于标识该分片是分片后的第几片。例如,分片1,分片身份标识为原始数据分片后的第一片;分片2,分片身份标识为原始数据分片后的第二片;……,以此类推。
本发明实施例中,通过对分片进行身份标识为后续分片的拼装提供了重要支持。
在本发明的一个可选实施例中,分片身份标识添加在对应分片的头部。
步骤S103A,将各数据分片和校验分片随机存放到不同的数据存储模块。
本发明实施例中,每个数据存储模块管理相同个数的超级文件,例如每个数据存储模块均管理4个超级文件。
同时,本实施例中,还令每个数据存储模块所管理的超级文件采用相同的编号方式。示例性的,每个数据存储模块将其管理的超级文件编码号为:超级文件00、超级文件01、超级文件02、超级文件03。
对此,本实施例中,将各所述数据分片和校验分片随机存放到不同的数据存储模块,包括:将各数据分片和校验分片随机存放到不同的数据存储模块中相同编号的超级文件中。
也就是说,本实施例中,将数据分片和校验分片可以在各数据存储模块中随机存放,当所存放的数据存储模块在进行分片存放时,要将分片存放到相同的超级文件中。例如,本次各数据存储模块将分片均存储到本模块的超级文件00中。
本实施例中,每个分片均具有一个ID,该ID用于标示该分片所属的原始数据。每个超级文件内均维护一个索引,用于记录存入的分片ID与分片存储位置的映射关系,以便于后续的数据读取。
本实施例中,将各数据分片和校验分片随机存放到不同的数据存储模块中相同编号的超级文件中,目的是为后续数据的随机读取提供了重要的技术支持。
综上,本发明实施例所述方法,将分片和编码过程从数据存储模块中抽离出来,减轻了数据存储模块的负载;并且将分片随机分配到不同的数据存储模块中,减轻了数据存储模块的负载。
在本发明第二实施例中,提供一种分布式对象存储数据冗余方法,本实施例中,将数据写入过程中的数据分片和纠删码编码过程从数据存储模块中抽离出来,通过代理层Proxy来实现。
本实施例的实现过程与实施例一大致相同,区别在于进行分片存储的方式。与实施例一相同的部分参见第一实施例,本实施例将着重阐述区别之处。
具体的,如图2所示,数据写入过程包括如下步骤:
步骤S101B,基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;其中,m、n为正整数,且m>n;
步骤S102B,对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
步骤S103B,确定存放各所述数据分片和校验分片的数据存储模块组;所述数据存储模块组中的数据存储模块数量为m+n个;
步骤S104B,将各所述数据分片和校验分片随机存放到所述数据存储模块组中的各数据存储模块中。
也就是说,本发明实施例中,预先对数据存储模块进行分组,分组内数据存储模块的数量等于m+n。在进行分片存储时,将各数据分片和校验分片随机存到分组内的各数据存储模块中。即,本次存放过程,每个数据存储模块存储一个分片,该分片可以是数据分片,也可以是校验分片。
在本发明第三实施例中,提供一种分布式对象存储数据冗余方法,本实施例中,将数据写入过程中的数据分片和纠删码编码过程从数据存储模块中抽离出来,通过代理层Proxy来实现。
本实施例的实现过程与实施例一或二大致相同,区别在于分片存储时,调度信息的获取。与实施例一、二相同的部分参见第一、二实施例,本实施例将着重阐述区别之处。
具体的,如图3所示,数据写入过程包括如下步骤:
步骤S201,基于纠删码算法,将数据分片后编码,得到m个数据分片和 n个校验分片;其中,m、n为正整数,且m>n;
步骤S202,对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
步骤S203,获取各所述数据分片和校验分片的存储调度信息;
本实施例中,所述存储调度信息包括:存储所述数据分片和校验分片的超级文件的编号信息。也就是说,本实施例中,为了后续数据的随机读取,存储数据分片和校验分片的超级文件的编号应该相同。所以,本实施例中,获取的存储调度信息,至少要包括超级文件的编号信息,例如超级文件00。
步骤S204,根据获取的超级文件的信息,将各所述数据分片和校验分片随机存放到不同的数据存储模块的超级文件中。
在本发明第四实施例中,提供一种分布式对象存储数据冗余方法,具体的,本实施例中,将数据读取过程中的分片解码过程从数据存储模块中抽离出来,通过代理层Proxy来实现,具体的,如图4所示,数据读取过程包括如下步骤:
步骤S301,在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m为正整数;
通过第一至三任意所述实施例可知,将原始数据的m+n个分片分别被存储到不同的数据存储模块中。当需要对该原始数据进行读取时,只需要从m+n 个分片中随机选取m个,即可进行后续的纠删码解码过程。所以,本实施例中,要先在存储有目标数据的分片的各数据存储模块中选取m个数据存储模块,以便于在这m个数据存储模块中读取分片。
步骤S302,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
由于数据写入过程中,原始数据的各分片被分别存储到各数据存储模块中,所以,要在选取的数据存储模块中读取一个分片。
本实施例中,通过分片ID在每个数据存储模块中读取与所述目标数据对应的分片。
步骤S303,根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
由于分片身份标识对分片类型和位置进行标记,所以,本实施例中,可以根据分片的身份标识进行纠删码解码,并进行目标数据的拼接。
总之,本实施例所述方法,在数据读取方面,在存储有目标数据的各数据存储模块中随机选取数据存储模块进行分片读取,以及将解码过程从数据存储模块中抽离出来,这样就将数据存储模块的读取更加均衡地分配到了所有负责存储的数据存储模块上,使资源利用更加均衡。
在本发明第五实施例中,提供一种分布式对象存储数据冗余方法,具体的,本实施例中,将数据读取过程中的分片解码过程从数据存储模块中抽离出来,通过代理层Proxy来实现。
本实施例的实现过程与实施例四大致相同,区别在于进行分片读取的方式。与实施例四相同的部分参见第四实施例,本实施例将着重阐述区别之处。
具体的,如图5所示,数据写入过程包括如下步骤:
步骤S401,在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m为正整数;
步骤S402,获取所述目标数据的数据分片和校验分片的存储调度信息;所述存储调度信息包括存储所述数据分片和校验分片的超级文件的编号信息;
步骤S403,根据所述超级文件的编号信息,在选取的每个数据存储模块中读取一个分片,得到m个分片;
示例性的,若获取到的超级文件信息为超级文件00,则在选取的每个数据存储模块中读取超级文件00存储的对应目标数据的分片数据。
步骤S404,根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
本实施例,通过调度模块,获取到分片存储的超级文件信息,从而实现对分片信息的准确读取。
通过上述第一至第五实施例可知,本发明实施例中,用proxy作为代理层,对数据进行分片和编码,调度后分配到不同的机器进行存储,减轻了数据存储模块负载。读取时采用随机读取的策略,然后在proxy进行解码,这样就将数据读写均衡到所有存储原始分片和编码分片的数据存储模块上,减轻了存储原始数据分片的磁盘读写,使资源利用更加均衡。
在本发明第六实施例中,提供了一种分布式对象存储数据冗余方法,本实施例以4+2进行纠删码为例,对本发明的实施过程进行更详尽的阐述。
本实施例所述方法应用在如图6所示的存储系统中,所述存储系统包括:磁盘、调度模块(以下简称directory)、代理模块(以下简称proxy),其中:
本实施例中,磁盘是实际的数据存储模块,磁盘中部署有磁盘管理程序 Store,该Store用于管理磁盘内的若干superblock(即超级文件),将数据写入到磁盘的某个superblock中,或者,从磁盘的某个superblock中读取数据。
本实施例中,将六个磁盘划分为一组,即一个group,一个group管理6 个Store。
directory为调度模块,为proxy提供存储调度信息;
proxy为代理模块,对外接收数据的上传请求,并根据存储调度信息将数据的分片(包括4个数据分片和2个校验分片)分配到某个group的6个Store 中,各Store将接收到的分片随机存入对应的superblock中。更为确切的,一个group管理6个store,每个Store管理若干superblock,每个store随机存储某个原始分片或编码分片,数据的4个原始分片和2个编码分片写入编号相同的superblock中。
以及,proxy对外接收数据的读取请求,并根据存储调度信息,在某group 下的各Store中的superblock中读取数据。
本实施例所述方案具体实现如下:
(1)数据上传:proxy收到上传请求,将数据分为4片,采用纠删码编码算法进行编码,然后从directory获取存储的superblock编号信息后,将4个原始分片和2个编码分片随机存放到6个Store的对应superblock中,存放时是随机存放的,每个分片头部有标识该分片身份的信息。
(2)数据读取:proxy收到读取请求,从directory获取该数据的superblock 和Store信息,从6个Store中随机选取4个Store从其中的superblock中读取得到4个分片,然后根据分片的分片身份标识信息进行纠删码解码,解码后可以获得原始4个分片,拼接成原始数据后返回。
本实施例所述方法,通过纠删码模式降低了存储成本,通过采用代理层进行编解码,减轻了存储模块的负载,同时读取时对所有分片随机进行读取后进行解码返回,这样将磁盘io更加均衡地分配到了所有负责存储的磁盘上,使资源利用更加均衡。
在本发明第七实施例中,提供一种分布式对象存储数据冗余装置,如图7 所示,包括:
编码模块610,用于基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;其中,m、n为正整数,且m>n;
分片处理模块620,用于对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
存储处理模块630,用于将各所述数据分片和校验分片随机存放到不同的数据存储模块。
本发明实施例中,每个所述数据存储模块管理有一个或多个用于存储分片数据的超级文件;每个所述数据存储模块管理的超级文件个数相同、编号方式一致。
可选地,本发明实施例中,存储处理模块630,具体用于确定存放各所述数据分片和校验分片的数据存储模块组;将各所述数据分片和校验分片随机存放到所述数据存储模块组中的各数据存储模块中;所述数据存储模块组中的数据存储模块数量为m+n个。
可选地,本发明实施例中,存储处理模块630,具体用于将各所述数据分片和校验分片随机存放到不同的数据存储模块中相同编号的超级文件中。
可选地,本发明实施例中,存储处理模块630,还用于在将各所述数据分片和校验分片随机存放到不同的数据存储模块之前,获取各所述数据分片和校验分片的存储调度信息;所述存储调度信息包括:存储所述数据分片和校验分片的超级文件的编号信息。
可选地,本发明实施例中,分片身份标识包括:分片类型和分片位置信息;所述分片身份标识添加在对应分片的头部。
本实施例所述装置中各模块实现的具体功能细节可参见第一至第三实施例,本实施例不再重复阐述。
综上,本发明实施例所述装置,将分片和编码过程从数据存储模块中抽离出来,减轻了数据存储模块的负载;并且将分片随机分配到不同的数据存储模块中,减轻了数据存储模块的负载。
在本发明第八实施例中,提供一种分布式对象存储数据冗余装置,如图8 所示,包括:
选取模块710,用于在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m为正整数;
分片读取模块720,用于在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
分片处理模块730,用于根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
可选地,本发明实施例中,分片读取模块720,具体用于获取所述目标数据的数据分片和校验分片的存储调度信息;所述存储调度信息包括存储所述数据分片和校验分片的超级文件的编号信息;根据所述超级文件的编号信息,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片。
可选地,本发明实施例中,所述分片身份标识包括:分片类型和分片位置信息。
本实施例所述装置中各模块实现的具体功能细节可参见第四至第五实施例,本实施例不再重复阐述。
总之,本实施例所述装置,在数据读取方面,在存储有目标数据的各数据存储模块中随机选取数据存储模块进行分片读取,以及将解码过程从数据存储模块中抽离出来,这样就将数据存储模块的读取更加均衡地分配到了所有负责存储的数据存储模块上,使资源利用更加均衡。
在本发明第九实施例中,提供一种计算设备,所述计算设备包括:存储器、处理器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的分布式对象存储数据冗余程序,以实现如下方法步骤:
步骤1,基于纠删码算法,将数据分片后编码,得到m个数据分片和n 个校验分片;其中,m、n为正整数,且m>n;
步骤2,对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
步骤3,将各所述数据分片和校验分片随机存放到不同的数据存储模块;
其中,每个所述数据存储模块管理有一个或多个用于存储分片数据的超级文件;每个所述数据存储模块管理的超级文件个数相同、编号方式一致。
上述各步骤的具体实施过程可参见第一至第三实施例,本实施例不再赘述。
或者,所述处理器用于执行存储器中存储的分布式对象存储数据冗余程序,以实现如下方法步骤:
步骤1,在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m 为正整数;
步骤2,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
步骤3,根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
上述各步骤的具体实施过程可参见第四至第五实施例,本实施例不再赘述。
在本发明第十实施例中,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如下方法步骤:
步骤1,基于纠删码算法,将数据分片后编码,得到m个数据分片和n 个校验分片;其中,m、n为正整数,且m>n;
步骤2,对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
步骤3,将各所述数据分片和校验分片随机存放到不同的数据存储模块。
其中,每个所述数据存储模块管理有一个或多个用于存储分片数据的超级文件;每个所述数据存储模块管理的超级文件个数相同、编号方式一致。
上述各步骤的具体实施过程可参见第一至第三实施例,本实施例不再赘述。
或者,程序被处理器执行时实现如下方法步骤:
步骤1,在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m 为正整数;
步骤2,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
步骤3,根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
上述各步骤的具体实施过程可参见第四至第五实施例,本实施例不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种分布式对象存储数据冗余方法,其特征在于,包括:
基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;其中,m、n为正整数,且m>n;
对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
将各所述数据分片和校验分片随机存放到不同的数据存储模块;
其中,每个所述数据存储模块管理有一个或多个用于存储分片数据的超级文件;每个所述数据存储模块管理的超级文件个数相同、编号方式一致。
2.如权利要求1所述的方法,其特征在于,所述将各所述数据分片和校验分片随机存放到不同的数据存储模块,具体包括:
确定存放各所述数据分片和校验分片的数据存储模块组;所述数据存储模块组中的数据存储模块数量为m+n个;
将各所述数据分片和校验分片随机存放到所述数据存储模块组中的各数据存储模块中。
3.如权利要求1或2所述的方法,其特征在于,所述将各所述数据分片和校验分片随机存放到不同的数据存储模块,包括:
将各所述数据分片和校验分片随机存放到不同的数据存储模块中相同编号的超级文件中。
4.如权利要求1所述的方法,其特征在于,在将各所述数据分片和校验分片随机存放到不同的数据存储模块之前,还包括:
获取各所述数据分片和校验分片的存储调度信息;所述存储调度信息包括:存储所述数据分片和校验分片的超级文件的编号信息。
5.如权利要求1所述的方法,其特征在于,所述分片身份标识包括:分片类型和分片位置信息。
6.如权利要求1或5所述的方法,其特征在于,所述分片身份标识添加在对应分片的头部。
7.一种分布式对象存储数据冗余方法,其特征在于,包括:
在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m为正整数;
在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
8.如权利要求7所述的方法,其特征在于,所述在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,包括:
获取所述目标数据的数据分片和校验分片的存储调度信息;所述存储调度信息包括存储所述数据分片和校验分片的超级文件的编号信息;
根据所述超级文件的编号信息,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片。
9.如权利要求7或8所述的方法,其特征在于,所述分片身份标识包括:分片类型和分片位置信息。
10.一种分布式对象存储数据冗余装置,其特征在于,包括:
编码模块,用于基于纠删码算法,将数据分片后编码,得到m个数据分片和n个校验分片;其中,m、n为正整数,且m>n;
分片处理模块,用于对所述m个数据分片和n个校验分片分别添加对应的分片身份标识;
存储处理模块,用于将各所述数据分片和校验分片随机存放到不同的数据存储模块;
其中,每个所述数据存储模块管理有一个或多个用于存储分片数据的超级文件;每个所述数据存储模块管理的超级文件个数相同、编号方式一致。
11.如权利要求10所述的装置,其特征在于,所述存储处理模块,具体用于确定存放各所述数据分片和校验分片的数据存储模块组;将各所述数据分片和校验分片随机存放到所述数据存储模块组中的各数据存储模块中;所述数据存储模块组中的数据存储模块数量为m+n个。
12.如权利要求10或11所述的装置,其特征在于,所述存储处理模块,具体用于将各所述数据分片和校验分片随机存放到不同的数据存储模块中相同编号的超级文件中。
13.如权利要求7所述的装置,其特征在于,所述存储处理模块,还用于在将各所述数据分片和校验分片随机存放到不同的数据存储模块之前,获取各所述数据分片和校验分片的存储调度信息;所述存储调度信息包括:存储所述数据分片和校验分片的超级文件的编号信息。
14.如权利要求7所述的装置,其特征在于,
所述分片身份标识包括:分片类型和分片位置信息;
所述分片身份标识添加在对应分片的头部。
15.一种分布式对象存储数据冗余装置,其特征在于,包括:
选取模块,用于在接收到对目标数据的读取请求后,在存储有所述目标数据的数据分片和校验分片的各数据存储模块中随机选取m个数据存储模块;所述m为正整数;
分片读取模块,用于在选取的每个数据存储模块中读取与所述目标数据对应的一个分片,得到m个分片;
分片处理模块,用于根据所述m个分片的分片身份标识,进行纠删码解码,得到目标数据。
16.如权利要求11所述的装置,其特征在于,所述分片读取模块,具体用于获取所述目标数据的数据分片和校验分片的存储调度信息;所述存储调度信息包括存储所述数据分片和校验分片的超级文件的编号信息;根据所述超级文件的编号信息,在选取的每个数据存储模块中读取与所述目标数据对应的一个分片。
17.如权利要求15所述的装置,其特征在于,所述分片身份标识包括:分片类型和分片位置信息。
18.一种计算设备,其特征在于,所述计算设备包括:存储器、处理器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的分布式对象存储数据冗余程序,以实现如权利要求1至6中或者权利要求7至9中任一项所述的分布式对象存储数据冗余方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如权利要求1至6中或者权利要求7至9中任一项所述的分布式对象存储数据冗余方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810879632.8A CN109271360A (zh) | 2018-08-03 | 2018-08-03 | 分布式对象存储数据冗余方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810879632.8A CN109271360A (zh) | 2018-08-03 | 2018-08-03 | 分布式对象存储数据冗余方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109271360A true CN109271360A (zh) | 2019-01-25 |
Family
ID=65153076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810879632.8A Pending CN109271360A (zh) | 2018-08-03 | 2018-08-03 | 分布式对象存储数据冗余方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109271360A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815048A (zh) * | 2019-01-31 | 2019-05-28 | 新华三技术有限公司成都分公司 | 数据读取方法、装置及设备 |
CN111026580A (zh) * | 2019-11-29 | 2020-04-17 | 浪潮电子信息产业股份有限公司 | 一种数据读取方法、装置、设备及存储介质 |
CN112835511A (zh) * | 2019-11-25 | 2021-05-25 | 浙江宇视科技有限公司 | 分布式存储集群的数据写入方法、装置、设备和介质 |
WO2021139571A1 (zh) * | 2020-01-08 | 2021-07-15 | 华为技术有限公司 | 存储系统中的数据存储方法、数据读取方法、装置及系统 |
WO2021223431A1 (zh) * | 2020-09-24 | 2021-11-11 | 中广核工程有限公司 | 工控系统数据安全的拟态存储系统及方法 |
CN113641706A (zh) * | 2020-05-11 | 2021-11-12 | 北京沃东天骏信息技术有限公司 | 数据查询的方法和装置 |
CN113672174A (zh) * | 2021-08-03 | 2021-11-19 | 中移(杭州)信息技术有限公司 | 数据重构方法、设备、存储介质及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
KR20140080919A (ko) * | 2012-12-20 | 2014-07-01 | 케이티하이텔 주식회사 | 분산 파일 시스템에서 효율적인 자료 저장 방법 |
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN106201338A (zh) * | 2016-06-28 | 2016-12-07 | 华为技术有限公司 | 数据存储方法及装置 |
JP2018049664A (ja) * | 2017-12-13 | 2018-03-29 | シャープ株式会社 | レシート情報生成装置、レシート情報生成方法およびレシート情報生成システム |
-
2018
- 2018-08-03 CN CN201810879632.8A patent/CN109271360A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
KR20140080919A (ko) * | 2012-12-20 | 2014-07-01 | 케이티하이텔 주식회사 | 분산 파일 시스템에서 효율적인 자료 저장 방법 |
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN106201338A (zh) * | 2016-06-28 | 2016-12-07 | 华为技术有限公司 | 数据存储方法及装置 |
JP2018049664A (ja) * | 2017-12-13 | 2018-03-29 | シャープ株式会社 | レシート情報生成装置、レシート情報生成方法およびレシート情報生成システム |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815048A (zh) * | 2019-01-31 | 2019-05-28 | 新华三技术有限公司成都分公司 | 数据读取方法、装置及设备 |
CN112835511A (zh) * | 2019-11-25 | 2021-05-25 | 浙江宇视科技有限公司 | 分布式存储集群的数据写入方法、装置、设备和介质 |
CN112835511B (zh) * | 2019-11-25 | 2022-09-20 | 浙江宇视科技有限公司 | 分布式存储集群的数据写入方法、装置、设备和介质 |
CN111026580A (zh) * | 2019-11-29 | 2020-04-17 | 浪潮电子信息产业股份有限公司 | 一种数据读取方法、装置、设备及存储介质 |
WO2021139571A1 (zh) * | 2020-01-08 | 2021-07-15 | 华为技术有限公司 | 存储系统中的数据存储方法、数据读取方法、装置及系统 |
CN113641706A (zh) * | 2020-05-11 | 2021-11-12 | 北京沃东天骏信息技术有限公司 | 数据查询的方法和装置 |
CN113641706B (zh) * | 2020-05-11 | 2024-06-18 | 北京沃东天骏信息技术有限公司 | 数据查询的方法和装置 |
WO2021223431A1 (zh) * | 2020-09-24 | 2021-11-11 | 中广核工程有限公司 | 工控系统数据安全的拟态存储系统及方法 |
CN113672174A (zh) * | 2021-08-03 | 2021-11-19 | 中移(杭州)信息技术有限公司 | 数据重构方法、设备、存储介质及装置 |
CN113672174B (zh) * | 2021-08-03 | 2024-05-07 | 中移(杭州)信息技术有限公司 | 数据重构方法、设备、存储介质及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271360A (zh) | 分布式对象存储数据冗余方法、装置、设备及存储介质 | |
CN106687911B (zh) | 不损害数据完整性的在线数据移动 | |
CN104965768B (zh) | 用于存储系统中的服务感知数据放置的方法和系统 | |
CN102142006B (zh) | 分布式文件系统的文件处理方法及装置 | |
US11016674B2 (en) | Method, device, and computer program product for reading data | |
US8635421B2 (en) | Snapshot based replication | |
CN102682012A (zh) | 一种文件系统内读写数据的方法及装置 | |
CN111932257B (zh) | 一种区块链并行化处理方法及装置 | |
CN105630418A (zh) | 一种数据存储方法及装置 | |
CN110427364A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN104536852B (zh) | 数据恢复方法及装置 | |
CN109582213A (zh) | 数据重构方法及装置、数据存储系统 | |
CN106446159A (zh) | 一种存储文件的方法、第一虚拟机及名称节点 | |
CN109344268A (zh) | 图形数据库写入的方法、电子设备及计算机可读存储介质 | |
CN102170466B (zh) | 一种数据处理方法及系统 | |
CN106682021A (zh) | 数据库迁移方法及装置 | |
US10282116B2 (en) | Method and system for hardware accelerated cache flush | |
CN111176880A (zh) | 磁盘分配方法、装置和可读存储介质 | |
CN117075821A (zh) | 一种分布式存储方法、装置、电子设备及存储介质 | |
US10275302B2 (en) | System reliability by prioritizing recovery of objects | |
CN106383667A (zh) | 业务运行中lun迁移的方法和装置 | |
CN110109751B (zh) | 分布式切图任务的分配方法、装置及分布式切图系统 | |
CN106293980A (zh) | 用于分布式存储集群的数据修复方法及系统 | |
CN115905163A (zh) | 一种数据迁移方法、装置、设备及介质 | |
CN103309742B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190125 |
|
RJ01 | Rejection of invention patent application after publication |