一种数据迁移方法及设备与流程

文档序号:12182904阅读:974来源:国知局
一种数据迁移方法及设备与流程

本申请涉及通信技术领域,特别涉及一种数据迁移方法。本申请同时还涉及一种数据迁移设备。



背景技术:

随着互联网技术的不断发展,云存储越来越成为不可或缺的技术之一。现在市场上提供云存储服务有很多(比如阿里云的OSS…),很受客户喜欢。因此随着使用用户数量越来越多,用户在使用云存储的过程中也不可避免碰到更换云存储服务的情况。

在现有技术中,当用户想更换云存储服务的时候,发现迁移云存储中的数据很麻烦。有的用户云存储的数据很大(几十T到PB),用传统方法迁移,需要很多的机器来进行迁移,迁移的时间也非常长,迁移成本很高。



技术实现要素:

本申请提供了一种数据迁移方法,用以方便快捷地针对网络存储的数据进行迁移,提高迁移效率以及节省设备资源。该方法包括:

从分片迁移队列中获取各个分片文件的子迁移任务,所述分片文件由待迁移文件分片生成,所述子迁移任务根据与所述待迁移文件对应的迁移任务生成;

根据各所述子迁移任务在与所述待迁移文件对应的源网络存储中对各所述分片文件进行迁移处理。

优选地,根据各所述子迁移任务在与所述待迁移文件对应的源网络存储中对各所述分片文件进行迁移处理,具体为:

向所述源网络存储请求与各所述分片文件对应的数据迁移流,所述数据迁移流用于将数据从所述源网络存储转移至内存;

将所述数据迁移流作为数据输入流上传至所述子迁移任务指定的目标网络存储,所述数据输入流用于将所述数据从所述内存转移至所述目标网络存储。

优选地,在从分片迁移队列中获取各个分片文件的子迁移任务之前,还包括:

从异步迁移队列中获取所述待迁移任务;

判断与所述待迁移任务对应的待迁移文件是否已迁移完成;

若判断结果为是,从所述异步迁移队列中获取其他的待迁移任务;

若判断结果为否,根据所述待迁移文件的容量以及预设的分片参数将所述待迁移文件分片处理为多个所述分片文件,并生成与各所述分片文件对应的子迁移任务。

优选地,在从异步迁移队列中获取所述待迁移任务之前,还包括:

获取迁移配置信息;

根据所述迁移配置信息在所述源网络存储的文件中扫描所述待迁移文件;

根据扫描结果生成所述迁移任务,并将所述迁移任务加入所述异步迁移任务队列中。

优选地,在根据各所述子迁移任务在与所述待迁移文件对应的源网络存储中对各所述分片文件进行迁移处理之后,还包括:

判断与所述待迁移文件对应的所有分片文件是否全部迁移成功;

若是,更新并存储所述待迁移文件的迁移状态。

相应地,本申请还提出了一种数据迁移设备,包括:

获取模块,从分片迁移队列中获取各个分片文件的子迁移任务,所述分片文件由待迁移文件分片生成,所述子迁移任务根据与所述待迁移文件对应的迁移任务生成;

迁移模块,根据各所述子迁移任务在与所述待迁移文件对应的源网络存储中对各所述分片文件进行迁移处理。

优选地,所述迁移模块具体用于:

向所述源网络存储请求与各所述分片文件对应的数据迁移流,所述数据迁移流用于将数据从所述源网络存储转移至内存;

将所述数据迁移流作为数据输入流上传至所述子迁移任务指定的目标网络存储,所述数据输入流用于将所述数据从所述内存转移至所述目标网络存储。

优选地,还包括:

判断模块,从异步迁移队列中获取所述待迁移任务,判断与所述待迁移任务对应的待迁移文件是否已迁移完成;

若判断结果为是,所述判断模块从所述异步迁移队列中获取其他的待迁移任务;

若判断结果为否,所述判断模块根据所述待迁移文件的容量以及预设的分片参数将所述待迁移文件分片处理为多个所述分片文件,并生成与各所述分片文件对应的子迁移任务。

优选地,还包括:

生成模块,获取迁移配置信息,根据所述迁移配置信息在所述源网络存储的文件中扫描所述待迁移文件,根据扫描结果生成所述迁移任务,并将所述迁移任务加入所述异步迁移任务队列中。

优选地,还包括:

更新模块,判断与所述待迁移文件对应的所有分片文件是否全部迁移成 功,并在判断结果为是时更新并存储所述待迁移文件的迁移状态。

由此可见,通过应用本申请的技术方案,在从分片迁移队列中获取各个分片文件的子迁移任务,即根据各子迁移任务从与待迁移文件对应的源网络存储中对各分片文件进行迁移处理,从而能够充分利用网络资源进行分片迁移,提高了网络存储资源的迁移效率,以及节省了设备资源。

附图说明

图1为本申请提出的一种数据迁移方法的流程示意图;

图2为本申请提出的一种数据迁移设备的结构示意图。

具体实施方式

有鉴于背景技术所提出的技术问题,本申请提出了一种数据迁移方法,如图1所示,包括如下步骤:

S101,从分片迁移队列中获取各个分片文件的子迁移任务,所述分片文件由待迁移文件分片生成,所述子迁移任务根据与所述待迁移文件对应的迁移任务生成。

针对用户所提出的文件迁移请求,本申请首先需要基于请求获取迁移配置信息,在根据所述迁移配置信息在所述源网络存储的文件中扫描所述待迁移文件之后,再根据扫描结果生成所述迁移任务,并将所述迁移任务加入所述异步迁移任务队列中。

后续过程中,由于本申请需要针对各个待迁移文件进行分片处理,因此在本申请的优选实施例中,在该步骤之前首先需要从异步迁移队列中获取所述待迁移任务,判断与所述待迁移任务对应的待迁移文件是否已迁移完成,并基于结果做如下处理:

(1)若判断结果为是,从所述异步迁移队列中获取其他的待迁移任务;

(2)若判断结果为否,根据所述待迁移文件的容量以及预设的分片参数将所述待迁移文件分片处理为多个所述分片文件,并生成与各所述分片文件对应的子迁移任务。

S102,根据各所述子迁移任务在与所述待迁移文件对应的源网络存储中对各所述分片文件进行迁移处理。

在现有的数据转存过程中,必须将待迁移的数据从源网络存储中下载到一个临时的存储空间中,后续再从该临时空间将待迁移数据上传至目标网络存储中。这样的转存方式不仅需要额外地设置下载以及上传的中间存储空间,而且下载过程以及上传过程均需要耗费一定的时间。因此为进一步提高网络存储的迁移效率,本申请的技术方案去掉了现有的迁移过程中的两次本地IO操作。在本步骤对应的优选实施例中,首先向所述源网络存储请求与各所述分片文件对应的数据迁移流,随后将所述数据迁移流作为数据输入流上传至所述子迁移任务指定的目标网络存储。由于数据迁移流的作用都是将数据从源网络存储中下载到内存中,而数据输入流的作用则是将数据从内存中直接上传至目标存储,因此本申请的技术方案在获取到与分片的待迁移数据对应的数据迁移流之后,将该数据迁移流的目的地址直接指向目标存储(即作为上传的数据输入流),这样数据的传输全部都在内存中实现,而不必再依赖于中间硬盘的转村。从而实现各个分片文件的数据仅通过内存直接完成下载以及上传。

为了确保各个分片文件最后都迁移完毕,从而保证整个文件的迁移成功。在该步骤之后,本申请优选实施例还将判断与所述待迁移文件对应的所有分片文件是否全部迁移成功,并在结果为是时更新并存储所述待迁移文件的迁移状态,若否的话则继续从分片迁移队列中获取各个分片文件的子迁移任务。

为达到以上技术目的,本申请还提出了一种数据迁移设备,如图2所示, 包括:

获取模块210,从分片迁移队列中获取各个分片文件的子迁移任务,所述分片文件由待迁移文件分片生成,所述子迁移任务根据与所述待迁移文件对应的迁移任务生成;

迁移模块220,根据各所述子迁移任务在与所述待迁移文件对应的源网络存储中对各所述分片文件进行迁移处理。

在具体的应用场景中,所述迁移模块具体用于:

向所述源网络存储请求与各所述分片文件对应的数据迁移流,所述数据迁移流用于将数据从所述源网络存储转移至内存;

将所述数据迁移流作为数据输入流上传至所述子迁移任务指定的目标网络存储,所述数据输入流用于将所述数据从所述内存转移至所述目标网络存储。

在具体的应用场景中,还包括:

判断模块,从异步迁移队列中获取所述待迁移任务,判断与所述待迁移任务对应的待迁移文件是否已迁移完成;

若判断结果为是,所述判断模块从所述异步迁移队列中获取其他的待迁移任务;

若判断结果为否,所述判断模块根据所述待迁移文件的容量以及预设的分片参数将所述待迁移文件分片处理为多个所述分片文件,并生成与各所述分片文件对应的子迁移任务。

在具体的应用场景中,还包括:

生成模块,获取迁移配置信息,根据所述迁移配置信息在所述源网络存储的文件中扫描所述待迁移文件,根据扫描结果生成所述迁移任务,并将所述迁移任务加入所述异步迁移任务队列中。

在具体的应用场景中,还包括:

更新模块,判断与所述待迁移文件对应的所有分片文件是否全部迁移成功,并在判断结果为是时更新并存储所述待迁移文件的迁移状态。

通过应用本申请的技术方案,在从分片迁移队列中获取各个分片文件的子迁移任务,即根据各子迁移任务从与待迁移文件对应的源网络存储中对各分片文件进行迁移处理,从而能够充分利用网络资源进行分片迁移,提高了网络存储资源的迁移效率,以及节省了设备消耗资源。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

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