掌桥专利:专业的专利平台
掌桥专利
首页

一种数据传输方法及系统

文献发布时间:2024-04-18 20:00:50


一种数据传输方法及系统

技术领域

本发明属于数据处理技术领域,尤其涉及一种数据传输方法及系统。

背景技术

随着计算机技术的发展,自动化运维系统已经在计算机网络系统广泛应用。例如,在民航业务系统领域,自动化运维系统可以对超大规模的业务数据进行备份操作,并转移到另一套测试环境的目标节点上。而民航业务系统具有繁多的业务节点,复杂的链路情况,不同业务节点之间具有不同的网络资源,经过不同业务系统使用后空闲网络资源也不同。不同业务节点的磁盘空间大小不一,有些业务节点网络资源很高但是磁盘空间很小,而有些业务节点的磁盘空间大但网络资源很低。

而进行超大规模备份数据传输的过程中,因测试环境历史规划因素,以及其他可变性因素繁多,无法高效利用集群中空闲网络资源和磁盘资源,可能导致数据传输过程中可能出现中断,中断后需要断点续传,但中断后不知道网络何时通畅,因此数据传输效率低。

发明内容

有鉴于此,本发明的目的在于提供一种数据传输方法及系统,以解决上述至少部分技术问题,本申请提供了如下技术方案:

第一方面,本申请提供了一种数据传输方法,应用于数据传输系统,所述数据传输系统包括管理节点和多个业务节点;所述方法包括:

所述管理节点创建数据传输任务,并为所述数据传输任务关联数据操作策略,所述数据传输任务包括起始节点、目的节点和待传输数据文件的存储目录;

各个业务节点监测自身的资源状态并发送至所述管理节点;

所述管理节点基于路由规划策略及各个业务节点的资源状态,获得虚拟路由表,所述虚拟路由表包括确定出从所述起始节点至所述目的节点的多条可用传输路径;

所述管理节点将所述数据传输任务及所述虚拟路由表发送至所述起始节点;

所述起始节点基于自身的资源状态及所述数据操作策略对所述待传输数据文件进行操作,并将操作后的数据发送至下一传输节点组,所述下一传输节点组包括通过查询所述虚拟路由表获得的所述起始节点的所有下一跳的节点;

作为中转的业务节点接收上一跳节点发送的数据传输任务及所述虚拟路由表后,若自身的资源状态满足所述数据操作策略,则对接收到的数据块进行切分或合后发送至下一跳节点;

目的节点将接收到的待传输数据文件的所有数据块合并为一个数据文件。

第二方面,本申请还提供了一种数据传输系统,包括至少一个管理节点及多个业务节点;

所述管理节点创建数据传输任务,并为所述数据传输任务关联数据操作策略,所述数据传输任务包括起始节点、目的节点和待传输数据文件的存储目录;

各个业务节点监测自身的资源状态并发送至所述管理节点;

所述管理节点基于路由规划策略及各个业务节点的资源状态,获得虚拟路由表,所述虚拟路由表包括确定出从所述起始节点至所述目的节点的多条可用传输路径;

所述管理节点将所述数据传输任务及所述虚拟路由表发送至所述起始节点;

所述起始节点基于自身的资源状态及所述数据操作策略对所述待传输数据文件进行操作,并将操作后的数据发送至下一传输节点组,所述下一传输节点组包括通过查询所述虚拟路由表获得的所述起始节点的所有下一跳的节点;

作为中转的业务节点接收上一跳节点发送的数据传输任务及所述虚拟路由表后,若自身的资源状态满足所述数据操作策略,则对接收到的数据块进行切分或合后发送至下一跳节点;

目的节点将接收到的待传输数据文件的所有数据块合并为一个数据文件。

与现有技术相比,本发明提供的上述技术方案具有如下优点:在集群中每个节点上部署Agent端,在集群中的一个节点上部署管理端。每个Agent端监控当前节点的资源状态并上传至管理端。管理端根据集群中每个节点的Agent端上报的资源状态的监控数据可以获得整个集群各节点的资源使用情况及连通情况。进一步地,管理端可以根据数据传输需求新建数据传输任务,针对不同场景,根据整个集群的节点状态规划出合适的传输路径。此外,管理端确定相应的数据操作策略并与数据传输任务关联后下发至选出的传输路径的节点,节点根据接收到的数据传输任务关联的数据操作策略执行相应的数据操作。通过任务监控监督各节点传输情况,并根据各节点空闲资源情况,实时规划新的传输方案,绕过坏点和低速率节点,提高资源使用率,最终提高了数据传输效率。

附图说明

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

图1是本申请实施例提供的一种业务系统集群的结构示意图;

图2是本申请实施例提供的一种数据传输系统的结构示意图;

图3是本申请实施例提供的一种管理端的结构示意图;

图4是本申请实施例提供的一种Agent端的结构示意图;

图5是本申请实施例提供的一种数据传输方法的流程图;

图6是本申请实施例提供的一个数据传输示例的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了更好地理解本申请实施例内容,首先对本申请涉及的专业术语进行介绍:

Agent是网络安全领域中的一种技术,即使用代理程序(Agent)来监测和保护计算机网络中的系统和数据安全。

OOB管理网络(Out-of-Band Management Network)是指在计算机网络中使用的一套独立于主要数据传输网络的网络基础设施,用于监控、管理和管控网络设备。它提供了一个隔离的通信通道,使管理员能够对网络设备进行远程访问、故障排除、配置更改和监视,而不会受到主要网络流量的影响。

路由表是在计算机网络中用于确定数据包传输路径的一种数据结构。它记录了不同网络之间的连接和路由信息,以指导数据包在网络中的传输。

虚拟路由表是指在网络设备上配置的逻辑路由表,用于控制数据包在网络中的转发。与实际的物理路由表不同,虚拟路由表是通过软件或配置来创建和管理的,不涉及真实的物理设备。

动态路由表(Dynamic Routing Table)是网络设备(如路由器)维护的一张表格,记录了动态路由协议所学习到的路由信息。它用于根据网络拓扑和路由策略自动选择最佳路径进行数据包转发。

传统的数据分块传输方法,对同一文件的分块算法一致,即数据传输至资源(网络资源或磁盘资源)不同的节点时数据分块数量完全相同,无法充分利用不同节点的可用资源。对于可用资源少的节点,负荷过重(数据块数量过多)可能会导致传输中断,对于可用资源多的节点而言资源利用率较低。

为了解决上述技术问题,本申请提供了一种数据传输方法,该方案利用集群环境空闲资源进行超大规模备份数据传输,在各个节点部署Agent监控资源使用情况(如,网络流量进出情况、磁盘空间使用情况、磁盘读写情况及CPU使用率等)。进一步依据各节点资源使用情况,按照传输策略规划虚拟路由表。对数据包进行分块,之后通过多条网络通道并行将数据块传输至下一节点。通过任务监控监督各节点传输情况,并根据各节点空闲资源情况,实时规划新的传输方案,绕过坏点和低速率节点,提高资源使用率,最终提高了数据传输效率。

请参见图1,示出了本申请实施例提供的一种业务系统集群的结构示意图。

民航业务集群系统包括繁多的节点,包括业务节点和中转节点。数据传输过程是将数据从一个节点传输至集群中的目标节点,目标节点可以是集群中任意一个业务节点。

业务节点用于承载相应的业务服务,每个业务节点可以是一台或多台服务器。

中转节点用于接收待传输数据并传输至目标节点,中转节点可以是一台多中转节点可以将数据传输至任意一个业务节点。

实际应用中根据该集群的动态路由表查找从起始节点到目标节点的多条传输路径,每条路径匹配各节点资源使用情况并确认延迟情况,进一步根据策略规划配置确定从起始节点到目标节点之间的多条较优传输链路,按照规划的传输链路传输数据。

请参见图2,示出了本申请提供的一种数据传输系统的结构示意图。

如图2所示,该系统包括管理端(即管理节点)和多个Agent端(即业务节点)。Agent端部署于集群中每一个可以进行数据传输的节点上,管理端可以部署在集群中的任一个节点中。即集群中可以包括一个管理端,多个Agent端,且Agent端的数量与集群中节点的数量一一对应。

Agent端部署于集群中每一个可以进行数据传输的节点上,Agent端用于实时监控节点的资源使用情况并反馈给管理端,以及,按照管理端下发的指令进行相应的数据操作,如数据分块、数据合并、数据传输和数据清理等。

管理端可以接收各个Agent端发送的资源监控数据,从而获得整个集群的资源使用情况,统一调度集群中的各个节点,充分利用集群中的空闲资源进行数据传输任务处理。

请参见图3,示出了本申请实施例提供的一种管理端的结构示意图。

如图3所示,管理端可以包括Agent管理模块101、任务管理模块102和虚拟路由表模块103。

一、Agent管理模块

Agent管理模块101负责节点的管理和监控工作。例如,在一示例性实施例中,Agent管理模块可包括节点监控模块和节点管理模块。

(1)节点监控模块

该模块用于接收节点通过Agent端上传的监控数据,对节点进行统一监控,例如,监控内容可包括:节点连通性、节点的CPU资源使用情况、网络资源使用情况、磁盘资源使用情况,以及任务运行状态。节点监控模块可以实时查看各个节点的资源使用情况,为动态路由表策略、数据分块策略、数据合并策略、数据传输策略、数据清理策略提供数据支撑。

(2)节点管理模块

该模块可以对集群中各节点进行精细化管理,例如,向节点下发数据分块策略、数据合并策略、数据传输策略和数据清理策略等。

数据分块是指将数据量较大的数据文件切分成数据量较小的数据块。

数据合并是指将至少两个连续的数据块合并成一个数据块,减少碎片,提高磁盘空间使用率。

数据传输就是将分块或合并后的数据文件传输给下一个(或下一组)节点。

数据清理功能是当磁盘空间达到配置阈值时,清理Agent端已结束任务的数据块。

二、任务管理模块

任务管理模块102是发起数据操作的入口。任务管理模块102可包括任务管理子模块和任务记录模块。

(1)任务管理子模块

该模块可以创建数据传输任务,新建任务时,可以选择起始节点,选择该节点需要传输的数据文件,以及选择传输的目的节点。同时,确定该任务关联的数据分块策略、数据合并策略、数据传输策略和数据清理策略,最后启动该任务,即将该任务下发给相应的节点。

(2)任务记录模块

该模块用于接收各Agent端上报的任务运行状态,形成任务记录。为溯源及扩展功能提供数据支撑。

三、虚拟路由表模块

虚拟路由表模块103用于记录集群中各个系统之间的联通情况,包括各个节点之间的所有通道,通道带宽以及通道阻塞情况。

虚拟路由表模块103包括动态路由表策略配置模块和动态路由表刻画模块。

(1)动态路由表策略配置模块

该模块可以查找路由表中从起始节点到目的节点的多条路径,每条路径匹配各节点资源使用情况并确定每条路径的延迟情况,根据相应的策略规划从起始节点到目的节点的多条可用链路,形成虚拟路由表。

策略规划配置可以包括带宽优先、负载均衡优先、最短路径优先,以及路由通道综合策略,即三者按一定权重相结合的策略。

带宽优先策略是选择总带宽分数靠前的预设数量条链路。其中,总带宽分数=(单个节点的最大带宽÷n个节点带宽之和)×100,此公式中,的n表示某一传输路径包含的节点总数量,单个节点的最大带宽是指n个节点中单个节点拥有的带宽的最大值。

负载均衡优先策略是选择空闲带宽分数靠前的预设数量条链路。其中,空闲带宽分数=(单个节点的最大空闲带宽÷n个节点空闲带宽)×100,此公式中的n表示该路径包含的节点总数量,单个节点的最大空闲带宽是n个节点中单个节点拥有的空闲带宽的最大值。

最短路径优先策略是选择经过节点数量少的预设数量条链路。其中,跃点数分数=(1-单个节点的最大跃点数÷n个节点跃点数之和)×100,此公式中的n表示该路径包含的节点总数量,单个节点的最大跃点数是指n个节点中单个节点拥有的跃点数的最大值。其中,跃点即路由,一个路由为一个跃点,也即一个可传输数据的节点。

路由通道综合策略是为上述三种不同策略配置不同比例权重,约束条件:带宽优先权重+负载均衡优先权重+最短路径优先权重=100。

路由通道分数={总带宽分数×带宽优先权重%+空闲带宽分数×负载均衡优先权重%+跃点数分数×最短路径优先权重%},按此公式计算各个路由通道的分数,并按分数由高到低排序。

(2)动态路由表刻画模块

该模块可以根据集群中网络使用情况、节点间带宽、刻画图谱,协助使用人员一览任务运行全貌。

下面将重点介绍管理端的数据分块策略、数据合并策略、数据传输策略、数据清理策略。

一、数据分块策略

数据分块策略可以包括如下几种:

(1)按照固定大小进行切块,如1MB、10MB等。

(2)按照下一传输节点组的空闲带宽比例进行切块,如果某一数据块大于设定值则继续对该数据块进行切分,直到每一个数据块均小于该设定值。

例如,当前节点的下一传输节点组包括3个节点,且三个节点的空闲带宽比例为1:1:1,若当前节点待传输数据文件的数据量是90MB,则按照1:1:1切分成三个30MB的数据块。若数据块的设定值是10MB,则切分的三个数据块均大于10MB,因此继续进行切分,直到每个数据块的均小于或等于设定值。

例如,可以根据数据块的数据量及设定值确定切分的数据块数量,如30MB的数据块可以继续切分成三个10MB的数据块。

又如,可以直接配置继续切分的数据块数量,如将大于设定值的数据块继续10等分,即30MB的数据块继续切分成10个3MB的数据块。

(3)按照下一组传输节点数量的预设倍数进行等分切块。如果某一数据块大于设定值则继续切分,直到每一个数据块均小于设定值。

例如,当前节点的下一组传输节点数量是3个,预设倍数为10,则将数据块进行30等分进行切块。若待传输数据文件为90MB,则进行30等分后为3MB的数据块。

二、数据合并策略

(1)若当前节点的数据文件中数据块数量大于或等于阈值n,且有相邻的数据块则进行数据块合并。例如,待传输的数据文件切分成10个数据块,其中当前节点传输数据库块3、4、5、6,阈值n取值3,此种情况下可以将相邻的数据块3和数据块4进行合并。

(2)若当前文件夹中的文件数据量大于或等于nMB,且有相邻的数据块则进行数据块合并。

三、数据传输策略

(1)数据传输过程中,每个数据块启动一个进程,每个节点启动进程数量为1个。

(2)数据传输过程中,每个数据块启动一个进程,每个节点启动进程数量起始值为1个,节点双方间通道带宽使用率小于等于n%时,允许进程数超过1个。

(3)数据传输过程中,每个数据块启动一个进程,每个节点启动进程数量起始值为1个,节点双方流入流出使用率小于等于n%,允许进程数超过1个。

(4)数据传输过程中,每个数据块启动一个进程,每个节点启动进程数量起始值为1个,节点双方磁盘读写使用率小于等于n%,允许进程数超过1个。

(5)数据传输过程中,每个数据块启动一个进程,每个节点启动进程数量起始值为1个,节点双方CPU使用率小于等于n%,允许进程数超过1个。

四、数据清理策略

默认策略:任务结束或关闭则进行数据清理。

其余策略:(1)磁盘空间使用率大于等于n%,则进行数据清理。

(2)节点失去链接大于等于ns,则进行数据清理。

(3)节点任务传输完成ns,则进行数据清理。

管理端针对每种策略确定一个具体的策略,并将四种策略下发给节点,节点在执行任务时按照相应的策略进行相应的处理。例如,选择数据分块策略(2)作为本次任务的数据分块策略。选择数据合并策略(1)作为本次任务的数据合并策略。选择数据传输策略(2)作为本次任务的数据传输策略。选择数据清理默认策略作为本次任务的数据清理策略。

请参见图4,示出了本申请实施例提供的一种Agent端的结构示意图。

如图4所示,Agent端包括配置管理模块110、监控模块120和数据操作模块130。

一、配置管理模块

该模块110包括管理端IP配置模块、监控频率配置模块、上传频率配置模块、数据目录配置模块和预警熔断配置模块。

(1)管理端IP配置模块

该模块用于配置与管理端通信的接口。管理端配置IP地址后,Agent端对该IP地址发送请求,将自身IP地址注册到管理端中,为管理端开放接口,管理端可以通过该接口管控该节点的Agent端。

(2)监控频率配置模块

该模块用于配置对自身所在节点状态的周期。例如,CPU资源监控周期、磁盘资源监控周期、网络带宽资源监控周期、数据操作监控周期可以配置为1s,带宽测速监控周期可以配置为2小时,查询周期依赖于上一周期。

(3)上传频率配置模块

该模块用于配置Agent端的节点监控数据上传至管理端的周期。例如,可以配置为10s上传一次。因为备份数据文件数据量极大,对传输的实时性要求不高,所以备份数据的上传时间可以稍微延长,这对动态规划传输路线的影响极低。

(4)数据目录配置模块

该模块用于配置数据在节点内的存储目录路径,因大部分节点作为中转节点,为不影响系统正常运转,配置目录路径时,需制定目录存储文件的数据量阈值和文件碎片数量阈值。如果数据文件大小超过配置的数据量阈值和碎片数量阈值,则禁止继续使用该节点存储数据文件。需要进行数据清理、合并数据碎片,或者修改配置后继续使用该数据目录存储数据文件。

(5)预警熔断配置模块

该模块用于检测节点侧的资源使用超过警戒线后立即进行熔断操作,即停止Agent端作业运行,释放Agent端占用的资源以供业务系统使用,从而保护该节点上的业务系统运转。

例如,各资源占用率的警戒线可以包括:CPU使用率≥80%,停止Agent端作业运行;内存使用率≥95%,停止Agent端作业运行;网络资源使用率≥90%,停止Agent端作业运行;磁盘使用率≥80%,停止Agent端作业运行,并释放占用的数据存储目录。

二、监控模块

监控模块120用于监控节点内各种资源使用情况及数据操作情况。

在一示例性实施例中,监控模块120包括CPU资源监控模块、磁盘资源监控模块、网络资源监控模块、带宽测速监控模块和数据操作监控模块。

(1)CPU资源监控模块

该模块可以获取该节点的CPU型号、核心数量、频率、缓存大小和CPU使用率。例如,可以通过top命令抓取上述信息。

(2)磁盘资源监控模块

该模块可以获取磁盘存储大小,已用大小,已用百分比,读盘速率,写盘速率。例如,可以通过df命令抓取上述信息。

(3)网络资源监控模块

该模块可以获取当前节点的上传速率和下载速率。例如,可以通过df命令抓取上述信息。

(4)带宽测速监控模块

该模块用于测试当前节点到其他节点的带宽。例如,可以利用df命令测试两个节点间的带宽。

在一实施例中,为了不影响业务系统正常运转,命令运行前,优先检测上传带宽和下载带宽使用率均低于1%时方可执行命令。

(5)数据操作监控模块

数据操作监控模块用于获取当前节点上未上报的任务状态,如可包括任务号、任务类型、任务状态。任务类型可包括数据传输、数据分块、数据合并和数据清理等类型。

三、数据操作模块

数据操作模块130用于执行相应的数据操作,如数据分块、数据合并、数据传输和数据清理等。

在一示例性实施例中,数据操作模块130包括数据分块模块、数据合并模块、数据传输模块和数据清理模块。

(1)数据分块模块

数据分块模块用于将数据量较大的数据文件切分成数据量较小的数据块。该模块按照管理端下发的数据分块策略进行数据块切分。

示例性的,切分后的数据块文件的命名可以是:文件标识符-文件起始偏移量-文件结束偏移量。

例如,文件a.txt,其文件标识符为AAA,文件标识符是文件的唯一标识。该文件共包含100个字符,将该文件四等分成四个数据块文件,文件名可以如下:①AAA-0-24;②AAA-25-49;③AAA-50-74;④AAA-75-99。

若一个数据块的文件结束偏移量与另一个数据块的文件起始偏移量相邻则表明这两个数据块相邻。

(2)数据合并模块

切分后的数据块传输至某个节点后,若符合数据合并策略可以将至少两个数据块合并成一个数据文件,减少碎片,提高磁盘空间使用率。

例如,仍以数据分块的示例为例对数据合并进行说明,将数据块②AAA-25-49和数据块③AAA-50-74进行合并,得到如下数据块:①AAA-0-24;②AAA-25-74;④AAA-75-99。

(3)数据传输模块

基于数据分块进行传输,传输过程中可启动多个线程并行传输多个数据块。数据传输中断或丢包,可以重新上传指定数据块,以便加速传输。例如,传输过程中断时间大于预设时长,可以将中断的数据块重新选择节点来传输。

(4)数据清理模块

该模块用于清理Agent端配置的数据存储目录下的数据,清理策略是当磁盘空间使用率达到配置阈值时,清理已结束任务的数据。

此外,数据清理策略还可以是当节点中断大于或等于ns后,清理已结束或关闭的任务的数据。以及,节点任务传输完成ns后,清理已结束或关闭的任务的数据。

为了降低数据清理过程对业务系统的影响,可以使用Unlink操作直接断开文件引用。

由上述内容可知,本申请实施例提供的数据传输系统,在集群中每个节点上部署Agent端,在集群中的一个节点上部署管理端。每个Agent端监控当前节点的状态并上传至管理端。管理端根据集群中每个节点的Agent端上报的节点监控数据可以获得整个集群各节点的资源使用情况及连通情况。进一步地,管理端可以根据数据传输需求新建数据传输任务,针对不同场景,根据整个集群的节点状态规划出合适的传输路径。此外,管理端确定相应的数据操作策略并与数据传输任务关联后下发至选出的传输路径的节点,节点根据接收到的数据传输任务关联的数据操作策略执行相应的数据操作。通过任务监控监督各节点传输情况,并根据各节点空闲资源情况,实时规划新的传输方案,绕过坏点和低速率节点,提高资源使用率,最终提高了数据传输效率。

下面结合图5和图6介绍本申请实施例提供的数据传输过程,图5是本申请实施例提供的一种数据传输方法的流程图,图6是本申请实施例提供的一种数据传输示例的示意图。

本申请提供的数据传输方法应用于图2所示的系统中,如图5所示,该方法可以包括以下步骤:

S101,管理端与集群中的各个Agent端建立通信连接。

管理端配置IP地址后,Agent端通过该IP地址向管理端发送注册请求,请求将自身IP地址注册到管理端中,并未管理端开放接口,这样管理端可以通过该接口管控Agent端。

S102,Agent端进行初始化配置。

示例性的,Agent端进行监控频率、上传频率、数据存储目录、预警熔断等相关配置。具体的配置内容请参见图4所示实施例中配置管理模块中的相应内容,此处不再赘述。

S103,Agent端监控节点的资源状态以及任务运行状态。

集群中每个Agent端监控自身节点的资源状态,在一示例性实施例中,Agent端可以监控如CPU使用率、磁盘空间使用率、磁盘读写速率、上传/下载速率,当前节点到其他节点之间的带宽等资源状态。

而且,Agent端还可以获取当前节点的任务运行状态,如任务号、任务类型,任务状态,其中,任务类型包括数据传输、数据分块、数据合并和数据清理,任务状态可包括完成、关闭、未完成等。

S104,Agent端按照配置的上传频率向管理端上传监控数据。

示例性的,监控数据的上传周期是10s,则每Agent端可以每10s上传一次监控数据。

S105,管理端创建数据传输任务,并为该任务关联相应的数据操作策略。数据传输任务包括起始节点、目的节点和待传输的数据文件的存储目录。

管理端接收到人工发起的数据备份操作,或者按照预设的备份周期获得数据备份任务的相关信息,如起始节点、目的节点、需要备份传输的数据文件的存储目录等。管理端基于上述的相关信息新建数据传输任务,该任务包括起始节点、目的节点及数据文件的存储目录。

而且,管理端可以选择相应的数据操作策略与该数据传输任务相关联。其中,数据操作策略可包括数据分块策略、数据合并策略、数据传输策略、数据清理策略等。即管理端将确定各项操作策略与数据传输任务一起下发给起始节点。

S106,管理端查询集群的动态路由表获得从起始节点至目的节点的所有传输路径。

动态路由表中记录了集群中各个节点之间的连通路径。管理端从该动态路由表中查询得到起始节点至目的节点的所有传输路径。

S107,管理端基于路由规划策略及每条路径的节点资源信息和延迟信息确定多条可用链路,形成虚拟路由表。

管理端查询得到从起始节点至目的节点的所有传输路径后,基于各Agent端上传的监控数据获取每条路径包含的各节点的资源状态,以及使用Traceroute工具确认延迟情况进行策略规划得到起始节点至目的节点的多条可用链路形成虚拟路由表。虚拟路由表记录集群中各个系统之间的联通情况,每个节点与其它节点之间的通道及通道带宽、通道阻塞等信息。

路由规划策略请详见图3所示实施例中动态路由表策略配置模块的相关内容,此处不再赘述。

按照选定的路由规划策略对各个路径进行排序,选取前预设数量个传输路径作为本次数据传输任务的传输路径,例如,可以选择最短路径优先策略,即计算各个路径的跃点数分数,按照分数由高到低排序,取前预设数量条路径作为数据传输路径。

例如,参见图6所示的数据传输示例,起始节点是节点1,目的节点是节点8,最终选定的传输路径分别是:①节点1→节点2→节点5→节点8,②节点1→节点3→节点6→节点8,③节点1→节点3→节点7→节点8,④节点1→节点4→节点8。

S108,管理端将数据传输任务及虚拟路由表下发给该任务的起始节点。

数据传输任务关联有相应的数据操作策略,因此,管理端将数据传输任务及其对应的数据操作策略和虚拟路由表发送给数据传输任务的起始节点。

例如,图6所示的数据传输示例中,管理端将数据传输任务及虚拟路由表发给节点1。

S109,起始节点接收到数据传输任务后,按照任务关联的数据分块策略将待传输数据文件切分成多个数据块。

例如,图6所示的示例中,节点1按照数据传输任务关联的数据分块策略进行数据分块,例如将整个数据文件切分为5个数据块。

S110,起始节点按照虚拟路由表将多个数据块分别分发至各个传输路径的下一个节点。

例如,图6的示例中,节点1的下一节点组包括节点2、节点3和节点4,因此节点1将数据块1和2传输至节点2,将数据块3传输至节点3,将数据块4和5传输至节点4。

S111,接收到数据块的节点,根据数据分块策略或数据合并策略进行分块或合并,并按照虚拟路由表将操作后的数据文件传输至下一个节点。

仍以图6的示例为例进行说明,节点2接收到数据块1和2后,根据该任务关联的数据分块策略、数据合并策略,确定无需进行数据分块和合并,则将数据块1和2传输至下一个节点,即节点5。此外,节点2可以根据数据传输策略,启动两个线程同时传输数据块1和2。节点5继续将数据块1和2传输至节点8,即目的节点。

由于网络情况,节点3根据数据分块策略将数据块3切分成四个数据块,数据块31~34,并将数据块31~33传输至节点6,同时将数据块34传输至节点7。若按照数据传输策略及节点状态确定允许启动多条线程,节点3可以启动多条线程并行传输数据块31~33至节点6,以及传输数据块34至节点7。节点6继续将数据块31~33传输至节点8。节点7继续将数据块34传输至节点8。

节点4根据数据合并策略将数据块4和5合并为一个数据块,即数据块4-5,并合并后的数据块传输至节点8。

S112,目点节点接收到所有数据块后进行数据合并得到数据文件。

目的节点接收到本次数据传输任务对应的所有数据块后,按照各数据块的文件起始偏移量和文件结束偏移量,将各个数据块合并成一个数据文件。

例如,图6所示的示例中,节点8接收到数据块1、2、31、32、33、34、4-5后,按数据块顺序合并成一个数据文件。

S113,任一Agent端在检测到当前节点状态符合数据清理策略时,清理已结束任务的数据块。

Agent端获取数据传输任务对应的数据清理策略,Agent端检测当前节点的状态以及任务运行状态,当节点状态符合数据清理策略时,清理数据存储目录中存储的已结束任务或关闭的任务对应的数据,以便获得更多存储空间。

此外,Agent端在执行数据传输任务时,监测任务运行状态并上传至管理端,以便管理端管控节点。

S114,对于任一Agent端,当检测到当前节点的资源使用率大于或等于警戒值时,停止Agent端作业运行。

前已叙及,Agent端初始化时配置有预警熔断配置,即Agent端检测到当前节点的资源使用状态达到警戒值后,停止运行该节点的Agent端作业,保证该节点的业务系统正常运行。

本实施例提供的数据传输方法,在集群中每个节点上部署Agent端,在集群中的一个节点上部署管理端。每个Agent端监控当前节点的状态并上传至管理端。管理端根据集群中每个节点的Agent端上报的节点监控数据可以获得整个集群各节点的资源使用情况及连通情况。进一步地,管理端可以根据数据传输需求新建数据传输任务,针对不同场景,根据整个集群的节点状态规划出合适的传输路径。此外,管理端确定相应的数据操作策略并与数据传输任务关联后下发至选出的传输路径的节点,节点根据接收到的数据传输任务关联的数据操作策略执行相应的数据操作。通过任务监控监督各节点传输情况,并根据各节点空闲资源情况,实时规划新的传输方案,绕过坏点和低速率节点,提高资源使用率,最终提高了数据传输效率。

本申请提供了一种服务器,该服务器包括处理器和存储器,该存储器内存储有可在处理器上运行的程序。该处理器运行存储器内存储的该程序时实现上述的数据传输方法实施例中管理端一侧执行的步骤。

本申请还提供了另一种服务器,该服务器包括处理器和存储器,该存储器内存储有可在处理器上运行的程序。该处理器运行存储器内存储的该程序时实现上述的数据传输方法实施例中Agent端一侧执行的步骤。

本申请还提供了一种计算设备可执行的存储介质,该存储介质中存储有程序,该程序由计算设备执行时实现上述的数据传输方法。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

需要说明的是,本说明书中的各个实施例记载的技术特征可以相互替代或组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本申请各实施例中的装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。

本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种基于极少训练样本的深度图像哈希方法
  • 一种基于深度学习的图像自动标注方法及装置
  • 一种基于平稳与非平稳振动信号特征选择的汽轮机主机故障诊断方法
  • 一种基于深度特征的非平稳训练图像自动分区方法及系统
技术分类

06120116537451