CN108664351A - 一种数据存储、重构、清理方法、装置及数据处理系统 - Google Patents
一种数据存储、重构、清理方法、装置及数据处理系统 Download PDFInfo
- Publication number
- CN108664351A CN108664351A CN201710210377.3A CN201710210377A CN108664351A CN 108664351 A CN108664351 A CN 108664351A CN 201710210377 A CN201710210377 A CN 201710210377A CN 108664351 A CN108664351 A CN 108664351A
- Authority
- CN
- China
- Prior art keywords
- data frame
- index information
- correcting
- segment
- data
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
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
本发明实施例公开了一种数据存储、重构、清理方法、装置及数据处理系统,存储方法包括:针对一条数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定其对应的纠删码策略,利用所确定的纠删码策略对其进行处理;也就是说,在一条数据流中,不同帧类型的数据帧对应的纠删码策略可以不同,提高了基于数据流保护的纠删码策略的灵活性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据存储、重构、清理方法、装置及数据处理系统。
背景技术
纠删码(erasure coding,EC)是一种数据保护方法,纠删码策略可以用n=k+m来表示,其中,k表示原始片段份数,m表示冗余片段份数,n表示总的数据片段份数。具体的,可以将待存储数据分割成k个原始片段,基于这k个原始片段进行扩展、编码,得到m个冗余片段;将这k个原始片段和m个冗余片段分别存储至各个存储对象中;这样,如果某个存储对象出现故障导致数据丢失,则可以根据未丢失的原始片段及冗余片段对丢失的数据片段进行恢复。
目前,通常将多媒体数据(比如,视频数据,音频数据等)以数据流的形式(流式数据)进行传输、存储,数据流中包含多个数据帧。
现有方案利用纠删码对数据流进行保护时,针对同一条数据流,通常利用统一的纠删码策略对其进行存储。也就是说,一条数据流中的每个数据帧对应的k和m只能是相同的,纠删码策略不灵活。
发明内容
本发明实施例的目的在于提供一种数据存储、重构、清理方法、装置及数据处理系统,以提高基于数据流保护的纠删码策略的灵活性。
为达到上述目的,本发明实施例公开了一种数据存储方法,包括:
根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
根据所确定的纠删码策略,为所述当前数据帧分配存储对象;
利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;
将所述原始片段及冗余片段分别存储至所述存储对象中;
记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
可选的,所述根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略的步骤可以包括:
判断当前数据帧的帧类型是否为关键帧;
如果是,确定所述当前数据帧对应的纠删码策略为第一类策略;
如果否,确定所述当前数据帧对应的纠删码策略为第二类策略;其中,所述第二类策略的安全级别低于所述第一类策略。
可选的,所述根据所确定的纠删码策略,为所述当前数据帧分配存储对象的步骤可以包括:
确定所述纠删码策略中包含的原始片段份数k及冗余片段份数m;
根据k+m,为所述当前数据帧分配存储对象;
所述利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段的步骤包括:
将所述当前数据帧切分成k个原始片段;
将所述k个原始片段进行冗余处理,得到m个冗余片段;
所述将所述原始片段及冗余片段分别存储至所述存储对象中的步骤包括:
将所述k个原始片段及所述m个冗余片段分别存储到所分配的存储对象中。
可选的,所述根据k+m,为所述当前数据帧分配存储对象的步骤可以包括:
判断可用存储节点的数量是否不小于k+m;
如果不小于,将k+m个可用存储节点确定为所述当前数据帧对应的存储对象;
如果小于,判断可用存储节点中的可用磁盘的数量是否不小于k+m;如果是,将k+m个可用磁盘确定为所述当前数据帧对应的存储对象;如果否,将全部可用磁盘确定为所述当前数据帧对应的存储对象。
为达到上述目的,本发明实施例还公开了一种数据重构方法,包括:
在所记录的数据帧对应的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;所述数据帧可以基于所述的数据存储方法进行存储,索引信息包括:存储每个原始片段及冗余片段的存储对象的信息;
根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;其中,纠删码策略根据数据帧的帧类型确定;
根据所确定的优先级,依次对各条待重构索引信息进行重构处理:
根据待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;更新所述待重构索引信息。
为达到上述目的,本发明实施例还公开了一种数据清理方法,包括:
确定待清理数据流及其包含的每个数据帧对应的纠删码策略;其中,所述数据帧可以基于所述的数据存储方法进行存储;纠删码策略根据数据帧的帧类型确定;
确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;
将所确定的每个待删除数据帧删除。
可选的,确定待清理数据流包含的每个数据帧对应的纠删码策略的步骤可以包括:
在所记录的数据帧对应的索引信息中,读取所述待清理数据流包含的每个数据帧对应的索引信息;
根据所读取的索引信息中的原始片段份数k及冗余片段份数m,确定待清理数据流包含的每个数据帧对应的纠删码策略。
可选的,在所述将所确定的每个待删除数据帧删除的步骤之后,还包括:
将所确定的每个待删除数据帧对应的索引信息删除。
为达到上述目的,本发明实施例还公开了一种数据存储装置,包括:
第一确定模块,用于根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
分配模块,用于根据所确定的纠删码策略,为所述当前数据帧分配存储对象;
切片模块,用于利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;
存储模块,用于将所述原始片段及冗余片段分别存储至所述存储对象中;
记录模块,用于记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
可选的,所述第一确定模块,具体可以用于:
判断当前数据帧的帧类型是否为关键帧;
如果是,确定所述当前数据帧对应的纠删码策略为第一类策略;
如果否,确定所述当前数据帧对应的纠删码策略为第二类策略;其中,所述第二类策略的安全级别低于所述第一类策略。
可选的,所述分配模块,可以包括:
确定子模块,用于确定所述纠删码策略中包含的原始片段份数k及冗余片段份数m;
分配子模块,用于根据k+m,为所述当前数据帧分配存储对象;
所述切片模块,可以包括:
切分子模块,用于将所述当前数据帧切分成k个原始片段;
冗余子模块,用于将所述k个原始片段进行冗余处理,得到m个冗余片段;
所述存储模块,具体可以用于:
将所述k个原始片段及所述m个冗余片段分别存储到所分配的存储对象中。
可选的,所述分配子模块,具体可以用于:
判断可用存储节点的数量是否不小于k+m;
如果不小于,将k+m个可用存储节点确定为所述当前数据帧对应的存储对象;
如果小于,判断可用存储节点中的可用磁盘的数量是否不小于k+m;如果是,将k+m个可用磁盘确定为所述当前数据帧对应的存储对象;如果否,将全部可用磁盘确定为所述当前数据帧对应的存储对象。
为达到上述目的,本发明实施例还公开了一种数据重构装置,包括:
第二确定模块,用于在所记录的数据帧对应的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;所述数据帧可以利用所述的数据存储装置进行存储,索引信息包括:存储每个原始片段及冗余片段的存储对象的信息;
第三确定模块,用于根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;其中,纠删码策略根据数据帧的帧类型确定;
重构模块,用于根据所确定的优先级,依次对各条待重构索引信息进行重构处理:
根据待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;更新所述待重构索引信息。
为达到上述目的,本发明实施例还公开了一种数据清理装置,包括:
第四确定模块,用于确定待清理数据流及其包含的每个数据帧对应的纠删码策略;其中,所述数据帧可以利用所述的数据存储装置进行存储,纠删码策略根据数据帧的帧类型确定;
第五确定模块,用于确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;
第一删除模块,用于将所确定的每个待删除数据帧删除。
可选的,所述第四确定模块,具体可以用于:
确定待清理数据流;
在所记录的数据帧对应的索引信息中,读取所述待清理数据流包含的每个数据帧对应的索引信息;
根据所读取的索引信息中的原始片段份数k及冗余片段份数m,确定待清理数据流包含的每个数据帧对应的纠删码策略。
可选的,所述装置还可以包括:
第二删除模块,用于将所确定的每个待删除数据帧对应的索引信息删除。
为达到上述目的,本发明实施例还公开了一种数据处理系统,包括:平台服务器和管理服务器,其中,
所述平台服务器,接收用户发送的数据存储请求后,指定接收待存储数据流的管理服务器;
所述管理服务器,接收用户发送的待存储数据流,针对所述待存储数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
所述平台服务器,根据所确定的纠删码策略,为当前数据帧分配存储对象;
所述管理服务器,利用所确定的纠删码策略,对当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;将所述原始片段及冗余片段分别存储至所述存储对象中;
所述平台服务器,记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
可选的,所述平台服务器,确定待读取数据流中包含的每个数据帧对应的索引信息;
所述管理服务器,根据所述平台服务器确定的索引信息,从存储对象中读取所述待读取数据流对应的每个原始片段及冗余片段;将所读取的每个原始片段及冗余片段进行组合,得到完整数据帧,进而得到完整数据流。
可选的,所述平台服务器,在所记录的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;
所述管理服务器,对所述待重构索引信息对应的数据帧进行重构处理:
根据所述待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;
所述平台服务器,更新所述待重构索引信息;
或者,所述系统还包括审计服务器,
所述平台服务器,在所记录的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;
所述审计服务器,对所述待重构索引信息对应的数据帧进行重构处理:
根据所述待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;
所述平台服务器,更新所述待重构索引信息。
可选的,所述平台服务器,根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;
所述管理服务器或所述审计服务器,根据所确定的优先级,依次对各条待重构索引信息进行所述重构处理。
可选的,所述平台服务器,确定待清理数据流及其包含的每个数据帧对应的纠删码策略;确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;将所确定的每个待删除数据帧删除。
可选的,所述系统还可以包括:存储服务器,所述存储服务器包含多个存储对象;
所述存储服务器,向所述平台服务器上报自身多个存储对象的运行状态信息,以使所述平台服务器根据每个存储服务器上报的运行状态信息为数据帧分配存储对象、以及确定待重构索引信息。
应用本发明实施例,针对一条数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定其对应的纠删码策略,利用所确定的纠删码策略对其进行处理;也就是说,在一条数据流中,不同帧类型的数据帧对应的纠删码策略可以不同,提高了基于数据流保护的纠删码策略的灵活性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法的流程示意图;
图2为本发明实施例提供的一种数据重构方法的流程示意图;
图3为本发明实施例提供的一种数据清理方法的流程示意图;
图4为本发明实施例提供的一种数据存储装置的结构示意图;
图5为本发明实施例提供的一种数据重构装置的结构示意图;
图6为本发明实施例提供的一种数据清理装置的结构示意图;
图7为本发明实施例提供的数据处理系统的第一种结构示意图;
图8为本发明实施例提供的数据处理系统的第二种结构示意图;
图9为本发明实施例提供的数据处理系统的第三种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种数据存储、重构、清理方法、装置及数据处理系统。该方法及装置可以应用于服务器、客户端及各种电子设备,具体不做限定。下面首先对本发明实施例提供的数据存储方法进行详细说明。
图1为本发明实施例提供的一种数据存储方法的流程示意图,包括:
S101:根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略。
本发明实施例利用纠删码策略对数据流进行保护,数据流可以为视频数据,音频数据或其他多媒体数据,具体不做限定。可以理解,数据流中包含多个数据帧,各个数据帧的帧类型可以相同或不同。举例来说,如果数据流为视频数据,对于一个GOP(Group ofPictures,画面组)来说,其中的帧类型可以包括:I帧(内部编码帧)、P帧(前向预测帧)等。一条数据流中的I帧与P帧对应的纠删码策略可以相同或不同。
或者,也可以将帧类型分为关键帧和非关键帧,一条数据流中的关键帧与非关键帧对应的纠删码策略可以相同或不同。
作为一种实施方式,可以判断当前数据帧的帧类型是否为关键帧;
如果是,确定所述当前数据帧对应的纠删码策略为第一类策略;
如果否,确定所述当前数据帧对应的纠删码策略为第二类策略;其中,所述第二类策略的安全级别低于所述第一类策略。
本领域技术人员可以理解,一般来说,冗余片段份数越多,该纠删码策略的安全级别越高,也就是说m越大,纠删码策略的安全级别越高;或者,也可以说m:k越大,纠删码策略的安全级别越高。
也就是说第二类策略中的m:k小于第一类策略中的m:k,比如第二类策略为4+1,第一类策略为4+2,或者,也可以为其他,具体不做限定。
可以理解,在一条数据流中,关键帧的重要程度高于非关键帧,在本实施方式中,关键帧对应的纠删码策略的安全级别高于非关键帧对应的纠删码策略,这样,实现了基于各个数据帧的重要程度对其进行区分存储,提高了流式数据存储的安全性。
在上述GOP的例子中,I帧可以对应安全级别较高的纠删码策略,P帧可以对应安全级别较低的纠删码策略。比如,I帧对应的纠删码策略为4+2,P帧对应的纠删码策略为4+1,具体不做限定。或者,也可以理解为,将I帧作为关键帧,将P帧作为非关键帧,这也是合理的。
S102:根据所确定的纠删码策略,为所述当前数据帧分配存储对象。
具体的,可以确定所述纠删码策略中包含的原始片段份数k及冗余片段份数m;根据k+m,为所述当前数据帧分配存储对象。
作为一种实施方式,可以判断可用存储节点的数量是否不小于k+m;
如果不小于,将k+m个可用存储节点确定为所述当前数据帧对应的存储对象;
如果小于,判断可用存储节点中的可用磁盘的数量是否不小于k+m;如果是,将k+m个可用磁盘确定为所述当前数据帧对应的存储对象;如果否,将全部可用磁盘确定为所述当前数据帧对应的存储对象。
也就是说,在为当前数据帧分配存储对象时,如果有足够多的可用存储节点(数量不小于k+m),则分配k+m个可用存储节点以存储该当前数据帧,使得该当前数据帧的每个数据片段(包括原始片段及冗余片段)存储至不同的存储节点中。
如果没有足够多的可用存储节点(数量小于k+m),但是有足够多的可用磁盘(数量不小于k+m),则分配k+m个可用磁盘以存储该当前数据帧,使得该当前数据帧的每个数据片段(包括原始片段及冗余片段)存储至不同的磁盘中。
如果也没有足够多的可用磁盘(数量小于k+m),则分配全部可用磁盘以存储该当前数据帧,使得该当前数据帧的每个数据片段(包括原始片段及冗余片段)存储的磁盘尽量不同。
综上所述,也就是将当前数据帧尽量分散存储,如果一个磁盘出现故障、或者一个存储节点出现故障,导致数据丢失,仍可以利用其他磁盘或存储节点中存储的数据片段,对丢失的数据片段进行恢复。
S103:利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段。
具体的,S103可以包括:
将所述当前数据帧切分成k个原始片段;
将所述k个原始片段进行冗余处理,得到m个冗余片段。
延续上述例子,如果当前数据帧为关键帧,则其对应的纠删码策略为4+2,则将当前数据帧切分成4个原始片段,将这4个原始片段进行冗余处理,得到2个冗余片段。
如果当前数据帧为非关键帧,则其对应的纠删码策略为4+1,则将当前数据帧切分成4个原始片段,将这1个原始片段进行冗余处理,得到1个冗余片段。
S104:将所述原始片段及冗余片段分别存储至所述存储对象中。
在S102中,已经为当前数据帧分配了存储对象,此时,可以把各数据片段(包括原始片段及冗余片段)存储至分配的存储对象中。
根据上面描述,如果分配了k+m个存储节点,则可以保证各个数据片段存储至不同的存储节点中,如果分配了k+m个磁盘,则可以保证各个数据片段存储至不同的磁盘中,如果分配了小于k+m个磁盘,则应当将k+m个数据片段尽量均匀地存储至各个磁盘中。这样,如果一个磁盘出现故障、或者一个存储节点出现故障,导致数据丢失,仍可以利用其他磁盘或存储节点中存储的数据片段,对丢失的数据片段进行恢复。
S105:记录所述当前数据帧对应的索引信息。所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
假设当前数据帧为关键帧,将当前数据帧切分成4个原始片段,将这4个原始片段进行冗余处理,得到2个冗余片段;这6个数据片段(4个原始片段和2个冗余片段)分别为:A1、A2、A3、A4、A5、A6。假设分配了6个磁盘作为该当前数据帧的存储对象,这6个磁盘分别为:B1、B2、B3、B4、B5、B6。
具体将哪个数据片段存储至哪个磁盘不做限定,这里假设将A1存储至B1,将A2存储至B2,将A3存储至B3,将A4存储至B4,将A5存储至B5,将A6存储至B6。这种情况下,记录该当前数据帧对应的索引信息可以包括:A1—B1、A2—B2、A3—B3、A4—B4、A5—B5、A6—B6。
需要说明的是,在索引信息中,也可以区分标识原始片段及冗余片段,上述索引信息只是为了简化说明,具体不做限定。
应用本发明图1所示实施例,针对一条数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定其对应的纠删码策略,利用所确定的纠删码策略对其进行处理;也就是说,在一条数据流中,不同帧类型的数据帧对应的纠删码策略可以不同,提高了基于数据流保护的纠删码策略的灵活性。进一步的,当一条数据流中各个数据帧的重要程度不同时,应用本方案,能够实现基于各个数据帧的重要程度对其进行区分存储,提高了流式数据存储的安全性。
图2为本发明实施例提供的一种数据重构方法的流程示意图,包括:
S201:在所记录的数据帧对应的索引信息中,确定待重构索引信息。其中,所述待重构索引信息中包含出现故障的存储对象的信息。
需要说明的是,本发明图2所示实施例中的数据帧可以基于本发明图1所示实施例提供的数据存储方法进行存储,或者,也可以基于其他存储方法进行存储。所记录的索引信息包括:每个数据片段与存储所述数据片段的存储对象的对应关系。
执行本方案的电子设备可以获取出现故障的存储对象的信息,这样,该电子设备便可以确定出待重构索引信息:将包含出现故障的存储对象的信息的索引信息确定为待重构索引信息。
S202:根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级。其中,纠删码策略根据数据帧的帧类型确定。
延续上述例子,关键帧对应的纠删码策略为4+2,非关键帧对应的纠删码策略为4+1。在本实施例中,关键帧的索引信息对应的优先级可以高于非关键帧的索引信息对应的优先级。
比如,如果数据帧对应的纠删码策略为4+1,则该数据帧为非关键帧,其索引信息对应的优先级可以为2;如果数据帧对应的纠删码策略为4+2,则该数据帧为关键帧,其索引信息对应的优先级可以为1;优先级越高,数值越小。优先级的具体设定不做限定。
S203:根据所确定的优先级,依次对各条待重构索引信息进行重构处理:
根据待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;更新所述待重构索引信息。
也就是说,可以按照优先级的高低,顺序对确定出的各条待重构索引信息进行重构处理。
应用本发明图2所示实施例,优先对重要程度高的数据帧进行重构,能够实现基于各个数据帧的重要程度确定对其进行重构的先后顺序,提高了流式数据存储的安全性。
图3为本发明实施例提供的一种数据清理方法的流程示意图,包括:
S301:确定待清理数据流及其包含的每个数据帧对应的纠删码策略。
需要说明的是,本发明图3所示实施例中的数据帧可以基于本发明图1所示实施例提供的数据存储方法进行存储,或者,也可以基于其他存储方法进行存储。另外,纠删码策略根据数据帧的帧类型确定。
具体的,确定待清理数据流的方式可以有多种,比如,将存储时刻位于预设时刻之前的数据流确定为待清理数据流;或者,接收用户指令,根据用户指令确定待清理数据流等等,具体不做限定。
由本发明图1所示实施例中的描述可知,不同帧类型的数据帧对应的纠删码策略可以不同。比如,关键帧对应的纠删码策略为4+2,非关键帧对应的纠删码策略为4+1。这样,关键帧对应的索引信息中即包含4份原始片段及2份冗余片段,非关键帧对应的索引信息中即包含4份原始片段及1份冗余片段。
因此,确定待清理数据流包含的每个数据帧对应的纠删码策略可以包括:
在所记录的数据帧对应的索引信息中,读取所述待清理数据流包含的每个数据帧对应的索引信息;
根据所读取的索引信息中的原始片段份数k及冗余片段份数m,确定待清理数据流包含的每个数据帧对应的纠删码策略。
举例来说,如果待清理数据流中的数据帧X对应的索引信息为:A1—B1、A2—B2、A3—B3、A4—B4、A5—B5、A6—B6,也就是说,数据帧X对应的索引信息中即包含4份原始片段及2份冗余片段,数据帧X对应的纠删码策略为4+2。
如果待清理数据流中的数据帧Z对应的索引信息为A1—B1、A2—B2、A3—B3、A4—B4、A5—B5,也就是说,数据帧Z对应的索引信息中即包含4份原始片段及1份冗余片段,数据帧Z对应的纠删码策略为4+1。
S302:确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧。
该预设的目标纠删码策略可以根据实际情况进行设定。一般来说,可以将安全级别较低的纠删码策略对应的数据帧确定为待删除数据帧,或者,也可以为其他,具体不做限定。
延续上述例子,如果将安全级别较低的纠删码策略对应的数据帧确定为待删除数据帧,则该预设的目标纠删码策略即为4+1,将所对应的纠删码策略为4+1的数据帧确定为待删除数据帧。
S303:将所确定的每个待删除数据帧删除。
作为一种实施方式,还可以将所确定的每个待删除数据帧对应的索引信息删除。
应用本发明图3所示实施例,可以根据实际情况将部分数据帧删除,比如,可以将存储时间较久、且重要程度较低的数据帧删除,节省存储空间。
与上述方法实施例相对应,本发明实施例还提供了一种数据存储、清理装置。
图4为本发明实施例提供的一种数据存储装置的结构示意图,包括:
第一确定模块401,用于根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
分配模块402,用于根据所确定的纠删码策略,为所述当前数据帧分配存储对象;
切片模块403,用于利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;
存储模块404,用于将所述原始片段及冗余片段分别存储至所述存储对象中;
记录模块405,用于记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
在本实施例中,第一确定模块401,具体可以用于:
判断当前数据帧的帧类型是否为关键帧;
如果是,确定所述当前数据帧对应的纠删码策略为第一类策略;
如果否,确定所述当前数据帧对应的纠删码策略为第二类策略;其中,所述第二类策略的安全级别低于所述第一类策略。
在本实施例中,分配模块402,可以包括:确定子模块和分配子模块(图中未示出),其中,
确定子模块,用于确定所述纠删码策略中包含的原始片段份数k及冗余片段份数m;
分配子模块,用于根据k+m,为所述当前数据帧分配存储对象;
切片模块403,可以包括:切分子模块和冗余子模块(图中未示出),其中,
切分子模块,用于将所述当前数据帧切分成k个原始片段;
冗余子模块,用于将所述k个原始片段进行冗余处理,得到m个冗余片段;
存储模块404,具体可以用于:
将所述k个原始片段及所述m个冗余片段分别存储到所分配的存储对象中。
在本实施例中,分配子模块,具体可以用于:
判断可用存储节点的数量是否不小于k+m;
如果不小于,将k+m个可用存储节点确定为所述当前数据帧对应的存储对象;
如果小于,判断可用存储节点中的可用磁盘的数量是否不小于k+m;如果是,将k+m个可用磁盘确定为所述当前数据帧对应的存储对象;如果否,将全部可用磁盘确定为所述当前数据帧对应的存储对象。
应用本发明图4所示实施例,针对一条数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定其对应的纠删码策略,利用所确定的纠删码策略对其进行处理;也就是说,在一条数据流中,不同帧类型的数据帧对应的纠删码策略可以不同,提高了基于数据流保护的纠删码策略的灵活性。进一步的,当一条数据流中各个数据帧的重要程度不同时,应用本方案,能够实现基于各个数据帧的重要程度对其进行区分存储,提高了流式数据存储的安全性。
图5为本发明实施例提供的一种数据重构装置的结构示意图,可以包括:
第二确定模块501,用于在所记录的数据帧对应的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;所述数据帧可以利用本发明图4所示实施例提供的数据存储装置进行存储,或者,也可以利用其他存储装置进行存储;所记录的索引信息包括:存储每个原始片段及冗余片段的存储对象的信息;
第三确定模块502,用于根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;
重构模块503,用于根据所确定的优先级,依次对各条待重构索引信息进行重构处理:
根据待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;更新所述待重构索引信息。
应用本发明图5所示实施例,优先对重要程度高的数据帧进行重构,能够实现基于各个数据帧的重要程度确定对其进行重构的先后顺序,提高了流式数据存储的安全性。
图6为本发明实施例提供的一种数据清理装置的结构示意图,可以包括:
第四确定模块601,用于确定待清理数据流及其包含的每个数据帧对应的纠删码策略;其中,所述数据帧可以利用本发明图4所示实施例提供的数据存储装置进行存储,或者,也可以利用其他存储装置进行存储;纠删码策略根据数据帧的帧类型确定;
第五确定模块602,用于确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;
第一删除模块603,用于将所确定的每个待删除数据帧删除。
在本实施例中,第四确定模块601,具体可以用于:
确定待清理数据流;
在所记录的数据帧对应的索引信息中,读取所述待清理数据流包含的每个数据帧对应的索引信息;
根据所读取的索引信息中的原始片段份数k及冗余片段份数m,确定待清理数据流包含的每个数据帧对应的纠删码策略。
在本实施例中,所述装置还可以包括:
第二删除模块(图中未示出),用于将所确定的每个待删除数据帧对应的索引信息删除。
应用本发明图6所示实施例,可以根据实际情况将部分数据帧删除,比如,可以将存储时间较久、且重要程度较低的数据帧删除,节省存储空间。
本发明实施例还提供一种数据处理系统,该系统可以如图7所示,包括:平台服务器和管理服务器,下面对该系统进行数据存储的过程进行详细说明:
平台服务器接收用户发送的数据存储请求后,指定接收待存储数据流的管理服务器;
管理服务器,接收用户发送的待存储数据流,针对所述待存储数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
平台服务器,根据所确定的纠删码策略,为当前数据帧分配存储对象;
管理服务器,利用所确定的纠删码策略,对当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;将所述原始片段及冗余片段分别存储至所述存储对象中;
平台服务器,记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
作为一种实施方式,管理服务器可以判断当前数据帧的帧类型是否为关键帧;如果是,确定所述当前数据帧对应的纠删码策略为第一类策略;如果否,确定所述当前数据帧对应的纠删码策略为第二类策略;其中,所述第二类策略的安全级别低于所述第一类策略。
作为一种实施方式,平台服务器可以确定所述纠删码策略中包含的原始片段份数k及冗余片段份数m;根据k+m,为所述当前数据帧分配存储对象;
管理服务器可以将所述当前数据帧切分成k个原始片段;将所述k个原始片段进行冗余处理,得到m个冗余片段;将所述k个原始片段及所述m个冗余片段分别存储到所分配的存储对象中。
作为一种实施方式,平台服务器可以判断可用存储节点的数量是否不小于k+m;如果不小于,将k+m个可用存储节点确定为所述当前数据帧对应的存储对象;如果小于,判断可用存储节点中的可用磁盘的数量是否不小于k+m;如果是,将k+m个可用磁盘确定为所述当前数据帧对应的存储对象;如果否,将全部可用磁盘确定为所述当前数据帧对应的存储对象。
下面介绍一个具体的实施方式:
1、平台服务器接收用户发送的数据存储请求后,指定接收待存储数据流的管理服务器。
2、被指定的管理服务器接收该用户发送的待存储数据流。
3、该管理服务器针对该待存储数据流的每个当前数据帧,判断其帧类型是否为关键帧,如果是,则确定其对应的纠删码策略为4+2,如果否,则确定其对应的纠删码策略为4+1。
4、该管理服务器根据所确定的纠删码策略向平台服务器申请条带资源。
5、平台服务器根据该纠删码策略,为当前数据帧分配条带资源:
如果纠删码策略为4+2,平台服务器组织4+2的条带资源下发给管理服务器;如果纠删码策略为4+1,平台服务器组织4+1的条带资源下发给管理服务器。
具体的,平台服务器为每个条带生成一个唯一的条带ID(stripe id),例如:平台服务器组织4+1的条带资源时,在资源允许的情况下,平台服务器为该条带分配5个存储对象。
分配5个存储对象的规则可以包括:如果有足够多的可用存储节点(数量不小于5),则分配5个可用存储节点以存储该当前数据帧,使得该当前数据帧的每个数据片段(包括原始片段及冗余片段)存储至不同的存储节点中。
如果没有足够多的可用存储节点(数量小于5),但是有足够多的可用磁盘(数量不小于5),则分配5个可用磁盘以存储该当前数据帧,使得该当前数据帧的每个数据片段存储至不同的磁盘中。
如果也没有足够多的可用磁盘(数量小于5),则分配全部可用磁盘以存储该当前数据帧,使得该当前数据帧的每个数据片段存储的磁盘尽量不同。
综上所述,也就是将当前数据帧尽量分散存储,如果一个磁盘出现故障、或者一个存储节点出现故障,导致数据丢失,仍可以利用其他磁盘或存储节点中存储的数据片段,对丢失的数据片段进行恢复。
假设平台服务器为该当前数据帧分配的条带为:
{<stripe_id,OSD_1,wwn_1>,<stripe_id,OSD_2,wwn_2>,<stripe_id,OSD_3,wwn_3>,<stripe_id,OSD_4,wwn_4>,<stripe_id,OSD_5,wwn_5>},其中,OSD可以理解为存储节点,OSD_1、OSD_2等可以理解为存储节点的标识信息,wwn可以理解为磁盘,wwn_1、wwn_2等可以理解为磁盘的标识信息。
6、管理服务器利用所确定的纠删码策略,对该当前数据帧进行切片及冗余处理,得到原始片段及冗余片段,并将得到的原始片段及冗余片段分别存储至所分配的存储对象中。
具体的,管理服务器为条带中的每个数据片段生成一个唯一的key信息,这样,条带中的每个数据片段对应一个五元组<stripe_id,OSD,wwn,key,value>,其中,stripe_id表示条带ID,OSD表示存储节点的标识信息,wwn表示磁盘的标识信息,key表示数据片段的key,value表示数据片段的值或内容。
上述条带可以完整表示为:
{<stripe_id,OSD_1,wwn_1,key_1,value_1>,<stripe_id,OSD_2,wwn_2,key_2,value_2>,<stripe_id,OSD_3,wwn_3,key_3,value_3>,<stripe_id,OSD_4,wwn_4,key_4,value_4>,<stripe_id,OSD_5,wwn_5,key_5,value_5>}。
7、管理服务器根据上述完整的条带,将数据片段发送给其对应的存储节点。
具体的,管理服务器可以向存储节点发送一个三元组<wwn,key,value>,存储节点根据该三元组,将数据<key,value>存储到对应的磁盘中,存储节点存储完毕后返回给管理服务器存储成功的消息。
8、管理服务器接收到条带对应的每个存储节点发送的存储成功的消息后(表示该当前数据帧存储成功),管理服务器将每个数据片段的<stripe_id,wwn,key>(也就是索引信息)发送给平台服务器。
9、平台服务器记录当前数据帧的每个数据片段的<stripe_id,wwn,key>(也就是索引信息)后,该当前数据帧存储完毕。
需要说明的是,在一些实施方式中,同一个磁盘在不同时刻可以属于不同的存储节点,因此,在这种情况下,平台服务器记录的条带信息可以不包括存储节点的标识信息,也就是说,管理服务器记录的条带可以为:{<stripe_id,wwn_1,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>}。
另外,上述存储节点也可以为存储服务器,或者其他,具体不做限定。
应用上述实施例,针对一条数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定其对应的纠删码策略,利用所确定的纠删码策略对其进行处理;也就是说,在一条数据流中,不同帧类型的数据帧对应的纠删码策略可以不同,提高了基于数据流保护的纠删码策略的灵活性。进一步的,当一条数据流中各个数据帧的重要程度不同时,应用本方案,能够实现基于各个数据帧的重要程度对其进行区分存储,提高了流式数据存储的安全性。
下面对数据处理系统进行数据读取的过程进行详细说明:
平台服务器,确定待读取数据流中包含的每个数据帧对应的索引信息;
管理服务器,根据平台服务器确定的索引信息,从存储对象中读取所述待读取数据流对应的每个原始片段及冗余片段;将所读取的每个原始片段及冗余片段进行组合,得到完整数据帧,进行得到完整数据流。
下面介绍一个具体的实施方式:
1、平台服务器接收用户发送的数据读取请求,根据该数据读取请求,确定待读取数据流,并指定执行读取操作的管理服务器。
2、被指定的管理服务器向平台服务器请求该待读取数据流的条带信息(也就是该待读取数据流包含的每个数据帧对应的索引信息)。
假设某数据帧对应的纠删码策略为4+1,平台服务器中记录的该某数据帧的条带为:
{<stripe_id,wwn_1,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>}。
根据上面描述,同一个磁盘在不同时刻可以属于不同的存储节点,在这种情况下,平台服务器记录的条带信息不包括存储节点的标识信息,因此,平台服务器需要根据磁盘的标识信息获取对应的存储节点的标识信息,并将所获取的存储节点的标识信息填充到上述条带中,填充后的条带为:
{<stripe_id,OSD_1,wwn_1,key_1>,<stripe_id,OSD_2,wwn_2,key_2>,<stripe_id,OSD_3,wwn_3,key_3>,<stripe_id,OSD_4,wwn_4,key_4>,<stripe_id,OSD_5,wwn_5,key_5>};
3、管理服务器可以根据上述填充后的条带,向存储节点发送一个二元组<wwn,key>,存储节点根据该二元组,使用key读取wwn(磁盘)上的value,存储节点将读取到的<key,value>发送给管理服务器。
4、管理服务器将存储节点发送的每个数据片段的<key,value>进行组合,组合完毕后条带为:
{<key_1,value_1>,<key_2,value_2>,<key_3,value_3>,<key_4,value_4>,<key_5,value_5>},这样,就得到了完整的数据帧。
5、管理服务器将该完整的数据帧发送给用户。
6、针对每个数据帧执行上述方案,也就得到了完整数据流。
另外,上述存储节点也可以为存储服务器,或者其他,具体不做限定。
下面对数据处理系统进行数据重构的过程进行详细说明:
平台服务器,在所记录的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;
管理服务器,对所述待重构索引信息对应的数据帧进行重构处理:
根据所述待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;
平台服务器,更新所述待重构索引信息。
具体的,平台服务器,可以根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;
管理服务器,可以根据所确定的优先级,依次对各条待重构索引信息进行所述重构处理。
作为另一种实施方式,如图8所示,该数据处理系统还可以包括审计服务器,
平台服务器,在所记录的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;
审计服务器,对所述待重构索引信息对应的数据帧进行重构处理:
根据所述待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;
所述平台服务器,更新所述待重构索引信息。
具体的,平台服务器,可以根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;
审计服务器,可以根据所确定的优先级,依次对各条待重构索引信息进行所述重构处理。
当存储节点出现故障或者磁盘出与故障等情况时,数据处理系统将启动数据重构。下面针对图8介绍一个具体的实施方式:
1、平台服务器获取出现故障的存储节点或者磁盘的信息;扫描记录的条带(也就是各数据片段对应的索引信息);将包含出现故障的存储节点或者磁盘的信息的条带确定为待重构条带(也就是确定待重构索引信息);指定执行重构操作的审计服务器。
需要说明的是,平台服务器可以根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级。
关键帧的索引信息对应的优先级可以高于非关键帧的索引信息对应的优先级。延续上述例子,如果数据帧对应的纠删码策略为4+1,则该数据帧为非关键帧,其索引信息对应的优先级可以为2;如果数据帧对应的纠删码策略为4+2,则该数据帧为关键帧,其索引信息对应的优先级可以为1;优先级越高,数值越小。优先级的具体设定不做限定。
审计服务器对优先级高的索引信息优先进行重构处理。
为了简化说明,假设只确定出一条待重构条带:
{<stripe_id,wwn_1,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>},其中wwn_1磁盘下线;
根据上面描述,同一个磁盘在不同时刻可以属于不同的存储节点,在这种情况下,平台服务器记录的条带信息不包括存储节点的标识信息,因此,平台服务器需要根据磁盘的标识信息获取对应的存储节点的标识信息,并将所获取的存储节点的标识信息填充到上述条带中,填充后的条带为:
{<stripe_id,OSD_1,wwn_1,key_1>,<stripe_id,OSD_2,wwn_2,key_2>,<stripe_id,OSD_3,wwn_3,key_3>,<stripe_id,OSD_4,wwn_4,key_4>,<stripe_id,OSD_5,wwn_5,key_5>}。
平台服务器将填充后的条带、以及与需要修复的数据片段<stripe_id,OSD_1,wwn_1,key_1>(也就是待重构索引信息)发送给审计服务器。
2、审计服务器接收到上述填充后的条带、以及与需要修复的数据片段后,将条带中的信息进行分类:
{<stripe_id,OSD_2,wwn_2,key_2>,<stripe_id,OSD_3,wwn_3,key_3>,<stripe_id,OSD_4,wwn_4,key_4>,<stripe_id,OSD_5,wwn_5,key_5>}这四条索引信息对应的数据片段未丢失,可以正常读取;<stripe_id,OSD_1,wwn_1,key_1>对应的数据片段丢失,需要利用纠删码策略进行修复。
3、审计服务器将{<wwn_2,key_2>,<wwn_3,key_3>,<wwn_4,key_4>,<wwn_5,key_5>}发送给对应的存储节点读取数据。
4、读取数据完毕后,条带为:
{<wwn_2,key_2,value_2>,<wwn_3,key_3,value_3>,<wwn_4,key_4,value_4>,<wwn_5,key_5,value_5>},利用纠删码策略进行修复出丢失的wwn_1磁盘中的数据片段value_1。
5、审计服务器向平台服务器申请新的存储节点与磁盘<OSD_z,wwn_z>。
6、审计服务器将恢复出的数据片段value_1写入到新的存储节点与磁盘<OSD_z,wwn_z>中。
7、重构操作完成,审计服务器通知平台服务器更新条带,此时平台服务器更新条带为:
{<stripe_id,wwn_z,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>}。
另外,上述存储节点也可以为存储服务器,或者其他,具体不做限定。
下面对数据处理系统进行数据清理的过程进行详细说明:
平台服务器,确定待清理数据流及其包含的每个数据帧对应的纠删码策略;确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;将所确定的每个待删除数据帧删除。
作为一种实施方式,平台服务器,可以在所记录的数据帧对应的索引信息中,读取所述待清理数据流包含的每个数据帧对应的索引信息;根据所读取的索引信息中的原始片段份数k及冗余片段份数m,确定待清理数据流包含的每个数据帧对应的纠删码策略。
作为一种实施方式,平台服务器,可以在所述将所确定的每个待删除数据帧删除的步骤之后,将所确定的每个待删除数据帧对应的索引信息删除。
该预设的目标纠删码策略可以根据实际情况进行设定。一般来说,可以将安全级别较低的纠删码策略对应的数据帧确定为待删除数据帧,或者,也可以为其他,具体不做限定。
延续上述例子,如果将安全级别较低的纠删码策略对应的数据帧确定为待删除数据帧,则该预设的目标纠删码策略即为4+1,将所对应的纠删码策略为4+1的数据帧确定为待删除数据帧。
下面介绍一个具体的实施方式:
平台服务器将存储时刻位于2016年10月1日之前的数据流确定为待清理数据流。为了简化说明,下面针对一条待清理数据流W进行说明:
待清理数据流W中包含关键帧及非关键帧,其中关键帧对应的纠删码策略为4+2,非关键帧对应的纠删码策略为4+1。
平台服务器将目标纠删码策略设定为4+1,将待清理数据流W中所对应纠删码策略为4+1的数据帧删除,也就是将待清理数据流W中的非关键帧删除。
应用本发明实施例提供的数据清理的过程,可以根据实际情况将部分数据帧删除,比如,可以将存储时间较久、且重要程度较低的数据帧删除,节省存储空间。
需要说明的是,在本发明实施例提供的数据处理系统中还可以包括存储服务器,如图9所示。
作为一种实施方式,存储服务器可以包括上述存储节点,或者,存储服务器也可在为上述存储节点。
存储服务器,向所述平台服务器上报自身多个存储对象的运行状态信息,以使所述平台服务器根据每个存储服务器上报的运行状态信息为数据帧分配存储对象、以及确定待重构索引信息。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (22)
1.一种数据存储方法,其特征在于,包括:
根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
根据所确定的纠删码策略,为所述当前数据帧分配存储对象;
利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;
将所述原始片段及冗余片段分别存储至所述存储对象中;
记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
2.根据权利要求1所述的方法,其特征在于,所述根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略的步骤包括:
判断当前数据帧的帧类型是否为关键帧;
如果是,确定所述当前数据帧对应的纠删码策略为第一类策略;
如果否,确定所述当前数据帧对应的纠删码策略为第二类策略;其中,所述第二类策略的安全级别低于所述第一类策略。
3.根据权利要求1所述的方法,其特征在于,所述根据所确定的纠删码策略,为所述当前数据帧分配存储对象的步骤包括:
确定所述纠删码策略中包含的原始片段份数k及冗余片段份数m;
根据k+m,为所述当前数据帧分配存储对象;
所述利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段的步骤包括:
将所述当前数据帧切分成k个原始片段;
将所述k个原始片段进行冗余处理,得到m个冗余片段;
所述将所述原始片段及冗余片段分别存储至所述存储对象中的步骤包括:
将所述k个原始片段及所述m个冗余片段分别存储到所分配的存储对象中。
4.根据权利要求3所述的方法,其特征在于,所述根据k+m,为所述当前数据帧分配存储对象的步骤包括:
判断可用存储节点的数量是否不小于k+m;
如果不小于,将k+m个可用存储节点确定为所述当前数据帧对应的存储对象;
如果小于,判断可用存储节点中的可用磁盘的数量是否不小于k+m;如果是,将k+m个可用磁盘确定为所述当前数据帧对应的存储对象;如果否,将全部可用磁盘确定为所述当前数据帧对应的存储对象。
5.一种数据重构方法,其特征在于,包括:
在所记录的数据帧对应的索引信息中,确定待重构索引信息;其中,索引信息包括:存储每个原始片段及冗余片段的存储对象的信息,所述待重构索引信息中包含出现故障的存储对象的信息;
根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;其中,纠删码策略根据数据帧的帧类型确定;
根据所确定的优先级,依次对各条待重构索引信息进行重构处理:
根据待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;更新所述待重构索引信息。
6.一种数据清理方法,其特征在于,包括:
确定待清理数据流及其包含的每个数据帧对应的纠删码策略;其中,纠删码策略根据数据帧的帧类型确定;
确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;
将所确定的每个待删除数据帧删除。
7.根据权利要求6所述的方法,其特征在于,确定待清理数据流包含的每个数据帧对应的纠删码策略的步骤包括:
在所记录的数据帧对应的索引信息中,读取所述待清理数据流包含的每个数据帧对应的索引信息;
根据所读取的索引信息中的原始片段份数k及冗余片段份数m,确定待清理数据流包含的每个数据帧对应的纠删码策略。
8.根据权利要求6所述的方法,其特征在于,在所述将所确定的每个待删除数据帧删除的步骤之后,还包括:
将所确定的每个待删除数据帧对应的索引信息删除。
9.一种数据存储装置,其特征在于,包括:
第一确定模块,用于根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
分配模块,用于根据所确定的纠删码策略,为所述当前数据帧分配存储对象;
切片模块,用于利用所确定的纠删码策略,对所述当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;
存储模块,用于将所述原始片段及冗余片段分别存储至所述存储对象中;
记录模块,用于记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
10.根据权利要求9所述的装置,其特征在于,所述第一确定模块,具体用于:
判断当前数据帧的帧类型是否为关键帧;
如果是,确定所述当前数据帧对应的纠删码策略为第一类策略;
如果否,确定所述当前数据帧对应的纠删码策略为第二类策略;其中,所述第二类策略的安全级别低于所述第一类策略。
11.根据权利要求9所述的装置,其特征在于,所述分配模块,包括:
确定子模块,用于确定所述纠删码策略中包含的原始片段份数k及冗余片段份数m;
分配子模块,用于根据k+m,为所述当前数据帧分配存储对象;
所述切片模块,包括:
切分子模块,用于将所述当前数据帧切分成k个原始片段;
冗余子模块,用于将所述k个原始片段进行冗余处理,得到m个冗余片段;
所述存储模块,具体用于:
将所述k个原始片段及所述m个冗余片段分别存储到所分配的存储对象中。
12.根据权利要求11所述的装置,其特征在于,所述分配子模块,具体用于:
判断可用存储节点的数量是否不小于k+m;
如果不小于,将k+m个可用存储节点确定为所述当前数据帧对应的存储对象;
如果小于,判断可用存储节点中的可用磁盘的数量是否不小于k+m;如果是,将k+m个可用磁盘确定为所述当前数据帧对应的存储对象;如果否,将全部可用磁盘确定为所述当前数据帧对应的存储对象。
13.一种数据重构装置,其特征在于,包括:
第二确定模块,用于在所记录的数据帧对应的索引信息中,确定待重构索引信息;其中,索引信息包括:存储每个原始片段及冗余片段的存储对象的信息,所述待重构索引信息中包含出现故障的存储对象的信息;
第三确定模块,用于根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;其中,纠删码策略根据数据帧的帧类型确定;
重构模块,用于根据所确定的优先级,依次对各条待重构索引信息进行重构处理:
根据待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;更新所述待重构索引信息。
14.一种数据清理装置,其特征在于,包括:
第四确定模块,用于确定待清理数据流及其包含的每个数据帧对应的纠删码策略;其中,纠删码策略根据数据帧的帧类型确定;
第五确定模块,用于确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;
第一删除模块,用于将所确定的每个待删除数据帧删除。
15.根据权利要求14所述的装置,其特征在于,所述第四确定模块,具体用于:
确定待清理数据流;
在所记录的数据帧对应的索引信息中,读取所述待清理数据流包含的每个数据帧对应的索引信息;
根据所读取的索引信息中的原始片段份数k及冗余片段份数m,确定待清理数据流包含的每个数据帧对应的纠删码策略。
16.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第二删除模块,用于将所确定的每个待删除数据帧对应的索引信息删除。
17.一种数据处理系统,其特征在于,包括:平台服务器和管理服务器,其中,
所述平台服务器,接收用户发送的数据存储请求后,指定接收待存储数据流的管理服务器;
所述管理服务器,接收用户发送的待存储数据流,针对所述待存储数据流中的每个当前数据帧,根据当前数据帧的帧类型,确定所述当前数据帧对应的纠删码策略;
所述平台服务器,根据所确定的纠删码策略,为当前数据帧分配存储对象;
所述管理服务器,利用所确定的纠删码策略,对当前数据帧进行切片及冗余处理,得到原始片段及冗余片段;将所述原始片段及冗余片段分别存储至所述存储对象中;
所述平台服务器,记录所述当前数据帧对应的索引信息,所述索引信息包括:存储每个原始片段及冗余片段的存储对象的信息。
18.根据权利要求17所述的系统,其特征在于,
所述平台服务器,确定待读取数据流中包含的每个数据帧对应的索引信息;
所述管理服务器,根据所述平台服务器确定的索引信息,从存储对象中读取所述待读取数据流对应的每个原始片段及冗余片段;将所读取的每个原始片段及冗余片段进行组合,得到完整数据帧,进而得到完整数据流。
19.根据权利要求17所述的系统,其特征在于,
所述平台服务器,在所记录的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;
所述管理服务器,对所述待重构索引信息对应的数据帧进行重构处理:
根据所述待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;
所述平台服务器,更新所述待重构索引信息;
或者,所述系统还包括审计服务器,
所述平台服务器,在所记录的索引信息中,确定待重构索引信息;其中,所述待重构索引信息中包含出现故障的存储对象的信息;
所述审计服务器,对所述待重构索引信息对应的数据帧进行重构处理:
根据所述待重构索引信息中包含的未出现故障的存储对象的信息,从所述未出现故障的存储对象中读取目标数据片段,所述目标数据片段为:所述待重构索引信息对应的数据帧的每个原始片段及冗余片段;将所述目标数据片段进行重构,得到修复片段;将所述修复片段存储至为其分配的存储对象中;
所述平台服务器,更新所述待重构索引信息。
20.根据权利要求19所述的系统,其特征在于,
所述平台服务器,根据所对应的纠删码策略,确定各条待重构索引信息对应的优先级;
所述管理服务器或所述审计服务器,根据所确定的优先级,依次对各条待重构索引信息进行所述重构处理。
21.根据权利要求17所述的系统,其特征在于,
所述平台服务器,确定待清理数据流及其包含的每个数据帧对应的纠删码策略;确定所述待清理数据流中的待删除数据帧;所述待删除数据帧为:所对应纠删码策略为预设的目标纠删码策略的数据帧;将所确定的每个待删除数据帧删除。
22.根据权利要求17-21任一项所述的系统,其特征在于,还包括:存储服务器,所述存储服务器包含多个存储对象;
所述存储服务器,向所述平台服务器上报自身多个存储对象的运行状态信息,以使所述平台服务器根据每个存储服务器上报的运行状态信息为数据帧分配存储对象、以及确定待重构索引信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710210377.3A CN108664351A (zh) | 2017-03-31 | 2017-03-31 | 一种数据存储、重构、清理方法、装置及数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710210377.3A CN108664351A (zh) | 2017-03-31 | 2017-03-31 | 一种数据存储、重构、清理方法、装置及数据处理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108664351A true CN108664351A (zh) | 2018-10-16 |
Family
ID=63784383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710210377.3A Pending CN108664351A (zh) | 2017-03-31 | 2017-03-31 | 一种数据存储、重构、清理方法、装置及数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108664351A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109412755A (zh) * | 2018-11-05 | 2019-03-01 | 东方网力科技股份有限公司 | 一种多媒体数据处理方法、装置及存储介质 |
CN110737669A (zh) * | 2019-10-18 | 2020-01-31 | 北京百度网讯科技有限公司 | 数据存储方法、装置、设备及存储介质 |
WO2020078391A1 (zh) * | 2018-10-19 | 2020-04-23 | 杭州海康威视系统技术有限公司 | 存储视频数据的方法和装置 |
CN112463434A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种基于纠删码的数据重构方法、装置、设备及存储介质 |
CN113051104A (zh) * | 2021-03-11 | 2021-06-29 | 重庆紫光华山智安科技有限公司 | 基于纠删码的磁盘间数据恢复方法及相关装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218037A1 (en) * | 2008-09-16 | 2010-08-26 | File System Labs Llc | Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof |
CN102143367A (zh) * | 2010-01-30 | 2011-08-03 | 华为技术有限公司 | 一种纠错校验方法、设备和系统 |
CN102270161A (zh) * | 2011-06-09 | 2011-12-07 | 华中科技大学 | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 |
US20150026539A1 (en) * | 2011-04-01 | 2015-01-22 | Cleversafe, Inc. | Utilizing a local area network memory and a dispersed storage network memory to access data |
CN105630418A (zh) * | 2015-12-24 | 2016-06-01 | 曙光信息产业(北京)有限公司 | 一种数据存储方法及装置 |
CN105791353A (zh) * | 2014-12-23 | 2016-07-20 | 深圳市腾讯计算机系统有限公司 | 基于纠删码的分布式数据存储方法及系统 |
US20160246676A1 (en) * | 2015-02-20 | 2016-08-25 | Netapp, Inc. | Methods for policy-based hierarchical data protection and devices thereof |
CN106060442A (zh) * | 2016-05-20 | 2016-10-26 | 浙江宇视科技有限公司 | 一种录像存储方法、装置及系统 |
CN106294773A (zh) * | 2016-08-11 | 2017-01-04 | 北京小米移动软件有限公司 | 数据清理方法及装置 |
US20170083603A1 (en) * | 2015-09-18 | 2017-03-23 | Qualcomm Incorporated | Co-derived data storage patterns for distributed storage systems |
-
2017
- 2017-03-31 CN CN201710210377.3A patent/CN108664351A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218037A1 (en) * | 2008-09-16 | 2010-08-26 | File System Labs Llc | Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof |
CN102143367A (zh) * | 2010-01-30 | 2011-08-03 | 华为技术有限公司 | 一种纠错校验方法、设备和系统 |
US20150026539A1 (en) * | 2011-04-01 | 2015-01-22 | Cleversafe, Inc. | Utilizing a local area network memory and a dispersed storage network memory to access data |
CN102270161A (zh) * | 2011-06-09 | 2011-12-07 | 华中科技大学 | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 |
CN105791353A (zh) * | 2014-12-23 | 2016-07-20 | 深圳市腾讯计算机系统有限公司 | 基于纠删码的分布式数据存储方法及系统 |
US20160246676A1 (en) * | 2015-02-20 | 2016-08-25 | Netapp, Inc. | Methods for policy-based hierarchical data protection and devices thereof |
US20170083603A1 (en) * | 2015-09-18 | 2017-03-23 | Qualcomm Incorporated | Co-derived data storage patterns for distributed storage systems |
CN105630418A (zh) * | 2015-12-24 | 2016-06-01 | 曙光信息产业(北京)有限公司 | 一种数据存储方法及装置 |
CN106060442A (zh) * | 2016-05-20 | 2016-10-26 | 浙江宇视科技有限公司 | 一种录像存储方法、装置及系统 |
CN106294773A (zh) * | 2016-08-11 | 2017-01-04 | 北京小米移动软件有限公司 | 数据清理方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020078391A1 (zh) * | 2018-10-19 | 2020-04-23 | 杭州海康威视系统技术有限公司 | 存储视频数据的方法和装置 |
CN109412755A (zh) * | 2018-11-05 | 2019-03-01 | 东方网力科技股份有限公司 | 一种多媒体数据处理方法、装置及存储介质 |
CN109412755B (zh) * | 2018-11-05 | 2021-11-23 | 东方网力科技股份有限公司 | 一种多媒体数据处理方法、装置及存储介质 |
CN110737669A (zh) * | 2019-10-18 | 2020-01-31 | 北京百度网讯科技有限公司 | 数据存储方法、装置、设备及存储介质 |
CN112463434A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种基于纠删码的数据重构方法、装置、设备及存储介质 |
CN113051104A (zh) * | 2021-03-11 | 2021-06-29 | 重庆紫光华山智安科技有限公司 | 基于纠删码的磁盘间数据恢复方法及相关装置 |
CN113051104B (zh) * | 2021-03-11 | 2022-10-11 | 重庆紫光华山智安科技有限公司 | 基于纠删码的磁盘间数据恢复方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108664351A (zh) | 一种数据存储、重构、清理方法、装置及数据处理系统 | |
CN105404469B (zh) | 一种视频数据的存储方法和系统 | |
CN110169040A (zh) | 基于多层一致性哈希的分布式数据存储方法与系统 | |
CN100392611C (zh) | 存储控制装置和方法 | |
CN103580906B (zh) | 一种数据备份的方法、系统及服务器 | |
CN105159603B (zh) | 一种分布式数据存储系统的修复方法 | |
CN104239227B (zh) | 一种虚拟化存储管理装置、本地虚拟存储管理装置及方法 | |
US20070073990A1 (en) | Distribution of data in a distributed shared storage system | |
US11010072B2 (en) | Data storage, distribution, reconstruction and recovery methods and devices, and data processing system | |
CN102170460A (zh) | 一种集群存储系统及其数据存储方法 | |
JP2004126716A (ja) | 広域分散ストレージシステムを利用したデータ格納方法、その方法をコンピュータに実現させるプログラム、記録媒体、及び広域分散ストレージシステムにおける制御装置 | |
CN103763383A (zh) | 一体化云存储系统及其存储方法 | |
CN111522501A (zh) | 磁盘阵列空间划分方法、装置、电子设备及存储介质 | |
JPH09138734A (ja) | 実時間ストリームサーバ並びに実時間ストリームサーバのディスク修復装置及びディスク修復方法 | |
CN102004769A (zh) | 文件管理方法、设备及存储系统 | |
CN106708653A (zh) | 一种基于纠删码与多副本的混合税务大数据安全保护方法 | |
CN109491832A (zh) | 数据容灾方法与站点 | |
CN104750738B (zh) | 一种更新数据信息的方法、数据节点、管理节点及系统 | |
CN102999399B (zh) | 一种jbod阵列自动恢复存储的方法和装置 | |
CN104486438A (zh) | 分布式存储系统的容灾方法及装置 | |
CN107168830A (zh) | 一种基于虚拟化平台的容灾系统、方法 | |
CN102314322B (zh) | 一种基于raid阵列的数据处理方法和设备 | |
CN109117292A (zh) | 一种集群存储的方法和装置及集群存储系统 | |
US20200293997A1 (en) | Maintenance staff scheduling method based on compound internet of things (iot) and iot system | |
CN111399761A (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: 20181016 |
|
RJ01 | Rejection of invention patent application after publication |