面向数据中心的通用化网络编码容错存储平台及工作方法

文档序号:6515797阅读:253来源:国知局
面向数据中心的通用化网络编码容错存储平台及工作方法
【专利摘要】本发明公开了一种面向数据中心的通用化网络编码容错存储平台及其实现方法。该系统主要包括一个名字节点,多个用于存储的数据节点以及一个编码代理节点,由他们组成一个面向数据中心的分布式存储平台。该存储平台是面向数据中心,提出了一种基于网络编码的统一处理框架,通过对存储文件进行编码,达到在系统可靠性相同的情况下,减少系统存储冗余量以及传输带宽。该系统提供不同编码方案的集成,从而达到系统的可扩展性。实现方法主要包括基于网络编码的统一处理框架设计,数据编码与分布式存储流程,不同编码方案的集成,以及恢复处理。
【专利说明】面向数据中心的通用化网络编码容错存储平台及工作方法
[0001]
【技术领域】
[0002]本发明以开源分布式存储平台为基础,对基于多副本的数据容错技术带来的冗余开销以及额外传输带宽问题进行了研究。在此基础上,通过引入信息论中主流数据容错编码技术,对系统架构进行扩展,设计并实现了一种面向数据中心的通用化网络编码容错存储平台及其工作方法。
【背景技术】
[0003]随着互联网技术的迅速发展以及海量数据的快速膨胀,海量数据的存储与管理成为业界关注的热点,同时也是“大数据处理”的重要支撑技术。分布式存储系统因其支持大容量的存储,提供良好的可扩展性,在容量、性能以及管理等方面都能够快速适应系统的变化而被广泛使用。然而随着对大容量数据、私人数据的存储效率要求越来越高,现有分布式存储系统中所采用的基于多副本的数据容错存储机制将导致系统占用过多额外存储开销以及数据传输带宽消耗,并且增加失效修复的存储空间。为提高数据存储的可靠性,降低数据的冗余率,业界对基于信息论的数据容错编码机制开展了研究,基于网络编码的分布式数据容错存储技术受到业界积极关注。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种面向数据中心的通用化网络编码容错存储平台及其工作方法,该系统能够为系统提供多种网络编码方案,不仅有效的降低系统存储冗余度,减少传输带宽和提高系统的可靠性与耐久性,还能有效的降低修复时传输带宽消耗。该编码存储技术在系统在存储文件,读取文件以及失效文件块自我修复中都运用了基于网络编码的数据容错 技术维护文件的可靠性。
[0005]为实现上述目的,本发明所述的一种面向数据中心的通用化网络编码容错存储平台,包括:
一个名字节点:名字节点作为核心服务器,管理文件系统中的数据块到数据节点之间的映射以及整个集群的配置信息,并负责文件系统的名字空间操作;
多个数据节点:数据节点作为从节点,系统中的数据都将存储在数据节点中,数据节点在名字节点的调度下对数据块进行创建、删除和传送操作,并且通过名字节点处理文件的读写请求。
[0006]一个编码代理节点:当有文件读写时,编码代理节点将原始文件编码发送到对应的数据节点中或者从对应数据节点中取数据进行解码恢复为原始文件。
[0007]此外,本发明还提供了该面向数据中心的通用化网络编码容错存储平台的工作方法,其包括以下几种情况:
I)数据编码与分布式存储流程:编码代理节点对原始文件先进行编码,然后将多个编码数据块并行的发送到对应的数据节点中,在此过程中,系统根据文件大小以及系统对应的网络编码方案自适应的生成不同的编码信息以及对应的数据节点个数,使得系统满足自适应性。
[0008]2)不同编码方案的集成:提供多种编码容错方案,并提供统一的、普适的分布式文件系统,使得用户和应用程序能够根据自己具体的存储任务选择合适的方案,提高系统的多样性、对用户的友好性,满足可扩展性。
[0009]3)失效编码恢复处理:在系统中某些节点失效的情况下为了保证存储文件的可靠性,恢复失效编码块。
[0010]上述步骤I)的具体流程分为文件存储和文件读取两种情况,其中:
文件存储:
11)当系统有文件存储时,名字节点根据文件长度和系统正在运行的编码方案生成对应的编码信息和申请对应的数据节点和数据块,在索引空间中维护并返回给编码代理节
占.12)编码代理节点根据名字节点返回的数据节点地址,与每个数据节点建立连接;
13)编码代理节点根据编码信息,按传输单位遍历原始文件,根据编码矩阵,将各传输单位的数据放入对应的编码缓存域或者进行编码,每遍历一定量次数后,将相应的编码缓存放入网络传输等待队列,队列非空的情况下唤醒等待的文件块传输进程,此时分为以下几种情况;
131)如果当前遍历的数据所对应的编码缓存域是空,则将此数据放入对应的编码缓存域中;
132)如果当前遍历的数据所对应的编码缓存域不是空,则将此数据编码并与对应编码缓存域中的数据进行异或操作;
133)原始文件遍历完毕,将相应的编码缓存放入网络传输等待队列;
14)文件块传输进程在网络传输等待队列为在非空的情况下被唤醒,执行文件传输操作,每发送一个数据包将相对于的数据包放入等待确认队列,等待来自数据节点的确认,之后从该队列删除,文件块确认被写入,结束;
文件读取:
15)当要读取文件,名字节点返回相应的网络编码文件块的位置,以及文件对应的编码信息给编码代理节点;
16)编码代理节点与相应的存储网络编码文件块的数据节点建立连接;
17)编码代理从数据节点中按传输单位获取这些网络编码文件块中对应的数据,解码,以恢复原始文件;在此过程中,如果正在连接的某个数据节点出现异常时,从剩余的数据节点中选取一个最近的数据节点,从指定偏移位置开始读取,并重新生成解码矩阵,解码流程继续。
[0011]18)系统根据存储文件的长度以及相应的网络编码方案自主生成对应的编码方案的编码信息,为之后文件编码解码以及失效编码块恢复处理时使用,此时系统根据需要写入的原始文件的文件长度以及对应网络编码方案计算网络编码的参数;再根据计算出来的网络编码的参数,选择相应的数据节点个数用于存储文件。
[0012]上述步骤2)的具体流程为: 21)在系统中添加一个通用编码类,该通用类根据不同的编码方案引用到与之对应的编码信息类,为之后文件编码解码以及修复时使用;
211)在系统中添加一个编码协议类,用于生成不同编码矩阵以及编码解码时的运算法
则;
212)在系统中添加不同网络编码类,它们拥有自己的编码信息,并可以根据编码协议类生成对应的编码矩阵。
[0013]22)在系统的配置文件中添加一个有关于编码容错方案的参数,可以在系统运行的时候,决定调用的是哪一种编码容错方案。
[0014]23)系统可以根据需要写入的原始文件的文件长度以及对应网络编码方案计算网络编码的参数;
34)通用编码类根据系统实际运行的网络编码方案引用对应的网络编码类,再根据计算出来的网络编码参数计算对应的信息矩阵以及编码矩阵。
[0015]上述步骤3)的具体流程为:
31)当系统中某个数据节点中有编码块失效,名字节点会将其放入修复队列中去,名字节点为其选择一个新的数据节点作为其存储节点,并把参与恢复处理的其它编码块信息返回给新的数据节点,通知该数据节点修复失效编码块;
32)新的数据节点在收到名字节点的命令后,进行恢复处理,具体为:通知参与恢复的数据节点将对应的编码块传输到新的数据节点中,新的数据节点在接收到参与编码块的数据后恢复失效编码块,最后通知名字节点更新索引信息。
[0016]本发明采用网络编码技术,实现了一种面向数据中心的通用化网络编码容错存储平台。该存储平台是面向数据中心,提出了一种基于网络编码的统一处理框架,通过对存储文件进行编码,达到在系统可靠性相同的情况下,减少系统存储冗余量以及传输带宽。该存储平台提供不同编码方案的集成,从而达到系统的可扩展性。在系统中某些节点失效的情况下为了保证存储文件的可靠性,系统可以启动恢复处理,失效编码块。在有效降低存储冗余的基础上提高了系统的容错能力,满足了分布式数据存储的可靠性需求。
【专利附图】

【附图说明】
[0017]图1系统架构图,
图2通用网络编码框架-通用编码类,
图3通用网络编码框架-通用编码接口,
图4通用网络编码框架-自适应n,k,
图5读文件(编码)流程,
图6写文件(解码)流程,
图7恢复处理流程图。
【具体实施方式】
[0018]本发明提供了一种面向数据中心的通用化网络编码容错存储平台及其实现方法。下面结合附图进行详细说明。
[0019]系统架构图如图1所示。在该存储平台中,名字节点作为核心服务器,在整个系统中只有一个,名字节点作为系统中的主节点,管理文件系统中的数据块到数据节点之间的映射以及整个集群的配置信息等,除此之外,名字节点还负责文件系统的名字空间操作,如文件系统的打开、关闭以及重命名目录或者文件等。数据节点作为从节点,在整个系统中有数个,系统中的数据都将存储在数据节点中。数据节点在名字节点的调度下可以对数据块进行创建、删除和传送等操作,并且可以通过名字节点处理文件的读写请求。编码代理节点主要负责系统中编码解码功能。系统中,当文件读写时,编码代理对原始文件编码发送到对应的数据节点中或者从对应数据节点中取数据解码恢复原始文件。
[0020]图2,3,4展示了通用网络编码框架图,图3展示申请存储一个文件的时候,需要根据文件生成编码矩阵,系统会初始化一个CodingMatrix类。CodingMatrix作为一个通用类,她可以根据不同的编码方案引用到与之对应的编码信息类,为之后文件编码解码以及修复时使用。图4展示了系统根据配置文件中的编码容错方案的参数,执行对应的网络编码方案。图5展示了系统根据文件大小以及系统对应的网络编码方案自适应的生成编码信息。通过上述方式,系统就可以扩展更多的网络编码方案。
[0021]图5展示了文件写流程,即编码流程。编码代理申请文件存储时,名字节点根生成对应的编码信息,数据节点和数据块,在索引空间中维护并返回编码代理。编码代理与每个数据节点建立连接,按传输单位遍历原始文件,将对应的传输单位的数据放入对应的编码缓存域或者编码。每遍历一定量次数后,将相应的编码缓存放入网络传输等待队列。文件块传输进程执行文件传输操作,发送到对应的数据节点中的数据块中。文件块被写入后,编码代理上报名字节点更新索引。
[0022]图6展示了文件读流程,即解码流程。当编码代理通过名字节点申请读文件。编码代理首先打开一个写入本地磁盘的数据流,然后通过RPC远程调用名字节点,获得各个文件块所在的数据节点位置,然后链接各个数据节点,并发送读文件命令,数据节点收到该命令后通过数据流的形式将文件块发送到编码代理,编码代理再通过解码操作获得原始文件。
[0023]图7展示了系统的恢复处理流程图,名字节点选取合适的新节点来存储恢复文件块,并选取合适(根据负载均衡)的足够个数的数据节点参与修复工作。新的数据节点向这些数据节点发送恢复命令。参与恢复的数据节点读取自己的命令队列,先根据对应的网络编码方案对自己存储的该文件的文件块作相应的计算,再发送到选取的新节点。新节点接收并恢复之后存储,然后更新索引空间。
【权利要求】
1.一种面向数据中心的通用化网络编码容错存储平台,其特征在于该平台包括: 一个名字节点:名字节点作为核心服务器,管理文件系统中的数据块到数据节点之间的映射以及整个集群的配置信息,并负责文件系统的名字空间操作; 多个数据节点:数据节点作为从节点,系统中的数据都将存储在数据节点中,数据节点在名字节点的调度下对数据块进行创建、删除和传送操作,并且通过名字节点处理文件的读写请求; 一个编码代理节点:当有文件读写时,编码代理节点将原始文件编码发送到对应的数据节点中或者从对应数据节点中取数据进行解码恢复为原始文件。
2.权利要求1所述面向数据中心的通用化网络编码容错存储平台的工作方法,其特征在于包括以下几种情况: 1)数据编码与分布式存储流程:编码代理节点对原始文件先进行编码,然后将多个编码数据块并行的发送到对应的数据节点中,在此过程中,系统根据文件大小以及系统对应的网络编码方案自适应的生成不同的编码信息以及对应的数据节点个数,使得系统满足自适应性; 2)不同编码方案的集成:提供多种编码容错方案,并提供统一的、普适的分布式文件系统,使得用户和应用程序能够根据自己具体的存储任务选择合适的方案,提高系统的多样性、对用户的友好性,满足 可扩展性; 3)失效编码恢复处理:在系统中某些节点失效的情况下为了保证存储文件的可靠性,恢复失效编码块。
3.权利要求2所述面向数据中心的通用化网络编码容错存储平台的工作方法,其特征在于步骤I)的具体流程分为文件存储和文件读取两种情况,其中: 文件存储: 11)当系统有文件存储时,名字节点根据文件长度和系统正在运行的编码方案生成对应的编码信息和申请对应的数据节点和数据块,在索引空间中维护并返回给编码代理节占.12)编码代理节点根据名字节点返回的数据节点地址,与每个数据节点建立连接; 13)编码代理节点根据编码信息,按传输单位遍历原始文件,根据编码矩阵,将各传输单位的数据放入对应的编码缓存域或者进行编码,每遍历一定量次数后,将相应的编码缓存放入网络传输等待队列,队列非空的情况下唤醒等待的文件块传输进程,此时分为以下几种情况; 131)如果当前遍历的数据所对应的编码缓存域是空,则将此数据放入对应的编码缓存域中; 132)如果当前遍历的数据所对应的编码缓存域不是空,则将此数据编码并与对应编码缓存域中的数据进行异或操作; 133)原始文件遍历完毕,将相应的编码缓存放入网络传输等待队列; 14)文件块传输进程在网络传输等待队列为在非空的情况下被唤醒,执行文件传输操作,每发送一个数据包将相对于的数据包放入等待确认队列,等待来自数据节点的确认,之后从该队列删除,文件块确认被写入,结束; 文件读取:15)当要读取文件,名字节点返回相应的网络编码文件块的位置,以及文件对应的编码信息给编码代理节点; 16)编码代理节点与相应的存储网络编码文件块的数据节点建立连接; 17)编码代理从数据节点中按传输单位获取这些网络编码文件块中对应的数据,解码,以恢复原始文件;在此过程中,如果正在连接的某个数据节点出现异常时,从剩余的数据节点中选取一个最近的数据节点,从指定偏移位置开始读取,并重新生成解码矩阵,解码流程继续; 18)系统根据存储文件的长度以及相应的网络编码方案自主生成对应的编码方案的编码信息,为之后文件编码解码以及失效编码块恢复处理时使用,此时系统根据需要写入的原始文件的文件长度以及对应网络编码方案计算网络编码的参数;再根据计算出来的网络编码的参数,选择相应的数据节点个数用于存储文件。
4.权利要求2或3所述面向数据中心的通用化网络编码容错存储平台的工作方法,其特征在于步骤2)的具体流程为: 21)在系统中添加一个通用编码类,该通用类根据不同的编码方案引用到与之对应的编码信息类,为之后文件编码解码以及修复时使用; 211)在系统中添加一个编码协议类,用于生成不同编码矩阵以及编码解码时的运算法则; 212)在系统中添加不同网络编码类,它们拥有自己的编码信息,并可以根据编码协议类生成对应的编码矩阵; 22)在系统的配置 文件中添加一个有关于编码容错方案的参数,可以在系统运行的时候,决定调用的是哪一种编码容错方案; 23)系统可以根据需要写入的原始文件的文件长度以及对应网络编码方案计算网络编码的参数; 34)通用编码类根据系统实际运行的网络编码方案引用对应的网络编码类,再根据计算出来的网络编码参数计算对应的信息矩阵以及编码矩阵。
5.权利要求2或3所述面向数据中心的通用化网络编码容错存储平台的工作方法,其特征在于步骤3)的具体流程为: 31)当系统中某个数据节点中有编码块失效,名字节点会将其放入修复队列中去,名字节点为其选择一个新的数据节点作为其存储节点,并把参与恢复处理的其它编码块信息返回给新的数据节点,通知该数据节点修复失效编码块; 32)新的数据节点在收到名字节点的命令后,进行恢复处理,具体为:通知参与恢复的数据节点将对应的编码块传输到新的数据节点中,新的数据节点在接收到参与编码块的数据后恢复失效编码块,最后通知名字节点更新索引信息。
【文档编号】G06F17/30GK103544270SQ201310489884
【公开日】2014年1月29日 申请日期:2013年10月18日 优先权日:2013年10月18日
【发明者】薛艳, 陈正亮, 叶保留, 吴小志, 李东辉 申请人:南京大学镇江高新技术研究院, 南京南瑞集团公司信息系统集成分公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1