CN111625498B - 一种数据迁移方法、***、电子设备及存储介质 - Google Patents
一种数据迁移方法、***、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111625498B CN111625498B CN202010470809.6A CN202010470809A CN111625498B CN 111625498 B CN111625498 B CN 111625498B CN 202010470809 A CN202010470809 A CN 202010470809A CN 111625498 B CN111625498 B CN 111625498B
- Authority
- CN
- China
- Prior art keywords
- migration
- file
- task
- storage pool
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005012 migration Effects 0.000 title claims abstract description 403
- 238000013508 migration Methods 0.000 title claims abstract description 403
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008569 process Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000009471 action Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据迁移方法,所述方法包括当接收到文件分级指令时,根据文件分级指令生成文件迁移任务,并在目标存储空间中将文件迁移任务的执行状态标记为未完成状态;将文件迁移任务发送至迁移客户端;获取文件迁移进度,根据文件迁移进度在目标存储空间中将迁移完毕的文件迁移任务的执行状态标记为已完成状态;若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将撤销任务发送至迁移客户端,以便迁移客户端执行撤销任务。本申请能够保持迁移前后数据的一致性,提升分布式文件***的可靠性。本申请还公开了一种数据迁移***、一种电子设备及一种存储介质,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据迁移方法、***、一种电子设备及一种存储介质。
背景技术
分布式文件***为多个文件存储节点服务器构成的集群,分布式文件***中以对象为基本单位文件切块存储,支持一份数据存储在多个文件存储节点上,每个文件存储节点通过节点间通信都可以获取到完整的数据。当文件存储节点出现宕机时,分布式文件***可以根据配置的策略可以进行完整数据的恢复,具有高可用、高性能、高扩展性等特点,其中每个文件存储节点都提供元数据服务器,用于实现元数据的各种访问操作,以便均衡业务压力。
分布式文件***的文件分级操作需要文件并发迁移,元数据服务准备批量文件的迁移任务,任务中包含多个待迁移的文件信息(包括文件、原池子、目的池子、迁移大小等),元数据服务准备好任务后发送给Backend,Backend收到迁移任务后执行文件从原池子到目的池子的迁移。在文件分级过程中,可能出现各种各样的故障,当出现MDS切换时,已发送的迁移任务无法完成,MDS在恢复后重新发起分级操作,将会导致迁移后数据不一致的情况。
因此,如何保持迁移前后数据的一致性,提升分布式文件***的可靠性是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种数据迁移方法、一种数据迁移***、一种电子设备及一种存储介质,能够保持迁移前后数据的一致性,提升分布式文件***的可靠性。
为解决上述技术问题,本申请提供一种数据迁移方法,该数据迁移方法包括:
当接收到文件分级指令时,根据所述文件分级指令生成文件迁移任务,并在目标存储空间中将所述文件迁移任务的执行状态标记为未完成状态;
将所述文件迁移任务发送至迁移客户端,以便迁移客户端执行所述文件迁移任务;
获取文件迁移进度,根据所述文件迁移进度在所述目标存储空间中将迁移完毕的文件迁移任务的执行状态标记为已完成状态;
若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将所述撤销任务发送至所述迁移客户端,以便所述迁移客户端执行所述撤销任务。
可选的,在将所述文件迁移任务发送至迁移客户端之后,还包括:
接收所述迁移客户端返回的通知消息;其中,所述通知信息为所述迁移客户端将原存储池中的数据复制至新存储池后返回的信息;
根据所述通知消息确定已完成复制操作的目标文件,并更新所述目标文件的存储池属性信息;
向所述迁移客户端返回应答信息,以便所述迁移客户端清除所述原存储池中的目标文件并返回清除完毕信息;
若接收到所述迁移客户端返回的所述清除完毕的提示信息,则判定所述目标文件对应的文件迁移任务执行完毕。
可选的,所述迁移客户端执行所述文件迁移任务的过程包括:
解析所述文件迁移任务得到文件信息;其中,所述文件信息包括目标文件、原存储池的标识和新存储池的标识;
将所述原存储池中存储的所述目标文件复制至所述新存储池,并在所述目标文件复制完毕后向所述元数据服务器发送通知信息,以便所述元数据服务器更新文件的存储池属性信息;
若接收到所述元数据服务器发送的应答信息,则清除所述原存储池中的所述目标文件,向所述元数据服务器发送清除完毕的提示信息。
可选的,将所述原存储池中存储的所述目标文件复制至所述新存储池,包括:
将所述目标文件划分为多个数据块并生成每一所述数据块对应的迁移子任务;
将所述迁移子任务添加至迁移线程的任务队列,并利用所述迁移线程执行所述迁移子任务,以便将所述原存储池中的每一所述数据块依次复制至所述新存储池。
可选的,所述迁移客户端执行撤销任务的过程包括:
确定所述撤销任务对应的文件设置为待撤销文件;
将所述待撤销文件划分得到的数据块设置为待撤回数据块;
判断所述待撤回数据块是否被迁移线程复制至所述新存储池;
若是,则删除所述新存储池中的待撤回数据块;
若否,则对所述任务队列中与所述待撤回数据块对应的迁移子任务添加撤销标记。
可选的,还包括:
判断当前被执行的迁移子任务是否被添加所述撤销标记;
若是,在将所述当前被执行的迁移子任务对应的数据块复制至所述新存储池后,删除所述新存储池中的所述当前被执行的迁移子任务对应的数据块。
可选的,利用所述迁移线程执行所述迁移子任务,包括:
判断所述迁移子任务是否添加有所述撤销标记;
若是,则撤销所述迁移线程对所述迁移子任务的执行操作;
若否,则利用所述迁移线程执行所述迁移子任务。
本申请还提供了一种数据迁移***,该***包括:
任务生成模块,用于当接收到文件分级指令时,根据所述文件分级指令生成文件迁移任务,并将所述文件迁移任务的执行状态标记为未完成状态;
任务下发模块,用于将所述文件迁移任务发送至迁移客户端,以便迁移客户端执行所述文件迁移任务;
状态标记模块,用于获取文件迁移进度,根据所述文件迁移进度将迁移完毕的文件迁移任务的执行状态标记为已完成状态;
任务撤销模块,用于若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将所述撤销任务发送至所述迁移客户端,以便所述迁移客户端执行所述撤销任务。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述数据迁移方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述数据迁移方法执行的步骤。
本申请提供了一种数据迁移方法,包括:当接收到文件分级指令时,根据所述文件分级指令生成文件迁移任务,并在目标存储空间中将所述文件迁移任务的执行状态标记为未完成状态;将所述文件迁移任务发送至迁移客户端,以便迁移客户端执行所述文件迁移任务;获取文件迁移进度,根据所述文件迁移进度在所述目标存储空间中将迁移完毕的文件迁移任务的执行状态标记为已完成状态;若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将所述撤销任务发送至所述迁移客户端,以便所述迁移客户端执行所述撤销任务。
本申请在接收到文件分级指令之后,生成文件迁移任务并对文件迁移任务设置执行状态,执行状态可以包括已完成状态和未完成状态。在将文件迁移任务发送至迁移客户端后,迁移客户端可以执行文件迁移任务对应的操作,若文件迁移完毕则将文件任务的执行状态设置为已完成状态,若文件迁移未完毕则将文件任务的执行状态设置为未完成状态。若元数据服务器发生切换,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务以便撤销迁移客户端对撤销任务的执行,避免出现文件并发迁移导致的数据不一致的问题。可见,本申请能够保持迁移前后数据的一致性,提升分布式文件***的可靠性。本申请同时还提供了一种数据迁移***、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种数据迁移方法的流程图;
图2为本申请实施例所提供的一种迁移客户端执行所述文件迁移任务的流程示意图;
图3为本申请实施例所提供的另一种数据迁移方法的流程图;
图4为本申请实施例所提供的一种数据迁移***的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种数据迁移方法的流程图。
具体步骤可以包括:
S101:当接收到文件分级指令时,根据所述文件分级指令生成文件迁移任务,并在目标存储空间中将所述文件迁移任务的执行状态标记为未完成状态;
其中,本实施例可以应用于分布式文件***的元数据服务器,分布式文件***的文件分级特性要求实现数据在用户无感知的在多种存储介质之间流转,文件分级指令为用于实现数据迁移的指令。数据迁移可以需要支持用户多种策略,对于符合迁移要求的数据,***内在不影响正常业务的条件下,进行无感知的文件数据搬迁处理。文件分级能够满足用户对性能分层、数据冷热分层的存储方案需要。元数据服务器(Meta Data Server,MDS),用于缓存文件***元数据,提供元数据的各种访问操作,分布式文件***集群中有多个元数据服务器,其中有一个是元数据服务器主节点,其他为从元数据服务器。
在接收到文件分级指令之后,可以对文件分级指令执行解析操作得到需要迁移的目标文件、目标文件所处的原存储池、以及目标文件需要迁移至的目标存储池等信息,本实施例根据上述解析结果生成文件迁移任务。在生成文件迁移任务之后,可以将文件迁移任务下盘保存,即存储至目标存储空间中。本实施例还在目标存储空间中标记各个文件迁移任务的执行状态。执行状态为描述文件迁移任务的执行进度的信息,执行状态可以包括已完成状态和未完成状态。作为一种可行的实施方式,本实施例可以在目标存储空间中仅保留未完成状态的文件迁移任务,删除已完成状态的文件迁移任务。
S102:将文件迁移任务发送至迁移客户端,以便迁移客户端执行文件迁移任务;
其中,在已经生成文件迁移任务的基础上,可以将文件迁移任务发送至迁移客户端,以便迁移客户端执行相关的文件迁移操作。迁移客户端又称Backend,用于实现将数据从原存储池迁移到新存储池,还可以删除原存储池中的原文件。
S103:获取文件迁移进度,根据文件迁移进度在所述目标存储空间中将迁移完毕的文件迁移任务的执行状态标记为已完成状态;
其中,本实施例可以按照预设周期获取文件迁移进度,文件迁移进度指文件迁移任务的执行进度。具体的,执行文件迁移任务的过程可以包括以下步骤:
步骤1、迁移客户端将文件根据迁移大小从原存储池将指定大小的数据按照逐个对象拷贝的方式复制到新存储池,复制完成后集群中该文件在原存储池和新存储池各存一份完全相同的数据。
步骤2、迁移客户端通知元数据服务器更新文件的存储池属性信息;
其中,更新文件的池子属性信息的具体指更新文件的元数据,将文件的存储地址更新至新存储池。例如,文件A从存储池1拷贝至存储池2,此时将元数据服务器中记录的元数据更新为文件A存储在存储池2中。
步骤3、元数据服务器更新存储池属性信息之后向迁移客户端发送应答信息,迁移客户端收到应答清理原池子数据后,分布式文件存储***中只有新存储池中有一份数据,完成文件迁移任务;
当文件迁移任务执行了上述步骤1~3后可以判定文件迁移进度为迁移完毕,反之文件迁移进度为迁移未完成。迁移客户端在执行完文件迁移任务后,可以向元数据服务器发送应答信息,以便元数据服务器下发新文件迁移任务。
在得到文件迁移进度之后,可以根据文件迁移进度确定目标存储空间中各个文件迁移任务的执行状态,进而可以将迁移完毕的文件迁移任务的执行状态标记为已完成状态。
S104:若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将撤销任务发送至所述迁移客户端,以便迁移客户端执行撤销任务。
其中,在分布式文件***执行元数据服务器切换操作后,元数据服务器会重新下发文件迁移任务,切换前未完成的文件迁移任务会重新下发至迁移客户端,此时如果迁移客户端拷贝速度较慢或待迁移文件很大,在收到新的迁移任务时原迁移任务的拷贝操作仍在继续,将会导致文件并发迁移,当分级任务下发前文件可能已被修改(其他客户端),此时再次下发迁移,原未完成迁移的老任务(存有旧数据)和文件并发迁移两种条件会导致数据不一致问题。
为解决上述问题,本申请在元数据服务器切换后(例如故障恢复),根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将所述撤销任务发送至所述迁移客户端,以便所述迁移客户端执行所述撤销任务。迁移客户端接收到撤销任务后首先进行未完成任务的撤销操作,撤销完成后再进行分级操作,保证文件迁移时相关的垃圾数据已被清理,避免出现数据不一致问题,基于分布式文件***文件切块,迁移客户端对于文件逐个对象拷贝,文件撤销可以中途撤销,即在文件逐个对象拷贝时如果需要撤销剩余对象不再拷贝,删除已拷贝对象,避免等整个文件拷贝完成后再执行整个文件的清理,提高撤销效率和有效操作,提升分布式文件***整体性能和可靠性。
元数据服务器的分级操作先执行未完成任务的撤销,撤销任务完成后继续迁移任务发送,发送迁移前任务会存盘,该任务不完成会一直存盘。迁移客户端多线程处理撤销任务和迁移任务,若收到撤销任务撤销线程负责对迁移任务进行添加撤销标记,迁移线程在迁移过程中判断撤销标记,对于处于拷贝过程的文件执行中途撤销,不需等待整个文件都拷贝完成后再执行整个文件的清理,没有撤销标记则继续迁移流程,有撤销标记则中途撤销。
本实施例在接收到文件分级指令之后,生成文件迁移任务并对文件迁移任务设置执行状态,执行状态可以包括已完成状态和未完成状态。在将文件迁移任务发送至迁移客户端后,迁移客户端可以执行文件迁移任务对应的操作,若文件迁移完毕则将文件任务的执行状态设置为已完成状态,若文件迁移未完毕则将文件任务的执行状态设置为未完成状态。若元数据服务器发生切换,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务以便撤销迁移客户端对撤销任务的执行,避免出现文件并发迁移导致的数据不一致的问题。可见,本实施例能够保持迁移前后数据的一致性,提升分布式文件***的可靠性。
作为对于图1对应实施例的进一步介绍,在将所述文件迁移任务发送至迁移客户端之后,迁移客户端执行将原存储池中的文件复制至新存储池的操作并返回通知消息。元数据服务器接收所述迁移客户端返回的通知消息;其中,所述通知信息为所述迁移客户端将原存储池中的数据复制至新存储池后返回的信息;根据所述通知消息确定已完成复制操作的目标文件,并更新所述目标文件的存储池属性信息;向所述迁移客户端返回应答信息,以便所述迁移客户端清除所述原存储池中的目标文件并返回清除完毕信息;若元数据服务器接收到所述迁移客户端返回的所述清除完毕的提示信息,则判定所述目标文件对应的文件迁移任务执行完毕。
请参见图2,图2为本申请实施例所提供的一种迁移客户端执行所述文件迁移任务的流程示意图,本实施例是对图1对应实施例中S102将文件迁移任务发送至迁移客户端之后迁移客户端执行文件迁移任务的操作,具体可以包括以下步骤:
S201:解析所述文件迁移任务得到文件信息。
其中,所述文件信息包括目标文件、原存储池的标识和新存储池的标识;
S202:将原存储池中存储的所述目标文件复制至新存储池,并在目标文件复制完毕后向元数据服务器发送通知信息,以便元数据服务器更新文件的存储池属性信息。
其中,迁移客户端可以根据原存储池的标识和新存储池的标识将目标文件复制至新存储池。
S203:若接收到元数据服务器发送的应答信息,则清除原存储池中的目标文件,向元数据服务器发送清除完毕的提示信息。
具体的,将原存储池中存储的文件内容复制至新存储池的过程可以为:将所述目标文件划分为多个数据块并生成每一所述数据块对应的迁移子任务;将所述迁移子任务添加至迁移线程的任务队列,并利用所述迁移线程执行所述迁移子任务,以便将所述原存储池中的每一所述数据块依次复制至所述新存储池。
在上述实施例的基础上,若接收到元数据服务器下发的撤销任务,迁移客户端执行撤销任务的过程包括:确定所述撤销任务对应的文件设置为待撤销文件;将所述待撤销文件划分得到的数据块设置为待撤回数据块;判断所述待撤回数据块是否被迁移线程复制至所述新存储池;若是,则删除所述新存储池中的待撤回数据块;若否,则对所述任务队列中与所述待撤回数据块对应的迁移子任务添加撤销标记。上述过程对已经复制至新存储池的待撤回数据块进行删除,对未开始复制的待撤回数据块对应的迁移子任务添加撤销标记,以便不执行添加有撤销标记的迁移子任务。进一步的,本实施例还可以判断当前被执行的迁移子任务是否被添加所述撤销标记;若是,在将所述当前被执行的迁移子任务对应的数据块复制至所述新存储池后,删除所述新存储池中的所述当前被执行的迁移子任务对应的数据块。
作为一种可行的实施方式,迁移客户端利用所述迁移线程执行所述迁移子任务的过程可以包:判断所述迁移子任务是否添加有所述撤销标记;若是,则撤销所述迁移线程对所述迁移子任务的执行操作;若否,则利用所述迁移线程执行所述迁移子任务。
在上述实施例中,元数据服务器在下发文件迁移任务时先将文件迁移任务下盘保存,标记其为未完成任务,文件迁移任务完成后清理下盘保存的文件迁移任务。如果文件迁移任务失败或未完成,该文件迁移任务一直存在。在元数据服务器故障恢复后,先执行未完成任务撤销,即向迁移客户端发送撤销任务。迁移客户端可以使用撤销线程和迁移线程分别处理撤销任务和迁移任务,撤销任务和迁移任务可以通过文件迁移任务的任务标识关联,撤销线程处理撤销任务。撤销任务通过给迁移任务中的文件打撤销标记,迁移线程在执行文件数据拷贝过程中判断是否需要撤销,如果文件数据已撤销则不再继续拷贝,等已拷贝的文件数据全部返回后删除目的池子中已拷贝的文件数据。当撤销任务完成后元数据服务器再继续下发新文件迁移任务,保证数据一致性,提升分布式文件***整体可靠性和性能。
请参见图3,图3为本申请实施例所提供的另一种数据迁移方法的流程图,具体可以包括以下步骤:
步骤1:元数据服务器下发迁移任务前,将任务下盘并在下盘完成后向迁移客户端下发迁移任务请求。
步骤2:迁移客户端在数据迁移过程中,如果元数据服务器发生切换后重新发起分级操作,元数据服务器先加载未完成任务,然后向迁移客户端发送未完成任务的撤销操作。
步骤3:迁移客户端在收到撤销任务后,保存到撤销队列,撤销线程处理撤销队列,给迁移过程中的任务打撤销标记。
步骤4:迁移客户端的迁移线程处理迁移任务,迁移任务中的文件在迁移拷贝过程中判断是否需要撤销,如果需要撤销则剩余对象不再继续拷贝,等所有已拷贝的对象都完成后,清理目的池子垃圾对象数据,迁移结束。如果不需要撤销,迁移任务文件迁移完成后迁移客户端应答元数据服务器。
步骤5:元数据服务器收到应答后清理未完成下盘数据,表示该任务迁移成功。
上述实施例在元数据服务器下发迁移任务时先将任务下盘保存,未完成的任务该任务会一直存盘,在元数据服务器分级操作流程中,首先执行未完成任务撤销,如果文件在迁移客户端仍在拷贝过程,则通过撤销线程打标记方式执行中途撤销,提高撤销效率,撤销完成后再执行迁移任务的发送,避免因元数据服务器切换导致文件并发迁移和迁移过期数据导致数据不一致问题。
请参见图4,图4为本申请实施例所提供的一种数据迁移***的结构示意图,该***可以包括:
任务生成模块100,用于当接收到文件分级指令时,根据所述文件分级指令生成文件迁移任务,并将所述文件迁移任务的执行状态标记为未完成状态;
任务下发模块200,用于将所述文件迁移任务发送至迁移客户端,以便迁移客户端执行所述文件迁移任务;
状态标记模块300,用于获取文件迁移进度,根据所述文件迁移进度将迁移完毕的文件迁移任务的执行状态标记为已完成状态;
任务撤销模块400,用于若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将所述撤销任务发送至所述迁移客户端,以便所述迁移客户端执行所述撤销任务。
本实施例在接收到文件分级指令之后,生成文件迁移任务并对文件迁移任务设置执行状态,执行状态可以包括已完成状态和未完成状态。在将文件迁移任务发送至迁移客户端后,迁移客户端可以执行文件迁移任务对应的操作,若文件迁移完毕则将文件任务的执行状态设置为已完成状态,若文件迁移未完毕则将文件任务的执行状态设置为未完成状态。若元数据服务器发生切换,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务以便撤销迁移客户端对撤销任务的执行,避免出现文件并发迁移导致的数据不一致的问题。可见,本实施例能够保持迁移前后数据的一致性,提升分布式文件***的可靠性。本申请在通过文件分级特性提高集群性能的同时,避免因元数据服务器切换导致文件并发迁移和拷贝过期数据导致数据不一致问题,提高集群性能和稳定性,提升用户体验和用户满意度,提高产品的竞争力。
进一步的,还包括:
通知接收模块,用于接收所述迁移客户端返回的通知消息;其中,所述通知信息为所述迁移客户端将原存储池中的数据复制至新存储池后返回的信息;
属性更新模块,用于根据所述通知消息确定已完成复制操作的目标文件,并更新所述目标文件的存储池属性信息;
应答模块,用于向所述迁移客户端返回应答信息,以便所述迁移客户端清除所述原存储池中的目标文件并返回清除完毕信息;
提示信息接收模块,用于若接收到所述迁移客户端返回的所述清除完毕的提示信息,则判定所述目标文件对应的文件迁移任务执行完毕。
进一步的,所述迁移客户端包括:
解析模块,用于解析所述文件迁移任务得到文件信息;其中,所述文件信息包括目标文件、原存储池的标识和新存储池的标识;
复制模块,用于将所述原存储池中存储的所述目标文件复制至所述新存储池,并在所述目标文件复制完毕后向所述元数据服务器发送通知信息,以便所述元数据服务器更新文件的存储池属性信息;
文件清除模块,用于若接收到所述元数据服务器发送的应答信息,则清除所述原存储池中的所述目标文件,向所述元数据服务器发送清除完毕的提示信息。
进一步的,所述复制模块用于将所述目标文件划分为多个数据块并生成每一所述数据块对应的迁移子任务;还用于将所述迁移子任务添加至迁移线程的任务队列,并利用所述迁移线程执行所述迁移子任务,以便将所述原存储池中的每一所述数据块依次复制至所述新存储池。
进一步的,所述迁移客户端执行撤销任务的过程包括:确定所述撤销任务对应的文件设置为待撤销文件;将所述待撤销文件划分得到的数据块设置为待撤回数据块;判断所述待撤回数据块是否被迁移线程复制至所述新存储池;若是,则删除所述新存储池中的待撤回数据块;若否,则对所述任务队列中与所述待撤回数据块对应的迁移子任务添加撤销标记。
进一步的,所述迁移客户端还包括:
判断模块,用于判断当前被执行的迁移子任务是否被添加所述撤销标记;若是,在将所述当前被执行的迁移子任务对应的数据块复制至所述新存储池后,删除所述新存储池中的所述当前被执行的迁移子任务对应的数据块。
进一步的,利用所述迁移线程执行所述迁移子任务得过程包括:判断所述迁移子任务是否添加有所述撤销标记;若是,则撤销所述迁移线程对所述迁移子任务的执行操作;若否,则利用所述迁移线程执行所述迁移子任务。
由于***部分的实施例与方法部分的实施例相互对应,因此***部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (8)
1.一种数据迁移方法,其特征在于,包括:
当接收到文件分级指令时,根据所述文件分级指令生成文件迁移任务,并在目标存储空间中将所述文件迁移任务的执行状态标记为未完成状态;
将所述文件迁移任务发送至迁移客户端,以便迁移客户端执行所述文件迁移任务;
获取文件迁移进度,根据所述文件迁移进度在所述目标存储空间中将迁移完毕的文件迁移任务的执行状态标记为已完成状态;
若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将所述撤销任务发送至所述迁移客户端,以便所述迁移客户端执行所述撤销任务;
其中,所述迁移客户端执行撤销任务的过程包括:
确定所述撤销任务对应的文件设置为待撤销文件;
将所述待撤销文件划分得到的数据块设置为待撤回数据块;
判断所述待撤回数据块是否被迁移线程复制至新存储池;
若是,则删除所述新存储池中的待撤回数据块;
若否,则对任务队列中与所述待撤回数据块对应的迁移子任务添加撤销标记;
其中,还包括:
判断当前被执行的迁移子任务是否被添加所述撤销标记;
若是,在将所述当前被执行的迁移子任务对应的数据块复制至所述新存储池后,删除所述新存储池中的所述当前被执行的迁移子任务对应的数据块。
2.根据权利要求1所述数据迁移方法,其特征在于,在将所述文件迁移任务发送至迁移客户端之后,还包括:
接收所述迁移客户端返回的通知消息;其中,所述通知消息为所述迁移客户端将原存储池中的数据复制至新存储池后返回的信息;
根据所述通知消息确定已完成复制操作的目标文件,并更新所述目标文件的存储池属性信息;
向所述迁移客户端返回应答信息,以便所述迁移客户端清除所述原存储池中的目标文件并返回清除完毕信息;
若接收到所述迁移客户端返回的所述清除完毕的提示信息,则判定所述目标文件对应的文件迁移任务执行完毕。
3.根据权利要求1所述数据迁移方法,其特征在于,所述迁移客户端执行所述文件迁移任务的过程包括:
解析所述文件迁移任务得到文件信息;其中,所述文件信息包括目标文件、原存储池的标识和新存储池的标识;
将所述原存储池中存储的所述目标文件复制至所述新存储池,并在所述目标文件复制完毕后向所述元数据服务器发送通知信息,以便所述元数据服务器更新文件的存储池属性信息;
若接收到所述元数据服务器发送的应答信息,则清除所述原存储池中的所述目标文件,向所述元数据服务器发送清除完毕的提示信息。
4.根据权利要求3所述数据迁移方法,其特征在于,将所述原存储池中存储的所述目标文件复制至所述新存储池,包括:
将所述目标文件划分为多个数据块并生成每一所述数据块对应的迁移子任务;
将所述迁移子任务添加至迁移线程的任务队列,并利用所述迁移线程执行所述迁移子任务,以便将所述原存储池中的每一所述数据块依次复制至所述新存储池。
5.根据权利要求1所述数据迁移方法,其特征在于,利用所述迁移线程执行所述迁移子任务,包括:
判断所述迁移子任务是否添加有所述撤销标记;
若是,则撤销所述迁移线程对所述迁移子任务的执行操作;
若否,则利用所述迁移线程执行所述迁移子任务。
6.一种数据迁移***,其特征在于,包括:
任务生成模块,用于当接收到文件分级指令时,根据所述文件分级指令生成文件迁移任务,并将所述文件迁移任务的执行状态标记为未完成状态;
任务下发模块,用于将所述文件迁移任务发送至迁移客户端,以便迁移客户端执行所述文件迁移任务;
状态标记模块,用于获取文件迁移进度,根据所述文件迁移进度将迁移完毕的文件迁移任务的执行状态标记为已完成状态;
任务撤销模块,用于若检测到***执行元数据服务器切换操作,则根据处于未完成状态的文件迁移任务的任务标识生成撤销任务,并将所述撤销任务发送至所述迁移客户端,以便所述迁移客户端执行所述撤销任务;
其中,所述迁移客户端执行撤销任务的过程包括:确定所述撤销任务对应的文件设置为待撤销文件;将所述待撤销文件划分得到的数据块设置为待撤回数据块;判断所述待撤回数据块是否被迁移线程复制至新存储池;若是,则删除所述新存储池中的待撤回数据块;若否,则对任务队列中与所述待撤回数据块对应的迁移子任务添加撤销标记;
进一步的,还包括:
判断模块,用于判断当前被执行的迁移子任务是否被添加所述撤销标记;若是,在将所述当前被执行的迁移子任务对应的数据块复制至所述新存储池后,删除所述新存储池中的所述当前被执行的迁移子任务对应的数据块。
7.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至5任一项所述数据迁移方法的步骤。
8.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至5任一项所述数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470809.6A CN111625498B (zh) | 2020-05-28 | 2020-05-28 | 一种数据迁移方法、***、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470809.6A CN111625498B (zh) | 2020-05-28 | 2020-05-28 | 一种数据迁移方法、***、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625498A CN111625498A (zh) | 2020-09-04 |
CN111625498B true CN111625498B (zh) | 2022-06-07 |
Family
ID=72260853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010470809.6A Active CN111625498B (zh) | 2020-05-28 | 2020-05-28 | 一种数据迁移方法、***、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625498B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559448B (zh) * | 2021-02-19 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 数据状态迁移方法、装置、计算机设备和存储介质 |
CN114415977B (zh) * | 2022-03-29 | 2022-10-04 | 阿里云计算有限公司 | 访问存储池的方法以及分布式存储*** |
CN115617489B (zh) * | 2022-11-08 | 2023-03-28 | 统信软件技术有限公司 | 操作***迁移方法、迁移应用及迁移应用部署方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016141702A1 (zh) * | 2015-03-10 | 2016-09-15 | 中兴通讯股份有限公司 | 分布式***中元数据的迁移方法及装置 |
CN105991769A (zh) * | 2016-04-12 | 2016-10-05 | 上海帝联信息科技股份有限公司 | 数据迁移方法及装置、边缘节点服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008287327A (ja) * | 2007-05-15 | 2008-11-27 | Hitachi Ltd | データマイグレーション方法、計算機システム、及びデータマイグレーションプログラム |
WO2011055412A1 (en) * | 2009-11-06 | 2011-05-12 | Hitachi, Ltd. | File management sub-system and file migration control method in hierarchical file system |
-
2020
- 2020-05-28 CN CN202010470809.6A patent/CN111625498B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016141702A1 (zh) * | 2015-03-10 | 2016-09-15 | 中兴通讯股份有限公司 | 分布式***中元数据的迁移方法及装置 |
CN105991769A (zh) * | 2016-04-12 | 2016-10-05 | 上海帝联信息科技股份有限公司 | 数据迁移方法及装置、边缘节点服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111625498A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625498B (zh) | 一种数据迁移方法、***、电子设备及存储介质 | |
US10896102B2 (en) | Implementing secure communication in a distributed computing system | |
CN109558215B (zh) | 虚拟机的备份方法、恢复方法、装置及备份服务器集群 | |
CN102594849B (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
US10642694B2 (en) | Monitoring containers in a distributed computing system | |
JP3782932B2 (ja) | ファイルをバックアップするための方法、システム及びプログラム記録媒体 | |
RU2498394C2 (ru) | Синхронизация жизненных циклов виртуальной машины и приложения | |
KR101969604B1 (ko) | 복구 서비스의 자동 구성 기법 | |
US11662996B2 (en) | System and method for downgrading applications | |
US20070136381A1 (en) | Generating backup sets to a specific point in time | |
US11567686B2 (en) | Snapshot lifecycle management systems and methods | |
CN101321187B (zh) | 用于备份数据的***和方法 | |
JP2008181287A (ja) | データのリカバリを制御する装置及び方法 | |
KR20190041033A (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
US20190332500A1 (en) | Method and system for global snapshots of distributed storage | |
JP6196389B2 (ja) | 分散型ディザスタリカバリファイル同期サーバシステム | |
CN107783826B (zh) | 一种虚拟机迁移方法、装置及*** | |
JP4249605B2 (ja) | クライアントサーバシステムおよびキャッシュ制御方法ならびにコンピュータプログラム | |
CN112269758B (zh) | 一种基于文件分级的文件迁移方法及相关装置 | |
CN112084165A (zh) | 管理镜像仓库的方法、装置、电子设备及可读存储介质 | |
CN112473145B (zh) | 一种基于游戏引擎的数据处理方法和装置 | |
CN114328458A (zh) | 数据迁移方法及其装置、计算机存储介质 | |
CN113377724A (zh) | 一种缓存空间管理方法、装置和存储介质 | |
JP2017162062A (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
CN113448493A (zh) | 用于备份数据的方法、电子设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |