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

文档序号:26004495发布日期:2021-07-23 21:22阅读:94来源:国知局
集群数据迁移方法、装置、设备及存储介质与流程

本申请涉及数据迁移技术领域,尤其涉及一种集群数据迁移方法、装置、设备及存储介质。



背景技术:

目前,用于数据迁移的工具具有很多的局限性。例如,在做大规模存储集群间的数据迁移时,往往以文件为最小的传输单位,直接完整地传输数据。若源端与目的端在海量的数据中仅有少量差异数据,则导致做了大量无效的迁移工作,不仅严重浪费网络资源,且会导致迁移效率低下。此外,在线迁移时,现有的迁移系统不能实时同步更新数据,这也直接导致了其不能满足实时性的要求。在面对待迁移的数据结构极其庞大且复杂的情况下,往往难以快速均衡地完成迁移工作。因此,现有的数据迁移存在无法进行同步快速迁移,迁移效率低下的问题。



技术实现要素:

本申请提供了一种集群数据迁移方法、装置、设备及存储介质,能够通过并行的方式执行全量迁移子任务,使得各个子任务能够同步进行数据迁移,提高数据迁移效率。

第一方面,本申请提供了一种集群数据迁移方法,所述方法包括:

遍历源端存储集群的所有文件目录下的文件元信息;

基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包;其中,每个信息包包括若干个文件;

根据各个所述信息包中若干个文件的访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度;

分别确定各个所述信息包中首个文件的文件名和文件存储路径,根据各个所述信息包中首个文件的文件名和文件存储路径,确定各个所述信息包所对应的目的端文件;

根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述文件目录对应的迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群。

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

遍历模块,用于遍历源端存储集群的所有文件目录下的文件元信息;

分割模块,用于基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包;其中,每个信息包包括若干个文件;

第一确定模块,用于根据各个所述信息包中若干个文件的访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度;

第二确定模块,用于分别确定各个所述信息包中首个文件的文件名和文件存储路径,根据各个所述信息包中首个文件的文件名和文件存储路径,确定各个所述信息包所对应的目的端文件;

迁移模块,用于根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述文件目录对应的迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群。

第三方面,本申请还提供了一种集群数据迁移设备,包括:

存储器和处理器;

所述存储器用于存储计算机程序;

所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上第一方面所述的集群数据迁移方法的步骤。

第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上第一方面所述的集群数据迁移方法的步骤。

本申请公开了一种集群数据迁移方法、装置、设备及存储介质,遍历源端存储集群的所有文件目录,将所述所有文件目录下的文件元信息以文件为单位分割为若干信息包;并根据各个信息包中首个文件的文件名和文件存储路径确定各个信息包所对应的目的端文件,根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述信息包对应的全量迁移子任务,将所述信息包所对应的源端存储集群的文件同步迁移至目录端存储集群。实现了通过并行的方式执行全量迁移子任务,使得各个子任务能够同步进行数据迁移,提高数据迁移效率。

附图说明

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

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

图2是图1中s103的具体实现流程图;

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

图4是本申请实施例提供的集群数据迁移装置的结构示意图;

图5是本申请实施例提供的集群数据迁移设备的结构示意性框图。

具体实施方式

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

附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。

应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本申请的实施例提供了一种集群数据迁移方法、装置、设备及存储介质。本申请实施例提供的集群数据迁移方法可用于遍历源端存储集群的所有文件目录,将所述所有文件目录下的文件元信息以文件为单位分割为若干信息包;并发执行与所述信息包对应的全量迁移子任务,将所述信息包所对应的源端存储集群的文件同步迁移至目录端存储集群。实现了通过并行的方式执行全量迁移子任务,使得各个子任务能够同步进行数据迁移,提高数据迁移效率。

例如,本申请的实施例提供的集群数据迁移方法,可应用于迁移服务器,所述迁移服务器可以是单个服务器或者服务器集群,该迁移服务器通过将源端存储集群的所有文件的目录进行分包,得到信息包后,通过并行的方式执行全量迁移子任务,使得各个子任务能够同步进行分包后的所有信息包的数据迁移,提高数据迁移效率。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参阅图1,图1是本申请一实施例提供的集群数据迁移方法的示意流程图。该集群数据迁移方法可以由迁移服务器实现,所述迁移服务器可以是单个服务器或者服务器集群。

如图1所示,图1是本申请一实施例提供的集群数据迁移方法的实现流程图。具体包括:步骤s101至步骤s104。详述如下:

s101,遍历源端存储集群的所有文件目录下的文件元信息。

其中,源端存储集群指的是存储有待迁移数据的服务器集群,例如若需要将旧存储架构下的数据迁移至新存储架构下,则旧存储架构为源端存储集群;又如,若需要将本地服务器集群中的数据迁移至云端,则本地服务器集群为源端存储集群。

在一实施例中,遍历源端存储集群的所有文件目录下的文件元信息,包括:遍历源端存储集群的给定存储路径下的所有子目录下的文件元信息。

其中,任何存储系统中的文件分为文件信息和文件元信息。文件信息是指普通文件中的实际数据,即文件的实际内容;而文件元信息是用来描述一个文件的特征系统数据,例如,文件元信息包括文件的属性、大小、创建时间、访问时间等。

s102,基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包。

其中,所有文件目录保存在文件目录树中,文件目录树的每个根节点代表一个文件目录,每个根节点对应的子节点代表该文件目录下存储的文件,每个文件包括文件元信息和文件信息,每个根节点与对应文件之间的树支代表该文件目录下文件的存储路径。示例性地,在每个文件处显示有文件的属性信息(如,文件数量、文件名和文件的存储路径)、大小信息(存储数据的容量)、和/或访问时间戳信息等文件元信息。

在一实施例中,所述基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包,包括:

根据所述文件的属性信息,将所有文件目录下的文件信息分割为若干信息包。

具体地,根据文件数量、文件名和文件的存储路径,将所有文件目录下的文件信息进行平均划分,得到具有相同文件数量的若干文件包,该具有相同文件数量的若干文件包为对应的信息包。且每个信息包包括对应文件的文件名和文件路径。

在另一实施例中,所述基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包,包括:

根据各个文件的大小信息,将所有文件目录下的文件信息分割为若干信息包。

具体地,根据每个文件存储数据的容量,将所有文件目录下的文件信息进行平均划分,得到具有相同存储数据的容量的若干文件包,该具有相同存储数据的容量的若干文件包为信息包。且每个信息包包括对应文件的文件名和文件路径。

可以理解地,在根据文件的属性信息或根据文件的大小信息,对所有文件目录下的文件信息进行划分时,均可能出现无法平均划分的现象。例如,在根据文件的属性进行平均划分的过程中,可能文件的数量无法进行均分,出现多余的文件,此时直接将多余的文件放入新的信息包即可。

s103,根据各个所述信息包中若干个文件的访问时间戳信息,计算迁移各个信息包中的文件所需的时间长度。

其中,根据各个所述信息包中若干个文件的访问时间戳信息,计算迁移各个信息包中的文件所需的时间长度,包括:分别确定各个所述信息包中各个文件的最大访问时间戳信息,以及各个所述信息包中各个文件的平均访问时间戳信息;根据各个文件的最大访问时间戳信息以及各个文件的平均访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度。

其中,文件的访问时间戳信息表示读取文件所需的时间;具体地,若有信息包中各个文件的最大访问时间戳信息大于平均访问时间戳信息之和,则确定迁移各个信息包的文件所需的时间长度为所述最大访问时间戳信息;若各个信息包中各个文件的最大访问时间戳信息均小于或等于平均访问时间戳信息之和,则确定迁移各个信息包中文件所需的时间长度为各个平均访问时间戳信息之和。

通过信息包中文件的最大访问时间戳信息和平均访问时间戳信息之间的大小关系,来确定迁移各个信息包中的文件所需的时间长度,可以在保证所有文件能够迁移完成的同时,有效避免迁移资源的浪费。

s104,分别确定各个所述信息包中首个文件的文件名和文件存储路径,根据各个所述信息包中首个文件的文件名和文件存储路径,确定各个所述信息包所对应的目的端文件。

其中,由上述步骤s102的分析可知,在本申请的实施例中,所述信息包,包括各个文件的文件名和文件存储路径;在本实施例中,基于各个信息包中首个文件的文件名和文件存储路径,可以分别确定各个信息包各自所对应的目的端文件。其中,文件路径可以理解为文件的位置信息;目的端是相对于源端而言的,目的端存储集群也就是需要接收待迁移文件的存储集群,目的端文件是指存储在目的端存储集群中的文件。

示例性地,如图2所示,图2是图1中s103的具体实现流程图。由图2可知,s103包括s1031至s1033。详述如下。

s1031,针对任意所述信息包,根据该信息包中首个文件的文件名和文件存储路径,检测目的端是否对应有该信息包中首个文件的文件名和文件存储路径。

s1032,若目的端对应有该信息包中首个文件的文件名和文件存储路径,则确定目的端有该信息包所对应的目的端文件。

s1033,若目的端对应没有该信息包中首个文件的文件名或文件存储路径,则确定目的端没有该信息包所对应的目的端文件。

在本实施例中,通过信息包来检测待迁移文件在目的端是否存在,将存在于目的端的待迁移文件称为目的端文件。具体地,通过对比信息包中首个文件的文件名和文件存储路径是否在目的端存在,来确定目的端是否对应有信息包所对应的目的端文件。根据前面的分析还可以确定,每个信息包中包括相同的文件数量或者相同大小的文件,从而根据信息包中首个文件的文件名和文件路径进行目的端文件检测,不仅可以有效确定各个信息包的目标端文件,还可以实现负载均衡,能够支持基于多个信息包并发进行任务执行。

s105,根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述文件目录对应的迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群。

其中,全量迁移子任务与上述分包任务可以同步进行。此外,将划分好的信息包基于全量迁移子任务进行通过迁移,可以实现无需等待对文件目录的完全解析,能够节省大量的迁移时间。

示例性地,所述根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群,包括:将所述目的端文件与所述待迁移文件进行校验值比较,若目的端文件与所述待迁移文件的校验值相同,则结束对所述待迁移文件的文件迁移;若目的端文件与所述待迁移文件的校验值不同,则以数据块为单位对所述待迁移文件以及所述目的端文件进行匹配,得到所述待迁移文件中的差异数据;将所述差异数据复制至所述目的端文件中。

其中,数据块为文件中存储数据的单位,数据块的大小可以预先进行设置,例如以两个字节的数据为一个数据块,或者以任意字节的数据为一个数据块,具体在此不做限定。此外,校验值也为预先设置的用于验证文件的值,该值可以是源端与目的端预先相互确认的任意字母、数字或字母与数字的组合等,可以理解为待迁移文件中信息包的标识信息,具体该标识信息的表示方式在此不做限定。

在本实施例中,通过检测待迁移文件在目的端是否存在,并在目的端没有相应的待迁移文件时,直接将没有的待迁移文件拷贝到目的端;若目的端有相应的待迁移文件且待迁移文件在源端与目的端的校验值相同时,则直接跳过该待迁移文件不做迁移;若目的端有相应的待迁移文件但是待迁移文件在源端与目的端的校验值不同时,则需要以数据块为单位对两个文件进行匹配,并仅将存在差异的数据块以字节为单位传输至目的端,最后在目的端中组建好文件,并保证两端的差异文件完全一致。

在本实施例中,只对源端与目的端的差异文件进行迁移,减少了迁移的数据量,能够提高数据迁移的效率。

通过上述分析可知,本实施例提供的集群数据迁移方法,通过遍历源端存储集群的所有文件目录,将所述所有文件目录下的文件元信息以文件为单位分割为若干信息包;并根据各个信息包中首个文件的文件名和文件存储路径确定各个信息包所对应的目的端文件,根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述信息包对应的迁移子任务,将所述信息包所对应的源端存储集群的文件同步迁移至目录端存储集群。实现了通过并行的方式执行全量迁移子任务,使得各个子任务能够同步进行数据迁移,提高数据迁移效率。

请参阅图3所示,图3是本申请另一实施例提供的集群数据迁移方法的实现流程图。由图3可知,本实施例与图2所示实施例相比,s301至s302与s101至s102,以及s305至s307与s103至s105的具体实现过程相同,不同之处在于,在s305之前还包括s303至s304。其中,s303与s302为并列执行关系,可择一执行。详述如下:

s301,遍历源端存储集群的所有文件目录下的文件元信息。

s302,基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包;其中,每个信息包包括若干个文件。

s303,对源端存储集群中的所有文件目标下的文件信息更新进行监控,得到各个文件信息的更新日志。

可选地,在遍历源端存储集群的给定存储路径下的所有子目录时,可以将遍历到的所有子目录添加至监控表中,通过监听监控表中文件描述符的事件更新,来确定源端存储集群中的所有文件目标下的文件信息更新,得到各个文件信息的更新日志。其中文件描述符可以是上文中提到的校验码,也可以称为信息包的标识信息。

可以理解地,对源端存储集群中的所有文件目标下的文件信息更新进行监控的过程,也可以有源端存储集群中的任意服务器完成,该服务器在对数据更新进行监控,得到更新日志后,将该更新日志发送至迁移服务器。

s304,对所述更新日志进行去冗余处理,确定去冗余处理之后的更新日志的信息包。

其中,对更新日志进行去冗余处理的过程,就是对更新日志中的部分数据进行删除的过程,相当于压缩监控日志的过程,在保证不丢失监控数据的前提下,可以对监控数据的更新日志中同一文件的连续多个监控事件,仅保留最新的监控事件。该过程可以有效防止对日志中的监控数据进行重复监控,提高日志的监控效率。

或者,对父监控目录下的所有文件和该父监控目录对应的子目录下的多个监控事件,进行比对,仅保留父监控目录下的监控事件,以达到对所述更新日志进行去冗余处理,减少增量数据(更新日志)迁移的数据量。

此外,确定去冗余处理之后的更新日志的信息包的过程与前述的确定所有文件目录下的信息包的过程相同,在此不再赘述。

s305,根据各个所述信息包中若干个文件的访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度。

s306,分别确定各个所述信息包中首个文件的文件名和文件存储路径,根据各个所述信息包中首个文件的文件名和文件存储路径,确定各个所述信息包所对应的目的端文件。

s307,根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述文件目录对应的迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群。

此外,在本申请的一些实施例中,当执行并发执行与所述文件目录对应的全量迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群之后,还可以对源端至目的端迁移之后的剩余增量数据进行监控,进一步将剩余增量数据由源端迁移至目的端。具体地,在并发执行与所述文件目录对应的全量迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群之后,还包括:对所述源端存储集群与所述目的端存储集群进行文件差异检测,若所述源端文件集群与所述目的端存储集群的文件一致,则将数据业务切换至目的端;若所述源端文件集群与所述目的端存储集群的文件不一致,则将所述差异检测到的差异文件由源端迁移至目的端。

需要说明的是,对源端存储集群与目的端存储集群进行文件差异检测是在源端停止数据写入后进行的。在本申请的实施例中,将经过差异检测到的差异文件称为剩余增量数据(增量数据指的是更新日志)。具体地,剩余增量数据包括源端停止数据写入前检测到的未完成数据迁移的差异文件和源端停止数据写入时检测到的未完成数据迁移的差异文件。

在本实施例中,通过对源端停止数据写入后对增量数据进行迁移,可以保证目的端与源端的数据一致性,进而有效避免目的端与源端数据不一致导致的数据读写错误。其中,对差异检测到的差异文件由源端迁移至目的端的过程与图1实施例中所述的对文件目录中的文件进行迁移的过程相同,在此不再赘述。

通过上述分析可知,本实施例提供的集群数据迁移方法,在通过将源端存储集群的所有文件的目录进行分包,得到信息包后,并根据各个信息包中首个文件的文件名和文件存储路径确定各个信息包所对应的目的端文件,根据迁移各个信息包中的文件所需的时间长度,选择并行的方式执行全量迁移子任务,使得各个子任务能够同步进行分包后的所有信息包的数据迁移,提高数据迁移效率的同时,进一步通过对数据更新日志进行监控及去冗余处理,减少了增量数据迁移的数据量。

此外,还通过对源端和目的端进行文件差异检测,将剩余增量数据进行迁移,保证了源端数据和目的端数据的一致性,避免了由于源端数据与目的端数据不一致而导致的数据读写错误。

请参阅图4,图4是本申请实施例提供的集群数据迁移装置的结构示意图。该集群数据迁移装置用于执行图1至图3任一实施例所示的集群数据迁移方法。该集群数据迁移装置单个服务器或服务器集群。

如图4所示,集群数据迁移装置400包括:

遍历模块401,用于遍历源端存储集群的所有文件目录下的文件元信息;

分割模块402,用于基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包;其中,每个信息包包括若干个文件;

第一确定模块403,用于根据各个所述信息包中若干个文件的访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度;

第二确定模块404,用于分别确定各个所述信息包中首个文件的文件名和文件存储路径,根据各个所述信息包中首个文件的文件名和文件存储路径,确定各个所述信息包所对应的目的端文件;

迁移模块405,用于根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述文件目录对应的迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群。

在一实施例中,所述文件元信息包括文件的属性或文的大小;分割模块402,具体用于:

根据所述文件的属性,将所有文件目录下的文件信息分割为若干信息包;

或,所述基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包,包括:

根据所述文件的大小,将所有文件目录下的文件信息分割为若干信息包。

在一实施例中,第一确定模块403,具体用于:

分别确定各个所述信息包中首个文件的访问时间戳信息,以及各个所述信息包中文件的平均访问时间戳信息;

根据各个所述信息包中首个文件的访问时间戳信息以及各个所述信息包中各个文件的平均访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度。

在一实施例中,所述信息包包括文件名和文件存储路径;第二确定模块404,具体用于:

针对任意所述信息包,根据该信息包中首个文件的文件名和文件存储路径,检测目的端是否对应有该信息包中首个文件的文件名和文件存储路径;

若目的端对应有该信息包中首个文件的文件名和文件存储路径,则确定目的端有该信息包所对应的目的端文件;

若目的端对应没有该信息包中首个文件的文件名或文件存储路径,则确定目的端没有该信息包所对应的目的端文件。

在一实施例中,迁移模块405,具体用于:

将所述目的端文件与所述待迁移文件进行校验值比较,若目的端文件与所述待迁移文件的校验值相同,则结束对所述待迁移文件的文件迁移;

若目的端文件与所述待迁移文件的校验值不同,则以数据块为单位对所述待迁移文件以及所述目的端文件进行匹配,得到所述待迁移文件中的差异数据;

将所述差异数据复制至所述目的端文件中。

在一实施例中,还包括:

得到模块,用于对源端存储集群中的所有文件目标下的文件信息更新进行监控,得到各个文件信息的更新日志;

处理模块,用于对所述更新日志进行去冗余处理,将去冗余处理之后的更新日志作为信息包。

在一实施例中,还包括:

检测模块,用于对所述源端存储集群与所述目的端存储集群进行文件差异检测,若所述源端文件集群与所述目的端存储集群的文件一致,则将数据业务切换至目的端;

第二迁移模块,用于若所述源端文件集群与所述目的端存储集群的文件不一致,则将所述差异检测到的差异文件由源端迁移至目的端。

需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的集群数据迁移装置和各模块的具体工作过程,可以参考图1至图3任一实施例所述的集群数据迁移方法实施例中的对应过程,在此不再赘述。

上述的集群数据迁移方法可以实现为一种计算机程序的形式,该计算机程序可以在如图4所示的装置上运行。

请参阅图5,图5是本申请实施例提供的集群数据迁移设备的结构示意性框图。该集群数据迁移设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。

非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种集群数据迁移方法。

处理器用于提供计算和控制能力,支撑整个计算机设备的运行。

内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种集群数据迁移方法。

该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

应当理解的是,处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:

遍历源端存储集群的所有文件目录下的文件元信息;

基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包;其中,每个信息包包括若干个文件;

根据各个所述信息包中若干个文件的访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度;

分别确定各个所述信息包中首个文件的文件名和文件存储路径,根据各个所述信息包中首个文件的文件名和文件存储路径,确定各个所述信息包所对应的目的端文件;

根据迁移各个信息包中的文件所需的时间长度,选择并发执行与所述文件目录对应的迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群。

在一实施例中,所述文件元信息包括文件的属性或文的大小;所述基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包,包括:

根据所述文件的属性,将所有文件目录下的文件信息分割为若干信息包;

或,所述基于所述文件元信息将所有文件目录下的文件信息分割为若干信息包,包括:

根据所述文件的大小,将所有文件目录下的文件信息分割为若干信息包。

在一实施例中,根据各个所述信息包中若干个文件的访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度,包括:

分别确定各个所述信息包中首个文件的访问时间戳信息,以及各个所述信息包中文件的平均访问时间戳信息;

根据各个所述信息包中首个文件的访问时间戳信息以及各个所述信息包中各个文件的平均访问时间戳信息,确定迁移各个信息包中的文件所需的时间长度。

在一实施例中,所述信息包包括文件名和文件存储路径;所述确定所述信息包所对应的目的端文件,包括:

针对任意所述信息包,根据该信息包中首个文件的文件名和文件存储路径,检测目的端是否对应有该信息包中首个文件的文件名和文件存储路径;

若目的端对应有该信息包中首个文件的文件名和文件存储路径,则确定目的端有该信息包所对应的目的端文件;

若目的端对应没有该信息包中首个文件的文件名或文件存储路径,则确定目的端没有该信息包所对应的目的端文件。

在一实施例中,所述根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群,包括:

将所述目的端文件与所述待迁移文件进行校验值比较,若目的端文件与所述待迁移文件的校验值相同,则结束对所述待迁移文件的文件迁移;

若目的端文件与所述待迁移文件的校验值不同,则以数据块为单位对所述待迁移文件以及所述目的端文件进行匹配,得到所述待迁移文件中的差异数据;

将所述差异数据复制至所述目的端文件中。

在一实施例中,在并发执行与所述文件目录对应的全量迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群之前,还包括:

对源端存储集群中的所有文件目标下的文件信息更新进行监控,得到各个文件信息的更新日志;

对所述更新日志进行去冗余处理,将去冗余处理之后的更新日志作为信息包。

在一实施例中,在并发执行与所述文件目录对应的全量迁移子任务,根据所述目的端文件将所述信息包所对应的源端存储集群的待迁移文件,同步迁移至目的端存储集群之后,还包括:

对所述源端存储集群与所述目的端存储集群进行文件差异检测,若所述源端文件集群与所述目的端存储集群的文件一致,则将数据业务切换至目的端;

若所述源端文件集群与所述目的端存储集群的文件不一致,则将所述差异检测到的差异文件由源端迁移至目的端。

本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请图1至图3任一实施例提供的集群数据迁移方法。

其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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