基于网络编码的分布式数据存储和修复系统及其方法

文档序号:7998387阅读:278来源:国知局
基于网络编码的分布式数据存储和修复系统及其方法
【专利摘要】本发明公开了一种基于网络编码的分布式数据存储和修复系统及其方法,由位于互联网上不同位置的多台服务器端和多个客户机端组成,在数据存储和修复的过程中融合了网络编码的思想。本发明能够减少数据存储和修复所需的带宽需求,保障系统的负载均衡,并在数据安全性上有一定的提高,本发明对改变互联网上的数据存储服务有重要的促进作用。
【专利说明】基于网络编码的分布式数据存储和修复系统及其方法

【技术领域】
[0001] 本发明专利涉及计算机【技术领域】,具体是涉及一种应用于互联网的基于网络编码 的分布式数据存储和修复系统及其方法。

【背景技术】
[0002] 随着因特网的发展,越来越多的数据(如大型文件、视频数据和神经数据)需要被 存储,如何有效的管理这些存储数据成为了一个巨大的挑战。为了避免这些数据遭受地震、 火灾或其他灾难引起的永久性损毁,分布式存储系统被广泛运用在实际应用中。在分布式 存储系统里,数据被同时存放在不同的服务器中,在某一部分服务器损坏的情况下,原始数 据可以从其他现存的服务器中恢复。
[0003] 目前,在互联网中实际运行的存储系统大多是基于复制技术和纠删码技术。
[0004] 基于复制技术的分布式存储系统是最常用的数据存储方法,其一份原始数据存在 多个副本,这种方法可以增强文件的可靠性,不足之处在于基于复制的技术会产生更多的 数据冗余。
[0005] 纠删码(如里德-所罗门码)是分布式中的另外一项实用的技术,它将一份原始的 数据切割成N个子块,其中任意K个子块都可以反推出原始的文件,而且编码可以允许存储 编码中的(N-K)个错误,因此纠删码可以在不牺牲可靠性的前提下减少数据冗余。基于此, 纠删码被广泛应用于实际应用中。然而,纠删码技术也有它的不足之处:当一个存储节点 失效时,失效的子文件块需要在一个新的存储服务器中修复以保证它的可靠性级别,为了 达到这个目的,客户机端需要下载最少K个不同的子块,以恢复原始数据,先计算出再生编 码,然后根据原始文件和再生编码重新生成一个新的子块,因此在修复过程中需要K+1个 子块,这造成了较大的带宽开销。


【发明内容】

[0006] 本发明的目的是提供一种基于网络编码的分布式数据存储和修复系统及其方法, 解决现有技术中数据冗余、宽带开销较大的不足,同时在分布式数据存储和修复中负载均 衡、数据安全性等方面得到了显著提高。
[0007] 本发明解决其技术问题所采用的技术方案是: 一种基于网络编码的分布式数据存储和修复系统,由多个不同地理位置的服务器端和 客户机端组成,服务器端与客户机端通过互联网连接,其特征是:所述服务器端包含存储接 口模块、Apache服务器、http下载模块、数据库、迭代修复模块、再编码模块、服务器端有 限域操作模块、信息同步模块,所述客户机端包含编码解码模块、上传下载模块、种子文件 生成模块、网络码字构造模块、再生码字构造模块、客户机端有限域操作模块。
[0008] 所述的编码解码模块包含有数据分块编码模块,数据分块编码模块内置一个最优 编码分块方法,以确定最优的编码方案,以达到更优化的编码效率。
[0009] 所述种子文件生成模块,为每一个原始文件生成一个种子文件,种子文件是访问 服务器端数据的唯一凭证,种子具有唯一性和动态性。
[0010] 所述的服务器端有限域操作模块和客户机端有限域操作模块均内置一个有限域 运算库,该运算库的特征是体积小,采用查表法,所有运算函数均采用宏替换。
[0011] 服务器端提供一个存储接口模块响应上传请求,通过这些接口,服务器端可以接 收到文件并加以存储。上传的文件在全部被存储服务器端后将立即可以被下载。在本发明 中,修复的操作可以在服务器端进行,并且因为服务器分布在不同的地方,使得它们必须加 入到修复的工作中。
[0012] 客户机端对原始文件进行编码,然后上传到服务器中。在对每一个原始数据包进 行编码后,对应于每一个原始文件在编码后,都将生成一个种子文件。在该种子文件中,一 些参数如N,K和m(有限域的阶数)以及子文件的位置将被记录下来。当需要下载的时 候,需要打开匹配的种子文件,并且最少K个子块需要被选中下载以保证原始数据可以被 恢复。种子文件在本发明中有着重要的作用。除了下载操作外,在用户需要修复子文件块 或者新加一个子块的时候也要用到。在分完种子文件后,客户机端将获得二次操作的编码 并构建一个包含逻辑修复盘的修复计划。修复进程将在修复方案传送给修复路径上的第一 个存储服务器时被自动启动。
[0013] 包含上述结构的一种基于网络编码的分布式数据存储和修复系统,其使用方法包 含分布式数据存储方法和分布式数据修复方法。
[0014] 分布式数据存储方法包含以下步骤: 1、 根据客户的偏好设置对应的参数N,K,系统根据客户机的位置,自动地计算出N个到 该客户机最快速率的服务器作为存储服务器; 2、 客户机端的软件将原始文件编码成N个子文件后上传到N个服务器上。并为客户生 成一个种子文件,以便客户需要的时候能够重新获得原始数据,或再生新的子文件。
[0015] 分布式数据修复方法包含以下步骤: 1、 当客户需要修复某一台服务器上数据时,根据客户的偏好,可以选择精确修复还是 功能性修复,系统从剩余的服务器列表中选择一个或多个与客户机之间的传输速率较快 的,用于存储修复后的数据; 2、 系统将计算出一条修复路径,修复的过程中,这条路径上的每个中间节点都要进行 再编码操作; 3、 一个与子文件同等大小的文件在遍历了这条路径后,修复后的文件将自动产生。
[0016] 本发明的有益效果是:利用了网络编码中间节点编码的核心思想,降低了数据修 复过程中的所需的带宽,为提高分布式存储系统的效率提供了理论和应用基础。

【专利附图】

【附图说明】
[0017] 图1是本发明的结构示意图。
[0018] 图2是本发明的客户机端示意图。
[0019] 图3是本发明的服务器端示意图。
[0020] 图4是本发明进行数据修复的示意图。
[0021] 图5是本发明的分布式数据存储方法流程图。
[0022] 图6是本发明的分布式数据修复方法流程图。
[0023] 图中,1.客户机端,2.服务器端。

【具体实施方式】
[0024] 下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明 而不用于限制本发明的适用范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技 术人员可以对本发明作各种改动或修改,这些等价形式同样落在申请所附权利要求书所限 定的范围。
[0025] 如图1、2、3、4所示,一种基于网络编码的分布式数据存储和修复系统,由多个不 同地理位置的服务器端2和客户机1端组成,服务器端2与客户机端1通过互联网连接,其 特征是:所述服务器端2包含存储接口模块、Apache服务器、http下载模块、数据库、迭代 修复模块、再编码模块、服务器端有限域操作模块、信息同步模块,所述客户机端1包含编 码解码模块、上传下载模块、种子文件生成模块、网络码字构造模块、再生码字构造模块、客 户机端有限域操作模块。
[0026] 所述的编码解码模块包含有数据分块编码模块,数据分块编码模块内置一个最优 编码分块方法,以确定最优的编码方案,以达到更优化的编码效率。
[0027] 所述种子文件生成模块,为每一个原始文件生成一个种子文件,种子文件是访问 服务器端数据的唯一凭证,种子具有唯一性和动态性。
[0028] 所述的服务器端有限域操作模块和客户机端有限域操作模块均内置一个有限域 运算库,该运算库的特征是体积小,采用查表法,所有运算函数均采用宏替换。
[0029] 服务器端2提供一个存储接口模块响应上传请求,通过这些接口,服务器端可以 接收到文件并加以存储。上传的文件在全部被存储服务器端后将立即可以被下载。在本发 明中,修复的操作可以在服务器端进行,并且因为服务器分布在不同的地方,使得它们必须 加入到修复的工作中。
[0030] 客户机端1对原始文件进行编码,然后上传到服务器中。在对每一个原始数据包 进行编码后,对应于每一个原始文件在编码后,都将生成一个种子文件。在该种子文件中, 一些参数如N,K和m(有限域的阶数)以及子文件的位置将被记录下来。当需要下载的时 候,需要打开匹配的种子文件,并且最少K个子块需要被选中下载以保证原始数据可以被 恢复。种子文件在本发明中有着重要的作用。除了下载操作外,在用户需要修复子文件块 或者新加一个子块的时候也要用到。在分完种子文件后,客户机端将获得二次操作的编码 并构建一个包含逻辑修复盘的修复计划。修复进程将在修复方案传送给修复路径上的第一 个存储服务器时被自动启动。
[0031] 基于上述的一种基于网络编码的分布式数据存储和修复系统,其使用方法包含分 布式数据存储方法和分布式数据修复方法。
[0032] 如图5所示,分布式数据存储方法流程图,分布式数据存储方法包含以下步骤: 1、 当客户需要修复某一台服务器上数据时,根据客户的偏好,可以选择精确修复还是 功能性修复,系统从剩余的服务器列表中选择一个或多个与客户机之间的传输速率较快 的,用于存储修复后的数据; 2、 系统将计算出一条修复路径,修复的过程中,这条路径上的每个中间节点都要进行 再编码操作; 如图6所示,布式数据修复方法流程图,分布式数据修复方法包含以下步骤: 布式数据修复方法包含以下步骤: 1、 当客户需要修复某一台服务器上数据时,根据客户的偏好,可以选择精确修复还是 功能性修复,系统从剩余的服务器列表中选择一个或多个与客户机之间的传输速率较快 的,用于存储修复后的数据; 2、 系统将计算出一条修复路径,修复的过程中,这条路径上的每个中间节点都要进行 再编码操作; 3、 一个与子文件同等大小的文件在遍历了这条路径后,修复后的文件将自动产生。
[0033] 本专利公开一种基于网络编码的分布式存储系统的存储接口技术,研究人员可以 利用该接口来实验并评估其所设计的系统的性能。当研究人员想利用本发明的平台来实验 其方案时,可以通过该接口将文件传输到网络服务器中,并能根据反馈知道数据的存储位 置,数据的传输及运算开销。当客户需要使用该系统时,只需要下载本发明的的客户机端系 统,便能够对本发明系统进行存取访问。
【权利要求】
1. 一种基于网络编码的分布式数据存储和修复系统,由多个不同地理位置的服务器端 和客户机端组成,服务器端与客户机端通过互联网连接,其特征是:所述服务器端包含存储 接口模块、Apache服务器、http下载模块、数据库、迭代修复模块、再编码模块、服务器端 有限域操作模块、信息同步模块,所述客户机端包含编码解码模块、上传下载模块、种子文 件生成模块、网络码字构造模块、再生码字构造模块、客户机端有限域操作模块。
2. 根据权利要求1所述的一种基于网络编码的分布式数据存储和修复系统,其特征 是:所述的编码解码模块包含有数据分块编码模块,数据分块编码模块内置一个编码分块 方法。
3. 根据权利要求1所述的一种基于网络编码的分布式数据存储和修复系统,其特征 是:所述种子文件生成模块,为每一个原始文件生成一个种子文件,种子具有唯一性和动 态性。
4. 根据权利要求1所述的一种基于网络编码的分布式数据存储和修复系统,其特征 是:所述的服务器端有限域操作模块和客户机端有限域操作模块均内置一个有限域运算 库,有限域运算库采用查表法,运算函数均采用宏替换。
5. 根据权利要求1所述的一种基于网络编码的分布式数据存储和修复系统,其特征 是:服务器端提供一个存储接口模块响应上传请求。
6. 根据权利要求1所述的一种基于网络编码的分布式数据存储和修复系统,其特征 是:修复的操作在服务器端进行。
7. 根据权利要求1所述的一种基于网络编码的分布式数据存储和修复系统,其特征 是:客户机端对原始文件进行编码,并生成一个种子文件。
8. 根据权利要求1或7所述的一种基于网络编码的分布式数据存储和修复系统,其特 征是:所述种子文件的参数及子文件的位置将被记录下来。
9. 根据权利要求1至8任意一项所述的一种基于网络编码的分布式数据存储和修复系 统,其特征是:其使用方法包含分布式数据存储方法和分布式数据修复方法,分布式数据存 储方法包含以下步骤: 1、 根据客户的偏好设置对应的参数N,K,系统根据客户机的位置,自动地计算出N个到 该客户机最快速率的服务器作为存储服务器, 2、 客户机端的软件将原始文件编码成N个子文件后上传到N个服务器上,并为客户生 成一个种子文件,以便客户需要的时候能够重新获得原始数据,或再生新的子文件; 分布式数据修复方法包含以下步骤: 1、 当客户需要修复某一台服务器上数据时,根据客户的偏好,可以选择精确修复还是 功能性修复,系统从剩余的服务器列表中选择一个或多个与客户机之间的传输速率较快 的,用于存储修复后的数据, 2、 系统将计算出一条修复路径,修复的过程中,这条路径上的每个中间节点都要进行 再编码操作, 3、 一个与子文件同等大小的文件在遍历了这条路径后,修复后的文件将自动产生。
【文档编号】H04L29/08GK104113562SQ201310132854
【公开日】2014年10月22日 申请日期:2013年4月17日 优先权日:2013年4月17日
【发明者】王磊, 杨余旺, 胡夏芸, 高庆梅, 殷俊, 赵炜, 殷延祥 申请人:王磊, 杨余旺, 胡夏芸
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1