CN101860568A - 分布式存储系统中基于路由器加速的数据修复方法 - Google Patents
分布式存储系统中基于路由器加速的数据修复方法 Download PDFInfo
- Publication number
- CN101860568A CN101860568A CN201010186461A CN201010186461A CN101860568A CN 101860568 A CN101860568 A CN 101860568A CN 201010186461 A CN201010186461 A CN 201010186461A CN 201010186461 A CN201010186461 A CN 201010186461A CN 101860568 A CN101860568 A CN 101860568A
- Authority
- CN
- China
- Prior art keywords
- router
- data
- provider
- newcomer
- ack message
- 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
Images
Abstract
本发明属于分布式存储技术领域,具体为一种分布式存储系统中基于路由器加速的数据修复方法。本发明利用路由器(称为支持路由器)上的编码能力,将数据处理转移到路由器上完成,使得路由器即使收到多个数据流也只发出一个数据流,从而消除了共享链路的多个数据流,大大增大了数据修复时的数据传输速率。
Description
技术领域
本发明属于分布式存储技术领域,具体涉及一种基于路由器加速的数据修复方法。
背景技术
为了提供大规模数据存储服务,需要对数据进行分布式存储,即将数据存储在网络中大量的存储节点上。分布式存储系统通过将数据存储于网络中的多个存储节点,提供了大规模的数据存储功能。当前可以存储用户数据的互联网企业,如Google,Facebook等,均在自己的数据中心中使用分布式存储系统。
在分布式存储系统中,单个存储节点的损坏将导致其中存储的数据失效。同时由于分布式存储系统中使用了大量的存储节点,整个系统将面临频繁的数据失效,为了保证系统中数据的可靠性,对于发生数据失效的节点,需要设计高效的机制对丢失的数据进行修复。假设在某个节点发生数据失效后,某个文件的数据丢失了,在数据修复中,系统选择一个未存储对应文件的存储节点(即newcomer),令newcomer从其他若干个存储了该文件数据的存储节点(provider)接受数据,并对接受到的数据进行必要处理,从而完成对丢失数据的修复。
现有的修复技术包括基于副本的修复和基于编码的修复。
基于副本(replica)的数据修复:存储节点中存储的是源文件的副本数据,修复时newcomer从任一provider中获取数据,也可从多个provider并行下载以降低传输时间。
如图1,系统中有一存储节点中存储了某一源文件(可能由用户上传,或存储节点自身产生)。当数据失效发生在该节点时,源文件丢失。为了保证该文件在发生数据丢失后的可用性,在存储系统中的其他3个节点分别存储了源文件的一个副本。
当其中一个副本丢失后,系统需要再产生一个副本,为此系统选择一个存储节点作为newcomer,newcomer从至少一个存储节点中接受数据,向newcomer提供数据的节点称为provider。如图1中所示,newcomer从两个provider并行的接收数据,直到整个副本被下载到newcomer。从而一个新的副本产生于newcomer之上。
该技术的缺点在于:节点需存储大量数据,每个存储节点均需存储一个文件副本,占用大量存储资源。修复时间长,需传输整个文件,同时占用大量网络带宽资源。
基于编码的数据修复:源文件在被存储到存储节点前进行编码。整个文件被分为k块,编码后可得到n个编码块,n个编码块中的任意k块即可恢复源文件。每个存储节点中分别存储一个编码块。修复时newcomer需从至少k个provider下载编码块,并由newcomer对收到的编码块重新编码得到一个新的编码块。
如图2,源文件被划分为3块,并被编码为4个编码块(编码块之间大小相同)。系统中4个存储节点分别保存一个编码块。当第4个编码块丢失后,系统选择一个节点作为newcomer,newcomer从剩余的3个存储节点(即provider)中接受数据。newcomer接收到3个编码块后,通过该3个编码块恢复出源文件,再重新编码得到一个新的编码块并保存。
发明内容
本发明的目的在于提出一种数据修复时间省,数据修复效率高的分布式存储系统中的数据修复方法
本发明从降低数据修复时间的角度出发,提出路由器上对数据修复进行加速的实现方案。注意到在图3中,由于存在共享链路的多个数据流,相关的路由器需要转发多个数据流,但实际上这些数据流在newcomer仍然需要进行处理方能得到一个新的编码块,因此本发明利用路由器(本发明中称为支持路由器,supporting router,SR)上剩余的编码能力,将这些处理转移到路由器上完成,使得路由器即使收到多个数据流也只发出一个数据流,从而消除了共享链路的多个数据流,大大增大了数据修复时的数据传输速率。
本发明方法可以有两种方案.
支持路由器是具有额外编码和存储能力的路由器,可以支持数据修复过程,在网络中可以替换普通路由器。如图5,假设网络中有一个路由器,provider 1和provider 2分别通过支持路由器和newcomer连接。数据修复的第一种方案的具体步骤为:
1.newcomer向两个provider分别发送一个notification消息。notification消息经过支持路由器时,支持路由器进行转发。支持路由器保存经过的所有notification消息的目的IP地址。
2.provider收到notification消息后,回复一个ack消息(包含自身的IP地址)。
3.ack消息经过支持路由器时,路由器在收到来自所有保存的IP地址的ack消息后,发送一个新的ack消息(包含路由器保存的所有IP地址)到newcomer。
4.newcomer收到包含所有provider的IP地址的ack消息(数量取决于网络拓扑)后,向所有provider发送re-ack消息。
5.provider收到re-ack消息后,向newcomer传输自己保存的编码块。
6.当数据经过支持路由器时,支持路由器对收到的数据进行缓存,直到来自不同provider(第1步中保存了这些provider的地址)的多个数据块的对应位置数据都收到后,对其编码进行转发。如图5所示,支持路由器保存了provider 1和provider 2的地址,provider1和provider 2向newcomer传输的数据块共同经过支持路由器,支持路由器在收到两个编码块对应位置的数据后,对他们进行编码后转发到newcomer。
第二种方案的具体步骤为:
1.newcomer向provider 1分别发送一个notification消息。provider 1收到notification消息后,回复一个ack消息(包含自身的IP地址)。ack消息经过支持路由器时,支持路由器保存provider地址。
2.newcomer向provider 2分别发送一个notification消息,其余同第1步。如此重复直到所有provider都收到notification并回复ack消息。
3.newcomer收到所有provider的ack消息后,向所有provider发送re-ack消息。
4.provider收到re-ack消息后,向newcomer传输自己保存的编码块。
5.当数据经过支持路由器时,支持路由器对收到的数据进行缓存,直到来自不同provider(第1步中保存了这些provider的地址)的多个数据块的对应位置数据都收到后,对其编码进行转发。如图5所示,支持路由器保存了provider 1和provider 2的地址,provider1和provider 2向newcomer传输的数据块共同经过支持路由器,支持路由器在收到两个编码块对应位置的数据后,对他们进行编码后转发到newcomer。
本发明技术方案带来的有益效果:
通过引入支持路由器以及相关协议,解决了在数据修复过程中的多个数据流可能共享同一物理链路的问题,从而提高了数据修复过程中的传输速度,降低了修复时间,提高了分布式存储系统中数据的可靠性。
附图说明
图1是基于副本的数据修复。在网络中,源文件被保存为3个副本保存于3个存储节点上,当其中一个丢失后,newcomer将剩下的两个作为provider,并从2个provider并行地接受数据。
图2是基于编码的数据修复。4个存储节点分别存储了源文件的一个编码块,并使得其中任意3个存储节点都可以恢复源文件。当图中的一个存储节点发生数据失效后,在数据修复中,newcomer从剩余的存储节点上接受数据,恢复源文件后重新生成一个新的编码块。
图3是一次包含3个provider的数据修复过程。注意到有两条物理链路上存在共享数据流,这将导致实际修复时间较理论上的端到端传输时间延长2倍~3倍。
图4是基于路由器加速的数据修复。图中蓝色的路由器表示具有编码能力的supporting router(SR),SR对收到的从provider发出的数据进行编码后再发送给newcomer,而非直接转发。
图5是包含支持路由器的数据修复流程1。
图6是包含支持路由器的数据修复流程2。
具体实施方式
本发明具体实现的系统主要由两大部分:PC部分和支持路由器(supporting router,SR)部分。从功能上来说PC部分又分为server、newcomer、provider三部分。
Server主要是负责整个系统的组织管理工作,具体包括newcomer、provider节点的选择;节点丢失与否的检测,如果检测到某个节点丢失则需要选择系统中一个节点作为newcomer,并和其他所选择的provider节点一起启动文件修复工作。
Newcomer主要是接收从其他provider节点传过来的文件数据,经过一定规则编码之后保存下来,此保存的文件即为要修复的文件。此外还需在数据修复准备阶段与各provider进行notification和ack信息的交互。
Provider主要是根据server的指令向newcomer传输已有的某个文件,用于newcomer的文件修复处理。
支持路由器主要是在数据修复准备阶段需要接受来自newcomer、provider交互的notification和ack控制信息,用于识别来自哪些IP的数据需要进行编码;在数据修复过程中,根据控制信息将对应的源IP发送过来的数据进行编码再转发出去。
在系统开始数据修复工作前的背景如下:源文件在被存储到存储节点前进行编码。整个文件被分为k块,编码后可得到n个编码块,n个编码块中的任意k块即可恢复源文件。每个存储节点中分别存储一个编码块。修复时newcomer需从至少k个provider下载编码块,并由newcomer对收到的编码块重新编码得到一个新的编码块。实施过程中我们设定的k=2,n=3。
针对方案一中一次数据修复过程的详细过程如下:
第一步:server检测到某个节点丢失,在系统已有节点中选择一个newcomer,再根据数据修复的规则选择k个provider。
第二步:server向newcomer发送所有已选择的provider的IP地址;newcomer向所有provider分别发送一个notification消息。
第三步:notification消息经过支持路由器时,支持路由器进行转发。支持路由器保存经过的所有notification消息的目的IP地址。
第四步:provider收到notification消息后,回复一个ack消息(包含自身的IP地址)。
第五步:ack消息经过支持路由器时,路由器在收到来自所有保存的IP地址的ack消息后,发送一个新的ack消息(包含路由器保存的所有IP地址)到newcomer。
第六步:newcomer收到包含所有provider的IP地址的ack消息(数量取决于网络拓扑)后,向所有provider发送re-ack消息。
第七步:provider收到re-ack消息后,向newcomer传输自己保存的编码块。
第八步:当数据经过支持路由器时,支持路由器对收到的数据进行缓存,直到来自不同provider(第三步中保存了这些provider的地址)的多个数据块的对应位置数据都收到后,对其编码进行转发。
第九步:newcomer接收到数据并保存下来,此为要修复的文件。
从系统实际的运行结果来看,该方案增大了数据修复时的数据传输速率,同时减少了数据修复时占用的网络带宽资源,降低了修复时间,在实际应用中具有很强的实用价值。
Claims (2)
1.分布式存储系统中基于路由器加速的数据修复方法,其特征在于利用路由器上剩余的编码能力,将数据处理转移到路由器上完成,使得路由器即使收到多个数据流也只发出一个数据流,从而消除共享链路的多个数据流,以增大数据修复时的数据传输速率;称该路由器为支持路由器,记为SR。
2.如权利要求1所述的分布式存储系统中基于路由器加速的数据修复方法,其特征在于采用下述两种方案之一种:假设网络中有一个路由器,provider 1和provider 2分别通过支持路由器和newcomer连接;第一种方案的具体步骤为:
步骤1:newcomer向两个provider分别发送一个notification消息;notification消息经过支持路由器时,支持路由器进行转发,支持路由器保存经过的所有notification消息的目的IP地址;
步骤2.:provider收到notification消息后,回复一个ack消息,ack消息包含自身的IP地址;
步骤3:ack消息经过支持路由器时,路由器在收到来自所有保存的IP地址的ack消息后,发送一个新的ack消息到newcomer;该新的ack消息包含路由器保存的所有IP地址;
步骤4:newcomer收到包含所有provider的IP地址的ack消息后,向所有provider发送re-ack消息;
步骤5:provider收到re-ack消息后,向newcomer传输自己保存的编码块;
步骤6:当数据经过支持路由器时,支持路由器对收到的数据进行缓存,直到来自不同provider的多个数据块的对应位置数据都收到后,对其编码进行转发;
第二种方案的具体步骤为:
步骤1:newcomer向provider 1分别发送一个notification消息;provider 1收到notification消息后,回复一个ack消息,该ack消息包含自身的IP地址,ack消息经过支持路由器时,支持路由器保存provider地址;
步骤2:newcomer向provider 2分别发送一个notification消息,其余同第1步;如此重复直到所有provider都收到notification并回复ack消息;
步骤3:newcomer收到所有provider的ack消息后,向所有provider发送re-ack消息;
步骤4:provider收到re-ack消息后,向newcomer传输自己保存的编码块;
步骤5:当数据经过支持路由器时,支持路由器对收到的数据进行缓存,直到来自不同provider的多个数据块的对应位置数据都收到后,对其编码进行转发;
上述方案中,newcomer为未存储对应文件的存储节点,provide为向newcomer提供数据的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010186461A CN101860568A (zh) | 2010-05-27 | 2010-05-27 | 分布式存储系统中基于路由器加速的数据修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010186461A CN101860568A (zh) | 2010-05-27 | 2010-05-27 | 分布式存储系统中基于路由器加速的数据修复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101860568A true CN101860568A (zh) | 2010-10-13 |
Family
ID=42946222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010186461A Pending CN101860568A (zh) | 2010-05-27 | 2010-05-27 | 分布式存储系统中基于路由器加速的数据修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101860568A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010032263A1 (en) * | 2000-04-14 | 2001-10-18 | Ganesan Gopal | Archival database system for handling information and information transfers in a computer network |
CN1533534A (zh) * | 2002-05-14 | 2004-09-29 | ������������ʽ���� | 数据存储方法和系统、数据记录控制设备、数据记录命令设备、数据接收设备和信息处理终端 |
CN101692227A (zh) * | 2009-09-25 | 2010-04-07 | 中国人民解放军国防科学技术大学 | 大规模高可靠的归档存储系统构建方法 |
-
2010
- 2010-05-27 CN CN201010186461A patent/CN101860568A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010032263A1 (en) * | 2000-04-14 | 2001-10-18 | Ganesan Gopal | Archival database system for handling information and information transfers in a computer network |
CN1533534A (zh) * | 2002-05-14 | 2004-09-29 | ������������ʽ���� | 数据存储方法和系统、数据记录控制设备、数据记录命令设备、数据接收设备和信息处理终端 |
CN101692227A (zh) * | 2009-09-25 | 2010-04-07 | 中国人民解放军国防科学技术大学 | 大规模高可靠的归档存储系统构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8018844B2 (en) | Reliable message transfer over an unreliable network | |
CN103607304B (zh) | 一种基于纠删码的失效数据线形修复方法 | |
CN1697354B (zh) | 用组播和单播协议可靠传输数据的方法及接收数据的主机 | |
US8743881B2 (en) | Link data transmission method, node and system | |
CN110661702B (zh) | 一种链路备份的方法、装置及计算机可读存储介质 | |
CN101802797A (zh) | 生成和传达源标识信息以实现可靠的通信 | |
CN101436998A (zh) | 报文转发路径获取方法和报文转发装置 | |
CN104503801B (zh) | 软件升级指令分发方法、通信服务器及终端设备 | |
CN110190926B (zh) | 基于网络计算的纠删码更新方法及系统 | |
CN104506513A (zh) | 防火墙流表备份方法、防火墙及防火墙系统 | |
CN104038376A (zh) | 一种管理真实服务器的方法、装置及lvs集群系统 | |
CN105072194A (zh) | 一种分布式文件系统中的存储数据修复结构及修复方法 | |
CN101562556A (zh) | 一种降低网络编码代价的方法、装置及系统 | |
CN103944974A (zh) | 一种协议报文处理方法、控制器故障处理方法及相关设备 | |
CN114553799B (zh) | 基于可编程数据平面的组播转发方法、装置、设备及介质 | |
CN101510837B (zh) | 以太网桥设备、迁移聚合口地址的方法及装置 | |
CN102984009B (zh) | 一种基于P2P的VoIP系统容灾备份方法 | |
CN104980303A (zh) | 一种多级树型网络下的节点故障修复方法 | |
CN101695029A (zh) | 数据备份方法、主从倒换方法及通信系统以及相关设备 | |
CN102857436B (zh) | 一种基于irf网络的流量传输方法和设备 | |
CN101860568A (zh) | 分布式存储系统中基于路由器加速的数据修复方法 | |
CN110603798B (zh) | 一种提供具有高可用性的弹性一致性平台的系统和方法 | |
CN112445656B (zh) | 分布式存储系统中数据的修复方法及装置 | |
CN103166847A (zh) | 保证优雅重启的方法及设备 | |
Li et al. | Cooperative pipelined regeneration in distributed storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101013 |