一种分布式存储数据迁移方法和装置与流程

文档序号:23392100发布日期:2020-12-22 13:59阅读:109来源:国知局
一种分布式存储数据迁移方法和装置与流程

本发明涉及数据迁移领域,更具体地,特别是指一种分布式存储数据迁移方法和装置。



背景技术:

传统数据的迁移,通常得依赖迁出端和迁入端持续性的双向沟通以及中间节点对信息简单的存储与转发:首先迁出端的文件是以多个小数据包的形式进行传输的,一个文件被简单粗暴地切割成多个数据包大小的片段,迁出端对它们编码后将这些带有信息的封包经过中间节点,中间节点对需要转发传输的信息不进行任何处理到直接转发到接收端。

然而,这种传统方法均达不到网络组播传输的理论最大容量,且成功与否取决于接收端在收到每个封包时对其进行的评估,如果该封包可以被解码,则传送一个确认给迁出端;反之,丢弃毁坏的封包,并传送请求让迁出端再次发送该封包。例如,普遍使用的tcp/ip用重传机制来保证传输的可靠性。但是在很多情况下,tcp/ip协议并不适用,如点到多点传输,或在严重损坏的信道上进行传输(质量很差的无线或卫星链路)。反馈重传在传输距离太长或网络组播情况下出现“反馈风暴”的时候传输效率及可靠性(丢包)都很差。

针对现有技术中分布式存储数据迁移对信道要求严苛、对点到多点传输不友好、传输效率和可靠性低的问题,目前尚无有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种分布式存储数据迁移方法和装置,能够避免反馈重传、兼容低质量信道、适用于点到多点传输、进而提高传输效率和可靠性。

基于上述目的,本发明实施例的第一方面提供了一种分布式存储数据迁移方法,包括执行以下步骤:

响应于监控到触发分布式存储集群迁移事件而确定待迁移数据、迁入节点、和迁出节点;

基于迁入节点和迁出节点在分布式存储的网络拓扑中的位置进一步确定形成迁移路径的多个中间节点;

由迁入节点对待迁移数据依次执行包括霍夫曼编码的信源编码和包括喷泉码的信道编码,并以数据包形式发送到多个中间节点中的首中间节点;

由首中间节点对数据包执行网络编码并通过迁移路径发送到多个中间节点中的尾中间节点执行网络解码以还原数据包;

由尾中间节点将还原后的数据包发送到迁出节点并依次执行包括喷泉码的信道解码和包括霍夫曼编码的信源解码以还原待迁移数据。

在一些实施方式中,分布式存储集群迁移事件包括:存在任意节点发生故障、扩容、或缩容事件,和/或在所有节点均未发生故障、扩容、或缩容期间周期性触发的迁移扫描事件。

在一些实施方式中,确定待迁移数据、嵌入节点、和迁出节点包括:将发生故障事件的节点确定为迁出节点,将迁出节点中的所有数据确定为待迁移数据;或将发生缩容事件的节点确定为迁出节点,将迁出节点中的与缩容量相匹配的数据确定为待迁移数据;或将发生扩容事件的节点确定为迁入节点。

在一些实施方式中,周期性触发包括:使用基于分布式存储的业务总量而确定的周期而执行周期性触发、或基于预先设定的固定阈值周期而执行周期性触发。

在一些实施方式中,对待迁移数据依次执行包括霍夫曼编码的信源编码包括:对待迁移数据执行包括霍夫曼编码的信源编码以使待迁移数据从第一数据尺寸变化为小于第一数据尺寸的第二数据尺寸。

在一些实施方式中,对待迁移数据执行包括喷泉码的信道编码包括:

基于信号的保真程度测试或推断确定预期丢包率;

基于预期丢包率生成包含冗余信息的多个编码分组,其中多个编码分组中的待迁移数据信息量与预期丢包率之积大于待迁移数据的全部信息量。

在一些实施方式中,从首中间节点到尾中间节点之间的迁移路径使用不同于从迁出节点到首中间节点、和从尾中间节点到迁入节点的通信信道;

对数据包执行网络编码包括:对数据包执行网络编码以使数据包以适于在迁移路径的通信信道传输的方式来通过迁移路径。

基于上述目的,本发明实施例的第二方面提供了一种分布式存储数据迁移装置,包括:

处理器;和

存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:

响应于监控到触发分布式存储集群迁移事件而确定待迁移数据、迁入节点、和迁出节点;

基于迁入节点和迁出节点在分布式存储的网络拓扑中的位置进一步确定形成迁移路径的多个中间节点;

由迁入节点对待迁移数据依次执行包括霍夫曼编码的信源编码和包括喷泉码的信道编码,并以数据包形式发送到多个中间节点中的首中间节点;

由首中间节点对数据包执行网络编码并通过迁移路径发送到多个中间节点中的尾中间节点执行网络解码以还原数据包;

由尾中间节点将还原后的数据包发送到迁出节点并依次执行包括喷泉码的信道解码和包括霍夫曼编码的信源解码以还原待迁移数据。

在一些实施方式中,分布式存储集群迁移事件包括:存在任意节点发生故障、扩容、或缩容事件,和/或在所有节点均未发生故障、扩容、或缩容期间周期性触发的迁移扫描事件;

确定待迁移数据、嵌入节点、和迁出节点包括:将发生故障事件的节点确定为迁出节点,将迁出节点中的所有数据确定为待迁移数据;或将发生缩容事件的节点确定为迁出节点,将迁出节点中的与缩容量相匹配的数据确定为待迁移数据;或将发生扩容事件的节点确定为迁入节点。

在一些实施方式中,对待迁移数据执行包括喷泉码的信道编码包括:基于信号的保真程度测试或推断确定预期丢包率;基于预期丢包率生成包含冗余信息的多个编码分组,其中多个编码分组中的待迁移数据信息量与预期丢包率之积大于待迁移数据的全部信息量;

从首中间节点到尾中间节点之间的迁移路径使用不同于从迁出节点到首中间节点、和从尾中间节点到迁入节点的通信信道;

对数据包执行网络编码包括:对数据包执行网络编码以使数据包以适于在迁移路径的通信信道传输的方式来通过迁移路径。

本发明具有以下有益技术效果:本发明实施例提供的分布式存储数据迁移方法和装置,通过响应于监控到触发分布式存储集群迁移事件而确定待迁移数据、迁入节点、和迁出节点;基于迁入节点和迁出节点在分布式存储的网络拓扑中的位置进一步确定形成迁移路径的多个中间节点;由迁入节点对待迁移数据依次执行包括霍夫曼编码的信源编码和包括喷泉码的信道编码,并以数据包形式发送到多个中间节点中的首中间节点;由首中间节点对数据包执行网络编码并通过迁移路径发送到多个中间节点中的尾中间节点执行网络解码以还原数据包;由尾中间节点将还原后的数据包发送到迁出节点并依次执行包括喷泉码的信道解码和包括霍夫曼编码的信源解码以还原待迁移数据的技术方案,能够避免反馈重传、兼容低质量信道、适用于点到多点传输、进而提高传输效率和可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的分布式存储数据迁移方法的流程示意图;

图2为本发明提供的分布式存储数据迁移方法的详细流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

基于上述目的,本发明实施例的第一个方面,提出了一种避免反馈重传、兼容低质量信道、适用于点到多点传输的分布式存储数据迁移方法的一个实施例。图1示出的是本发明提供的分布式存储数据迁移方法的流程示意图。

所述的分布式存储数据迁移方法,如图1所示,包括执行以下步骤:

步骤s101:响应于监控到触发分布式存储集群迁移事件而确定待迁移数据、迁入节点、和迁出节点;

步骤s103:基于迁入节点和迁出节点在分布式存储的网络拓扑中的位置进一步确定形成迁移路径的多个中间节点;

步骤s105:由迁入节点对待迁移数据依次执行包括霍夫曼编码的信源编码和包括喷泉码的信道编码,并以数据包形式发送到多个中间节点中的首中间节点;

步骤s107:由首中间节点对数据包执行网络编码并通过迁移路径发送到多个中间节点中的尾中间节点执行网络解码以还原数据包;

步骤s109:由尾中间节点将还原后的数据包发送到迁出节点并依次执行包括喷泉码的信道解码和包括霍夫曼编码的信源解码以还原待迁移数据。

霍夫曼编码、喷泉码和网络编码为分布式存储系统的数据迁移提供了方便。霍夫曼编码是一种非常有效的数据压缩技术,根据待压缩的数据的特征,一般可压缩掉20%-90%,但霍夫曼码无错误保护功能,译码时,码串若无错就能正确译码;若码串有错应考虑增加编码,提高可靠性。而喷泉码是针对大规模网络数据分发和可靠传输而提出的一种新的信道编码方法,与传统的分组码不同,喷泉码可以按照某种概率分布独立地产生任意数量的码字。接收端不必关心具体的编码分组及分组顺序,只要接收到足够多的编码分组,就能实现正确的编码,从而提供系统的可靠性。网络的中间节点不仅仅只做存储转发功能,可以使用网络编码对收到的相关信息进行线性或非线性编码操作,经过处理后的编码数据再直接传输出去,中间起着编码信息的作用,中间减少传输复制过程,节省网络带宽资源消耗,大大提高了传输效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

在一些实施方式中,分布式存储集群迁移事件包括:存在任意节点发生故障、扩容、或缩容事件,和/或在所有节点均未发生故障、扩容、或缩容期间周期性触发的迁移扫描事件。这种主动监控和被动触发相结合的方式能更好地及时发现迁移扫描事件。

在一些实施方式中,确定待迁移数据、嵌入节点、和迁出节点包括:将发生故障事件的节点确定为迁出节点,将迁出节点中的所有数据确定为待迁移数据;或将发生缩容事件的节点确定为迁出节点,将迁出节点中的与缩容量相匹配的数据确定为待迁移数据;或将发生扩容事件的节点确定为迁入节点。进一步地,基于发现的迁移扫描事件而确定事件要件有助于快速处理迁移,提高效率。

在一些实施方式中,周期性触发包括:使用基于分布式存储的业务总量而确定的周期而执行周期性触发、或基于预先设定的固定阈值周期而执行周期性触发。周期可以根据实际环境需求来选择性的设置以进一步提高工作效果。

在一些实施方式中,对待迁移数据依次执行包括霍夫曼编码的信源编码包括:对待迁移数据执行包括霍夫曼编码的信源编码以使待迁移数据从第一数据尺寸变化为小于第一数据尺寸的第二数据尺寸。信源编码的数据压缩可以降低传输量进而提升效率。

在一些实施方式中,对待迁移数据执行包括喷泉码的信道编码包括:

基于信号的保真程度测试或推断确定预期丢包率;

基于预期丢包率生成包含冗余信息的多个编码分组,其中多个编码分组中的待迁移数据信息量与预期丢包率之积大于待迁移数据的全部信息量。

喷泉码可以按照特定概率分布独立地产生任意数量的码字,接收端不必关心具体的编码分组及分组顺序,只要接收到足够多的编码分组,就能实现正确的编码,从而提供系统的可靠性。因此需要保证产生足够的编码分组以获取传输全部信息量的期望。

在一些实施方式中,从首中间节点到尾中间节点之间的迁移路径使用不同于从迁出节点到首中间节点、和从尾中间节点到迁入节点的通信信道。对数据包执行网络编码包括:对数据包执行网络编码以使数据包以适于在迁移路径的通信信道传输的方式来通过迁移路径。根据路径的变化来选择性地调整信道编码可以进一步地提高传输效率。

为更清晰的说明本发明的具体实施过程,下面以具体实施例来进一步阐述本发明的具体实施方式。

图2所示出的是本发明的详细实施流程。本发明使用了数据迁出单元100和数据迁入单元200,数据迁出单元100用于对待迁移数据的分布式存储集群节点依次进行数据监听、通过霍夫曼编码对数据进行压缩、再次对迁移数据进行喷泉码编码和网络编码,将迁移数据打包成迁移数据包并发送到网络;数据迁入单元200用于分布式存储集群节点有迁移数据包迁入,则对迁移数据包依次进行数据监听、网络解码、喷泉码解码、霍夫曼解码,将迁移数据包恢复成原始数据。

数据迁出单元100执行以下步骤:

s1:以数据监控模块监控需要待迁移的数据及节点,该节点含迁出节点和迁入节点;

其中,s1-0:当数据监控模块,监控到分布式存储集群有节点故障、节点扩容或减容时,立即获取当前分布式存储集群待迁移数据及节点;否则,执行s1-1:当分布式存储集群有节点均正常、节点无扩容且减容时,按照一定周期监控当前分布式存储集群待迁移数据及节点。

s2:以霍夫曼编码模块根据数据监控模块获取的待迁移数据,对其进行基于霍夫曼编码的数据压缩;

s3:以喷泉码编码模块已经通过基于霍夫曼编码压缩的数据再次喷泉码编码;

在数据迁出单元100和数据迁入单元200之间的中间节点执行:

s4:网络编码模块,对已经基于霍夫曼编码压缩和喷泉码编码的数据再次网络编码以适应中间节点的信道传输;

数据迁入单元200执行以下步骤:

s5:以数据迁入监控模块用于待迁入数据的监听;

s6:以网络解码模块对迁入的数据进行网络译码;

s7:以喷泉码解码模块对已经迁入数据已经网络解码的数据进行喷泉码解码;

s8:以霍夫曼解码模块进一步对已经喷泉码解码的数据进行霍夫曼解码,恢复原始数据。

本发明将霍夫曼码、喷泉码和网络编码相结合,实现了虚拟分布式存储系统中集群节点的数据的迁出和迁入,通过霍夫曼编码压缩数减少数据的迁移量,通过喷泉码提高迁移数据的可靠性,通过网络编码大幅度提高整个网络的吞吐量。

从上述实施例可以看出,本发明实施例提供的分布式存储数据迁移方法,通过响应于监控到触发分布式存储集群迁移事件而确定待迁移数据、迁入节点、和迁出节点;基于迁入节点和迁出节点在分布式存储的网络拓扑中的位置进一步确定形成迁移路径的多个中间节点;由迁入节点对待迁移数据依次执行包括霍夫曼编码的信源编码和包括喷泉码的信道编码,并以数据包形式发送到多个中间节点中的首中间节点;由首中间节点对数据包执行网络编码并通过迁移路径发送到多个中间节点中的尾中间节点执行网络解码以还原数据包;由尾中间节点还原后的将数据包发送到迁出节点并依次执行包括喷泉码的信道解码和包括霍夫曼编码的信源解码以还原待迁移数据的技术方案,能够避免反馈重传、兼容低质量信道、适用于点到多点传输、进而提高传输效率和可靠性。

需要特别指出的是,上述分布式存储数据迁移方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于分布式存储数据迁移方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种避免反馈重传、兼容低质量信道、适用于点到多点传输的分布式存储数据迁移装置的一个实施例。所述的分布式存储数据迁移装置包括:

处理器;和

存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:

响应于监控到触发分布式存储集群迁移事件而确定待迁移数据、迁入节点、和迁出节点;

基于迁入节点和迁出节点在分布式存储的网络拓扑中的位置进一步确定形成迁移路径的多个中间节点;

由迁入节点对待迁移数据依次执行包括霍夫曼编码的信源编码和包括喷泉码的信道编码,并以数据包形式发送到多个中间节点中的首中间节点;

由首中间节点对数据包执行网络编码并通过迁移路径发送到多个中间节点中的尾中间节点执行网络解码以还原数据包;

由尾中间节点将还原后的数据包发送到迁出节点并依次执行包括喷泉码的信道解码和包括霍夫曼编码的信源解码以还原待迁移数据。

在一些实施方式中,分布式存储集群迁移事件包括:存在任意节点发生故障、扩容、或缩容事件,和/或在所有节点均未发生故障、扩容、或缩容期间周期性触发的迁移扫描事件;

确定待迁移数据、嵌入节点、和迁出节点包括:将发生故障事件的节点确定为迁出节点,将迁出节点中的所有数据确定为待迁移数据;或将发生缩容事件的节点确定为迁出节点,将迁出节点中的与缩容量相匹配的数据确定为待迁移数据;或将发生扩容事件的节点确定为迁入节点。

在一些实施方式中,对待迁移数据执行包括喷泉码的信道编码包括:基于信号的保真程度测试或推断确定预期丢包率;基于预期丢包率生成包含冗余信息的多个编码分组,其中多个编码分组中的待迁移数据信息量与预期丢包率之积大于待迁移数据的全部信息量;

从首中间节点到尾中间节点之间的迁移路径使用不同于从迁出节点到首中间节点、和从尾中间节点到迁入节点的通信信道。对数据包执行网络编码包括:对数据包执行网络编码以使数据包以适于在迁移路径的通信信道传输的方式来通过迁移路径。

从上述实施例可以看出,本发明实施例提供的分布式存储数据迁移装置,通过响应于监控到触发分布式存储集群迁移事件而确定待迁移数据、迁入节点、和迁出节点;基于迁入节点和迁出节点在分布式存储的网络拓扑中的位置进一步确定形成迁移路径的多个中间节点;由迁入节点对待迁移数据依次执行包括霍夫曼编码的信源编码和包括喷泉码的信道编码,并以数据包形式发送到多个中间节点中的首中间节点;由首中间节点对数据包执行网络编码并通过迁移路径发送到多个中间节点中的尾中间节点执行网络解码以还原数据包;由尾中间节点将还原后的数据包发送到迁出节点并依次执行包括喷泉码的信道解码和包括霍夫曼编码的信源解码以还原待迁移数据的技术方案,能够避免反馈重传、兼容低质量信道、适用于点到多点传输、进而提高传输效率和可靠性。

需要特别指出的是,上述分布式存储数据迁移装置的实施例采用了所述分布式存储数据迁移方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述分布式存储数据迁移方法的其他实施例中。当然,由于所述分布式存储数据迁移方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述分布式存储数据迁移装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1