数据传输方法及系统、控制装置与节点装置制造方法

文档序号:7771144阅读:106来源:国知局
数据传输方法及系统、控制装置与节点装置制造方法
【专利摘要】本发明公开了一种数据传输方法及系统、控制装置与节点装置。所述方法包括:控制装置确定本次数据传输的源节点;从用于接收数据的节点列表中选择未被选择过用于接收数据的节点作为本次数据传输的目的节点,本次数据传输的目的节点作为传输链中本次数据传输的源节点的下一个最近邻节点;节点列表中包括至少一个用于接收数据的节点的标识和各节点的地址;向本次数据传输的源节点下发数据传输任务,数据传输任务包括本次数据传输的目的节点和本次数据传输的目的节点的地址,以供本次数据传输的源节点根据本次数据传输的目的节点的地址向本次数据传输的目的节点传输数据。本发明的技术方案,能够保证数据的传输速度和传输效率。
【专利说明】数据传输方法及系统、控制装置与节点装置

【技术领域】
[0001] 本发明涉及计算机【技术领域】,特别涉及一种数据传输方法及系统、控制装置与节 点装置。

【背景技术】
[0002] 随着通信技术的发展,人们之间的交流越来越依赖于数据通信,而这样就使得存 放数据的主机之间需要进行大量的数据传输与数据交换。为此,数据的传输技术受到了广 泛的关注,也成为通信技术发展的重要标志。
[0003] 若要完成主机之间的数据传输,通常有两种实现方式。第一种方式为Rsync (Remote sync,远程同步)方式,Rsync可以实现在主机之间点对点的数据传输。第二种方 式为端口映射(VIDC)方式,VIDC的实现方式为:源节点首先将数据传输给一个节点,当该 节点接收到所有的数据后,将该已接收完毕的节点再作为源节点,并与源节点以及在此之 前接收完毕的节点一起对其他节点进行数据传输。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005] 第一种方式下,尽管实现了在主机之间可以直接进行点对点的数据传输,但对于 多点传输来说,则只能借助于手工操作向各个节点逐次进行数据传输,而无法对其中的节 点进行有效控制,从而使得数据的传输速度较慢,数据传输的效率很低。第二种方式与第一 种方式相比,虽然明显提高了数据传输的效率,但是每个节点的传输数据所需要消耗的网 卡流量、CPU使用不均匀,而且当传输文件非常大的时候,例如虚拟主机的生成就是依赖于 镜像文件的快速复制,且镜像文件非常大,进行一次传输所需要的时间也会很长,数据传输 的效率仍然很低。


【发明内容】

[0006] 为了解决现有技术的问题,本发明实施例提供了一种数据传输方法及系统、控制 装置与节点装置。所述技术方案如下:
[0007] -方面,提供了一种数据传输方法,所述方法包括:
[0008] 控制装置确定本次数据传输的源节点;
[0009] 所述控制装置从用于接收所述数据的节点列表中选择未被选择过用于接收所述 数据的节点作为本次数据传输的目的节点,所述本次数据传输的目的节点作为传输链中所 述本次数据传输的源节点的下一个最近邻节点;所述节点列表中包括至少一个用于接收数 据的节点的标识和各所述节点的地址;
[0010] 所述控制装置向所述本次数据传输的源节点下发数据传输任务,所述数据传输任 务包括所述本次数据传输的目的节点和所述本次数据传输的目的节点的地址,以供所述本 次数据传输的源节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的目 的节点传输所述数据。
[0011] 另一方面,再提供了一种数据传输方法,所述方法包括:
[0012] 节点作为本次数据传输的源节点接收控制装置下发的数据传输任务,所述数据传 输任务包括所述本次数据传输的目的节点和所述本次数据传输的目的节点的地址;
[0013] 所述节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的目的 节点传输所述数据。
[0014] 再一方面,再提供一种控制装置,所述装置包括:
[0015] 确定模块,用于确定本次数据传输的源节点;
[0016] 选择模块,用于从用于接收所述数据的节点列表中选择未被选择过用于接收所述 数据的节点作为本次数据传输的目的节点,所述本次数据传输的目的节点作为传输链中所 述本次数据传输的源节点的下一个最近邻节点;所述节点列表中包括至少一个用于接收数 据的节点的标识和各所述节点的地址;
[0017] 发送模块,用于向所述本次数据传输的源节点下发数据传输任务,所述数据传输 任务包括所述本次数据传输的目的节点和所述本次数据传输的目的节点的地址,以供所述 本次数据传输的源节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的 目的节点传输所述数据。
[0018] 又另一方面,提供一种节点装置,所述装置包括:
[0019] 接收模块,用于在所述节点装置作为本次数据传输的源节点接收控制装置下发的 数据传输任务,所述数据传输任务包括所述本次数据传输的目的节点和所述本次数据传输 的目的节点的地址;
[0020] 发送模块,用于根据所述本次数据传输的目的节点的地址向所述本次数据传输的 目的节点传输所述数据。
[0021] 再另一方面,还提供一种数据传输系统,所述系统包括控制装置和至少一个节点 装置;所述控制装置采用如上所述的控制装置,所述节点装置采用如上所述的节点装置。
[0022] 本发明实施例提供的技术方案带来的有益效果是:
[0023] 本发明实施例通过采用上述技术方案,实现一种链式分发数据的方案,可以把数 据快速的分发到节点列表中的所有节点上,正常情况下每个节点的热度相同,即数据只接 收一次、分发一次,节点的热度相同,即每个节点的传输数据所需要消耗的网卡流量、CPU使 用均匀,能够有效地保证数据的传输速度和传输效率。而且本发明实施例的技术方案,与现 有技术的第一种方式相比,不需要借助于手工操作来传输数据,控制装置可以对节点进行 有效控制,保证了数据的传输速度和传输效率。与现有技术的第二种方式相比,能够保证每 个节点的热度尽可能的均匀,即使得每个节点的传输数据所需要消耗的网卡流量、CPU使用 均匀,这样当传输文件非常大的时候,也能够保证数据的传输速度和传输效率。例如而虚拟 主机的生成就是依赖于镜像文件的快速复制的,因此本发明实施例的技术方案可以适用在 云平台的设计和实现中,解决了虚拟主机的上线、扩容、迁移等问题,节省了大量的时间,为 用户提供了更好的体验。

【专利附图】

【附图说明】
[0024] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0025] 图1为本发明一实施例提供的数据传输方法的流程图。
[0026] 图2为本发明另一实施例提供的数据传输方法的流程图。
[0027] 图3为本发明再一实施例提供的数据传输方法的流程图。
[0028] 图4为本发明实施例提供的数据处理的一种示例图。
[0029] 图5为图4的数据处理中各节点的状态变迁图。
[0030] 图6为本发明实施例提供的数据处理的另一种示例图。
[0031] 图7为本发明实施例提供的数据处理的又一种示例图。
[0032] 图8为本发明一实施例提供的控制装置的结构示意图。
[0033] 图9为本发明另一实施例提供的控制装置的结构示意图。
[0034] 图10为本发明一实施例提供的节点装置的结构示意图。
[0035] 图11为本发明另一实施例提供的节点装置的结构示意图。
[0036] 图12为本发明实施例提供的数据传输系统的结构示意图。
[0037] 图13是本发明实施例提供的一种终端设备结构示意图。

【具体实施方式】
[0038] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0039] 图1为本发明一实施例提供的数据传输方法的流程图。如图1所示,本实施例的 数据传输方法,具体可以包括如下步骤:
[0040] 100、控制装置确定本次数据传输的源节点;
[0041] 101、控制装置从用于接收数据的节点列表中选择未被选择过用于接收数据的节 点作为本次数据传输的目的节点;
[0042] 本实施例中本次数据传输的目的节点作为传输链中本次数据传输的源节点的下 一个最近邻节点;节点列表中包括至少一个用于接收数据的节点的标识(如节点的编号) 和各节点的地址(如各节点的IP地址)。
[0043] 在本实施例的传输链中,数据从前向后传输,在每两个相邻的节点中,在数据传输 时,前一个节点为一次数据传输的源节点,后一个节点为该次数据传输的目的节点。
[0044] 102、控制装置向本次数据传输的源节点下发数据传输任务,数据传输任务包括本 次数据传输的目的节点和本次数据传输的目的节点的地址,以供本次数据传输的源节点根 据本次数据传输的目的节点的地址向本次数据传输的目的节点传输数据。
[0045] 例如本次数据传输的源节点可以根据本次数据传输的目的节点的IP地址向本次 数据传输的目的节点传输数据。
[0046] 可选地,其中数据传输任务还可以包括其他参数,如数据在本次数据传输的源节 点中的路径,数据在本次数据传输的目的节点中要存储的路径,以便于本次数据传输的源 节点从本次数据传输的源节点中的路径下读取该数据,并向本次数据传输的目的节点传输 该数据,以供本次数据传输的目的节点将该数据存储在本次数据传输的源节点中的路径 下。
[0047] 本实施例通过采用上述技术方案,实现一种链式分发数据的方案,可以把数据快 速的分发到节点列表中的所有节点上,正常情况下每个节点的热度相同,即数据只接收一 次、分发一次,节点的热度相同,即每个节点的传输数据所需要消耗的网卡流量、CPU使用均 匀,能够有效地保证数据的传输速度和传输效率。而且本实施例的技术方案,与现有技术的 第一种方式相比,不需要借助于手工操作来传输数据,控制装置可以对节点进行有效控制, 保证了数据的传输速度和传输效率。与现有技术的第二种方式相比,能够保证每个节点的 热度尽可能的均匀,即使得每个节点的传输数据所需要消耗的网卡流量、CPU使用均匀,这 样当传输文件非常大的时候,也能够保证数据的传输速度和传输效率。例如而虚拟主机的 生成就是依赖于镜像文件的快速复制的,因此本实施例的技术方案可以适用在云平台的设 计和实现中,解决了虚拟主机的上线、扩容、迁移等问题,节省了大量的时间,为用户提供了 更好的体验。
[0048] 可选地,在上述实施例的技术方案的基础上,其中步骤100 "控制装置确定本次数 据传输的源节点"具体可以包括两种情况:
[0049] 第一种情况、当控制装置首次控制发送数据时,确定本次数据传输的源节点为数 据未被发送前存储数据的原始节点。
[0050] 第二种情况、当控制装置非首次控制发送数据时,将最近邻的上次数据传输的目 的节点作为本次数据传输的源节点。
[0051] 数据首次传输时,数据存储在原始节点中。当首次控制发送数据时,控制节点根据 原始节点的IP地址,向原始节点下发数据传输任务,原始节点接收数据传输任务,并根据 数据传输任务中首次数据传输的目的节点的IP地址,向首次数据传输的目的节点发送该 数据。首次传输数据完毕,从第二次传输数据开始,将上次数据传输的目的节点作为本次数 据传输的源节点,然后控制装置从节点列表中选择未被选择过的节点作为本次数据传输的 目的节点;由本次数据传输的源节点根据本次数据传输的目的节点的IP地址,向本次数据 传输的目的节点传输数据,依次类推,直到节点列表中所有节点都被选择过,此时正常情况 下,节点列表中的所有节点都接收到数据。
[0052] 进一步可选地,在上述实施例的技术方案的基础上,其中步骤"当控制装置非首次 控制发送数据时,将最近邻的上次数据传输的目的节点作为本次数据传输的源节点"之前, 还可以包括如下步骤:
[0053] ( 1)控制装置周期性地接收上次数据传输的目的节点上报的数据接收进度;
[0054] (2)当控制装置接收到数据接收进度为100%时,控制装置确定上次数据传输完 成。
[0055] 例如,可以设置每隔一定时间段,各节点向控制装置上报依次数据传输进度,例如 当节点接收数据时,可以为数据接收进度(具体可以为数据接收的百分比)。当节点发送数 据时,可以为数据发送进度(具体可以为数据发送的百分比)。具体地,各节点还可以每隔一 定时间段向控制装置上报发送数据的速率或者接收数据的速率。例如在上次数据传输过程 中,上次数据传输的目的节点周期性地向控制装置上报数据接收进度,如在数据传输过程 中,随着数据的传输,上次数据传输的目的节点周期性地上报的数据传输进度可以分别为 5%、30%、66%、90%和100%。当控制装置接收到上次数据传输目的节点上报的数据传输进度 为100%时,确定上次数据传输完成。
[0056] 进一步可选地,在上实施例的技术方案的基础上,"控制装置向本次数据传输的源 节点发送下发数据传输任务"之后,还可以包括如下步骤:
[0057] (a)控制装置确定在预设阈值的周期内未接收到本次数据传输的目的节点上报的 数据接收进度;
[0058] 例如预设阈值的周期可以为6个周期。实际应用中,具体可以根据每个周期的时 间长短,确定预设阈值的周期的数目。
[0059] (b)控制装置确定本次数据传输的目的节点故障;
[0060] (c)控制装置从原始节点和节点列表中已经接收到数据的节点中选择子节点最少 的节点作为本次数据传输的源节点;
[0061] (d)控制装置重新从用于接收数据的节点列表中选择未被选择过用于接收数据的 节点作为本次数据传输的目的节点;
[0062] (e)控制装置向本次数据传输的源节点下发数据传输任务,以供本次数据传输的 源节点根据本次数据传输的目的节点的地址向本次数据传输的目的节点传输数据。
[0063] 需要说明的是,上述技术方案中也可以没有步骤(c)。此时,当本次数据传输的目 的节点故障时,可以由本次数据传输的源节点向重新选择的本次数据传输的目的节点传输 数据。但是这样的话,本次数据传输的源节点可能要多次作为源节点来传输数据,这样本次 数据传输的源节点可能需要消耗的网卡流量更多、(PU使用也更多,造成各节点需要消耗的 网卡流量更多、CPU使用不均匀。因此,本实施例中增加步骤(c),控制装置从原始节点和节 点列表中已经接收到数据的节点中选择子节点最少的节点作为本次数据传输的源节点,然 后由重新选择的本次数据传输的源节点向重新选择的本次数据传输的目的节点传输数据。 从原始节点和节点列表中已经接收到数据的节点中选择子节点最少的节点作为本次数据 传输的源节点,可以尽量保证各节点需要消耗的网卡流量更多、CPU使用均匀,保证数据传 输速度和数据传输效率。
[0064] 进一步可选地,在上实施例的技术方案的基础上,"控制装置向本次数据传输的源 节点发送下发数据传输任务"之后,还可以包括:控制装置确定节点列表中除故障节点之 夕卜,无未接收过数据的节点,确定数据传输完成。
[0065] 上述实施例的所有可选技术方案,可以采用可以结合的方式任意组合,形成本发 明的可选实施例,在此不再一一举例。
[0066] 上述实施例的技术方案,可以把数据快速的分发到节点列表中的所有节点上,正 常情况下每个节点的热度相同,即数据只接收一次、分发一次,节点的热度相同,即每个节 点的传输数据所需要消耗的网卡流量、(PU使用均匀,能够有效地保证数据的传输速度和传 输效率。而且上述实施例的技术方案,与现有技术的第一种方式相比,不需要借助于手工操 作来传输数据,控制装置可以对节点进行有效控制,保证了数据的传输速度和传输效率。与 现有技术的第二种方式相比,能够保证每个节点的热度尽可能的均匀,即使得每个节点的 传输数据所需要消耗的网卡流量、CPU使用均匀,这样当传输文件非常大的时候,也能够保 证数据的传输速度和传输效率。例如而虚拟主机的生成就是依赖于镜像文件的快速复制 的,因此上述实施例的技术方案可以适用在云平台的设计和实现中,解决了虚拟主机的上 线、扩容、迁移等问题,节省了大量的时间,为用户提供了更好的体验。
[0067] 图2为本发明另一实施例提供的数据传输方法的流程图。如图2所示,本实施例的 数据传输方法,在上述图1及可选实施例的技术方案的基础上,本实施例的数据传输方法, 具体可以包括如下步骤:
[0068] 200、控制装置获取待发送的数据所在的原始节点的路径、原始节点的IP地址;执 行步骤201 ;
[0069] 201、控制装置从节点列表中获取一个节点,作为首次数据传输的目的节点,并获 取首次数据传输的目的节点的IP地址;执行步骤202 ;
[0070] 本实施例的节点列表时用于接收该数据的所有节点的集合,该节点列表中包括至 少一个节点的标识,以及每一个节点的IP地址。
[0071] 202、控制装置根据原始节点的IP地址,向该原始节点下发数据传输任务,以供原 始节点向首次数据传输的目的节点发送该数据;执行步骤203 ;
[0072] 该数据传输任务中包括首次数据传输的目的节点的IP地址和首次数据传输的目 的节点中存储该数据的路径。可选地,该数据传输任务中可以不包括首次数据传输的目的 节点中存储该数据的路径,此时由首次数据传输的目的节点去确定存储该数据的路径。
[0073] 203、控制装置周期性地接收首次数据传输的目的节点上报的数据接收进度;执行 步骤204 ;
[0074] 例如还可以接收首次数据传输的目的节点上报的数据传输速度等等。
[0075] 204、当控制装置接收到数据接收进度为100%时,控制装置确定首次数据传输完 成;执行步骤205 ;
[0076] 205、开始新一轮的数据传输,控制装置将上次数据传输的目的节点作为本次数据 传输的源节点;执行步骤206 ;
[0077] 206、控制装置判断节点列表中是否还有未选择过的节点,当有的时候,执行步骤 207 ;否则当没有的时候,数据传输完毕。
[0078] 当数据传输完毕,所有节点退出数据传输。本实施例中节点列表中的将诶点被选 择即表示向该节点发送过数据。
[0079] 207、控制装置从节点列表中选择未被选择过用于接收数据的节点作为本次数据 传输的目的节点;执行步骤208 ;
[0080] 208、控制装置根据本次数据传输的源节点的IP地址,向本次数据传输的源节点 下发数据传输任务;执行步骤209 ;
[0081] 该数据传输任务包括本次数据传输的目的节点的IP地址、该数据在本次数据传 输的源节点的存储路径和该数据在本次数据传输的目的节点的存储路径,以供本次数据传 输的源节点从本次数据传输的源节点的存储路径下获取该数据,并向本次数据传输的目的 节点发送该数据,以供本次数据传输的目的节点将该数据存储在本次数据传输的目的节点 的存储路径下。可选地,该数据传输任务中可以不包括该数据在本次数据传输的目的节点 的存储路径,而由本次数据传输的目的节点来确定存储该数据的路径。
[0082] 209、控制装置判断是否接收到本次数据传输的目的节点上报的数据接收进度;若 是的时候,执行步骤210 ;否则执行步骤211 ;
[0083] 本次数据传输的目的节点向控制装置上报数据处理进度是周期性地上报的。
[0084] 210、控制装置判断并确定接收到数据接收进度为100%时,控制装置确定本次数 据传输完成;执行步骤205 ;
[0085] 确定在预设阈值的周期内未接收到本次数据传输的目的节点上报的数据接收进 度;
[0086] 211、当控制装置在预设阈值的周期内均未接收到本次数据传输的目的节点上报 的数据接收进度,控制装置确定本次数据传输的目的节点故障;执行步骤212 ;
[0087] 此时控制装置需要及时调整数据传输链路。
[0088] 212、控制装置从原始节点和节点列表中已经接收到数据的节点中选择子节点最 少的节点作为本次数据传输的源节点;执行步骤213 ;
[0089] 213、控制装置重新从节点列表中选择未被选择过用于接收数据的节点作为本次 数据传输的目的节点;执行步骤207 ;
[0090] 本实施例通过采用上述技术方案,实现一种链式分发数据的方案,可以把数据快 速的分发到节点列表中的所有节点上,正常情况下每个节点的热度相同,即数据只接收一 次、分发一次,节点的热度相同,即每个节点的传输数据所需要消耗的网卡流量、CPU使用均 匀,能够有效地保证数据的传输速度和传输效率。而且本实施例的技术方案,与现有技术的 第一种方式相比,不需要借助于手工操作来传输数据,控制装置可以对节点进行有效控制, 保证了数据的传输速度和传输效率。与现有技术的第二种方式相比,能够保证每个节点的 热度尽可能的均匀,即使得每个节点的传输数据所需要消耗的网卡流量、CPU使用均匀,这 样当传输文件非常大的时候,也能够保证数据的传输速度和传输效率。例如而虚拟主机的 生成就是依赖于镜像文件的快速复制的,因此本实施例的技术方案可以适用在云平台的设 计和实现中,解决了虚拟主机的上线、扩容、迁移等问题,节省了大量的时间,为用户提供了 更好的体验。
[0091] 图3为本发明再一实施例提供的数据传输方法的流程图。如图3所示,本实施例 的数据处理方法,具体可以包括如下步骤:
[0092] 300、节点作为本次数据传输的源节点接收控制装置下发的数据传输任务;
[0093] 其中该数据传输任务包括本次数据传输的目的节点和本次数据传输的目的节点 的地址,如该地址可以为IP地址。
[0094] 301、节点根据本次数据传输的目的节点的地址,向本次数据传输的目的节点传输 数据。
[0095] 本实施例的技术方案与上述图1所示实施例的技术方案的区别仅在于上述实施 例是在控制装置侧描述本发明的技术方案,本实施例在节点侧描述本发明的技术方案,详 细可以参考上述相关实施例的记载,在此不再赘述。
[0096] 本实施例通过采用上述技术方案,实现一种链式分发数据的方案,可以把数据快 速的分发到节点列表中的所有节点上,正常情况下每个节点的热度相同,即数据只接收一 次、分发一次,节点的热度相同,即每个节点的传输数据所需要消耗的网卡流量、CPU使用均 匀,能够有效地保证数据的传输速度和传输效率。而且本实施例的技术方案,与现有技术的 第一种方式相比,不需要借助于手工操作来传输数据,控制装置可以对节点进行有效控制, 保证了数据的传输速度和传输效率。与现有技术的第二种方式相比,能够保证每个节点的 热度尽可能的均匀,即使得每个节点的传输数据所需要消耗的网卡流量、CPU使用均匀,这 样当传输文件非常大的时候,也能够保证数据的传输速度和传输效率。例如而虚拟主机的 生成就是依赖于镜像文件的快速复制的,因此本实施例的技术方案可以适用在云平台的设 计和实现中,解决了虚拟主机的上线、扩容、迁移等问题,节省了大量的时间,为用户提供了 更好的体验。
[0097] 可选地,在上述图3所示实施例的技术方案的基础上,步骤301 "节点根据本次数 据传输的目的节点的地址向本次数据传输的目的节点传输数据"之后,还可以包括:节点周 期性地向控制装置上报数据发送进度,以供控制装置根据数据发送进度确定本次数据传输 完成。
[0098] 可选地,在上述图3所示实施例的技术方案的基础上,步骤300 "节点作为本次数 据传输的源节点接收控制装置下发的数据传输任务"之前,还可以包括:节点作为上次数据 传输的目的节点接收上次数据传输的源节点发送的数据。
[0099] 进一步可选地,在上述实施例的步骤"节点作为上次数据传输的目的节点接收上 次数据传输的源节点发送的数据"之后,还可以包括:节点作为上次数据传输的目的节点向 控制装置上报数据接收进度,以供控制装置根据数据接收进度确定上次数据传输完成。
[0100] 进一步可选地,在上述实施例的技术方案的基础上,上述实施例的数据传输方法, 还可以包括:当上次数据传输完成时,节点对数据的正确性进行校验,并确定数据正确。
[0101] 上述实施例的所有可选技术方案,可以采用可以结合的方式任意组合,形成本发 明的可选实施例,在此不再一一举例。
[0102] 上述实施例的技术方案与上述图1及其可选实施例和图2所示实施例的技术方案 的区别仅在于上述图1及其可选实施例和图2所示实施例是在控制装置侧描述本发明的技 术方案,本实施例在节点侧描述本发明的技术方案,详细可以参考上述相关实施例的记载, 在此不再赘述。
[0103] 上述实施例的技术方案,可以把数据快速的分发到节点列表中的所有节点上,正 常情况下每个节点的热度相同,即数据只接收一次、分发一次,节点的热度相同,即每个节 点的传输数据所需要消耗的网卡流量、(PU使用均匀,能够有效地保证数据的传输速度和传 输效率。而且上述实施例的技术方案,与现有技术的第一种方式相比,不需要借助于手工操 作来传输数据,控制装置可以对节点进行有效控制,保证了数据的传输速度和传输效率。与 现有技术的第二种方式相比,能够保证每个节点的热度尽可能的均匀,即使得每个节点的 传输数据所需要消耗的网卡流量、CPU使用均匀,这样当传输文件非常大的时候,也能够保 证数据的传输速度和传输效率。例如而虚拟主机的生成就是依赖于镜像文件的快速复制 的,因此上述实施例的技术方案可以适用在云平台的设计和实现中,解决了虚拟主机的上 线、扩容、迁移等问题,节省了大量的时间,为用户提供了更好的体验。
[0104] 图4为本发明实施例提供的数据处理的一种示例图。图5为图4的数据处理中各 节点的状态变迁图。图6为本发明实施例提供的数据处理的另一种示例图。图7为本发明 实施例提供的数据处理的又一种示例图。如图4-图7所示,以五个节点包括一个源点和四 个待分发节点、控制装置为Controller为例描述本发明的技术方案。如图4、图6和图7所 示,每一行中,第1个节点为源点、第2个节点、第3个节点、第4个节点和第5个节点分别 为待分发节点,每个节点上的用于传输数据的模块可以称之为传输单元(Peer)。
[0105] 每个节点上的传输单元Peer实现如下功能:
[0106] 1)接收Controller下发的数据传输任务,向目的节点发送数据;
[0107] 2)接收其他节点Peer发送过来的数据,写入本地文件;并对数据做正确性校验;
[0108] 3)定时与目的节点Peer同步任务进度,并对数据做重发,保证目的节点接收完 整、正确;
[0109] 4)定时上报给Controller本节点的任务发送、接收速率、百分比。
[0110] 控制装置Controller实现如下功能:
[0111] 1)接收用户通过工具请求的数据传输任务,获取任务的文件路径、源节点、所有目 的节点;
[0112] 2)选定一个目的节点,并下发任务给源节点Peer,让其发送数据给选定的目的节 点;形成传输链;
[0113] 3)处理传输链上各节点Peer的上报;
[0114] 4)当传输链中的最后一个节点,接收到的数据量达到某个值后,以此为源节点,从 剩余的目的节点中选定一个节点,下发任务,把后选定的这个节点加入到当前传输链中;
[0115] 5)不断重复以上过程,直到所有节点都加入到传输链为止;
[0116] 6)节点传输异常时,及时进行切换,保证传输正常,且热度均衡;
[0117] 7)节点传输完毕后,依次退出;
[0118] 8)任务的源节点总是最后一个退出;
[0119] 9)所有节点的均退出后,Controller标记任务完成;清理任务。
[0120] 根据上述控制装置Controller和各节点的Peer的功能,在图4中第一行,源点和 第一行中第2个节点构成传输链,源点向第一行中第2个节点传输数据;当数据传输成功 时,如图4的第2行所示,第2行中的第3个节点加入传输链,第2行中第2个节点向第2 行中的第3个节点传输数据.。当数据传输成功时,如图4的第3行所示,第3行中的第4 个节点加入传输链,第3行中第3个节点向第3行中的第4个节点传输数据.。依次类推, 如图4中第6行所示,直到第5个节点加入传输链,第4个节点向第5个节点传输数据.。
[0121] 图4中是以所有节点传输均正常的情况。实际上,可能某个节点会异常,导致传输 链进行不下去,后面的节点因接收不到数据而处于"饥饿"状态,任务也无法结束。考虑到 各种情况,节点的状态及说明如表1所示,各状态的变迁如表1所示:

【权利要求】
1. 一种数据传输方法,其特征在于,所述方法包括: 控制装置确定本次数据传输的源节点; 所述控制装置从用于接收所述数据的节点列表中选择未被选择过用于接收所述数据 的节点作为本次数据传输的目的节点,所述本次数据传输的目的节点作为传输链中所述本 次数据传输的源节点的下一个最近邻节点;所述节点列表中包括至少一个用于接收数据的 节点的标识和各所述节点的地址; 所述控制装置向所述本次数据传输的源节点下发数据传输任务,所述数据传输任务包 括所述本次数据传输的目的节点和所述本次数据传输的目的节点的地址,W供所述本次数 据传输的源节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的目的节 点传输所述数据。
2. 根据权利要求1所述的方法,其特征在于,控制装置确定本次数据传输的源节点包 括: 当所述控制装置首次控制发送所述数据时,确定所述本次数据传输的源节点为所述数 据未被发送前存储所述数据的原始节点。
3. 根据权利要求1所述的方法,其特征在于,控制装置确定本次数据传输的源节点包 括: 当所述控制装置非首次控制发送所述数据时,将最近邻的上次数据传输的目的节点作 为所述本次数据传输的源节点。
4. 根据权利要求3所述的方法,其特征在于,当所述控制装置非首次控制发送所述数 据时,将最近邻的上次数据传输的目的节点作为所述本次数据传输的源节点之前,所述方 法还包括: 所述控制装置周期性地接收所述上次数据传输的目的节点上报的数据接收进度; 当控制装置接收到所述数据接收进度为100%时,所述控制装置确定上次数据传输完 成。
5. 根据权利要求2所述的方法,其特征在于,所述控制装置向所述本次数据传输的源 节点发送下发数据传输任务之后,所述方法还包括: 所述控制装置确定在预设阔值的周期内未接收到所述本次数据传输的目的节点上报 的数据接收进度; 所述控制装置确定所述本次数据传输的目的节点故障; 所述控制装置从所述原始节点和所述节点列表中已经接收到所述数据的节点中选择 子节点最少的节点作为所述本次数据传输的源节点; 所述控制装置重新从用于接收所述数据的节点列表中选择未被选择过用于接收所述 数据的节点作为本次数据传输的目的节点; 所述控制装置向所述本次数据传输的源节点下发数据传输任务,W供所述本次数据传 输的源节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的目的节点传 输所述数据。
6. 根据权利要求1-5任一所述的方法,其特征在于,所述控制装置向所述本次数据传 输的源节点发送下发数据传输任务之后,所述方法还包括: 所述控制装置确定所述节点列表中除故障节点之外,无未接收过所述数据的节点,确 定数据传输完成。
7. -种数据传输方法,其特征在于,所述方法包括如下步骤: 节点作为本次数据传输的源节点接收控制装置下发的数据传输任务,所述数据传输任 务包括所述本次数据传输的目的节点和所述本次数据传输的目的节点的地址; 所述节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的目的节点 传输所述数据。
8. 根据权利要求7所述的方法,其特征在于,所述节点根据所述本次数据传输的目的 节点的地址向所述本次数据传输的目的节点传输所述数据之后,所述方法还包括: 所述节点周期性地向所述控制装置上报数据发送进度,W供所述控制装置根据所述数 据发送进度确定本次数据传输完成。
9. 根据权利要求7所述的方法,其特征在于,所述节点作为本次数据传输的源节点接 收控制装置下发的数据传输任务之前,所述方法还包括: 所述节点作为上次数据传输的目的节点接收上次数据传输的源节点发送的所述数据。
10. 根据权利要求9所述的方法,其特征在于,所述节点作为上次数据传输的目的节点 接收上次数据传输的源节点发送的所述数据之后,所述方法还包括: 所述节点作为上次数据传输的目的节点向所述控制装置上报数据接收进度,W供所述 控制装置根据所述数据接收进度确定上次数据传输完成。
11. 根据权利要求10所述的方法,其特征在于,所述方法还包括: 当所述上次数据传输完成时,所述节点对所述数据的正确性进行校验,并确定所述数 据正确。
12. -种控制装置,其特征在于,所述装置包括: 确定模块,用于确定本次数据传输的源节点; 选择模块,用于从用于接收所述数据的节点列表中选择未被选择过用于接收所述数据 的节点作为本次数据传输的目的节点,所述本次数据传输的目的节点作为传输链中所述本 次数据传输的源节点的下一个最近邻节点;所述节点列表中包括至少一个用于接收数据的 节点的标识和各所述节点的地址; 发送模块,用于向所述本次数据传输的源节点下发数据传输任务,所述数据传输任务 包括所述本次数据传输的目的节点和所述本次数据传输的目的节点的地址,W供所述本次 数据传输的源节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的目的 节点传输所述数据。
13. 根据权利要求12所述的装置,其特征在于,所述确定模块,具体用于当所述控制装 置首次控制发送所述数据时,确定所述本次数据传输的源节点为所述数据未被发送前存储 所述数据的原始节点。
14. 根据权利要求12所述的装置,其特征在于,所述确定模块,具体用于当所述控制装 置非首次控制发送所述数据时,将最近邻的上次数据传输的目的节点作为所述本次数据传 输的源节点。
15. 根据权利要求14所述的装置,其特征在于,所述装置还包括接收模块: 所述接收模块,用于当所述控制装置非首次控制发送所述数据时,所述确定模块将最 近邻的上次数据传输的目的节点作为所述本次数据传输的源节点之前,周期性地接收所述 上次数据传输的目的节点上报的数据接收进度; 所述确定模块,还用于当接收到所述数据接收进度为100%时,确定上次数据传输完 成。
16. 根据权利要求13所述的装置,其特征在于: 所述确定模块,还用于在所述发送模块向所述本次数据传输的源节点发送下发数据传 输任务之后,确定在预设阔值的周期内未接收到所述本次数据传输的目的节点上报的数据 接收进度; 所述确定模块,还用于确定所述本次数据传输的目的节点故障; 所述选择模块,还用于从所述原始节点和所述节点列表中已经接收到所述数据的节点 中选择子节点最少的节点作为所述本次数据传输的源节点; 所述选择模块,还用于重新从用于接收所述数据的节点列表中选择未被选择过用于接 收所述数据的节点作为本次数据传输的目的节点; 所述发送模块,还用于向所述本次数据传输的源节点下发数据传输任务,W供所述本 次数据传输的源节点根据所述本次数据传输的目的节点的地址向所述本次数据传输的目 的节点传输所述数据。
17. 根据权利要求12-16任一所述的装置,其特征在于,所述确定模块,还用于在所述 发送模块向所述本次数据传输的源节点发送下发数据传输任务之后,确定所述节点列表中 除故障节点之外,无未接收过所述数据的节点,确定数据传输完成。
18. -种节点装置,其特征在于,所述装置包括: 接收模块,用于在所述节点装置作为本次数据传输的源节点接收控制装置下发的数据 传输任务,所述数据传输任务包括所述本次数据传输的目的节点和所述本次数据传输的目 的节点的地址; 发送模块,用于根据所述本次数据传输的目的节点的地址向所述本次数据传输的目的 节点传输所述数据。
19. 根据权利要求18所述的装置,其特征在于,所述发送模块,还用于在根据所述本次 数据传输的目的节点的地址向所述本次数据传输的目的节点传输所述数据之后,周期性地 向所述控制装置上报数据发送进度,W供所述控制装置根据所述数据发送进度确定本次数 据传输完成。
20. 根据权利要求18所述的装置,其特征在于,所述接收模块,还用于在所述节点装置 作为本次数据传输的源节点时,接收控制装置下发的数据传输任务之前,所述节点装置作 为上次数据传输的目的节点时,接收上次数据传输的源节点发送的所述数据。
21. 根据权利要求20所述的装置,其特征在于,所述发送模块,还用于在所述节点装置 作为上次数据传输的目的节点时,接收上次数据传输的源节点发送的所述数据之后,所述 节点装置作为上次数据传输的目的节点时,向所述控制装置上报数据接收进度,W供所述 控制装置根据所述数据接收进度确定上次数据传输完成。
22. 根据权利要求21所述的装置,其特征在于,所述装置还包括: 校验模块,用于在所述节点装置作为上次数据传输的目的节点时,当所述上次数据传 输完成时,对所述数据的正确性进行校验,并确定所述数据正确。
23. -种数据传输系统,其特征在于,所述系统包括控制装置和至少一个节点装置;所 述控制装置采用如上权利要求12-17任一所述的控制装置,所述节点装置采用如上权利要 求18-22任一所述的节点装置。
【文档编号】H04L29/08GK104468483SQ201310432667
【公开日】2015年3月25日 申请日期:2013年9月22日 优先权日:2013年9月22日
【发明者】周红昌, 陈杰, 尹晟宇, 蔡璞, 董晓杰 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1