CN107689983B - 基于低修复带宽的云存储系统及方法 - Google Patents

基于低修复带宽的云存储系统及方法 Download PDF

Info

Publication number
CN107689983B
CN107689983B CN201710544567.9A CN201710544567A CN107689983B CN 107689983 B CN107689983 B CN 107689983B CN 201710544567 A CN201710544567 A CN 201710544567A CN 107689983 B CN107689983 B CN 107689983B
Authority
CN
China
Prior art keywords
data
module
storage
repair
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.)
Active
Application number
CN201710544567.9A
Other languages
English (en)
Other versions
CN107689983A (zh
Inventor
骆源
徐亚宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201710544567.9A priority Critical patent/CN107689983B/zh
Publication of CN107689983A publication Critical patent/CN107689983A/zh
Application granted granted Critical
Publication of CN107689983B publication Critical patent/CN107689983B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于低修复带宽的云存储系统,包括数据插入和读取模块、编码预处理模块、数据文件编码模块、数据文件解码模块、数据文件管理模块、数据存储模块以及数据修复模块;同时提供了一种基于低修复带宽的云存储方法,包括系统初始化阶段、用户插入数据阶段、数据文件编码阶段、用户读取数据阶段、数据文件解码阶段以及故障节点的修复阶段;本发明通过引入纠删码技术,在保证数据存储可靠性的同时降低数据存储的冗余度;针对故障节点修复过程带来的网络阻塞问题,采用了网络编码和干扰对其技术,引入了互信息量的解决方案。具有数据存储的可靠性性易于保证,同时缓解了故障节点修复过程中网络的拥塞程度。

Description

基于低修复带宽的云存储系统及方法
技术领域
本发明属于数据存储领域,具体是通过数据编码来增强存储可靠性的基于低修复带宽的云存储系统及方法,用于降低节点发生故障时产生的修复带宽。
背景技术
近年来,随着互联网技术日新月异的快速发展,以及整个信息行业的发展,无论是个人信息还是企业数据都在爆炸式的增长。因此目前有越来越多的厂商推出了云存储服务。
云存储服务允许用户远程存储数据并且方便地分享这些信息。尽管云存储给用户带来了巨大的便利,但是存在一个关键的问题是如何降低故障节点的修复带宽,缓解节点修复过程中网络的阻塞状况。
为了降低数据存储成本,云服务商采用纠删码技术来降低数据存储的冗余度。纠删码的工作原理,用户的原始数据被平分成k个文件块,通过线性编码
生成n块编码数据,然后存储在n个不同的节点,接收端通过获取k(k′≥k)个可用的编码数据,就可以重构出原始数据。对于MDS码,k′=k。因此,MDS码是一类存储效率非常高的编码方案。通过引入纠删码技术,存储成本得到了有效控制。MDS代码在冗余和可靠性权衡方面是最优的。当节点发生故障时,传统的修复方案是将k个节点的内容发送到新节点。新节点可以重建所有原始数据,并使用它来构造故障节点的内容。这种修复方案简单,但在网络中会产生k倍于故障节点存储数据的通信量,进而导致网络的阻塞。在故障节点修复过程中产生的通信量被称为修复带宽,而如何减少修复带宽被称为修复问题。在大规模分布式存储系统中,节点发生故障非常频繁。为了有效降低故障节点引发的网络拥塞,基于网络编码的修复机制是必不可少的。
根据新节点的数据是否与故障节点的数据完全相同,可以把修复策略分为3种:
函数修复:新节点的数据不一定与故障节点的数据完全相同,只需要与存活节点联合起来组成MDS码即可。
精确修复:新节点的数据与故障节点的数据完全相同。
部分精确修复:前两者修复方案的一个折中,它对系统节点进行精确修复,对校验节点进行函数修复。
存储系统采用的纠删码,一般情况下是(n,k)系统纠删码,即前k个节点的数据未经编码,剩余(n-k)个节点的数据是经过线性编码的。在系统维护过程中,保证系统码编码方案不变,非常重要。因为系统码有利于减少数据重构过程的时间延迟和编码方案维护过程中的工作量。因此,精确修复一直是学术界研究的重点。
网络编码是常规路由(存储和转发)方法的推广。在常规路由中,网络中的每个中间节点简单地存储和转发所接收的信息。相反,网络编码允许中间节点通过对先前接收的输入数据进行编码来生成输出数据。目前,有很多基于网络编码技术来构造低修复带宽的编码方案。这些编码方案大都不实用。而且在实际选择编码方案时,除了考虑修复问题,还要考虑其它问题,例如怎样优化编码方案以使得编解码的效率更高。设计一个对所有线性纠删码都适用的最优修复方案比直接设计一个编码方案更具有实际意义。
因此,如何保证数据可靠存储,如何选取编码方案,以及如何设计高效的修复机制来保证数据的可靠存储是十分重要的。经对现有技术文献检索发现,已有的云存储系统比如HDFS,通过多副本技术来保证数据存储可靠性,但是因为数据冗余度太高而带来高存储成本。其他采用了纠删码技术的云存储系统比如Azure,采用了重构原始文件来修复故障节点,缺点是系统规模大时,故障节点的修复会导致网络拥塞。
目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
针对现有技术中存在的上述不足,本发明的目的是提供一种具有高可靠性和低修复带宽的基于低修复带宽的云存储系统及方法。该云存储系统及方法一方面通过采用纠删码技术,对数据分块之后进行编码,保证数据存储的高可靠性和低存储成本,另一方面采用网络编码算法实现了具有低修复带宽的修复方案。
本发明是通过以下技术方案实现的。
根据本发明的一个方面,提供了一种基于低修复带宽的云存储系统,包括数据插入和读取模块、编码预处理模块、数据文件编码模块、数据文件解码模块、数据文件管理模块、数据存储模块以及数据修复模块;其中:
所述数据插入和读取模块工作于客户端,用于向用户提供访问接口,以使用户能够向主服务器发送插入、读取以及删除数据命令;
所述编码预处理模块工作于主服务器上,用于对原始数据进行数据预处理;
所述数据文件编码模块工作于主服务器上,用于对预处理后的数据进行编码,产生数据插入;
所述数据文件解码模块工作于主服务器上,用于对插入的数据进行数据解码重构,产生数据读取;
所述数据文件管理模块工作于主服务器上,用于存储原始数据的元数据;
所述数据存储模块工作于存储服务器,包括多个存储节点,其中一部分存储节点用于存储未经编码的原始数据,另一部分存储节点用于存储编码后的冗余数据;
所述数据修复模块工作于候补存储服务器,用于数据存储模块上故障节点的数据修复。
优选地,所述数据预处理包括:对希望插入的原始数据进行均等分片,当出现不能均等分片时,插入冗余数据进行对齐。
优选地,所述数据插入包括:通过异或(XOR)运算将预处理后的数据进行高速编码运算,然后将编码后的数据分发到数据存储模块的各个存储节点上进行存储。
优选地,所述数据读取包括:对从数据存储模块的各个存储节点读取出的数据进行解码,得到编码前的数据,对编码前的数据去掉用于对齐的冗余数据,得到重构后的原始数据,并将重构后的原始数据发送给客户端。
优选地,所述数据存储模块采用纠删码技术保证数据存储可靠性。
优选地,所述数据修复模块包括:
-修复策略制定模块,根据数据存储模块的故障节点及存活节点集合决定故障节点的修复策略,使修复带宽达到最小;
-修复运算模块,根据修复策略从存活节点集合下载数据,并计算复原故障节点上的数据存储于数据存储模块上的新加入存储节点。
优选地,所述修复策略采用基于互信息量的修复机制。
根据本发明的另一个方面,提供了一种基于低修复带宽的云存储方法,包括如下步骤:
-系统初始化阶段:在主服务器上设置编码参数,设数据存储模块中共有n个数据存储节点A={A1,A2,…,An},每个数据存储节点独立存储本地数据,其中前k个数据存储节点A={A1,A2,…,Ak}用于存储未经编码的原始数据,后(n-k)个数据存储节点用于存储编码后的冗余数据;
-用户插入数据阶段:用户通过客户端的数据插入和读取模块向主服务器发送插入数据命令,并通过主服务器上的数据文件编码模块将编码后的数据发送给存储服务器上的数据存储模块;
-数据文件编码阶段:主服务器上的编码预处理模块,将希望插入的原始数据进行均等分片,当出现不能均等分片时,插入冗余数据进行对齐,将分片后的数据存储在前k个数据存储节点A={A1,A2,…,Ak},然后通过线性编码生成(n-k)个校验数据块,发送给剩余的(n-k)个数据存储节点;
-用户读取数据阶段:用户通过客户端的数据插入和读取模块向主服务器发送读取数据命令,并通过主服务器上的数据文件解码模块将解码后的原始数据发送给客户端;
-数据文件解码阶段:首先从数据存储模块的各个存储节点读取数据,解码出编码前的数据,然后对编码前的数据去掉用于对齐的冗余数据,得到重构后的原始数据,最后将重构后的原始数据发送给客户端;
-故障节点的修复阶段:在数据存储模块的某一存储节点发生故障时,主服务器通过数据修复模块主动向数据存储模块的其他存活节点读取数据后进行修复,并将修复后的数据存储于数据存储模块的新加入存储节点。
优选地,所述故障节点的修复阶段采用基于互信息量的修复机制进行故障节点的修复。
与现有技术相比,本发明具有如下有益效果:
1、编码过程,通过有限域上元素的表示特点及运算性质,将编码运算由有限域上的运算简化为XOR运算;
2、借鉴相对广义汉明重量的核心思想;
3、在网络编码的基础上采用基于互信息量的修复机制,故障节点的修复带宽最优;
4、故障节点的修复机制具有广泛适用性,该修复机制适用于任意线性纠删码编码方案;
5、本发明实现了以下功能:
(1)数据插入,将原始数据编码后存储在系统的不同物理节点。
(2)数据重构,从系统的不同存储节点下载数据,然后恢复原始数据。
(3)数据维护,在一个新节点上修复故障节点上的数据。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明的总体结构图;
图2是本发明主服务器的架构图;
图3是本发明文件编码过程图;
图4是本发明文件解码过程图;
图5是本发明故障节点修复过程图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
实施例
本实施例提供了一种基于低修复带宽的云存储系统,包括:
工作于用户客户端上的数据插入和读取模块;
工作于主服务器上的编码预处理模块、数据文件编码模块、数据文件解码模块、数据文件管理模块;
工作于存储服务器集群的数据存储模块;
工作于候补存储服务器上的故障节点修复模块。
其中:
数据插入和读取模块用于用户向主存储服务器发送插入及读取数据命令,以实现文件的插入和读取;
编码预处理模块用于将数据分片及对齐处理;
数据文件编码模块用于产生数据插入;
数据文件解码模块用于数据重构;
数据文件管理模块是管理用户的文件存储和提供相关操作接口;
数据修复模块用于在新节点上修复故障节点。
所述的客户端的数据插入和读取模块向用户提供访问接口,用户可以通过该模块向云存储系统插入、读取以及删除数据。
所述的主服务器的编码预处理模块,首先对希望插入的原始数据进行均等分片,当出现不能均等分片时,适当插入冗余数据来进行对齐。
所述的主服务器的数据文件编码模块,通过异或(XOR)运算将预处理后的数据进行高速编码运算,然后将编码后的数据分发到数据存储模块的各个存储节点上进行存储。
所述的主服务器的数据文件解码模块,首先将从各个存储节点读取数据,解码出编码前的数据,然后去掉用于对齐的冗余数据,得到重构后的原始数据,最后将重构后的原始数据发送给客户端。
所述的主服务器的数据文件管理模块,用于存储插入数据文件的元数据,例如fileId及fileSize等。
所述的候补存储服务器的故障节点修复模块,在节点发生故障时,主服务器通过数据修复模块主动向数据存储模块的其他存活节点读取数据后进行修复,并将修复后的数据存储于新加入数据存储模块的存储节点。
本实施例涉及到分布式环境下的基于纠删码的低修复带宽的云存储系统,其工作方式包括如下任一个或任多个阶段:
系统初始化阶段,在主服务器上设置编码参数,假设数据存储模块中总共有n个数据存储节点A={A1,A2,…,An},每个数据存储节点独立存储本地数据,其中前k个数据存储节点A={A1,A2,…,Ak}负责存储未经编码的原始数据,后(n-k)个数据存储节点负责存储编码后的冗余数据。符合这种规则的编码方案为系统码,系统码可以简化解码过程。
用户插入数据阶段,用户通过客户端的数据插入和读取模块向主服务器发送要插入数据时,并通过主服务器上的数据文件编码模块将编码后的数据发送给存储服务器上的数据存储模块。
数据文件编码阶段,主服务器的编码预处理模块,将希望插入的原始数据进行均等分片,当出现不能均等分片时,适当插入冗余数据来进行对齐,将分片后的数据存储在前k个数据存储节点A={A1,A2,…,Ak},然后通过线性编码生成(n-k)个校验数据块,发送给剩余的(n-k)个数据存储节点。
用户读取数据阶段,用户通过客户端数据插入和读取模块向主服务器发送要读取的数据时,通过主服务器上的数据文件解码模块将解码后的原始数据发送给客户端。
数据文件解码阶段,首先将从各个存储节点读取数据,解码出编码前的数据,然后去掉用于对齐的冗余数据,得到重构后的原始数据,最后将重构后的原始数据发送给客户端。
故障节点的修复阶段,在数据存储模块的某一存储节点发生故障时,主服务器通过数据修复模块主动向数据存储模块的其他存活节点读取数据后进行修复,然后将修复后的数据存储于新加入数据存储模块的存储节点。
下面结合具体实例,详细介绍本实施例的实施方式和具体操作过程。
I.如图1所示,本实施例包含了四个部分:存储服务器持续的提供数据存储和访问服务,存储服务器的服务器集群包含了大量的廉价的机器;提供编码、解码服务及故障节点修复服务的主服务器;用户用于插入和读取数据的客户端;候补服务器,用于替代发生故障的存储服务器。
II.如图2所示的主服务器包括的工作分别是初始化、编解码。
II.1.初始化:由云存储系统中主服务器完成,相关的算法参数由系统使用者选择。
1)纠删码可以用一个四元组(n,k,α,r)来表示。其中,k表示编码前文件块的个数,α表示每个文件块包含的比特数,r(r≥k)表示用于恢复原文件的个数,n表示编码后的文件块个数。
2)确定编码方案,即生成矩阵的构成。目前,纠删码技术在分布式存储系统中得到研究的主要有三类,即阵列纠删码、RS类纠删码和LDPC码。其中,阵列纠删码只能纠正一位数据错误,LDPC码不能保证100%恢复原始数据,而RS类纠删码是一种MDS码,就有很强的容错能力了。
II.2.插入数据:首先用户通过客户端将要存储的文件发送给主服务器,用户的文件数据被分成k个文件块,用集合表示X=(x1,x2,...,xk),其中xi(1≤i≤k)是一个α比特的文件块(不足α比特时,用0补齐)。通过公式(1),将原始数据集合X=(x1,x2,...,xk)编码生成Y=(y1,y2,...,yn),然后发送到n个存储节点上。在公式(1)中前k行是单位矩阵,
Figure GDA0002627940120000081
表示生成矩阵中第j行第i列个元素。
Figure GDA0002627940120000082
II.3.读取数据:首先用户通过客户端向主服务器发送读取文件X,主服务器从k个正常工作的存储服务器上读取数据(yw1,yw2,...,ywk),然后选取生成矩阵对应的k行,求得逆矩阵,然后通过公式(2)得到原始数据文件X=(x1,x2,...,xk),其中
Figure GDA0002627940120000083
表示生成矩阵中第j行第i列个元素。
Figure GDA0002627940120000084
II.如图2所示的候补存储节点包括的工作是修复故障节点。
与副本技术相比,在相同冗余度的情况下,纠删码具有更高的可靠性。但与此同时,纠删码存在修复问题。再生码将网络编码应用于分布式存储系统中,保证系统具有纠删码一样低冗余高可靠的优点,又可以降低修复带宽。
因为网络编码允许每个数据存储节点可以对该节点上的数据进行运算,所以每个节点上存储的数据通过乘一个(2α-1)×α矩阵Gsub扩展为一个线性子空间:
Figure GDA0002627940120000085
所以,由纠删码的编码方案可以得到n个子线性空间
Figure GDA0002627940120000091
其中Gi表示节点i的生成矩阵。为了简化证明过程,我们定义
N=n(2α-1),K=kα,
Figure GDA0002627940120000092
Figure GDA0002627940120000093
编码后的数据
Figure GDA0002627940120000094
和原始数据X的关系如下:
Figure GDA0002627940120000095
其中
Figure GDA0002627940120000096
表示变换后的生成矩阵,Q表示一个从现存节点上下载的数据集合,互信息量I(X1;Q)表示可以从Q中得到的关于x1的信息量。从现有节点下载的数据集合
Figure GDA0002627940120000097
表示用于修复节点一,其中
Figure GDA00026279401200000927
表示数据可以从哪些位置下载。事实上,
Figure GDA0002627940120000098
Figure GDA0002627940120000099
Figure GDA00026279401200000928
上面的投影,表示为
Figure GDA00026279401200000910
Figure GDA00026279401200000911
表示
Figure GDA00026279401200000912
Figure GDA00026279401200000913
上的投影,表示为
Figure GDA00026279401200000914
可以以下公式编码为
Figure GDA00026279401200000915
Figure GDA00026279401200000916
其中
Figure GDA00026279401200000917
其中
Figure GDA00026279401200000918
表示
Figure GDA00026279401200000919
的第i列。
假设x均匀分布在有限域
Figure GDA00026279401200000920
上,我们可以得到
Figure GDA00026279401200000921
在它的采样空间上也是均匀分布,所以每种取值的概率为
Figure GDA00026279401200000922
因此,
1)对于给定的向量
Figure GDA00026279401200000923
Figure GDA00026279401200000924
概率
Figure GDA00026279401200000925
2)对于给定的X1
Figure GDA00026279401200000926
Γ表示方程组
Figure GDA0002627940120000101
的解集,我们可以推导出
Figure GDA0002627940120000102
其中,
Figure GDA0002627940120000103
3)从上面公式,我们可以推导出
Figure GDA0002627940120000104
定理1(互信息定理)
Figure GDA0002627940120000105
其中
1)D1表示列向量
Figure GDA0002627940120000106
组成的线性空间;
2)PJ(D1)表示D1在J上的投影;
3)D2表示列向量
Figure GDA0002627940120000107
组成的线性空间;
4)PJ(D2)表示D2在J上的投影。
定理2(最小修复带宽定理)
Figure GDA0002627940120000108
基于互信息理论,本实施例设计了一个基于互信息量的回溯算法。如下面算法所示,实施例构建了一个决策树来描述这个广度搜索算法。在这个搜索树中,一个节点代表一个候选的索引结合J,一个叶子代表一个候选修复方案。为了找到最小修复带宽,我们需要找到从根到叶子的最短路径。为了找到最短路径,我们采用宽度优先搜索算法。在搜索过程中,树的节点由上到下一层一层被访问,这个算法可以使用队列和迭代来实现。
Figure GDA0002627940120000111
在本实施例中:
用户,向云系统上传数据文件,从云系统下载之前上传过的数据,删除已经上传过的数据。
客户端,用户通过客户端来和云存储系统进行交互,包括插入数据、读取数据、删除数据。
主服务器的编码预处理模块,首先对插入的数据进行均等分片,当出现不能均等分片时,适当插入冗余数据来进行对齐;数据文件编码模块,通过XOR运算将预处理后的数据进行高速编码运算,然后将编码后的数据分发到各个存储节点上进行存储;数据文件解码模块,首先将从各个存储节点读取数据,解码出编码前的数据,然后去掉用于对齐的冗余数据,最后将原始数据发送给客户端;数据文件管理模块,用于存储插入数据文件的元数据,例如fileId及fileSize等。
数据存储服务器,用于存储所有的数据,提供数据共享的平台,可以下载和上传数据。
候补存储服务器,用于替代发生故障的服务器,修复故障节点的数据。
数据修复模块,通过修复策略制定模块制定故障节点修复机制,基于系统设计者的选择,决定对故障节点修复时选取传统修复策略还是基于互信息量的修复策略。
存储服务器(集群),包含了数据存储模块,提供数据安全存储模块,通过纠删码技术来保证数据存储的可靠性。
主服务器,包含了编码预处理模块、数据文件编码模块、数据文件解码模块、数据文件管理模块、数据文件修复模块,提供系统参数初始化,提供密钥的生成,以及分发密钥到用户功能。包括以下:
编码预处理模块,首先对插入的数据进行均等分片,当出现不能均等分片时,适当插入冗余数据来进行对齐。
数据文件编码模块,通过XOR运算将预处理后的数据进行高速编码运算,然后将编码后的数据分发到各个存储节点上进行存储。
数据文件解码模块,首先将从各个存储节点读取数据,解码出编码前的数据,然后去掉用于对齐的冗余数据,最后将原始数据发送给客户端。
数据文件管理模块,用于存储插入数据文件的元数据,例如fileId及fileSize等。
数据文件修复模块,在节点发生故障时,主动向存活节点读取数据,然后在新加入系统的节点修复出故障节点的数据。
候补存储服务器,替代发生故障的节点。具体包括以下:
修复策略制定模块,根据故障节点及存活节点集合来决定故障节点的修复方案,以使修复带宽达到最小。
修复运算模块,根据修复策略从存活节点集合下载数据之后,计算复原故障节点上的数据。
为了实现故障节点修复过程中修复带宽最小,本实施例在网络编码的基础上采用基于互信息量的修复机制,从而保障修复带宽是最优的。
本实施例提供的基于低修复带宽的云存储系统及方法,是在网络编码基础上引入互信息理论的方案。首先通过引入纠删码技术,在保证数据存储可靠性的同时降低数据存储的冗余度;同时,针对故障节点修复过程带来的网络阻塞问题,采用了网络编码和干扰对其技术,在此基础上引入了互信息量的解决方案。本实施例中数据存储的可靠性性易于保证,同时缓解了故障节点修复过程中网络的拥塞程度。
本实施例与现有技术相比,有如下几大优点和创新:
1、编码过程,通过有限域上元素的表示特点及运算性质,将编码运算由有限域上的运算简化为XOR运算;
2、借鉴相对广义汉明重量的核心思想;
3、在网络编码的基础上采用基于互信息量的修复机制,故障节点的修复带宽最优;
4、故障节点的修复机制具有广泛适用性,该修复机制适用于任意线性纠删码编码方案;
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (4)

1.一种基于低修复带宽的云存储系统,其特征在于,包括数据插入和读取模块、编码预处理模块、数据文件编码模块、数据文件解码模块、数据文件管理模块、数据存储模块以及数据修复模块;其中:
所述数据插入和读取模块工作于客户端,用于向用户提供访问接口,以使用户能够向主服务器发送插入、读取以及删除数据命令;
所述数据插入包括:通过异或运算将预处理后的数据进行高速编码运算,然后将编码后的数据分发到数据存储模块的各个存储节点上进行存储;
所述数据读取包括:对从数据存储模块的各个存储节点读取出的数据进行解码,得到编码前的数据,对编码前的数据去掉用于对齐的冗余数据,得到重构后的原始数据,并将重构后的原始数据发送给客户端;
所述编码预处理模块工作于主服务器上,用于对原始数据进行数据预处理;
所述数据文件编码模块工作于主服务器上,用于对预处理后的数据进行编码,产生数据插入;
所述数据文件解码模块工作于主服务器上,用于对插入的数据进行数据解码重构,产生数据读取;
所述数据文件管理模块工作于主服务器上,用于存储原始数据的元数据;
所述数据存储模块工作于存储服务器,包括多个存储节点,其中一部分存储节点用于存储未经编码的原始数据,另一部分存储节点用于存储编码后的冗余数据,所述数据存储模块采用纠删码技术保证数据存储可靠性;
所述数据修复模块工作于候补存储服务器,用于数据存储模块上故障节点的数据修复,所述数据修复模块包括:
-修复策略制定模块,根据数据存储模块的故障节点及存活节点集合决定故障节点的修复策略,使修复带宽达到最小;
-修复运算模块,根据修复策略从存活节点集合下载数据,并计算复原故障节点上的数据存储于数据存储模块上的新加入存储节点;
所述修复策略采用基于互信息量的修复机制。
2.根据权利要求1所述的基于低修复带宽的云存储系统,其特征在于,所述数据预处理包括:对希望插入的原始数据进行均等分片,当出现不能均等分片时,插入冗余数据进行对齐。
3.一种基于低修复带宽的云存储方法,其特征在于,采用权利要求1所述的一种基于低修复带宽的云存储系统进行云存储,包括如下任一个或任多个步骤:
-系统初始化阶段:在主服务器上设置编码参数,设数据存储模块中共有n个数据存储节点A={A1,A2,…,An},每个数据存储节点独立存储本地数据,其中前k个数据存储节点A={A1,A2,…,Ak}用于存储未经编码的原始数据,后(n-k)个数据存储节点用于存储编码后的冗余数据;
-用户插入数据阶段:用户通过客户端的数据插入和读取模块向主服务器发送插入数据命令,并通过主服务器上的数据文件编码模块将编码后的数据发送给存储服务器上的数据存储模块;
-数据文件编码阶段:主服务器上的编码预处理模块,将希望插入的原始数据进行均等分片,当出现不能均等分片时,插入冗余数据进行对齐,将分片后的数据存储在前k个数据存储节点A={A1,A2,…,Ak},然后通过线性编码生成(n-k)个校验数据块,发送给剩余的(n-k)个数据存储节点;
-用户读取数据阶段:用户通过客户端的数据插入和读取模块向主服务器发送读取数据命令,并通过主服务器上的数据文件解码模块将解码后的原始数据发送给客户端;
-数据文件解码阶段:首先从数据存储模块的各个存储节点读取数据,解码出编码前的数据,然后对编码前的数据去掉用于对齐的冗余数据,得到重构后的原始数据,最后将重构后的原始数据发送给客户端;
-故障节点的修复阶段:在数据存储模块的某一存储节点发生故障时,主服务器通过数据修复模块主动向数据存储模块的其他存活节点读取数据后进行修复,并将修复后的数据存储于数据存储模块的新加入存储节点。
4.根据权利要求3所述的基于低修复带宽的云存储方法,其特征在于,所述故障节点的修复阶段采用基于互信息量的修复机制进行故障节点的修复。
CN201710544567.9A 2017-07-05 2017-07-05 基于低修复带宽的云存储系统及方法 Active CN107689983B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710544567.9A CN107689983B (zh) 2017-07-05 2017-07-05 基于低修复带宽的云存储系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710544567.9A CN107689983B (zh) 2017-07-05 2017-07-05 基于低修复带宽的云存储系统及方法

Publications (2)

Publication Number Publication Date
CN107689983A CN107689983A (zh) 2018-02-13
CN107689983B true CN107689983B (zh) 2021-02-12

Family

ID=61152775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710544567.9A Active CN107689983B (zh) 2017-07-05 2017-07-05 基于低修复带宽的云存储系统及方法

Country Status (1)

Country Link
CN (1) CN107689983B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958973B (zh) * 2018-06-27 2020-07-07 清华大学 分布式文件系统纠删码数据重构存储节点选择方法及装置
CN109412754B (zh) * 2018-10-22 2020-09-18 北京理工大学 一种编码云的数据存储、分发以及访问方法
CN111224747A (zh) * 2019-12-19 2020-06-02 湖北大学 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
CN111475109B (zh) * 2020-03-20 2022-10-28 苏州浪潮智能科技有限公司 一种数据处理方法、装置、设备及介质
CN114625325B (zh) * 2022-05-16 2022-09-23 阿里云计算有限公司 分布式存储系统及其存储节点离线处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118089A (zh) * 2013-01-22 2013-05-22 华中科技大学 一种基于多个云存储系统的安全存储方法及其系统
CN103336785A (zh) * 2013-06-04 2013-10-02 华中科技大学 一种基于网络编码的分布式存储方法及其装置
WO2014166604A1 (en) * 2013-04-08 2014-10-16 Alcatel Lucent Dynamic scaling of redundancy elimination middleboxes

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710330B2 (en) * 2014-10-15 2017-07-18 Empire Technology Development Llc Partial cloud data storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118089A (zh) * 2013-01-22 2013-05-22 华中科技大学 一种基于多个云存储系统的安全存储方法及其系统
WO2014166604A1 (en) * 2013-04-08 2014-10-16 Alcatel Lucent Dynamic scaling of redundancy elimination middleboxes
CN103336785A (zh) * 2013-06-04 2013-10-02 华中科技大学 一种基于网络编码的分布式存储方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"一种基于互信息量的自适应快速视频编解码方案";林茂六;《重庆邮电大学学报》;20100215;正文第2-4节 *

Also Published As

Publication number Publication date
CN107689983A (zh) 2018-02-13

Similar Documents

Publication Publication Date Title
CN107689983B (zh) 基于低修复带宽的云存储系统及方法
US9141679B2 (en) Cloud data storage using redundant encoding
Papailiopoulos et al. Simple regenerating codes: Network coding for cloud storage
US10951236B2 (en) Hierarchical data integrity verification of erasure coded data in a distributed computing system
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
US20150356305A1 (en) Secure data access in a dispersed storage network
EP2660723A1 (en) Method of data storing and maintenance in a distributed data storage system and corresponding device
US9146810B2 (en) Identifying a potentially compromised encoded data slice
US11500725B2 (en) Methods for data recovery of a distributed storage system and storage medium thereof
CN112835738B (zh) 一种条带数据存储结构的构建方法
WO2016130091A1 (en) Methods of encoding and storing multiple versions of data, method of decoding encoded multiple versions of data and distributed storage system
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN109194444A (zh) 一种基于网络拓扑的平衡二叉树修复方法
CN111224747A (zh) 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
US11625300B2 (en) Recovering missing data in a storage network via locally decodable redundancy data
US20220374162A1 (en) Facilitating Write Requests in a Storage Network
Zhu et al. Exploring node repair locality in fractional repetition codes
JP2021086289A (ja) 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法
CN113157715B (zh) 纠删码数据中心机架协同更新方法
Luby Repair rate lower bounds for distributed storage
Harshan et al. Compressed differential erasure codes for efficient archival of versioned data
CN110401703B (zh) 基于多级网络编码的云存储数据恢复方法
CN111475330B (zh) 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法
US11836369B1 (en) Storing data in an expanded storage pool of a vast storage network
US11442921B1 (en) Data access in a dispersed storage network with consistency

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