数据迁移方法、装置、设备及可读存储介质与流程

文档序号:23314165发布日期:2020-12-15 11:46阅读:97来源:国知局
数据迁移方法、装置、设备及可读存储介质与流程

本申请实施例涉及数据迁移领域,特别涉及一种数据迁移方法、装置、设备及可读存储介质。



背景技术:

数据传输服务(datatransmissionservice,dts)又称数据迁移服务,是一种支持多种同构或者异构数据库之间,数据同步的服务,云硬盘数据迁移是指将云硬盘从源存储仓库迁移至目的存储仓库。

相关技术中,在进行云硬盘数据迁移的过程中,需要首先停止云硬盘的业务处理,从而在确定源存储仓库和目的存储仓库后,将云硬盘从源存储仓库迁移至目的存储仓库。

然而,上述方式中,由于数据迁移需要基于云硬盘的业务暂停,数据迁移的环境要求较高,数据迁移效率较低。



技术实现要素:

本申请实施例提供了一种数据迁移方法、装置、设备及可读存储介质,能够提高数据迁移过程中的数据处理效率。所述技术方案如下:

一方面,提供了一种数据迁移方法,所述方法包括:

获取源端云硬盘的源盘信息和目的云硬盘的目的盘信息,所述源端云硬盘对应有第一代理服务,所述目的云硬盘对应有第二代理服务,所述第一代理服务用于接收对所述源端云硬盘的输入输出请求,所述第二代理服务用于接收对所述目的云硬盘的输入输出请求;

根据所述源盘信息和所述目的盘信息建立迁移任务,所述迁移任务用于指示将源端云硬盘中的源端数据迁移至所述目的云硬盘;

根据所述迁移任务,由所述第一代理服务和所述第二代理服务切换至中转代理服务,通过所述中转代理服务接收对所述源端云硬盘和所述目的云硬盘的输入输出请求;

根据所述中转代理服务器,对所述源端数据进行迁移。

另一方面,提供了一种数据迁移装置,所述装置包括:

获取模块,用于获取源端云硬盘的源盘信息和目的云硬盘的目的盘信息,所述源端云硬盘对应有第一代理服务,所述目的云硬盘对应有第二代理服务,所述第一代理服务用于接收对所述源端云硬盘的输入输出请求,所述第二代理服务用于接收对所述目的云硬盘的输入输出请求;

建立模块,用于根据所述源盘信息和所述目的盘信息建立迁移任务,所述迁移任务用于指示将源端云硬盘中的源端数据迁移至所述目的云硬盘;

切换模块,用于根据所述迁移任务,由所述第一代理服务和所述第二代理服务切换至中转代理服务,通过所述中转代理服务接收对所述源端云硬盘和所述目的云硬盘的输入输出请求;

迁移模块,用于根据所述中转代理服务器,对所述源端数据进行迁移。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述的数据迁移方法。

另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的数据迁移方法。

另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的数据迁移方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过设置中转代理服务器,在数据迁移过程中,取消通过第一代理服务对源端云硬盘进行代理,以及取消通过第二代理服务对目的云硬盘进行代理,从而在数据迁移过程中接收输入输出请求,并根据数据块状态进行数据的读写操作,提高了数据迁移过程的灵活性,避免在数据迁移过程中需要停止读写业务而导致的数据迁移过程复杂,迁移效率较低的问题。

附图说明

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

图1是本申请一个示例性实施例提供的实施环境示意图;

图2是本申请一个示例性实施例提供的数据迁移方法的流程图;

图3是基于图2示出的实施例提供的终端和数据迁移主机之间进行迁移任务创建的示意图;

图4是本申请一个示例性实施例提供的迁移整体架构示意图;

图5是本申请另一个示例性实施例提供的数据迁移方法的流程图;

图6是本申请一个示例性实施例提供的迁移任务创建的整体流程图;

图7是本申请另一个示例性实施例提供的数据迁移方法的流程图;

图8是基于图7示出的实施例提供的状态迁移图;

图9是本申请一个示例性实施例提供的状态迁移过程的整体流程图;

图10是本申请一个示例性实施例提供的迁移流程清理的流程图;

图11是本申请一个示例性实施例提供的数据迁移装置的结构框图;

图12是本申请另一个示例性实施例提供的数据迁移装置的结构框图;

图13是本申请一个示例性实施例提供的服务器的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,针对本申请实施例中涉及的名词进行简单介绍:

云技术(cloudtechnology):是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。技术网络系统的后台服务需要大量的计算、存储资源,示意性的,双录视频的质检过程中,需要对双录视频进行存储、对双录视频中的不同关键视频片段进行人工智能(artificialintelligence,ai)计算。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

数据传输服务(datatransmissionservice,dts):又称数据迁移服务,是一种支持多种同构或者异构存储数据仓库之间进行数据同步的服务,在数据迁移的过程中,需要经过迁移配置、迁移检查以及正式迁移三个主要过程。

可选地,本申请实施例中涉及的数据可以是存储在物理设备中的数据,也可以是存储在云端服务器中的数据。示意性的,本申请实施例中,以云硬盘数据为例进行说明,结合上述数据库的存储类型,数据库迁移工具也可以分为传统数据迁移服务和云数据迁移服务,其中,传统数据迁移服务通常为独立运行的服务程序,运行在用户的网络环境内;云数据迁移服务则是云厂商提供的数据库数据迁移服务。

示意性的,请参考图1,其示出了本申请一个示例性实施例提供的实施环境示意图,如图1所示,该实施环境中包括:源端主机110、目的端主机120、第一代理服务111、第二代理服务121、中转代理服务130、迁移控制服务器140、输入输出代理服务器150、迁移控制主机160;

其中,第一代理服务111用于代理源端主机110接收输入输出请求,本实施例中,以第一代理服务111为独立服务器为例进行说明,在一个可选的实施例中,第一代理服务111还可以实现为源端主机110中安装的代理软件;也即,当终端需要对源端主机110的数据仓库进行读写操作时,通过第一代理服务111接收输入输出请求,从而完成对数据仓库中存储的数据的输入输出操作。

第二代理服务121用于代理目的端主机120接收输入输出请求,本实施例中,以第二代理服务121为独立服务器为例进行说明,在一个可选的实施例中,第二代理服务121还可以实现为目的端主机120中安装的代理软件。也即,当终端需要对目的端主机120的数据仓库进行读写操作时,通过第二代理服务121接收输入输出请求,从而完成对数据仓库中存储的数据的输入输出操作。

中转代理服务130用于在源端主机110中的源盘向目的端主机120中的目标盘进行迁移的过程中,代理接收源端主机110和目的端主机120中针对源盘的源端数据的输入输出请求。也即,在源端数据的迁移过程中,通过中转代理服务130接收输入输出代理服务器150发送的输入输出请求,并根据输入输出请求在源端主机110和目的端主机120中进行读写处理。

中转代理服务130负责接收agent端(即输入输出代理服务器150)的输入输出(inputoutput,io)请求,同时确保来自agent端的写请求与迁移请求互斥;确保已经完成迁移的数据块在迁移期间源盘和目的盘数据一致性。

迁移控制服务器140负责接收迁移任务请求,并将源盘中的源端数据按数据块粒度迁移至目的盘。

迁移控制主机160负责处理来自界面侧的控制命令,包括迁移任务配置、创建、取消、浏览等功能,同时负责任务持久化到数据库;同时监控迁移控制服务器140和中转代理服务130的进程状态。

值得注意的是,上述服务器是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdeliverynetwork,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端130可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

示意性的,以本申请实施例中提供的指纹文件的存储方法应用于云服务器中为例,云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。

结合上述名词简介和实施环境,对本申请实施例涉及的应用场景进行举例说明。

第一,存储仓库资源均衡化,也即在存储仓库之间由于云硬盘装箱问题,导致不同存储仓库之间的输入输出流量负载不均衡,以及数据块使用率负载不均衡,故,应用本申请实施例中提供的数据迁移方法,对云硬盘进行数据迁移,从而平衡各个存储仓库之间的负载;

第二,为用户提供的云硬盘分为多种类型,针对用户的需求,当从类型a需要切换至类型b,则需要将数据从类型a对应的云硬盘,迁移至类型b对应的云硬盘中;

第三,存储架构升级过程中,为了统一运营,将旧存储仓库中的云硬盘迁移至新的存储仓库中,完成新老存储仓库之间的更替。

值得注意的是,上述应用场景仅为示意性的距离,本申请实施例还可以应用于其他数据迁移场景中,本申请实施例对具体的应用场景不加以限定。

结合上述说明,对本申请实施例提供的方法进行介绍,图2是本申请一个示例性实施例提供的数据迁移方法的流程图,以该方法应用于如图1所示的迁移控制服务器中为例进行说明,如图2所示,该方法包括:

步骤201,获取源端云硬盘的源盘信息和目的云硬盘的目的盘信息,源端云硬盘对应有第一代理服务,目的云硬盘对应有第二代理服务。

第一代理服务用于接收对源端云硬盘的输入输出请求,第二代理服务用于接收对目的云硬盘的输入输出请求。

可选地,第一代理服务为源端主机连接的服务器;或,第一代理服务实现为源端主机上安装的代理软件。其中,源端主机中包括存储仓库,第一代理服务用于代理该存储仓库对应的输入输出请求。源端云硬盘存储于该存储仓库中。也即,当用户通过终端对源端云硬盘进行数据读取或数据写入时,需要通过向第一代理服务发送输入输出请求,从而由第一代理服务从源端主机的存储仓库中进行数据的读取或写入。

同理,第二代理服务为目的端主机连接的服务器;或,第二代理服务实现为目的端主机上安装的代理软件。其中,目的端主机中包括存储仓库,第二代理服务用于代理该存储仓库对应的输入输出请求。目的云硬盘存储于该存储仓库中。也即,当用户通过终端对目的云硬盘进行数据读取或数据写入时,需要通过向第二代理服务发送输入输出请求,从而由第二代理服务从目的端主机的存储仓库中进行数据的读取或写入。

源盘信息中包括:源端主机的网际互联协议(internetprotocol,ip)地址、源端主机版本号、云硬盘信息中的至少一种,其中,云硬盘信息包括:标识号、硬盘尺寸、云硬盘所属的分组等。

目的盘信息中包括:目的端主机的ip地址、目的端主机版本号、云硬盘信息中的至少一种,其中,云硬盘信息包括:标识号、硬盘尺寸、云硬盘所属的分组等。

源盘信息和目的盘信息为用户在创建迁移任务时,在终端界面中输入的信息,终端创建迁移任务后,首先向数据迁移主机发送源盘信息和目的盘信息,从而数据迁移主机向迁移控制服务器发送该源盘信息和目的盘信息。

其中,在终端和数据迁移主机之间进行迁移任务创建时,请参考如图3所示的过程,如图3所示,该过程中包括界面310、运营系统320和数据迁移主机330。

首先,用户在界面310中创建迁移任务,在创建迁移任务的界面310中输入源端主机ip地址和版本号,查询该源端主机所管理的所有盘信息,包括标识号、硬盘尺寸、云硬盘所属的分组等信息;界面310支持一次选一个或者多个分组粒度或组内的单盘粒度来创建迁移任务。其中,一个分组中包括至少一个盘。

用户选中一块或者多块云硬盘后,输入目的端主机的ip地址和目的端主机的版本号。通过界面310将迁移任务上报至运营系统320,该运营系统320用于对系统所提供的各个业务功能进行运营。

通过界面310向后台提交迁移任务之前,还要向运维系统查询每个盘的扇区大小(sectorsize)、目的存储区域标识、目的资源配置标识等信息,信息返回后,通过界面310将盘信息、迁移控制服务器/中转代理服务的信息、源盘信息、目的盘信息等信息一起通过运营系统320提交给数据迁移主机330,从而将迁移任务提交到数据迁移主机330后,由数据迁移主机330自动选择负载轻的迁移控制服务器/中转代理服务来完成数据迁移。其中,由一个迁移控制服务器和一个中转代理服务组成一个数据迁移服务组,选择负载轻的数据迁移服务组来完成数据迁移。通常,选择未处于迁移状态的数据迁移服务组来完成数据迁移。

数据迁移主机330在接收到迁移任务时,首先检查是否存在任务冲突,当不存在任务冲突时,将任务信息持久化至数据库中,避免缓存的任务信息由于被关闭而丢失。在持久化处理后,数据迁移主机330向运营系统320反馈创建响应,运营系统320向终端反馈创建响应,并在界面310进行展示。

即,数据迁移主机330本地数据库中维护一个迁移任务列表;收到迁移请求后,将迁移任务的信息持久化到数据库中,并返回前端任务提交成功。

步骤202,根据源盘信息和目的盘信息建立迁移任务。

该迁移任务用于指示将源端云硬盘中的源端数据迁移至目的云硬盘。

迁移控制服务器在接收到数据迁移主机发送的源盘信息和目的盘信息后,在本地构建迁移任务。

构建完毕迁移任务后,向数据迁移主机提交迁移任务响应,用于指示迁移控制服务器已完成迁移任务的初步构建。

数据迁移主机将迁移任务持久化到数据库中后,由数据迁移主机负责迁移任务的调度;数据迁移主机向迁移控制服务器提交迁移任务的任务信息,其中包括源盘信息和目的盘信息,以及包括源端主机的ip地址和目的端主机的ip地址以及两个主机的版本号。迁移控制服务器在本地申请资源用于完成迁移任务,并在资源申请后构建一个迁移任务,向数据迁移主机响应迁移任务构建成功。

步骤203,根据迁移任务,由第一代理服务和第二代理服务切换至中转代理服务。

通过中转代理服务器接收对源端云硬盘和目的云硬盘的输入输出请求。

也即,在数据迁移过程中,也能够通过中转代理服务器接收输入数据请求,并根据输入输出请求的具体请求要求,确定在源端云硬盘和目的云硬盘中的读写操作。

步骤204,根据中转代理服务器,对源端数据进行迁移。

在对源端数据进行迁移时,以数据块(block)为迁移粒度进行迁移。也即,将源端数据划分为n个数据块,每个数据块对应有数据块状态,n为正整数,向中转代理服务器发送对第i个数据块进行迁移的迁移请求,该迁移请求中包括第i个数据块的数据块状态,中转代理服务器用于对数据块状态进行验证。中转代理服务器对数据块状态进行验证后,向迁移控制服务器反馈迁移响应,迁移响应为对第i个数据块进行迁移验证后反馈的响应消息,根据迁移响应对第i个数据块进行迁移。

其中,反馈迁移响应包括请求成功响应和请求失败响应,当中转代理服务器反馈请求成功响应时,则表示第i个数据块的数据块状态符合迁移条件,能够进行迁移;当中转代理服务器反馈请求失败响应时,则表示第i个数据块的数据块状态不符合迁移条件,需要暂停对第i个数据块的迁移,并在后续重新对第i个数据块进行迁移尝试。

综上所述,本实施例提供的方法,通过设置中转代理服务器,在数据迁移过程中,取消通过第一代理服务对源端云硬盘进行代理,以及取消通过第二代理服务对目的云硬盘进行代理,从而在数据迁移过程中接收输入输出请求,并根据数据块状态进行数据的读写操作,提高了数据迁移过程的灵活性,避免在数据迁移过程中需要停止读写业务而导致的数据迁移过程复杂,迁移效率较低的问题。

示意性的,如图4所示,其示出了本申请一个示例性实施例提供的迁移整体架构示意图,如图4所示,该迁移架构分为三个部分,其中包括迁移前部分410、迁移中部分420和迁移后部分430;

其中,迁移前部分410中,负责转发io请求的开源虚拟机(kernel-basedvirtualmachine,kvm)411对应有代理服务412,代理服务412通过第一代理服务413与源端存储仓库414发送io请求,从而完成读写操作。

在迁移中部分420中,第一代理服务413切换至中转代理服务421,以及目的存储仓库431也对应切换至中转代理服务421。kvm411的代理服务412通过中转代理服务421向源端存储仓库414和目的存储仓库431提供代理服务,通过中转代理服务421处理io请求,其中,迁移中部分420还包括数据迁移主机422和迁移控制服务器423,数据迁移主机422对迁移控制服务器423和中转代理服务421进行管理,迁移控制服务器423用于在源存储仓库414和目的存储仓库431之间完成数据块的迁移。

在迁移后部分430中,目的存储仓库431切换回第二代理服务432,代理服务412通过第二代理服务432与目的存储仓库431发送io请求,从而完成读写操作。

在一个可选的实施例中,源盘信息需要进行校验,目的盘信息用于在目的端创建目的盘,图5是本申请另一个示例性实施例提供的数据迁移方法的流程图,以该方法应用于迁移控制服务器中为例,如图5所示,该方法包括:

步骤501,获取源端云硬盘的源盘信息和目的云硬盘的目的盘信息,源端云硬盘对应有第一代理服务,目的云硬盘对应有第二代理服务。

第一代理服务用于接收对源端云硬盘的输入输出请求,第二代理服务用于接收对目的云硬盘的输入输出请求。

源盘信息中包括:源端主机的ip地址、源端主机版本号、云硬盘信息中的至少一种,其中,云硬盘信息包括:标识号、硬盘尺寸、云硬盘所属的分组等。

目的盘信息中包括:目的端主机的ip地址、目的端主机版本号、云硬盘信息中的至少一种,其中,云硬盘信息包括:标识号、硬盘尺寸、云硬盘所属的分组等。

步骤502,根据源盘信息和目的盘信息建立迁移任务。

该迁移任务用于指示将源端云硬盘中的源端数据迁移至目的云硬盘。

迁移控制服务器在接收到数据迁移主机发送的源盘信息和目的盘信息后,在本地构建迁移任务。

构建完毕迁移任务后,向数据迁移主机提交迁移任务响应,用于指示迁移控制服务器已完成迁移任务的初步构建。

步骤503,从源端存储仓库获取源端云硬盘的源存储信息。

源端云硬盘存储于源端存储仓库中,则从源端主机中获取源端云硬盘的源存储信息。

数据迁移主机在向迁移控制服务器发送源盘信息和目的盘信息时,还发送了源端主机的ip地址和目的端主机的ip地址,则根据源端主机的ip地址,从源端主机中获取源端云硬盘的源存储数据。

步骤504,将源存储信息与源盘信息进行验证匹配。

在验证匹配的过程中,确定数据迁移主机所发送的源盘信息,与源端主机中存储的源存储信息进行对应匹配,确定源盘信息是否与源存储信息一致,也即,校验数据迁移主机所发送的源盘信息是否正确。如:校验源盘标识、源盘尺寸、源盘名称等信息是否与源端主机中存储的一致。

步骤505,响应于源盘信息符合源存储信息,确定源盘信息校验通过。

响应于源盘信息与从源端主机获取的源存储信息一致,则确定源盘信息校验通过。

步骤506,向目的存储仓库发送目的盘创建请求。

校验通过后,向迁移任务的目的端主机发送创建目的云硬盘的请求,请求中携带有目的云硬盘的目的盘信息,如:目的盘名称、目的盘标识、目的盘尺寸等信息。

步骤507,响应于接收到创建成功响应,确定目的云硬盘创建成功。

创建成功响应为目的端主机中创建目的云硬盘,并设置为迁移状态后,反馈的响应消息。

步骤508,由第一代理服务和第二代理服务切换至中转代理服务。

通过中转代理服务在迁移过程中接收对源端云硬盘和目的云硬盘的输入输出请求。也即,在数据迁移过程中,也能够通过中转代理服务接收输入数据请求,并根据输入输出请求的具体请求要求,确定在源端云硬盘和目的云硬盘中的读写操作。

可选地,根据迁移任务,向中转代理服务发送迁移任务信息,迁移任务信息中包括源盘信息和目的盘信息,迁移任务信息用于指示中转代理服务代理源端云硬盘和目的云硬盘的输入输出请求。

迁移控制服务器收到中转代理服务反馈的响应后,通知源盘的第一代理服务将链路切换到中转代理服务上,通知请求携带中转代理服务器的ip地址;此时kvm的代理服务agent会向中转代理服务申请建立链接,中转代理服务后续再收到该代理服务agent的登录请求时,会直接拒绝,以防止中转代理服务检测到故障,代理服务agent本应该切回第一代理服务,但又切回代理服务而做的异常保护。代理服务agent切换成功后,来自用户的io请求就通过中转代理服务向下层存储传递。

步骤509,根据迁移任务,对源端数据进行迁移。

在对源端数据进行迁移时,以数据块(block)为迁移粒度进行迁移。也即,将源端数据划分为n个数据块,每个数据块对应有数据块状态,n为正整数,向中转代理服务器发送对第i个数据块进行迁移的迁移请求,该迁移请求中包括第i个数据块的数据块状态,中转代理服务器用于对数据块状态进行验证。中转代理服务器对数据块状态进行验证后,向迁移控制服务器反馈迁移响应,迁移响应为对第i个数据块进行迁移验证后反馈的响应消息,根据迁移响应对第i个数据块进行迁移。

中转代理服务在接收到迁移任务信息后,将源端云硬盘按block指定大小进行block划分,并初始化所有block的数据块状态。示意性的,按1mb粒度将源端云硬盘逻辑地址划分一组block进行状态管理。

综上所述,本实施例提供的方法,通过设置中转代理服务器,在数据迁移过程中,取消通过第一代理服务对源端云硬盘进行代理,以及取消通过第二代理服务对目的云硬盘进行代理,从而在数据迁移过程中接收输入输出请求,并根据数据块状态进行数据的读写操作,提高了数据迁移过程的灵活性,避免在数据迁移过程中需要停止读写业务而导致的数据迁移过程复杂,迁移效率较低的问题。

本实施例提供的方法,通过对源盘信息的校验,避免在数据迁移的设定过程中,由于数据迁移主机中数据发生错误而导致迁移的源盘信息和目的盘信息出现错误的问题,提高了数据迁移的成功率,减少了数据迁移设定失败的问题。

示意性的,如图6所示,其示出了本申请一个示例性实施例提供的迁移任务创建的整体流程图,如图6所示,该过程中包括:

步骤601,数据迁移主机向迁移控制服务器提交迁移任务。

其中,迁移任务的信息中包括源盘信息和目的盘信息,迁移任务的信息用于指示迁移控制服务器在本地数据库中持久化创建迁移任务。

步骤602,迁移控制服务器创建迁移任务。

也即,迁移控制服务器在本地数据库中持久化创建迁移任务。

步骤603,迁移控制服务器向数据迁移主机提交迁移任务响应。

迁移任务响应用于向数据迁移主机指示,当前迁移控制服务器中已在数据库中持久化创建该迁移任务。

步骤604,迁移控制服务器向源端主机查询源盘信息。

迁移控制服务器根据源端主机的ip地址,向源端主机获取源端云硬盘的源盘信息,从而对数据迁移主机发送的源盘信息进行校验。

步骤605,源端主机向迁移控制服务器返回源盘信息。

步骤606,迁移控制服务器校验数据迁移主机发送的源盘信息。

也即,将数据迁移主机发送的源盘信息与源端主机返回的源盘信息进行一致性校验。

步骤607,在目的端主机中创建目的云硬盘。

也即,根据目的盘信息,以及目的端主机的ip地址,在目的端主机中创建目的云硬盘,用于接收并存储源端云硬盘中的源端数据。

步骤608,迁移控制服务器接收目的端主机返回的创盘响应。

创盘响应为目的端主机中创建目的云硬盘,并将目的云硬盘设置为迁移状态后,反馈的响应消息。

步骤609,向中转代理服务器同步迁移任务信息。

迁移任务信息中包括源盘信息和目的盘信息,用于指示中转代理服务器代理源端云硬盘和目的云硬盘的io请求。

步骤610,中转代理服务器初始化所有数据块状态。

中转代理服务器接收到迁移任务信息后,将源端云硬盘按block指定大小进行block划分,并初始化所有block的数据块状态。示意性的,按1mb粒度将源端云硬盘逻辑地址划分一组block进行状态管理。

步骤611,中转代理服务器向迁移控制服务器同步迁移任务响应。

迁移任务响应用于指示中转代理服务器开始对源端数据的迁移。

步骤612,迁移控制服务器通知虚拟机代理服务器切换至中转代理服务器。

也即,通过虚拟机代理服务器通过中转代理服务器传递用户的io请求。

步骤613,虚拟机代理服务器切换至中转代理服务器。

步骤614,虚拟机代理服务器向迁移控制服务器返回切换响应。

在一个可选的实施例中,数据块状态包括初始化状态、迁移状态、写保护状态、同步完成状态中的任意一种,图7是本申请另一个示例性实施例提供的数据迁移方法的流程图,以该方法应用于迁移控制服务器中为例,如图7所示,该方法包括:

步骤701,获取源端云硬盘的源盘信息和目的云硬盘的目的盘信息,源端云硬盘对应有第一代理服务,目的云硬盘对应有第二代理服务。

第一代理服务用于接收对源端云硬盘的输入输出请求,第二代理服务用于接收对目的云硬盘的输入输出请求。

源盘信息中包括:源端主机的ip地址、源端主机版本号、云硬盘信息中的至少一种,其中,云硬盘信息包括:标识号、硬盘尺寸、云硬盘所属的分组等。

目的盘信息中包括:目的端主机的ip地址、目的端主机版本号、云硬盘信息中的至少一种,其中,云硬盘信息包括:标识号、硬盘尺寸、云硬盘所属的分组等。

步骤702,根据源盘信息和目的盘信息建立迁移任务。

该迁移任务用于指示将源端云硬盘中的源端数据迁移至目的云硬盘。

迁移控制服务器在接收到数据迁移主机发送的源盘信息和目的盘信息后,在本地构建迁移任务。

构建完毕迁移任务后,向数据迁移主机提交迁移任务响应,用于指示迁移控制服务器已完成迁移任务的初步构建。

步骤703,根据迁移任务,由第一代理服务和第二代理服务切换至中转代理服务。

通过中转代理服务器接收对源端云硬盘和目的云硬盘的输入输出请求。也即,在数据迁移过程中,也能够通过中转代理服务器接收输入数据请求,并根据输入输出请求的具体请求要求,确定在源端云硬盘和目的云硬盘中的读写操作。

步骤704,将源端数据划分为n个数据块,n为正整数。

将源端云硬盘按block指定大小进行block划分,划分得到n个数据块,并初始化所有block的数据块状态。示意性的,按1mb粒度将源端云硬盘逻辑地址划分一组block进行状态管理。

数据块对应有数据块状态。其中,数据块状态包括初始化状态、迁移状态、写保护状态、同步完成状态中的任意一种。

示意性的,图8是本申请一个示例性实施例提供的状态迁移图,如图8所示,其中包括初始化状态810、迁移状态820、写保护状态830和同步完成状态840;其中,状态迁移形式包括:

1、由初始化状态810切换至写保护状态830,也即初始化状态810只写源端存储仓库,响应于写请求,切换至写保护状态830;

2、由写保护状态830切换至初始化状态810,也即写保护状态830下只写入源端存储仓库,写请求计数清零后,切换至初始化状态810,该状态可重入;

3、由初始化状态810切换至迁移状态820,即迁移状态820写请求要暂时悬挂住;初始化状态810响应迁移控制服务器的锁定请求,切换至迁移状态820;

4、由迁移状态820切换至初始化状态810,即迁移状态820心跳超时或收到解锁请求,恢复初始化状态810,该状态可重入;

5、有迁移状态820切换至同步完成状态840,即迁移状态820响应迁移控制服务器的同步完成请求,切换至同步完成状态840。

可选地,同步完成状态840下,用户写入需同时更新源和目的存储系统,该状态可重入。

步骤705,向中转代理服务发送对第i个数据块进行迁移的迁移请求。

该迁移请求中包括第i个数据块的数据块状态,中转代理服务用于对数据块状态进行验证。

可选地,第i个数据块为迁移控制服务器所选择的未迁移的数据块。

由于中转代理服务器在根据迁移请求验证第i个数据块的数据块状态后,会向迁移控制服务器返回更新后的数据块状态,或,验证失败的数据块状态,从而迁移控制服务器中对数据块状态进行对应的更新,根据更新结果,从数据块中选择尚未迁移的数据块进行迁移请求。

迁移请求中还包括第i个数据块的逻辑区块地址(logicalblockaddress,lba)。

步骤706,接收中转代理服务反馈的迁移响应。

迁移响应包括请求失败响应和请求成功响应中的任意一种。其中,接收迁移响应包括如下情况中的任意一种:

第一,接收中转代理服务反馈的第一请求失败响应,第一请求失败响应中包括同步完成状态,第一请求失败响应用于指示第i个数据块处于同步完成状态;

也即,在迁移控制服务器中,第i个数据块的数据块状态并非同步完成状态,而在中转代理服务中,该第i个数据块的数据块状态为同步完成状态,从而两侧状态不一致,为提高异常响应准确率,向迁移控制服务器反馈第一请求失败响应。

第二,接收中转代理服务反馈的第二请求失败响应,第二请求失败响应中包括写保护状态,第二请求失败响应用于指示第i个数据块处于写保护状态;

第三,接收中转代理服务反馈的第一请求成功响应,第一请求成功响应为第i个数据块处于迁移状态时,中转代理服务验证通过后反馈的响应;

第四,接收中转代理服务反馈的第二请求成功响应,第二请求成功响应为第i个数据块处于初始化状态时,中转代理服务验证通过,并将初始化状态更新为迁移状态后反馈的响应。

步骤707,根据迁移响应对第i个数据块进行迁移。

可选地,针对上述四种迁移响应,在迁移控制服务器在对第i个数据块进行处理时,包括如下方式中的任意一种:

第一,响应于接收到第一请求失败响应,由中转代理服务切换回第一代理服务,并结束迁移过程;

第二,响应于接收到第二请求失败响应,暂停对第i个数据块的迁移,选择其他数据块向中转代理服务请求迁移;

第三,响应于接收到第一请求成功响应或第二请求成功响应,继续对第i个数据块的迁移,并在云硬盘数据迁移完毕后,切换至第二代理服务。

如果接收到请求失败响应,先检查返回状态;如果是写保护状态,则暂时放弃该block迁移,继续选择一个block开始迁移;否则将迁移任务置为失败状态,通知虚拟机的代理服务器切回第一代理服务器,通知中转代理服务器清理任务信息,流程结束;

如果请求成功,则开始向源盘读该block数据,并写入目的block数据;

如果读源盘失败,则本次迁移任务失败,迁移控制服务器将本地任务置为失败状态,虚拟机的代理服务器切回第一代理服务器,通知中转代理服务器清理同步任务信息;

如果写目的盘失败,则本次迁移任务失败,迁移控制服务器将本地任务置为失败状态,虚拟机的代理服务器切回第一代理服务器,通知中转代理服务器清理同步任务信息;如果都成功,该block迁移完成;迁移控制服务器向中转代理服务器请求更新block状态为同步完成状态。

数据块迁移完成后,中转代理服务器会收到迁移控制服务器请求将block迁移为同步完成状态;

如果本地block状态为迁移中状态或者同步完成状态,则更新成功,向迁移控制服务器反馈响应成功;如果本地该block状态是初始化装调或者写保护状态,则向迁移控制服务器返回更新失败,并带回本地最新状态信息。

迁移控制服务器如果收到更新成功响应,则继续迁移下一个block,直到所有block迁移完成后进入迁移任务清理流程。否则,置任务状态为失败状态,任务结束。

示意性的,图9是本申请一个示例性实施例提供的状态迁移过程的整体流程图,如图9所示,该过程由迁移控制服务器910和中转代理服务器920完成。其中,该过程包括:

迁移控制服务器910选择一个未迁移的block;向中转代理服务器920发送block的迁移请求,中转代理服务器920检查block状态。

若block状态为写保护状态,则返回block状态,迁移控制服务器910暂时放弃对该block的迁移,选择其他block迁移,稍后再尝试迁移该block。

若block状态为同步完成状态,则返回block状态,迁移控制服务器910将迁移任务设置为失败状态。

若block状态为初始化状态,则中转代理服务器920将block状态设置为迁移状态,返回当前block状态(迁移状态),迁移控制服务器910完成block迁移,并向中转代理服务器920设置block状态,中转代理服务器920将block状态设置为同步完成状态并向迁移控制服务器910返回当前状态(同步完成状态)。

若block状态为迁移状态,则直接返回block状态。

综上所述,本实施例提供的方法,通过设置中转代理服务器,在数据迁移过程中,取消通过第一代理服务对源端云硬盘进行代理,以及取消通过第二代理服务对目的云硬盘进行代理,从而在数据迁移过程中接收输入输出请求,并根据数据块状态进行数据的读写操作,提高了数据迁移过程的灵活性,避免在数据迁移过程中需要停止读写业务而导致的数据迁移过程复杂,迁移效率较低的问题。

本实施例提供的方法,通过设置数据块状态,针对不同的数据块状态进行不同方式的响应,从而控制数据迁移过程中的读写有序完成,提高了数据迁移过程中的数据交互效率。

在数据迁移后,还包括清理流程,示意性的,请参考图10,其示出了本申请一个示例性实施例提供的迁移流程清理的流程图,如图10所示,有迁移控制服务器1010、源端主机1020、目的端主机1030、代理服务器1040、中转代理服务器1050以及第二代理服务器1060完成。如图10所示,该过程中包括:

迁移控制服务器1010迁移完所有block后,首先向源端主机1020查询盘信息,检查盘的状态和容量是否变更;如果变更,则迁移控制服务器1010通知代理服务器1040切回第一代理服务器,并将任务置为失败状态;迁移控制服务器1010通知中转代理服务器1050取消迁移任务。若未变更,则迁移控制服务器1010通知目的端主机130添加代理服务器1040母机;添加成功后再向第二代理服务器1060同步母机ip;这样第二代理服务器1060就能够接受母机的io请求。

迁移控制服务器1010通知代理服务器1040切换到第二代理服务器1060;只要代理服务器1040切换成功任务即成功,后续步骤失败都不影响任务状态;切换失败,则任务失败,后续走任务清理流程。

迁移控制服务器1010更新数据库中盘标识对应的仓库信息;迁移完成后,盘对应的仓库信息有变更,所以此处需要更新数据库中盘对应的仓库信息。代理服务器1040切换成功后,迁移控制服务器1010通知源端主机1020先卸载盘,然后删除源盘。迁移控制服务器1010通知中转代理服务器1050清理迁移任务信息;如果此处中转代理服务器1050通知失败,可以通过感知代理服务器1040切走以自动清理任务,确保不会有垃圾数据。

图11是本申请一个示例性实施例提供的数据迁移装置的结构框图,如图11所示,该装置包括:

获取模块1110,用于获取源端云硬盘的源盘信息和目的云硬盘的目的盘信息,所述源端云硬盘对应有第一代理服务,所述目的云硬盘对应有第二代理服务,所述第一代理服务用于接收对所述源端云硬盘的输入输出请求,所述第二代理服务用于接收对所述目的云硬盘的输入输出请求;

建立模块1120,用于根据所述源盘信息和所述目的盘信息建立迁移任务,所述迁移任务用于指示将源端云硬盘中的源端数据迁移至所述目的云硬盘;

切换模块1130,用于根据所述迁移任务,由所述第一代理服务和所述第二代理服务切换至中转代理服务,通过所述中转代理服务接收对所述源端云硬盘和所述目的云硬盘的输入输出请求;

迁移模块1140,用于根据所述中转代理服务器,对所述源端数据进行迁移。

在一个可选的实施例中,如图12所示,所述迁移模块1140,包括:

划分单元1141,用于将所述源端数据划分为n个数据块,所述数据块对应有数据块状态,n为正整数;

发送单元1142,用于向所述中转代理服务发送对第i个数据块进行迁移的迁移请求,所述迁移请求中包括所述第i个数据块的所述数据块状态,所述中转代理服务用于对所述数据块状态进行验证;

接收单元1143,用于接收所述中转代理服务反馈的迁移响应,所述迁移响应为对所述第i个数据库进行迁移验证后反馈的响应消息;

迁移单元1144,用于根据所述迁移响应对所述第i个数据块进行迁移。

在一个可选的实施例中,所述数据块状态包括初始化状态、迁移状态、写保护状态、同步完成状态中的任意一种;

所述接收单元1143,还用于接收所述中转代理服务反馈的第一请求失败响应,所述第一请求失败响应中包括所述同步完成状态,所述第一请求失败响应用于指示所述第i个数据块处于所述同步完成状态;

或,

所述接收单元1143,还用于接收所述中转代理服务反馈的第二请求失败响应,所述第二请求失败响应中包括所述写保护状态,所述第二请求失败响应用于指示所述第i个数据块处于所述写保护状态;

或,

所述接收单元1143,还用于接收所述中转代理服务反馈的第一请求成功响应,所述第一请求成功响应为所述第i个数据块处于所述迁移状态时,所述中转代理服务验证通过后反馈的响应;

或,

所述接收单元1143,还用于接收所述中转代理服务反馈的第二请求成功响应,所述第二请求成功响应为所述第i个数据块处于所述初始化状态时,所述中转代理服务验证通过,并将所述初始化状态更新为所述迁移状态后反馈的响应。

在一个可选的实施例中,所述迁移单元1144,还用于响应于接收到所述第一请求失败响应,由所述中转代理服务切换回所述第一代理服务,并结束迁移过程;

所述迁移单元1144,还用于响应于接收到所述第二请求失败响应,暂停对所述第i个数据块的迁移,选择其他数据块向所述中转代理服务请求迁移。

在一个可选的实施例中,所述迁移单元1144,还用于响应于接收到所述第一请求成功响应或所述第二请求成功响应,继续对所述第i个数据块的迁移,并在所述云硬盘数据迁移完毕后,切换至所述第二代理服务。

在一个可选的实施例中,所述源端云硬盘存储于源端存储仓库;

所述获取模块1110,还用于从所述源端存储仓库获取所述源端云硬盘的源存储信息;将所述源存储信息与所述源盘信息进行验证匹配;响应于所述源盘信息符合所述源存储信息,确定所述源盘信息校验通过。

在一个可选的实施例中,所述迁移模块1140,还用于向目的存储仓库发送目的盘创建请求,所述目的存储仓库用于根据所述目的盘创建请求创建所述目的云硬盘;响应于接收到创建成功响应,确定所述目的云硬盘创建成功。

在一个可选的实施例中,所述切换模块1130,还用于根据所述迁移任务,向所述中转代理服务发送迁移任务信息,所述迁移任务信息中包括所述源盘信息和所述目的盘信息,所述迁移任务信息用于指示所述中转代理服务代理所述源端云硬盘和所述目的云硬盘的输入输出请求。

综上所述,本实施例提供的装置,通过设置中转代理服务器,在数据迁移过程中,取消通过第一代理服务对源端云硬盘进行代理,以及取消通过第二代理服务对目的云硬盘进行代理,从而在数据迁移过程中接收输入输出请求,并根据数据块状态进行数据的读写操作,提高了数据迁移过程的灵活性,避免在数据迁移过程中需要停止读写业务而导致的数据迁移过程复杂,迁移效率较低的问题。

需要说明的是:上述实施例提供的数据迁移装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据迁移装置与数据迁移方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图13示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:

服务器1300包括中央处理单元(centralprocessingunit,cpu)1301、包括随机存取存储器(randomaccessmemory,ram)1302和只读存储器(readonlymemory,rom)1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。服务器1300还包括用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1306。

大容量存储设备1306通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。大容量存储设备1306及其相关联的计算机可读介质为服务器1300提供非易失性存储。也就是说,大容量存储设备1306可以包括诸如硬盘或者紧凑型光盘只读存储器(compactdiscreadonlymemory,cd-rom)驱动器之类的计算机可读介质(未示出)。

不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、带电可擦可编程只读存储器(electricallyerasableprogrammablereadonlymemory,eeprom)、闪存或其他固态存储其技术,cd-rom、数字通用光盘(digitalversatiledisc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1306可以统称为存储器。

根据本申请的各种实施例,服务器1300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1300可以通过连接在系统总线1305上的网络接口单元1311连接到网络1312,或者说,也可以使用网络接口单元1311来连接到其他类型的网络或远程计算机系统(未示出)。

上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由cpu执行。

本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的指纹文件的存储方法。

本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的指纹文件的存储方法。

本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的指纹文件的存储方法。

可选地,该计算机可读存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、固态硬盘(ssd,solidstatedrives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(reram,resistancerandomaccessmemory)和动态随机存取存储器(dram,dynamicrandomaccessmemory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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