CN111078628B - 一种多盘并发数据迁移方法、系统、装置及可读存储介质 - Google Patents
一种多盘并发数据迁移方法、系统、装置及可读存储介质 Download PDFInfo
- Publication number
- CN111078628B CN111078628B CN201811215833.4A CN201811215833A CN111078628B CN 111078628 B CN111078628 B CN 111078628B CN 201811215833 A CN201811215833 A CN 201811215833A CN 111078628 B CN111078628 B CN 111078628B
- Authority
- CN
- China
- Prior art keywords
- data
- data migration
- migration
- cooperative
- program
- 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 257
- 238000013508 migration Methods 0.000 title claims abstract description 257
- 238000000034 method Methods 0.000 title claims abstract description 56
- 239000012634 fragment Substances 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 16
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本申请公开了一种多盘并发数据迁移方法,应用在新GlusterFS中,分别为每个数据迁移任务创建一个协程,并将每个完整待迁移数据文件拆分为多个数据分片以分散至隶属于对应协程的多个协程子任务中,以在协程的管理下使下属的所有协程子任务以并行的方式同时执行数据迁移操作。区别于常规通过多线程实现并行处理的方式,本申请采用依附于单线程下的协程来实现并行处理,而且唯一线程中的协程和各协程子任务间的切换和控制均由程序自行控制,避免了多线程方式下由CPU控制系统资源在多个线程间频繁进行切换所带来的开销,并行处理效果更好。本申请还同时公开了一种多盘并发数据迁移系统、装置及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及GlusterFS应用技术领域,特别涉及一种应用在新GlusterFS下的多盘并发数据迁移方法、系统、装置及计算机可读存储介质。
背景技术
为了适应信息化时代成爆炸式增长的数据量,分布式存储系统以其易拓展、更适合存储海量数据的特性替代了原先使用的中心化存储系统,其中,GlusterFS作为一种开源的分布式存储系统已被广泛使用在各个领域。
原生版GlusterFS中,采用了元数据和实际数据不分离的存储方式,并基于固定的拓扑结构使得在进行数据迁移时只能以副本组为最小迁移单位,在将存储于原副本组中的文件副本转移至组成方式的新副本组中,换句话说,当使用原生版GlusterFS对数据以多副本的方式进行高冗余度保存时,每个副本组必须均以相同个数的副本组成,在副本数为3的副本组中,每个副本组由3个副本组成,而为了防止因单节点故障导致一次性多个副本不可用的情况出现,每个副本通常置于不同的物理磁盘上。也就是说每个副本组由3个副本磁盘组成,当副本组A因全局系统进行数据分布感知确定其需要进行迁移时,其目的副本组B必须也是一个3副本的副本组,即实现一个3对3的数据迁移。
但在多数实际情况下,并不会出现组成一个副本组中的所有副本磁盘均出现已存储数据大小占总大小超过阈值的情况,也就是在原生版GlusterFS中,受限于其结构,大多数进行数据迁移的情况往往是由于其中的1个出现此种情况就对整个副本组的文件副本进行搬迁,不仅使得搬迁数据量巨大,传输时间较长,迁移效率低下。
本申请应用的新GlusterFS是一种区别于原生版GlusterFS的GlusterFS,其采用了区别于原生版GlusterFS的新架构,使得其在实际数据与元数据分离的情况下,借助由虚拟化技术虚拟出的虚拟节点直接实现对每个副本磁盘的管理,副本组如何组成、由哪几个副本磁盘组成均是在逻辑层面进行的设置,不再存在固定的副本组构成方式的限制,也由此实现了可基于副本组为最小迁移单位的数据迁移操作,相较于原生版GlusterFS,拥有更灵活的文件副本管理方式、副本组构成方式、更少的数据迁移量和更短的迁移耗时。
进一步的,即使是采用新架构的可实现以副本为单位进行数据迁移的新GlusterFS,在管理的副本磁盘数量巨大、系统环境复杂的情况下,很有可能会在同一时间内出现多个副本磁盘需要进行数据迁移的情况,此种情况被称为数据迁移任务的多盘并发,如何为新GlusterFS提供一种多盘并发数据迁移方法,使其在并发出现多个数据迁移任务时可更快协调多个任务、更快的完成这些数据迁移任务,使得整个系统在更多的时间内保持在一个稳定的运行状态,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种多盘并发数据迁移方法,应用在新GlusterFS中,在接收到任务中心在同一时刻批量下发的多个数据迁移任务时,分别为每个数据迁移任务创建一个协程,并将每个完整待迁移数据文件拆分为多个数据分片以分散至隶属于对应协程的多个协程子任务中,以在协程的管理下使下属的所有协程子任务以并行的方式同时执行数据迁移操作。区别于常规通过多线程实现并行处理的方式,本申请采用依附于单线程下的协程和隶属于该协程的多个协程子任务来实现并行处理,而且唯一线程中的协程和各协程子任务间的切换和控制均由程序自行控制,避免了多线程方式下由CPU控制系统资源在多个线程间频繁进行切换所带来的开销,并行处理效果更好。
本申请的另一目的在于提供了一种多盘并发数据迁移系统、装置及计算机可读存储介质。
为实现上述目的,本申请提供一种多盘并发数据迁移方法,应用在新GlusterFS中,该多盘并发数据迁移方法包括:
文件系统接收任务中心在同一时刻批量下发的多个数据迁移任务,并为每个所述数据迁移任务分别创建一个数据迁移协程;
每个所述数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作,并在隶属于自身的所有协程子任务均完成所述数据迁移操作后向副本组管理模块上报完成信号;
所述副本组管理模块根据所述完成信号更新相应完整待迁移数据的文件路由信息。
可选的,每个所述数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,包括:
每个所述数据迁移协程将各自对应的完整待迁移数据以预设数据分片大小进行拆分,得到多个所述数据分片。
可选的,在每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作之前,还包括:
每个所述数据迁移协程为隶属于自身的每个协程子任务附加迁移状态标记;其中,所述迁移状态标记具体包括迁移进行标记和迁移完成标记。
可选的,在隶属于自身的所有协程子任务均完成所述数据迁移操作后向副本组管理模块上报完成信号,包括:
当隶属于一个所述数据迁移协程中的所有协程子任务的迁移状态标记均表现为所述迁移完成标记时,所述数据迁移协程向所述副本组管理模块上报所述完成信号。
可选的,在所述副本组管理单元根据所述完成信号更新相应完整待迁移数据的文件路由信息之后,还包括:
所述文件系统回收返回了所述完成信号的数据迁移协程所占用的系统资源。
为实现上述目的,本申请还提供了一种多盘并发数据迁移系统,应用于新GlusterFS,该多盘并发数据迁移系统包括:
多任务接收和协程创建单元,用于文件系统接收任务中心在同一时刻批量下发的多个数据迁移任务,并为每个所述数据迁移任务分别创建一个数据迁移协程;
数据拆分和子任务分配单元,用于每个所述数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
数据迁移并行执行单元,用于每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作,并在隶属于自身的所有协程子任务均完成所述数据迁移操作后向副本组管理模块上报完成信号;
文件路由信息更新单元,用于所述副本组管理模块根据所述完成信号更新相应完整待迁移数据的文件路由信息。
可选的,所述数据拆分和子任务分配单元包括:
按预设数据分片大小拆分子单元,用于每个所述数据迁移协程将各自对应的完整待迁移数据以预设数据分片大小进行拆分,得到多个所述数据分片。
可选的,该多盘并发数据迁移系统还包括:
迁移状态标记附加单元,用于在每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作之前,每个所述数据迁移协程为隶属于自身的每个协程子任务附加迁移状态标记;其中,所述迁移状态标记具体包括迁移进行标记和迁移完成标记。
可选的,所述数据迁移并行执行单元包括:
迁移完成标记判断子单元,用于当隶属于一个所述数据迁移协程中的所有协程子任务的迁移状态标记均表现为所述迁移完成标记时,所述数据迁移协程向所述副本组管理模块上报所述完成信号。
可选的,该多盘并发数据迁移系统还包括:
资源回收单元,用于在所述副本组管理单元根据所述完成信号更新相应完整待迁移数据的文件路由信息之后,所述文件系统回收返回了所述完成信号的数据迁移协程所占用的系统资源。
为实现上述目的,本申请还提供了一种多盘并发数据迁移装置,该装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的多盘并发数据迁移方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的多盘并发数据迁移方法的步骤。
显然,本申请所提供的一种应用在新GlusterFS中的多盘并发数据迁移方法,在接收到任务中心在同一时刻批量下发的多个数据迁移任务时,分别为每个数据迁移任务创建一个协程,并将每个完整待迁移数据文件拆分为多个数据分片以分散至隶属于对应协程的多个协程子任务中,以在协程的管理下使下属的所有协程子任务以并行的方式同时执行数据迁移操作。区别于常规通过多线程实现并行处理的方式,本申请采用依附于单线程下的协程和隶属于该协程的多个协程子任务来实现并行处理,而且唯一线程中的协程和各协程子任务间的切换和控制均由程序自行控制,避免了多线程方式下由CPU控制系统资源在多个线程间频繁进行切换所带来的开销,并行处理效果更好。
本申请同时还提供了一种应用在新GlusterFS中的多盘并发数据迁移系统、装置及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请所提供的技术方案所应用的基础背景的架构示意图;
图2为本申请实施例提供的一种多盘并发数据迁移方法的流程图;
图3为本申请实施例提供的另一种多盘并发数据迁移方法的流程图;
图4为本申请实施例提供的一种多盘并发数据迁移系统的结构框图。
具体实施方式
本申请的核心是提供一种应用在新GlusterFS中的多盘并发数据迁移方法,在接收到任务中心在同一时刻批量下发的多个数据迁移任务时,分别为每个数据迁移任务创建一个协程,并将每个完整待迁移数据文件拆分为多个数据分片以分散至隶属于对应协程的多个协程子任务中,以在协程的管理下使下属的所有协程子任务以并行的方式同时执行数据迁移操作。区别于常规通过多线程实现并行处理的方式,本申请采用依附于单线程下的协程和隶属于该协程的多个协程子任务来实现并行处理,而且唯一线程中的协程和各协程子任务间的切换和控制均由程序自行控制,避免了多线程方式下由CPU控制系统资源在多个线程间频繁进行切换所带来的开销,并行处理效果更好。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了方便理解本申请的具体应用场景,此处将对新GlusterFS的具体架构进行说明:
请参见图1所示的新GlusterFS架构示意图,如图1所示,新GlusterFS具有分离的两个命名空间,其中一个是目录命名空间,存储实际数据的元数据,并形成用户可见的层次视图结构,以方便管理;另一个是数据命名空间,存储实际数据,也就是具有一定大小、经解析后存在实际意义的二进制代码,各存储于数据命名空间中的实际数据与各存储于目录命名空间中的元数据之间存在唯一的映射关系,以便在用户视图对可见的目录项进行相应的操作时,可通过该映射关系找到位于数据命名空间中的实际数据,并使得该实际数据以不可见的方式参与进具体的操作中来。区别于元数据与实际数据不分离的原生版GlusterFS,新GlusterFS的这种架构使得其拥有中心化的元数据管理中心,可实现更灵活、受限制更少的信息变更操作,因为在原生版GlusterFS中,由于元数据与实际数据不分离,想要单独对元数据进行变更是十分困难的。
在此基础上,新GlusterFS不再使用固定的物理节点作为副本组的管理节点,而是使用借助虚拟化技术得到的虚拟节点,因为在上层不分离的元数据和实际数据的架构下,原先每个副本组的管理节点的信息变更和进行数据迁移时都十分困难,且限制颇多,因为每个副本组的管理节点下有哪几个副本磁盘都是固定的,且只能管理这些固定的副本磁盘,因此在变更时相当于在一个相同的空白副本组中进行数据重建操作。而虚拟节点同时与所有副本磁盘建立数据连接,副本组的组成和路由信息的变更以及数据迁移操作等信息均可以建立在逻辑层面,通过重设这部分信息可实现动态、灵活的切换,使得构成的新GlusterFS具有更大的灵活性,更科学的操作方式和更高的效率。
实施例一
以下结合图2,图2为本申请实施例提供的一种多盘并发数据迁移方法的流程图,本实施例所处的实际场景为:任务中心通过全局容量感知确定出需要执行数据迁移的数据所在源磁盘和目的磁盘,通常的判断方式为将使用容量使用超过阈值的源磁盘上的部分文件迁移到容量在迁移后不会超过阈值的目的磁盘上,之后将需要进行迁移的待迁移文件、源磁盘信息和目的磁盘进行整合得到数据迁移任务,且将在同一时刻确定并生成出的多个数据迁移任务下发至执行者,也就是文件系统来执行,如何通过并行的方式高效率的解决并发出现的多个数据迁移任务是本申请下述各实施例要结局的问题,本实施例包括如下步骤:
S101:文件系统接收任务中心在同一时刻批量下发的多个数据迁移任务,并为每个数据迁移任务分别创建一个数据迁移协程;
本步骤首先由文件系统接收来自任务中心在同一时刻批量下发的多个数据迁移任务,并由该文件系统为每个数据迁移任务创建一个具体来执行数据迁移操作的数据迁移协程。
为了方便理解本申请所描述的协程的含义,此处将分别对进程、线程以及协程的概念进行解释:
对任何文件操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元,无论进程还是线程,都是由操作系统所管理的。在开启一个应用程序时,相应产生的即是进程,也是我们能够在windows的任务管理器中看到的,线程包含于进程,一个进程可以包含多个线程,多线程的存在是试图进行“并行”操作以提升处理效率,当只有一个CPU核心时,一个进程下的多个线程会被操作系统频繁切换逐一使用,以营造出一种伪并行的处理方式,实际上只不过是相同任务切换了执行者而已;而当CPU核心数与线程数相同的时,就可以真正的同时由每个CPU核心并行处理不同的线程上的任务,但往往处理设备的CPU核心数会远少于线程数,因此此种情况并不常见。
由于线程间的切换受操作系统管理,每次线程间的切换都需要消耗CPU一定的开销来完成,并消耗一定的时间,切换频率越高就越明显。而协程则不同,协程包含与线程,一个线程可以包含多个协程,且最重要的是协程的切换、增加或删减都由当前协程按预设设定好的程序来执行,即当前协程可根据实际情况增加、删减以及展示挂起甚至切换至其它协程或子协程中,而非像线程一样受操作系统管理,每个协程或协程下的协程子任务将受到上级协程的管理,并可通过并行处理的方式来加速任务的执行,相比于受操作系统管理并频繁切换的线程,位于唯一线程中的多个协程或一组由协程和协程子任务组成的协程组无需频繁的进行切换,能够尽可能的减少对操作系统、CPU带来的压力和管理消耗掉的开销。
具体的,协程具有如下优势:1.避免了原先消耗在线程切换上所花费的开销;2.无需加锁,协程就是一种单线程模式,在串行方式下无需添加锁;3.具有高并发、高扩展性的特点;4.协程能保留上次调用的状态,重新进入时候继续上次退出地方。
S102:每个数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,并将各数据分片分配给相应数量的协程子任务;
在S101的基础上,本步骤旨在通过创建协程子任务的方式来进一步加快每个数据迁移任务的处理速度,创建多个协程子任务的目的是想通过每个协程子任务同时处理一部分数据迁移任务的方式来加快处理速度,相比于一个人处理100份文件,使用100个人分别处理其中的一份文件,后者明显拥有更快的处理速度。
具体的,如何将一个完整的数据迁移任务(或称完整的待迁移数据)拆分成并分配给不同的协程子任务,大体有两种分配方式,其一,以固定的数据分片大小将完整的待迁移数据拆分为多个相同大小的数据分片,并使用相同数量的协程子任务来分别处理其中的每个数据分片,当然,并非说一定要在分成100个数据分片的情况下,创建100个协程子任务来分别承载其中的一个数据分片,也可以创建50个协程子任务分别承载其中的两个数据分片的方式来实现;其二,以固定的协程子任务数将完整的待迁移数据进行拆分,假定最多只能创建10个协程子任务的情况,那么分给每个协程子任务的数据迁移任务只能是完整数据迁移任务的1/10。这两种方式本质上相差不大,是不同应用场景下可能存在的两种拆分和任务分配方式,都能够实现并行处理的效果,具体选择哪种可根据实际应用场景灵活的选择。
S103:每个数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作,并在隶属于自身的所有协程子任务均完成数据迁移操作后向副本组管理模块上报完成信号;
在S102的基础上,本步骤旨在以并行的方式执行数据迁移操作,即每个数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作,由于不同的分配方式,以及在实际情况下不同协程子任务的处理速度有可能存在差异,因此只有在数据迁移协程在判断隶属于自身的所有协程子任务均完成数据迁移操作后才能向副本组管理模块上报完成信号。该完成信号即意味着与该数据迁移协程对应的数据迁移任务执行完毕。
具体的,判断每个协程子任务是否执行完毕的方式可以通过附加状态标记的方式,该状态标记将在协程子任务处于不同的状态时变更为相同的状态,以便于数据迁移协程判断众多协程子任务的任务执行情况,并决定是否返回完成信号。
S104:副本组管理模块根据完成信号更新相应完整待迁移数据的文件路由信息。
在S103的基础上,副本组管理模块将在收到数据迁移协程返回的完成信号后,将对应的数据迁移任务中的待迁移数据的路由信息进行更新,即将迁移的文件副本的路由信息由源磁盘更新为目的磁盘(即为区别于源磁盘的新磁盘,在接收完迁移来的文件副本后其容量依然低于阈值),以使得该副本也在包含其的副本组中的相应信息进行改变,同时也将用于原始文件修改后的同步操作。
进一步的,在每个数据迁移任务被执行完后,还可以对原先创建出来的数据迁移协程所占用的系统资源进行回收,以根据后续的数据迁移任务或其它任务进重新分配。
基于上述技术方案,本申请实施例提供的一种应用在新GlusterFS中的多盘并发数据迁移方法,在接收到任务中心在同一时刻批量下发的多个数据迁移任务时,分别为每个数据迁移任务创建一个协程,并将每个完整待迁移数据文件拆分为多个数据分片以分散至隶属于对应协程的多个协程子任务中,以在协程的管理下使下属的所有协程子任务以并行的方式同时执行数据迁移操作。区别于常规通过多线程实现并行处理的方式,本申请采用依附于单线程下的协程和隶属于该协程的多个协程子任务来实现并行处理,而且唯一线程中的协程和各协程子任务间的切换和控制均由程序自行控制,避免了多线程方式下由CPU控制系统资源在多个线程间频繁进行切换所带来的开销,并行处理效果更好。
实施例二
以下结合图3,图3为本申请实施例提供的另一种多盘并发数据迁移方法的流程图,本实施例在实施例一的基础上,通过S202给出了一种具体的数据拆分方法,通过S203和S205给出了一种判别是否上报完成信号的具体方式,并在S206中增加了释放相应空闲系统资源的内容来提升系统稳定性的方式,需要说明的是,这三部分内容还可分别单独的与实施例一形成三个单独的实施例,本实施例仅作为一个同时包含这三部分优选方案的实施例存在,实施步骤包括:
S201:文件系统接收任务中心在同一时刻批量下发的多个数据迁移任务,并为每个数据迁移任务分别创建一个数据迁移协程;
S202:每个数据迁移协程将各自对应的完整待迁移数据以预设数据分片大小进行拆分,得到多个数据分片,并将各数据分片分配给相应数量的协程子任务;
本实施例采用以预设数据分片大小将完整待迁移数据进行拆分的方式,并将拆分得到的各数据分片分配给相应数量的协程子任务,在系统剩余资源充足的情况下,此种方式可在预设数据分片大小足够小的情况下,得到最快的任务执行和处理速度。
S203:每个数据迁移协程为隶属于自身的每个协程子任务附加迁移状态标记;
其中,该迁移状态标记具体包括迁移进行标记和迁移完成标记,迁移进行标记表示对应的协程子任务正在执行其负责的部分数据迁移任务,迁移完成标记则表示对应的协程子任务已经完成了其负责的部分数据迁移任务。
S204:每个数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作;
S205:当隶属于一个数据迁移协程中的所有协程子任务的迁移状态标记均表现为迁移完成标记时,数据迁移协程向副本组管理模块上报完成信号;
S206:副本组管理模块根据完成信号更新相应完整待迁移数据的文件路由信息;
S207:文件系统回收返回了完成信号的数据迁移协程所占用的系统资源。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图4,图4为本申请实施例提供的一种多盘并发数据迁移系统的结构框图,该应用于新GlusterFS下的多盘并发数据迁移系统可以包括:
多任务接收和协程创建单元100,用于文件系统接收任务中心在同一时刻批量下发的多个数据迁移任务,并为每个数据迁移任务分别创建一个数据迁移协程;
数据拆分和子任务分配单元200,用于每个数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,并将各数据分片分配给相应数量的协程子任务;
数据迁移并行执行单元300,用于每个数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作,并在隶属于自身的所有协程子任务均完成数据迁移操作后向副本组管理模块上报完成信号;
文件路由信息更新单元400,用于副本组管理模块根据完成信号更新相应完整待迁移数据的文件路由信息。
其中,数据拆分和子任务分配单元200可以包括:
按预设数据分片大小拆分子单元,用于每个数据迁移协程将各自对应的完整待迁移数据以预设数据分片大小进行拆分,得到多个数据分片。
进一步的,该多盘并发数据迁移系统还可以包括:
迁移状态标记附加单元,用于在每个数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作之前,每个数据迁移协程为隶属于自身的每个协程子任务附加迁移状态标记;其中,迁移状态标记具体包括迁移进行标记和迁移完成标记。
其中,数据迁移并行执行单元300可以包括:
迁移完成标记判断子单元,用于当隶属于一个数据迁移协程中的所有协程子任务的迁移状态标记均表现为迁移完成标记时,数据迁移协程向副本组管理模块上报完成信号。
更进一步的,该多盘并发数据迁移系统还可以包括:
资源回收单元,用于在副本组管理单元根据完成信号更新相应完整待迁移数据的文件路由信息之后,文件系统回收返回了完成信号的数据迁移协程所占用的系统资源。
基于上述实施例,本申请还提供了一种多盘并发数据迁移装置,该装置可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,且各个实施例间为递进关系,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,可参见对应的方法部分说明。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种多盘并发数据迁移方法,其特征在于,应用于新GlusterFS,所述新GlusterFS具有用于存储实际数据的元数据的目录命名空间和用于存储实际数据的数据命名空间,各存储于数据命名空间中的实际数据与各存储于目录命名空间中的元数据之间存在唯一的映射关系;所述新GlusterFS还使用虚拟化技术得到虚拟节点,所述虚拟节点同时与所有副本磁盘建立数据连接,副本组的组成和路由信息的变更以及数据迁移操作均建立在逻辑层面,包括:
文件系统接收任务中心在同一时刻批量下发的多个数据迁移任务,并为每个所述数据迁移任务分别创建一个数据迁移协程;所述多个数据迁移任务为:同一时间内出现的多个副本磁盘的数据迁移任务;
每个所述数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作,并在隶属于自身的所有协程子任务均完成所述数据迁移操作后向副本组管理模块上报完成信号;
所述副本组管理模块根据所述完成信号更新相应完整待迁移数据的文件路由信息。
2.根据权利要求1所述的多盘并发数据迁移方法,其特征在于,每个所述数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,包括:
每个所述数据迁移协程将各自对应的完整待迁移数据以预设数据分片大小进行拆分,得到多个所述数据分片。
3.根据权利要求1所述的多盘并发数据迁移方法,其特征在于,在每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作之前,还包括:
每个所述数据迁移协程为隶属于自身的每个协程子任务附加迁移状态标记;其中,所述迁移状态标记具体包括迁移进行标记和迁移完成标记。
4.根据权利要求3所述的多盘并发数据迁移方法,其特征在于,在隶属于自身的所有协程子任务均完成所述数据迁移操作后向副本组管理模块上报完成信号,包括:
当隶属于一个所述数据迁移协程中的所有协程子任务的迁移状态标记均表现为所述迁移完成标记时,所述数据迁移协程向所述副本组管理模块上报所述完成信号。
5.根据权利1至4任一项所述的多盘并发数据迁移方法,其特征在于,在所述副本组管理单元根据所述完成信号更新相应完整待迁移数据的文件路由信息之后,还包括:
所述文件系统回收返回了所述完成信号的数据迁移协程所占用的系统资源。
6.一种多盘并发数据迁移系统,其特征在于,应用于新GlusterFS,所述新GlusterFS具有用于存储实际数据的元数据的目录命名空间和用于存储实际数据的数据命名空间,各存储于数据命名空间中的实际数据与各存储于目录命名空间中的元数据之间存在唯一的映射关系;所述新GlusterFS还使用虚拟化技术得到虚拟节点,所述虚拟节点同时与所有副本磁盘建立数据连接,副本组的组成和路由信息的变更以及数据迁移操作均建立在逻辑层面,包括:
多任务接收和协程创建单元,用于文件系统接收任务中心在同一时刻批量下发的多个数据迁移任务,并为每个所述数据迁移任务分别创建一个数据迁移协程;所述多个数据迁移任务为:同一时间内出现的多个副本磁盘的数据迁移任务;
数据拆分和子任务分配单元,用于每个所述数据迁移协程分别将各自对应的完整待迁移数据拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
数据迁移并行执行单元,用于每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作,并在隶属于自身的所有协程子任务均完成所述数据迁移操作后向副本组管理模块上报完成信号;
文件路由信息更新单元,用于所述副本组管理模块根据所述完成信号更新相应完整待迁移数据的文件路由信息。
7.根据权利要求6所述的多盘并发数据迁移系统,其特征在于,所述数据拆分和子任务分配单元包括:
按预设数据分片大小拆分子单元,用于每个所述数据迁移协程将各自对应的完整待迁移数据以预设数据分片大小进行拆分,得到多个所述数据分片。
8.根据权利要求6所述的多盘并发数据迁移系统,其特征在于,还包括:
迁移状态标记附加单元,用于在每个所述数据迁移协程控制隶属于自身的各协程子任务以并行的方式同时执行数据迁移操作之前,每个所述数据迁移协程为隶属于自身的每个协程子任务附加迁移状态标记;其中,所述迁移状态标记具体包括迁移进行标记和迁移完成标记。
9.一种多盘并发数据迁移装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的多盘并发数据迁移方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的多盘并发数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215833.4A CN111078628B (zh) | 2018-10-18 | 2018-10-18 | 一种多盘并发数据迁移方法、系统、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215833.4A CN111078628B (zh) | 2018-10-18 | 2018-10-18 | 一种多盘并发数据迁移方法、系统、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078628A CN111078628A (zh) | 2020-04-28 |
CN111078628B true CN111078628B (zh) | 2024-02-23 |
Family
ID=70309144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811215833.4A Active CN111078628B (zh) | 2018-10-18 | 2018-10-18 | 一种多盘并发数据迁移方法、系统、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078628B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613276A (zh) * | 2020-12-28 | 2021-04-06 | 南京中孚信息技术有限公司 | 一种流式文档解析的并行执行方法及系统 |
CN113468140B (zh) * | 2021-06-30 | 2023-04-07 | 上海掌门科技有限公司 | 数据迁移处理方法、电子设备及计算机可读存储介质 |
CN114095764B (zh) * | 2021-09-26 | 2023-01-06 | 荣耀终端有限公司 | 投屏方法和电子设备 |
CN115826885B (zh) * | 2023-02-21 | 2023-05-09 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置及电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873619B1 (en) * | 2008-03-31 | 2011-01-18 | Emc Corporation | Managing metadata |
CN105447138A (zh) * | 2015-11-20 | 2016-03-30 | 北京京东尚科信息技术有限公司 | 用于服务器的方法及系统 |
CN106777225A (zh) * | 2016-12-26 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种数据的迁移方法和系统 |
CN106796500A (zh) * | 2014-05-28 | 2017-05-31 | 蓝数据软件有限公司 | 分布式文件系统的版本间映射 |
CN106980546A (zh) * | 2016-01-18 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 一种任务异步执行方法、装置及系统 |
CN107729177A (zh) * | 2017-09-18 | 2018-02-23 | 中国科学院信息工程研究所 | 基于云存储的备份数据存储管理方法、装置和系统 |
US9990253B1 (en) * | 2011-03-31 | 2018-06-05 | EMC IP Holding Company LLC | System and method for recovering file systems without a replica |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255287B2 (en) * | 2015-07-31 | 2019-04-09 | Hiveio Inc. | Method and apparatus for on-disk deduplication metadata for a deduplication file system |
US11106625B2 (en) * | 2015-11-30 | 2021-08-31 | International Business Machines Corporation | Enabling a Hadoop file system with POSIX compliance |
-
2018
- 2018-10-18 CN CN201811215833.4A patent/CN111078628B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873619B1 (en) * | 2008-03-31 | 2011-01-18 | Emc Corporation | Managing metadata |
US9990253B1 (en) * | 2011-03-31 | 2018-06-05 | EMC IP Holding Company LLC | System and method for recovering file systems without a replica |
CN106796500A (zh) * | 2014-05-28 | 2017-05-31 | 蓝数据软件有限公司 | 分布式文件系统的版本间映射 |
CN105447138A (zh) * | 2015-11-20 | 2016-03-30 | 北京京东尚科信息技术有限公司 | 用于服务器的方法及系统 |
CN106980546A (zh) * | 2016-01-18 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 一种任务异步执行方法、装置及系统 |
CN106777225A (zh) * | 2016-12-26 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种数据的迁移方法和系统 |
CN107729177A (zh) * | 2017-09-18 | 2018-02-23 | 中国科学院信息工程研究所 | 基于云存储的备份数据存储管理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111078628A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078628B (zh) | 一种多盘并发数据迁移方法、系统、装置及可读存储介质 | |
US8631403B2 (en) | Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure | |
EP3433741B1 (en) | Hybrid garbage collection in a distrubuted storage system | |
US9081682B2 (en) | Virtual machine installation image caching | |
US9342248B2 (en) | Techniques for reducing read I/O latency in virtual machines | |
US20160378563A1 (en) | Virtual resource scheduling for containers with migration | |
US20100257331A1 (en) | Reducing storage expansion of a virtual machine operating system | |
US11194569B2 (en) | Method, electronic device and medium for upgrading a hyper-converged infrastructure node | |
US20170024251A1 (en) | Scheduling method and apparatus for distributed computing system | |
CN105653372B (zh) | 基于云平台实现多虚拟化混合管理与调度的方法 | |
US20120296872A1 (en) | Method and system for parallelizing data copy in a distributed file system | |
US20140068223A1 (en) | Address Server | |
CN111078119B (zh) | 一种数据重建方法、系统、装置及计算机可读存储介质 | |
CN108279979B (zh) | 一种为应用程序容器绑定cpu的方法及装置 | |
US11314459B2 (en) | Distributed metadata management in a distributed storage system | |
US11099735B1 (en) | Facilitating the recovery of full HCI clusters | |
CN103885811B (zh) | 虚拟机系统全系统在线迁移的方法、系统与装置 | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
US9471359B2 (en) | Virtual machine disk image backup using block allocation area | |
US9632812B1 (en) | Collecting data associated with virtual machines from various data sources | |
US20230376357A1 (en) | Scaling virtualization resource units of applications | |
US10592493B1 (en) | Spot-instanced bulk data uploading | |
US10031668B2 (en) | Determining status of a host operation without accessing the host in a shared storage environment | |
CN113254437B (zh) | 一种批处理作业处理方法和装置 | |
CN108574719A (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 |