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

专利2022-06-29  66


本申请涉及计算机技术领域,尤其涉及数据迁移技术领域。



背景技术:

服务在容器内运行越来越成为主流,分布式存储系统也不例外。但对于已经保存海量数据的物理机存量存储服务,需要考虑可用性、稳定性、用户无感等,切换过程较为复杂。这个时候,单机原地从物理机运行模式切换至容器内运行往往更加高效(避免数据的跨网络移动)。而存储系统作为有状态服务,这个单机切换过程通常要:服务的迁移以及服务状态(数据)的迁移。对于服务的迁移,通常需要进行物理机和容器模式服务进程的启停操作;而对于服务状态(数据)的迁移,通常需要在单机范围内移动数据。对于拥有众多节点的集群而言,通常会有一个中心协调者,利用rpc(remoteprocedurecall,远程过程调用)命令来调度单机切换任务。单机切换过程中,单机数据迁移涉及众多数据,是重中之重。这就对单机数据迁移提出了一些要求:

集群中涉及大量线上数据节点,需要单机迁移过程可以紧急回滚;单个数据节点中涉及大量用户数据,需要数据迁移安全可靠;单点迁移可能存在失败,迁移过程需要可重入;中心协调者和数据节点通过远程rpc通信,有概率出现网络抖动,同步阻塞调用很容易出现失败,另一方面,协调者往往需要操作众多的节点,故需要支持异步模式。

现有技术中对于单机上的数据迁移,通常会调用文件系统的移动接口,进行数据移动操作。现有的数据迁移方法安全性较低,且迁移效率不高,在需要迁移大量文件时操作线上数据的风险系数较高。



技术实现要素:

本申请提供一种数据迁移方法、装置、设备及存储介质,以提高单机上数据迁移过程的安全性和迁移效率。

本申请第一个方面提供一种数据迁移方法,包括:

对待迁移数据进行校验,获取第一校验信息;

在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致;

若所述新目录项对应数据与所述待迁移数据一致,则清理所述待迁移数据在迁移前的源目录项。

本实施例中通过创建硬链接的方式实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险。

在一种可能的设计中,所述第一校验信息包括所述待迁移数据迁移前的存储结构和/或校验码,其中所述校验码为迁移前的源目录项对应的索引节点号或通过校验算法对待迁移数据获取的校验码;

所述第二校验信息包括所述待迁移数据迁移后的存储结构和/或校验码,所述校验码为新目录项对应的索引节点号或通过校验算法对所述新目录项对应数据获取的校验码;

所述对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致,包括:

对比所述第一校验信息与所述第二校验信息是否相同。

在一种可能的设计中,所述对待迁移数据进行校验前,还包括:

检测数据迁移环境;

判断所述数据迁移环境是否满足预设条件。

在一种可能的设计中,所述方法还包括:

通过状态机实时记录在数据迁移过程中当前所处阶段。

在一种可能的设计中,所述方法还包括:

当数据迁移过程发生中断且接收到重入指令时,根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入。

在一种可能的设计中,所述根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入,包括:

若当前所处阶段处于创建硬链接之前,则重头执行整个数据迁移过程;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项后重头执行整个数据迁移过程;

若当前所处阶段处于清理源目录项过程,则继续执行清理源目录项过程;

若当前所处阶段处于已完成清理源目录项过程,则返回已迁移成功的提示信息。

在一种可能的设计中,所述方法还包括:

当接收到回滚指令时,根据所述状态机中的当前所处阶段对数据迁移过程进行回滚。

在一种可能的设计中,所述根据所述状态机中的当前所处阶段对数据迁移过程进行回滚,包括:

若当前所处阶段处于创建硬链接之前,则返回回滚完成的提示信息;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项;

若当前所处阶段处于清理源目录项过程或已完成清理源目录项过程,则将在所述待迁移数据迁移前的源目录中通过创建硬链接重新创建源目录项,经校验过程后删除所述待迁移数据的新目录项。

在一种可能的设计中,所述待迁移数据包括多个数据,所述方法还包括:

通过异步方式对多个数据进行数据迁移过程,并由调度设备通过轮询方式获取每一数据迁移过程的状态;

根据所述数据迁移过程的状态对任一数据迁移过程进行控制。

本申请第二个方面提供一种数据迁移装置,包括:

校验模块,用于对待迁移数据进行校验,获取第一校验信息;

迁移模块,用于在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

所述校验模块还用于根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致;

清理模块,用于若所述新目录项对应数据是否与所述待迁移数据一致,则清理所述待迁移数据在迁移前的源目录项。

在一种可能的设计中,所述第一校验信息包括所述待迁移数据迁移前的存储结构和/或校验码,其中所述校验码为迁移前的源目录项对应的索引节点号或通过校验算法对待迁移数据获取的校验码;

所述第二校验信息包括所述待迁移数据迁移后的存储结构和/或校验码,所述校验码为新目录项对应的索引节点号或通过校验算法对所述新目录项对应数据获取的校验码;

所述校验模块在对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致时,用于:

对比所述第一校验信息与所述第二校验信息是否相同。

在一种可能的设计中,所述装置还包括检测模块,用于:

在对待迁移数据进行校验前,检测数据迁移环境;

判断所述数据迁移环境是否满足预设条件。

在一种可能的设计中,所述装置还包括状态记录模块,用于:

通过状态机实时记录在数据迁移过程中当前所处阶段。

在一种可能的设计中,所述装置还包括重入控制模块,用于:

当数据迁移过程发生中断且接收到重入指令时,根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入。

在一种可能的设计中,所述重入控制模块在根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入时,用于:

若当前所处阶段处于创建硬链接之前,则重头执行整个数据迁移过程;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项后重头执行整个数据迁移过程;

若当前所处阶段处于清理源目录项过程,则继续执行清理源目录项过程;

若当前所处阶段处于已完成清理源目录项过程,则返回已迁移成功的提示信息。

在一种可能的设计中,所述装置还包括回滚控制模块,用于:

当接收到回滚指令时,根据所述状态机中的当前所处阶段对数据迁移过程进行回滚。

在一种可能的设计中,所述回滚控制模块在根据所述状态机中的当前所处阶段对数据迁移过程进行回滚时,用于:

若当前所处阶段处于创建硬链接之前,则返回回滚完成的提示信息;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项;

若当前所处阶段处于清理源目录项过程或已完成清理源目录项过程,则将在所述待迁移数据迁移前的源目录中通过创建硬链接重新创建源目录项,经校验过程后删除所述待迁移数据的新目录项。

在一种可能的设计中,所述待迁移数据包括多个数据,所述装置还包括调度模块,用于:

通过异步方式对多个数据进行数据迁移过程,并由调度设备通过轮询方式获取每一数据迁移过程的状态;

根据所述数据迁移过程的状态对任意数据迁移过程进行控制。

本申请第三个方面提供一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。

本申请第四个方面提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法。

本申请第五个方面提供一种计算机程序,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如第一方面所述的方法。

本申请第六个方面提供一种数据迁移方法,包括:

在目标目录中对待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

清理所述待迁移数据在迁移前的源目录项。

上述申请中的一个实施例具有如下优点或有益效果:通过对待迁移数据进行校验,获取第一校验信息;在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致,若一致,则清理所述待迁移数据在迁移前的源目录项。本申请实施例中通过创建硬链接的方式实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险。此外,数据迁移过程可重入、可回滚、可异步,且适用于大量文件的迁移,极大的简化了集群节点数据迁移的方案设计,不需要频繁考虑迁移过程中的服务稳定性、调度节点和迁移节点rpc调用失败等问题。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

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

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

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

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

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

图6是用来实现本申请实施例的数据迁移方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

对于单机切换过程中,单机数据迁移涉及众多数据,是重中之重。这就对单机数据迁移提出了一些要求:集群中涉及大量线上数据节点,需要单机迁移过程可以紧急回滚;单个数据节点中涉及大量用户数据,需要数据迁移安全可靠;单点迁移可能存在失败,迁移过程需要可重入;中心协调者和数据节点通过远程rpc通信,有概率出现网络抖动,同步阻塞调用很容易出现失败,另一方面,协调者往往需要操作众多的节点,故需要支持异步模式。

而现有技术中通过调用文件系统的移动接口来实现单机上的数据迁移,通常无法满足上述要求,因此本实施例中提供了一种数据迁移方法,通过创建硬链接的方式实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险,此外数据迁移过程可重入、可回滚、可异步,且适用于大量文件的迁移。下面将结合具体实施例对数据迁移过程进行详细介绍。

本申请一实施例提供一种数据迁移方法,图1为本发明实施例提供的数据迁移方法流程图。如图1所示,所述数据迁移方法具体步骤如下:

s101、对待迁移数据进行校验,获取第一校验信息。

在本实施例中,在迁移数据前,可先对待迁移数据进行校验,获取第一校验信息,其中第一校验信息用于在后续对迁移后的数据进行校验,以验证迁移后的数据与待迁移数据的原数据一致,可包括内容一致和/或存储结构一致等。

可选的,所述第一校验信息可包括所述待迁移数据迁移前的存储结构和/或校验码,其中所述校验码为迁移前的源目录项对应的索引节点号(inode)或通过校验算法对待迁移数据获取的校验码。

本实施例中存储结构具体例如该待迁移数据的存储目录树,包括其父节点、子节点、兄弟节点之间的关系等;校验码则可以为该待迁移数据迁移前在源目录中的源目录项对应的inode号,其中inode用于存放待迁移数据及其所在目录的基本信息(如数据字节数、读写权限、存储位置等),若两个数据的inode号相同则说明这两个数据为同一数据;校验码还可以为通过md5、sha1、sha256等校验算法对待迁移数据进行处理后得到的校验码,也即md5值、sha1值、sha256值,若两个数据的md5值、sha1值或sha256值相同则说明这两个数据内容一致。当然本实施例还可采用其他的校验方法,此处不再赘述。

s102、在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项。

在本实施例中,需要将待迁移数据迁移到某一容器或者其他位置时,以该容器或者其他位置对应的数据目录为目标目录,本实施例通过在目标目录中对待迁移数据创建硬链接,从而得到待迁移数据的新目录项,其中硬链接的概念为,让多个不在或者同在一个目录下的数据名,同时能够修改同一个数据,其中一个修改后所有与其有硬链接的数据都一起修改了,也即本实施例中在目标目录中通过新目录项可以链接到待迁移数据,而此时并不影响该待迁移数据在源目录中的源目录项。本实施例中通过硬链接的方式进行数据迁移,并不需要将待迁移数据改变其在物理磁盘上的存储位置。

s103、根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致。

在本实施例中,当完成硬链接的创建后,如果硬链接正确的话,新目录项对应数据应该为待迁移数据,此时可参照s101对新目录项对应数据获取第二校验信息,同样的,与第一校验信息对应的,所述第二校验信息可包括所述待迁移数据迁移后的存储结构和/或校验码,所述校验码为新目录项对应的索引节点号或通过校验算法对所述新目录项对应数据获取的校验码,具体此处不再赘述。

在本实施例中,若第二校验信息与第一校验信息相符,则可说明新目录项对应数据与待迁移数据一致,也即判断迁移后的数据是否与迁移前的数据一致。本实施例中可对比第一校验信息与第二校验信息是否相同,若相同,则说明两数据一致,可选的,本实施例通过比较两数据的inode号,可快捷高效的判断数据是否一致,或者比较两数据的md5值、sha1值或sha256值,可更准确的判断数据内容是否一致。

s104、若所述新目录项对应数据与所述待迁移数据一致,则清理所述待迁移数据在迁移前的源目录项。

在本实施例中,当判断新目录项对应数据与所述待迁移数据一致时,才清理所述待迁移数据在迁移前的源目录项,从而完成整个数据迁移过程,增加数据迁移的安全性和可靠性。

本实施例提供的数据迁移方法,通过对待迁移数据进行校验,获取第一校验信息;在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致,若一致,则清理所述待迁移数据在迁移前的源目录项。本实施例中通过创建硬链接的方式实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险。

本申请另一实施例提供一种数据迁移方法,如图2所示,在上述实施例的基础上,所述数据迁移方法具体步骤如下:

s201、检测数据迁移环境;判断所述数据迁移环境是否满足预设条件。

在本实施例中,首先检查基础环境,例如检查待迁移数据所在存储节点的状态(能否正常工作)、且当前存储服务是否已经停止,为了避免待迁移数据在迁移过程中发生改变,因此需要当前存储服务停止,才能进行数据迁移。当存储节点状态符合预期、且当前存储服务已经停止,可直接执行后续的s202-s205;当存储节点状态符合预期,但当前存储服务未停止,则可进行状态保存、停止当前存储服务,然后再执行后续的s202-s205。

s202、当所述数据迁移环境满足预设条件时,对待迁移数据进行校验,获取第一校验信息;

s203、在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

s204、根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致;

s205、若所述新目录项对应数据与所述待迁移数据一致,则清理所述待迁移数据在迁移前的源目录项。

在本实施例中s202-s205同上述实施例中的s101-s104,其原理及技术效果此处不再赘述。

在上述任一实施例的基础上,所述方法还包括:

通过状态机实时记录在数据迁移过程中当前所处阶段。

在本实施例中,在进行上述实施例s101-s104或s201-s205的数据迁移过程中的每一步骤时,可通过状态机实时记录在数据迁移过程中当前所处阶段,例如,当前执行到s101时可记录当前所处阶段为迁移前数据校验阶段;当执行到s102时可记录当前所处阶段为创建硬链接阶段;当执行到s103时可记录当前所处阶段为创建硬链接后的校验过程阶段;当执行到s104时可记录当前所处阶段为清理源目录项过程阶段。

在上述实施例的基础上,本实施例还提供在数据迁移过程发生中断(或迁移失败)后重入的方案,具体如下:

当数据迁移过程发生中断且接收到重入指令时,根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入。

在本实施例中,当数据迁移过程发生中断时,用户可控制对数据迁移过程进行重入,在接收到用户的重入指令后,可从状态机获取中断时刻当前所处阶段,进而根据中断时刻当前所处阶段的不同,采取不同的重入方式。

可选的,若当前所处阶段处于创建硬链接之前,则重头执行整个数据迁移过程。其中创建硬链接之前包括迁移前数据校验阶段和/或检测数据迁移环境阶段,也即中断前并未创建新目录项,重入时可直接从头执行整个数据迁移过程,也即重新执行s101-s104或s201-s205。

可选的,若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项后重头执行整个数据迁移过程。由于重入时的待迁移数据可能已经发生变化,与中断前的待迁移数据不同,因此需要删除待迁移数据的新目录项后重新执行整个数据迁移过程,也即重新执行s101-s104或s201-s205,保证迁移前后数据相同。

可选的,若当前所处阶段处于清理源目录项过程,则继续执行清理源目录项过程。由于中断前已创建硬链接,新目录项已能够链接到数据位置,此时只需继续执行清理步骤即可。

可选的,若当前所处阶段处于已完成清理源目录项过程,则返回已迁移成功的提示信息。当中断前已完成了清理源目录项过程,也即执行完了s101-s104或s201-s205,此时重入则不需要再次执行s101-s104或s201-s205任意步骤,可直接返回已迁移成功的提示信息。

在上述任一实施例的基础上,本实施例还提供回滚的方案,具体如下:

当接收到回滚指令时,根据所述状态机中的当前所处阶段对数据迁移过程进行回滚。

在本实施例中,在数据迁移过程中或者数据迁移完成后,若需要回滚,则可状态机中获取当前所处阶段,进而根据当前所处阶段的不同,采取不同的回滚方式。

可选的,若当前所处阶段处于创建硬链接之前,则返回回滚完成的提示信息。其中创建硬链接之前包括迁移前数据校验阶段和/或检测数据迁移环境阶段,也即此时并未创建新目录项,回滚时只需要返回回滚完成的提示信息即可。

可选的,若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项。由于此时已创建新目录项,但未删除迁移前的源目录项,回滚时删除待迁移数据的新目录项即可。

可选的,若当前所处阶段处于清理源目录项过程或已完成清理源目录项过程,则将在所述待迁移数据迁移前的源目录中通过创建硬链接重新创建源目录项,经校验过程后删除所述待迁移数据的新目录项。由于此时已创建新目录项,且已删除迁移前的源目录项,因此可参照s101-s104或s201-s205的过程,对迁移后的数据进行再次迁移,迁移回原位置,也即在源目录中通过创建硬链接重新创建该数据的源目录项,经校验过程后删除待迁移数据在目标目录中的新目录项。

在上述任一实施例的基础上,所述待迁移数据包括多个数据,如图3所示,所述方法还包括:

s301、通过异步方式对多个数据进行数据迁移过程,并由调度设备通过轮询方式获取每一数据迁移过程的状态;

s302、根据所述数据迁移过程的状态对任一数据迁移过程进行控制。

在本实施例中,当存在多个数据迁移任务时,可通过一个中心协调者(调度设备)依次启动各数据的迁移任务,以异步方式进行各数据迁移过程,每一数据迁移过程中均实时记录迁移过程的状态,并由调度设备通过轮询方式获取每一数据迁移过程的状态,其中迁移过程的状态可包括迁移过程中、迁移成功、迁移失败,进而可根据数据迁移过程的状态对任一数据迁移过程进行控制,例如,若某一数据迁移过程的状态长时间处于迁移过程中(超过预设阈值),则可暂停或者中断后重入,可提高迁移过程抗网络抖动能力,避免出现同步阻塞,也便于对多个迁移任务高效的管理和调度。

上述任一实施例提供的数据迁移方法,可实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险。此外,数据迁移过程可重入、可回滚、可异步,且适用于大量文件的迁移,极大的简化了集群节点数据迁移的方案设计,不需要频繁考虑迁移过程中的服务稳定性、调度节点和迁移节点rpc调用失败等问题。

本申请一实施例提供一种数据迁移装置,图4为本发明实施例提供的数据迁移装置的结构图。如图4所示,所述数据迁移装置400具体包括:校验模块401、迁移模块402及清理模块403。

校验模块,用于对待迁移数据进行校验,获取第一校验信息;

迁移模块,用于在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

所述校验模块还用于根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致;

清理模块,用于若所述新目录项对应数据是否与所述待迁移数据一致,则清理所述待迁移数据在迁移前的源目录项。

在一种可能的设计中,所述第一校验信息包括所述待迁移数据迁移前的存储结构和/或校验码,其中所述校验码为迁移前的源目录项对应的索引节点号或通过校验算法对待迁移数据获取的校验码;

所述第二校验信息包括所述待迁移数据迁移后的存储结构和/或校验码,所述校验码为新目录项对应的索引节点号或通过校验算法对所述新目录项对应数据获取的校验码;

所述校验模块在对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致时,用于:

对比所述第一校验信息与所述第二校验信息是否相同。

在一种可能的设计中,如图5所示,所述数据迁移装置400还包括检测模块404,用于:

在对待迁移数据进行校验前,检测数据迁移环境;

判断所述数据迁移环境是否满足预设条件。

在一种可能的设计中,如图5所示,所述数据迁移装置400还包括状态记录模块405,用于:

通过状态机实时记录在数据迁移过程中当前所处阶段。

在一种可能的设计中,所述数据迁移装置还包括重入控制模块406,用于:

当数据迁移过程发生中断且接收到重入指令时,根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入。

在一种可能的设计中,所述重入控制模块406在根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入时,用于:

若当前所处阶段处于创建硬链接之前,则重头执行整个数据迁移过程;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项后重头执行整个数据迁移过程;

若当前所处阶段处于清理源目录项过程,则继续执行清理源目录项过程;

若当前所处阶段处于已完成清理源目录项过程,则返回已迁移成功的提示信息。

在一种可能的设计中,如图5所示,所述数据迁移装置400还包括回滚控制模块407,用于:

当接收到回滚指令时,根据所述状态机中的当前所处阶段对数据迁移过程进行回滚。

在一种可能的设计中,所述回滚控制模块407在根据所述状态机中的当前所处阶段对数据迁移过程进行回滚时,用于:

若当前所处阶段处于创建硬链接之前,则返回回滚完成的提示信息;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项;

若当前所处阶段处于清理源目录项过程或已完成清理源目录项过程,则将在所述待迁移数据迁移前的源目录中通过创建硬链接重新创建源目录项,经校验过程后删除所述待迁移数据的新目录项。

在一种可能的设计中,所述待迁移数据包括多个数据,如图5所示,所述数据迁移装置400还包括调度模块408,用于:

通过异步方式对多个数据进行数据迁移过程,并由调度设备通过轮询方式获取每一数据迁移过程的状态;

根据所述数据迁移过程的状态对任意数据迁移过程进行控制。

本实施例提供的数据迁移装置可以具体用于执行上述图1-3所提供的方法实施例,具体功能此处不再提供的赘述。

本实施例提供的数据迁移装置,通过对待迁移数据进行校验,获取第一校验信息;在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致,若一致,则清理所述待迁移数据在迁移前的源目录项。本实施例中通过创建硬链接的方式实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险。此外,数据迁移过程可重入、可回滚、可异步,且适用于大量文件的迁移,极大的简化了集群节点数据迁移的方案设计,不需要频繁考虑迁移过程中的服务稳定性、调度节点和迁移节点rpc调用失败等问题。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图6所示,是根据本申请实施例的数据迁移方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。

存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的数据迁移方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的数据迁移方法。

存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的数据迁移方法对应的程序指令/模块(例如,附图4所示的校验模块401、迁移模块402及清理模块403,再如附图5所示的检测模块404、状态记录模块405、重入控制模块406、回滚控制模块407、调度模块408)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据迁移方法。

存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据迁移电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至数据迁移电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

数据迁移方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。

输入装置603可接收输入的数字或字符信息,以及产生与数据迁移电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本申请实施例的技术方案,通过对待迁移数据进行校验,获取第一校验信息;在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致,若一致,则清理所述待迁移数据在迁移前的源目录项。本实施例中通过创建硬链接的方式实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险。此外,数据迁移过程可重入、可回滚、可异步,且适用于大量文件的迁移,极大的简化了集群节点数据迁移的方案设计,不需要频繁考虑迁移过程中的服务稳定性、调度节点和迁移节点rpc调用失败等问题。

本申请还提供了一种计算机程序,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如上述实施例所述的

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。


技术特征:

1.一种数据迁移方法,其特征在于,包括:

对待迁移数据进行校验,获取第一校验信息;

在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致;

若所述新目录项对应数据与所述待迁移数据一致,则清理所述待迁移数据在迁移前的源目录项。

2.根据权利要求1所述的方法,其特征在于,所述第一校验信息包括所述待迁移数据迁移前的存储结构和/或校验码,其中所述校验码为迁移前的源目录项对应的索引节点号或通过校验算法对待迁移数据获取的校验码;

所述第二校验信息包括所述待迁移数据迁移后的存储结构和/或校验码,所述校验码为新目录项对应的索引节点号或通过校验算法对所述新目录项对应数据获取的校验码;

所述对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致,包括:

对比所述第一校验信息与所述第二校验信息是否相同。

3.根据权利要求1所述的方法,其特征在于,所述对待迁移数据进行校验前,还包括:

检测数据迁移环境;

判断所述数据迁移环境是否满足预设条件。

4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:

通过状态机实时记录在数据迁移过程中当前所处阶段。

5.根据权利要求4所述的方法,其特征在于,还包括:

当数据迁移过程发生中断且接收到重入指令时,根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入。

6.根据权利要求5所述的方法,其特征在于,所述根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入,包括:

若当前所处阶段处于创建硬链接之前,则重头执行整个数据迁移过程;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项后重头执行整个数据迁移过程;

若当前所处阶段处于清理源目录项过程,则继续执行清理源目录项过程;

若当前所处阶段处于已完成清理源目录项过程,则返回已迁移成功的提示信息。

7.根据权利要求4所述的方法,其特征在于,还包括:

当接收到回滚指令时,根据所述状态机中的当前所处阶段对数据迁移过程进行回滚。

8.根据权利要求7所述的方法,其特征在于,所述根据所述状态机中的当前所处阶段对数据迁移过程进行回滚,包括:

若当前所处阶段处于创建硬链接之前,则返回回滚完成的提示信息;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项;

若当前所处阶段处于清理源目录项过程或已完成清理源目录项过程,则将在所述待迁移数据迁移前的源目录中通过创建硬链接重新创建源目录项,经校验过程后删除所述待迁移数据的新目录项。

9.根据权利要求1所述的方法,其特征在于,所述待迁移数据包括多个数据,所述方法还包括:

通过异步方式对多个数据进行数据迁移过程,并由调度设备通过轮询方式获取每一数据迁移过程的状态;

根据所述数据迁移过程的状态对任一数据迁移过程进行控制。

10.一种数据迁移装置,其特征在于,包括:

校验模块,用于对待迁移数据进行校验,获取第一校验信息;

迁移模块,用于在目标目录中对所述待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

所述校验模块还用于根据所述目标目录中的新目录项对应数据,获取第二校验信息;对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致;

清理模块,用于若所述新目录项对应数据是否与所述待迁移数据一致,则清理所述待迁移数据在迁移前的源目录项。

11.根据权利要求10所述的装置,其特征在于,所述第一校验信息包括所述待迁移数据迁移前的存储结构和/或校验码,其中所述校验码为迁移前的源目录项对应的索引节点号或通过校验算法对待迁移数据获取的校验码;

所述第二校验信息包括所述待迁移数据迁移后的存储结构和/或校验码,所述校验码为新目录项对应的索引节点号或通过校验算法对所述新目录项对应数据获取的校验码;

所述校验模块在对所述第一校验信息和所述第二校验信息校验所述新目录项对应数据是否与所述待迁移数据一致时,用于:

对比所述第一校验信息与所述第二校验信息是否相同。

12.根据权利要求10所述的装置,其特征在于,还包括检测模块,用于:

在对待迁移数据进行校验前,检测数据迁移环境;

判断所述数据迁移环境是否满足预设条件。

13.根据权利要求10-12任一项所述的装置,其特征在于,还包括状态记录模块,用于:

通过状态机实时记录在数据迁移过程中当前所处阶段。

14.根据权利要求13所述的装置,其特征在于,还包括重入控制模块,用于:

当数据迁移过程发生中断且接收到重入指令时,根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入。

15.根据权利要求14所述的装置,其特征在于,所述重入控制模块在根据所述状态机中的中断时刻当前所处阶段对数据迁移过程进行重入时,用于:

若当前所处阶段处于创建硬链接之前,则重头执行整个数据迁移过程;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项后重头执行整个数据迁移过程;

若当前所处阶段处于清理源目录项过程,则继续执行清理源目录项过程;

若当前所处阶段处于已完成清理源目录项过程,则返回已迁移成功的提示信息。

16.根据权利要求13所述的装置,其特征在于,还包括回滚控制模块,用于:

当接收到回滚指令时,根据所述状态机中的当前所处阶段对数据迁移过程进行回滚。

17.根据权利要求16所述的装置,其特征在于,所述回滚控制模块在根据所述状态机中的当前所处阶段对数据迁移过程进行回滚时,用于:

若当前所处阶段处于创建硬链接之前,则返回回滚完成的提示信息;

若当前所处阶段处于创建硬链接或创建硬链接后的校验过程,则删除所述待迁移数据的新目录项;

若当前所处阶段处于清理源目录项过程或已完成清理源目录项过程,则将在所述待迁移数据迁移前的源目录中通过创建硬链接重新创建源目录项,经校验过程后删除所述待迁移数据的新目录项。

18.根据权利要求10所述的装置,其特征在于,所述待迁移数据包括多个数据,所述装置还包括调度模块,用于:

通过异步方式对多个数据进行数据迁移过程,并由调度设备记录每一数据迁移过程的状态;

根据所述数据迁移过程的状态对任意数据迁移过程进行控制。

19.一种电子设备,其特征在于,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。

20.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-9中任一项所述的方法。

21.一种数据迁移的方法,其特征在于,包括:

在目标目录中对待迁移数据创建硬链接,得到所述待迁移数据的新目录项;

清理所述待迁移数据在迁移前的源目录项。

技术总结
本申请公开了数据迁移方法、装置、设备及存储介质,涉及数据迁移技术领域。具体实现方案为:通过对待迁移数据进行校验,获取第一校验信息;在目标目录中对待迁移数据创建硬链接,得到待迁移数据的新目录项;根据目标目录中的新目录项对应数据,获取第二校验信息;对第一校验信息和第二校验信息校验新目录项对应数据是否与待迁移数据一致,若一致,则清理待迁移数据在迁移前的源目录项。本申请实施例通过创建硬链接的方式实现单机上的数据迁移,数据迁移过程中不需要调用数据系统的移动接口,数据迁移过程简单高效、且安全可靠,降低数据迁移过程的风险。此外,数据迁移过程可重入、可回滚、可异步,且适用于大量文件的迁移,具有较高的安全性。

技术研发人员:焦如松;田勇
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26128.html

最新回复(0)