CN105824721B - 一种数据存储系统及其存储纠删方法 - Google Patents
一种数据存储系统及其存储纠删方法 Download PDFInfo
- Publication number
- CN105824721B CN105824721B CN201610143332.4A CN201610143332A CN105824721B CN 105824721 B CN105824721 B CN 105824721B CN 201610143332 A CN201610143332 A CN 201610143332A CN 105824721 B CN105824721 B CN 105824721B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- entangle
- delete
- entangling
- 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
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据存储系统及其存储纠删方法,所述数据存储系统包括存储客户端、存储服务端和存储代理,存储代理接收存储服务端上报的服务参数,并将服务参数通知到存储客户端,并接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存。本发明的数据存储系统及其存储纠删方法通过存储代理,实现在网络质量不太好的情况下,存储代理能通过反纠删算法对数据进行恢复,存储客户端对数据采用离散发送能提高数据通过反纠删算法恢复的成功率,提高了数据传输的效率。
Description
技术领域
本发明属于数据容灾存储领域,尤其涉及一种数据存储系统及其存储纠删方法。
背景技术
在很多对数据安全可靠性要求很高的行业,如金融行业、保险行业、电信行业等,为了保证数据的高可靠性,通常采用数据冗余备份的方法进行容灾。传统的数据容灾方式是对原始数据进行完全复制备份,将备份数据存储在异地的存储服务端上,这种容灾方式带来的成本十分高昂。纠删码采用将数据分割为片段并通过纠删算法生成冗余数据的方式来实现数据的冗余备份和分布式存储,这种存储纠删方式在实现数据容灾的同时也降低了成本。
现有的存储纠删技术通常采用C-S模式,即存储客户端加存储服务端的模式,具体分为二种方式:
1、存储客户端和所有存储服务端进行直接连接,存储客户端对原始数据进行纠删计算并将完成纠删计算后的数据平均发送给每个存储服务端,存储服务端完成数据的存储。
这种方式的主要问题是存储客户端需要和每台存储服务端都要进行连接,增加了网络对数据传输的影响,如果网络质量出现问题,存储客户端和存储服务端之间需要进行大量数据重传,严重时还会造成网络拥塞。
2、存储客户端和存储服务端的主节点直接连接,存储服务端的主节点和其他存储服务端相连,存储客户端将原始数据发送给存储服务端的主节点,由存储服务端的主节点完成数据的纠删计算后再分发给其他存储服务端进行存储。
这种方式的主要问题是存储客户端发出的数据没有冗余度,在网络质量不好的情况下需要有额外的机制来保证数据的完整性,另外在这种方式中存储服务端的主节点的开销太大,容易成为整个系统的瓶颈。
发明内容
本发明的目的是提供一种数据存储系统及其存储纠删方法,以解决现有的存储纠删技术中数据传输受网络质量影响大,数据冗余度不够等问题。
为了实现上述目的,本发明技术方案如下:
一种数据存储系统,包括存储客户端和存储服务端,所述数据存储系统还包括存储代理,其中:
所述存储代理,用于接收存储服务端上报的服务参数,并将服务参数通知到存储客户端,并接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存;
所述服务参数包括纠删组模式和存储服务端每次写入的最大数据量,所述纠删组模式表示存储服务端中用于存储原始数据的子设备和用于存储冗余数据的子设备之间的数量关系。
其中,所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,执行如下操作:
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
本发明所述纠删组模式表示为N=M+K,其中N为存储服务端中子设备的总数,M为存储服务端中用于存储原始数据的子设备数量,K为存储服务端中用于存储冗余数据的子设备数量,所述存储客户端在根据服务参数对原始数据进行纠删计算后发送数据,执行如下操作:
根据服务参数获取原始数据;
然后将获取的原始数据划分成至少一份;
对于划分后的每份原始数据,先将该份原始数据再平均分为M块原始数据,通过纠删算法从M块原始数据中计算出K块冗余数据,M块原始数据和K块冗余数据组成一个纠删组,纠删组中的每块数据称为一个纠删块;
将纠删计算后得到的所有纠删组组成一个纠删群,发送给存储代理。
进一步地,所述存储客户端还用于对纠删计算后得到的纠删群中的纠删块按照设定的离散规则进行编号,并在发送时按照纠删块编号顺序发送给存储代理。
进一步地,所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,执行如下操作:
根据纠删块编号和设定的离散规则重新排列纠删块,恢复成原来的纠删群;
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
本发明还提出了一种存储纠删方法,所述存储纠删方法应用于数据存储系统中,所述数据存储系统包括存储客户端和存储服务端,所述数据存储系统包括存储代理,所述存储纠删方法包括:
所述存储代理接收存储服务端上报的服务参数,并将服务参数通知到存储客户端,所述服务参数包括纠删组模式和存储服务端每次写入的最大数据量,所述纠删组模式表示存储服务端中用于存储原始数据的子设备和用于存储冗余数据的子设备之间的数量关系;
所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存。
其中,所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,包括:
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
进一步地,所述存储客户端根据服务参数对原始数据进行纠删计算后发送的数据为存储客户端根据服务参数对原始数据进行纠删计算生成的纠删组数据组成的纠删群,每个纠删组对应一次纠删计算,每个纠删组包括一次纠删计算生成的所有纠删块,纠删群中每个纠删块按照设定的离散规则对应有自己的纠删块编号。
进一步地,所述纠删群中的纠删块按照纠删块编号顺序发送。
进一步地,所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,包括:
根据纠删块编号和设定的离散规则重新排列纠删块,恢复成原来的纠删群;
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
本发明提出了一种数据存储系统及其存储纠删方法,存储客户端对原始数据进行纠删计算后离散发送给存储代理,在网络质量不太好的情况下,存储代理能通过反纠删算法对数据进行恢复,离散发送能提高在数据连续丢包情况下的反纠删算法恢复数据的成功率,本发明采用的存储纠删方法和现有技术相比能最大限度减小网络质量对数据传输的影响,极大地减少了数据重传的发生,提高了数据传输的效率。本发明采用的存储纠删方法在存储代理需要通过反纠删算法对数据进行恢复的情况下,或在不能通过反纠删对数据进行恢复而通知纠删客户端进行数据重传的情况下,存储代理会产生告警,通知用户及时进行网络故障排查,防止进一步地丢包。
附图说明
图1为本发明数据存储系统结构示意图;
图2为本发明实施例纠删群内的纠删块离散编码示意图;
图3为本发明存储纠删方法流程图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
如图1所示,本实施例一种数据存储系统,包括存储客户端、存储代理和存储服务端。在存储客户端、存储代理和存储服务端构架中,存储客户端与存储代理、存储代理与存储服务端之间的数据通信受协商参数的约束,在完成参数协商之后才能进行数据传输和存储。
本实施例存储代理用于接收存储服务端上报的服务参数,并将服务参数通知到存储客户端。服务参数的传递通过协商实现,服务参数协商分为二部分,包括存储代理和存储服务端之间的服务参数协商以及存储代理和存储客户端之间的服务参数协商。
服务参数包括纠删组模式协商和存储服务端每次能够写入的最大数据量协商。纠删组模式表示存储服务端中用于存储原始数据的子设备和用于存储冗余数据的子设备之间的数量关系,假设存储服务端中子设备的总数量为N,存储服务端中用于存储原始数据的子设备数量为M,用于存储冗余数据的子设备数量为K,则纠删模式为N=M+K,N、M、K为正整数。存储服务端每次能够写入的最大数据量由存储服务端中每台子设备的性能决定,存储服务端中的每台子设备将自己每次能够写入的最大数据量上报给存储代理,存储代理根据每台子设备上报的每次最大写入数据量计算出总的存储服务端每次能够写入的最大数据量。本实施例中假设存储服务端总共有6台子设备,其中4台用于存储原始数据,2台用于存储冗余数据。假设每台子设备每次能够写入的最大数据量为1M,则纠删模式为4+2,存储服务端每次写入的最大数据量为6M。
存储服务端的子设备可以是各种存储设备,例如磁盘,硬盘等。
存储代理和存储服务端完成参数协商后,存储代理将服务参数通知存储客户端,存储客户端在后续的数据处理中会利用纠删模式和存储服务端每次能够写入的最大数据量来取出原始数据,利用纠删模式来对原始数据进行纠删计算。
需要说明的是,如果存储服务端中子设备的数量发生了改变或者某台子设备每次能够写入的最大数据量发生了改变,则存储代理和存储服务端会重新进行参数协商,并将协商好的服务参数重新通知存储客户端。
存储客户端根据协商好的服务参数从数据库中取出原始数据,对原始数据进行纠删计算并将完成纠删计算后的数据发送给存储代理。
具体地,存储客户端根据存储代理发送过来的纠删模式和存储服务端每次写入的最大数据量获取原始数据,获取的原始数据的大小为存储服务端每次能够写入的最大数据量除以N再乘以M。本实施例中纠删模式为4+2,每次能够写入的最大数据量为6M,且需要用到纠删码的机制来存储数据,因此存储客户端通过计算,得出获取的原始数据为4M。
存储客户端对获取的原始数据通过纠删算法进行纠删计算,生成冗余数据。在纠删计算时,可以对获取的原始数据通过一次纠删计算得到冗余数据,也可以将取出的原始数据划分为多份分别进行纠删计算,一般来说是根据存储客户端的纠删计算能力来划分。本实施例假设存储客户端纠删算法要求的数据大小为1M,则将4M原始数据划分为4份,然后存储服务端对划分后的每份原始数据进行纠删计算。
对于划分后的每份原始数据再平均分为M块原始数据,存储客户端根据协商好的纠删模型N=M+K,通过纠删算法从M块原始数据中计算出K块冗余数据。
优选地,本实施例采用RS算法进行纠删计算,由于本实施例中纠删模式为4+2,因此首先将划分后的1M原始数据平均分为4块,将这4块原始数据通过RS算法计算出2块冗余数据,每块冗余数据的大小和每块原始数据的大小相同,这4块原始数据和通过纠删算法算出的2块冗余数据组成一个纠删组,其中的每块数据为一个纠删块。本次取出的4M原始数据需要进行4次纠删计算,总共生成4个纠删组,这4个纠删组称为一个纠删群,纠删群的数据为6M,满足存储服务端每次能够写入的最大数据量要求。
由于网络丢包大多具有延续性,即网络丢包会连续地丟多个相邻的包。如果存储客户端将一组纠删组内的纠删块连续地发给存储代理,则可能由于连续在一个纠删组里丟太多的纠删块而超出纠删范围,导致无法通过反纠删算法进行数据恢复。
为此,优选地本实施例不连续发送一个纠删组内的纠删块,而是需要将一个纠删组内的纠删块进行离散发送,从而达到增强抗丢包的目的。存储客户端对纠删群中每个纠删块按照设定的离散规则进行编号,然后将整个纠删群里的纠删块按照纠删块编号顺序发送给存储代理。对纠删群内的每个纠删组以及纠删组内的每个纠删块按照设定的离散规则进行编号,如图2所示,纠删组1内的6个纠删块编号依次为1、5、9、13、17、21,纠删组2内的6个纠删块编号依次为2、6、10、14、18、22,纠删组3内的6个纠删块编号依次为3、7、11、15、19、23,纠删组4内的6个纠删块编号依次为4、8、12、16、20、24,然后将整个纠删群里的纠删块按纠删块编号顺序依次发送给存储代理。
需要说明的是,本发明不限于纠删算法每次能对多少数据进行纠删计算,因此一个纠删群中所具有的纠删组数量根据实际情况不同,每个纠删组中有N个纠删块。并且图2仅示出了一种编号的离散规则,本发明还可以采用其他离散规则来进行编号,例如纠删组1内的6个纠删块编号依次为1、3、5、7、9,其他依此类推,这里不再赘述。
进一步地,对于纠删块中的数据,也可以对纠删块中的数据帧进行离散编号,然后按照编号的顺序发送,实现更加离散的发送,进一步保证丢包不超出纠删范围。
存储代理在收到存储客户端发送过来的数据后,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存。
具体地,将每个纠删块按纠删块编号和设定的离散规则重新进行排列,恢复成原来的纠删群。由于发送是按照纠删块编号顺序发送的,所以存储代理接收到的纠删块依次为1-24,重新进行排列,将其中的1、5、9、13、17、21归入纠删组1,2、6、10、14、18、22归入纠删组2,3、7、11、15、19、23归入纠删组3,4、8、12、16、20、24归入纠删组4,则恢复成原来的纠删群。从而在恢复成原来的纠删群后,可以进行是否数据发生丢失的检查,以及后续的存储。
然后存储代理检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断。判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
具体地,对于恢复成原来的纠删群的数据,可以查看每个纠删组里是否有纠删块丢失,并且检查每个纠删块中是否有数据帧丢失。例如如果发现纠删群内的每个纠删块全部都收到了,且纠删块内所有I帧、P帧、冗余数据帧都已收到,则判断为网络正常,无须反纠删。如果发现纠删群内的有纠删块未收到或收到的纠删块内存在I帧、P帧或冗余数据帧丢失,但未超出纠删范围,则判断为网络存在丢包。然后存储代理将不完整的纠删块所在的纠删组下的所有已收到的纠删块进行拆包解析,按照帧序号重新排列,进行反纠删操作,进行数据恢复。如果网络丢包严重,超出纠删范围,则存储代理要求存储客户端重传丢失的数据,在接收到重传的数据后,重新检查数据丢失情况并进行处理。
在数据正确的情况下,存储代理将数据按照服务参数存入存储服务端,按纠删组模型将纠删组中的每个纠删块分别发送给存储服务端,即纠删组中的原始数据块存入4台用于存储原始数据的子设备中,纠删组中的冗余数据块存储2台用于存储冗余数据的子设备中。
下面结合本实施例纠删模式4+2对丢失数据的几种情况下如何进行数据恢复进行具体说明:
1、纠删组中有2个及2个以下纠删块丢失或2个及2个以下纠删块中有数据丢失,且丢失的都是冗余数据,这种情况下原始数据未丢失,需要恢复的是冗余数据,此时存储代理只要再做一次纠删计算就可以恢复冗余数据。
2、纠删组中有2个及2个以下纠删块丢失或2个及2个以下纠删块中有数据丢失,且丢失的都是原始数据,这种情况下只需要做反纠删计算恢复原始数据即可。
3、纠删组中有2个及2个以下纠删块丢失或2个及2个以下纠删块中有数据丢失,且丢失的数据既有原始数据又有冗余数据,这种情况下要先经过反纠删算法恢复丢失的原始数据,然后通过原始数据进行纠删算法恢复丢失的冗余数据。
4、纠删组中有2个及2个以上纠删块丢失或2个及2个以上纠删块中有数据丢失,这种情况超出了纠删容错范围,此时存储代理会通知存储客户进行数据重传。由于存储代理已经知道具体丢失了哪些数据,因此只需通知存储客户端重传丢失部分的数据即可。
需要说明的是,存储代理在检查数据时如果发现纠删群中有部分纠删块丢失或纠删块中有数据丢失,存储代理会产生告警并向用户上报告警,使用户能及时进行网络故障排查,防止进一步地丢包。
最后,存储服务端对接收到的数据进行存储并将存储结果反馈给存储代理。
存储服务端收到存储代理发过来的数据后,对数据进行校验,如果校验无误则将数据写入子设备的存储设备中,如果通过校验发现有数据丢失则会通知存储代理进行数据重传,直到数据全部正确接收。存储服务端在数据写入完成后通知存储代理数据已完成写入,存储代理在收到存储服务端发送的数据写入完成消息后清空存储代理缓存中的数据,同时存储代理会发送消息给存储客户端,通知存储客户端数据传输已完成,存储客户端在收到存储代理发送的数据传输已完成的消息后,清空自己的缓存,开始进行下一轮数据的纠删计算和发送。
需要说明的是为了避免存储代理和存储服务端之间出现大量的数据重传,本实施例通过数据专线或VPN网络将存储代理和存储服务端组成一个专网,这样存储代理和存储服务端之间的网络质量很好,不容易出现丢包的情况,存储代理和存储服务端之间基本不需要进行数据重传。因此即使不采用离散规则进行编号和离散发送,在没有连续丢包的情况下,不影响本发明的技术效果。
下面通过一个具体的应用示例,来对本发明的数据存储系统进行进一步说明。本应用实例中,存储客户端为视频监控系统中的网络摄像机IPC,存储代理和存储服务端为视频监控系统中的存储设备,存储代理和存储服务端可以位于同一个存储设备中,或分别位于不同的存储设备中,作为存储代理的存储设备位于IPC与作为存储服务端的存储设备之间。
在通过存储代理、存储服务端和IPC三者的参数协商后,IPC获知存储服务端的服务参数,从而开始从缓存中取出所拍摄的原始视频数据,进行纠删计算后发送给存储代理,由存储代理进行校验后发送给存储服务端,进行视频数据的保存,从而实现视频数据的冗余备份,保证了视频监控系统的数据安全。
如图3所示,本实施例还提出了一种存储纠删方法,应用于上述数据存储系统的存储代理,包括:
存储代理接收存储服务端上报的服务参数,并将服务参数通知到存储客户端,所述服务参数包括纠删组模式和存储服务端每次能够写入的最大数据量,所述纠删组模式表示存储服务端中用于存储原始数据的子设备和用于存储冗余数据的子设备之间的数量关系;
存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存。
其中,存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,包括:
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
其中,存储客户端根据服务参数对原始数据进行纠删计算后发送的数据为存储客户端根据服务参数对原始数据进行纠删计算时生成的纠删组数据组成的纠删群,每个纠删组对应一次纠删计算,每个纠删组包括一次纠删计算生成的所有纠删块,纠删群中每个纠删块按照设定的离散规则对应有自己的纠删块编号,这里不再赘述。
其中,存储客户端根据服务参数对原始数据进行纠删计算后发送的数据中的纠删块按照纠删块编号顺序发送。
优选地,本实施例采用离散编码,并按照按照纠删块编号顺序发送,则上述存储代理进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,包括:
将每个纠删块按纠删块编号和设定的离散规则重新进行排列,恢复成原来的纠删群;
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种数据存储系统,包括存储客户端和存储服务端,其特征在于,所述数据存储系统还包括存储代理,其中:
所述存储代理,用于接收存储服务端上报的服务参数,并将服务参数通知到存储客户端,并接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存;
所述服务参数包括纠删组模式和存储服务端每次写入的最大数据量,所述纠删组模式表示存储服务端中用于存储原始数据的子设备和用于存储冗余数据的子设备之间的数量关系;
所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,执行如下操作:
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
2.根据权利要求1所述的数据存储系统,其特征在于,所述纠删组模式表示为N=M+K,其中N为存储服务端中子设备的总数,M为存储服务端中用于存储原始数据的子设备数量,K为存储服务端中用于存储冗余数据的子设备数量,所述存储客户端在根据服务参数对原始数据进行纠删计算后发送数据,执行如下操作:
根据服务参数获取原始数据;
然后将获取的原始数据划分成至少一份;
对于划分后的每份原始数据,先将该份原始数据再平均分为M块原始数据,通过纠删算法从M块原始数据中计算出K块冗余数据,M块原始数据和K块冗余数据组成一个纠删组,纠删组中的每块数据称为一个纠删块;
将纠删计算后得到的所有纠删组组成一个纠删群,发送给存储代理。
3.根据权利要求2所述的数据存储系统,其特征在于,所述存储客户端还用于对纠删计算后得到的纠删群中的纠删块按照设定的离散规则进行编号,并在发送时按照纠删块编号顺序发送给存储代理。
4.根据权利要求3所述的数据存储系统,其特征在于,所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,执行如下操作:
根据纠删块编号和设定的离散规则重新排列纠删块,恢复成原来的纠删群;
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
5.一种存储纠删方法,所述存储纠删方法应用于数据存储系统中,所述数据存储系统包括存储客户端和存储服务端,其特征在于,所述数据存储系统还包括存储代理,所述存储纠删方法包括:
所述存储代理接收存储服务端上报的服务参数,并将服务参数通知到存储客户端,所述服务参数包括纠删组模式和存储服务端每次写入的最大数据量,所述纠删组模式表示存储服务端中用于存储原始数据的子设备和用于存储冗余数据的子设备之间的数量关系;
所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存;
所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,包括:
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
6.根据权利要求5所述的存储纠删方法,其特征在于,所述存储客户端根据服务参数对原始数据进行纠删计算后发送的数据为存储客户端根据服务参数对原始数据进行纠删计算生成的纠删组数据组成的纠删群,每个纠删组对应一次纠删计算,每个纠删组包括一次纠删计算生成的所有纠删块,纠删群中每个纠删块按照设定的离散规则对应有自己的纠删块编号。
7.根据权利要求6所述的存储纠删方法,其特征在于,所述纠删群中的纠删块按照纠删块编号顺序发送。
8.根据权利要求7所述的存储纠删方法,其特征在于,所述存储代理接收存储客户端根据服务参数对原始数据进行纠删计算后发送的数据,进行丢包检查和恢复处理,将处理后的数据发送给存储服务端保存,包括:
根据纠删块编号和设定的离散规则重新排列纠删块,恢复成原来的纠删群;
检查接收的数据是否有数据丢失,如果没有丢失则将数据按照服务参数存入存储服务端,如果有数据丢失则进行进一步的判断;
判断丢失数据是否超出了设定的纠删范围,如果没有超出,则进行反纠删计算,恢复丢失的数据后将数据按照服务参数存入存储服务端;如果超出,则通知存储客户端重传丢失的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610143332.4A CN105824721B (zh) | 2016-03-14 | 2016-03-14 | 一种数据存储系统及其存储纠删方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610143332.4A CN105824721B (zh) | 2016-03-14 | 2016-03-14 | 一种数据存储系统及其存储纠删方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105824721A CN105824721A (zh) | 2016-08-03 |
CN105824721B true CN105824721B (zh) | 2019-07-12 |
Family
ID=56987728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610143332.4A Active CN105824721B (zh) | 2016-03-14 | 2016-03-14 | 一种数据存储系统及其存储纠删方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824721B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110120949B (zh) * | 2019-05-10 | 2021-07-27 | 中国联合网络通信集团有限公司 | 一种数据存储方法和数据存储系统 |
CN111629282B (zh) * | 2020-04-13 | 2021-02-09 | 北京创享苑科技文化有限公司 | 一种实时的纠删码编码冗余度动态调节方法 |
CN114238219B (zh) * | 2021-12-10 | 2024-07-05 | 广西电网有限责任公司电力科学研究院 | 一种互动式输变配日常统计报告动态收集方法及系统 |
CN115454711A (zh) * | 2022-11-11 | 2022-12-09 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统中纠删数据恢复的方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364472A (zh) * | 2011-10-25 | 2012-02-29 | 中兴通讯股份有限公司 | 数据存储方法及系统 |
CN103327085A (zh) * | 2013-06-05 | 2013-09-25 | 深圳市中博科创信息技术有限公司 | 一种分布式数据处理方法、数据中心及其系统 |
CN103561057A (zh) * | 2013-10-15 | 2014-02-05 | 深圳清华大学研究院 | 基于分布式哈希表和纠删码的数据存储方法 |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9356628B2 (en) * | 2014-02-13 | 2016-05-31 | Quantum Corporation | Dynamically reconfiguring rebuild agents for erasure code rebuild |
-
2016
- 2016-03-14 CN CN201610143332.4A patent/CN105824721B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364472A (zh) * | 2011-10-25 | 2012-02-29 | 中兴通讯股份有限公司 | 数据存储方法及系统 |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN103327085A (zh) * | 2013-06-05 | 2013-09-25 | 深圳市中博科创信息技术有限公司 | 一种分布式数据处理方法、数据中心及其系统 |
CN103561057A (zh) * | 2013-10-15 | 2014-02-05 | 深圳清华大学研究院 | 基于分布式哈希表和纠删码的数据存储方法 |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105824721A (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105824721B (zh) | 一种数据存储系统及其存储纠删方法 | |
Afek et al. | Local stabilizer | |
KR100946108B1 (ko) | 종단간 신뢰도가 있는 그룹 통신 방법 및 장치 | |
EP2260387B1 (en) | Rebuilding data on a dispersed storage network | |
CN107729366A (zh) | 一种普适多源异构大规模数据同步系统 | |
CN107340971B (zh) | 一种数据存储与恢复架构与方法 | |
CN110018783A (zh) | 一种数据存储方法、装置及系统 | |
CN110456984A (zh) | 一种对Ceph存储的块设备进行连续数据保护的方法 | |
WO2018209658A1 (zh) | 数据传输方法、设备、机器可读存储介质以及系统 | |
Krishnan et al. | High rate streaming codes over the three-node relay network | |
Zhang et al. | A novel distributed data backup and recovery method for software defined-wan controllers | |
Zhang et al. | Distributed data backup and recovery for software‐defined wide area network controllers | |
Chen et al. | In-network aggregation for privacy-preserving federated learning | |
CN109308233A (zh) | 数据备份方法、装置及系统 | |
Birman et al. | Spinglass: secure and scalable communication tools for mission-critical computing | |
CN105138417B (zh) | 一种基于zfs send的异步复制方法 | |
CN116192281B (zh) | 基于量子通信的网络拓扑控制方法 | |
Liu et al. | Kronos: A secure and generic sharding blockchain consensus with optimized overhead | |
Bonomi et al. | Tight self-stabilizing mobile byzantine-tolerant atomic register | |
KR102178310B1 (ko) | Dds 통신의 연속성 보장을 위한 방법 | |
Dolev et al. | Self-stabilizing automatic repeat request algorithms for (bounded capacity, omitting, duplicating and non-fifo) computer networks | |
CN103441826A (zh) | 一种减少无线通信丢包率的方法和设备 | |
JP2016027698A (ja) | データ転送システム、中継ノード及びデータ転送方法 | |
Zhang et al. | Fast repair for single failure in erasure coding-based distributed storage systems | |
Wu et al. | Reliable Broadcast in Practical Networks: Algorithm and Evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |