CN110874344B - 数据迁移方法、装置及电子设备 - Google Patents
数据迁移方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110874344B CN110874344B CN201810910243.7A CN201810910243A CN110874344B CN 110874344 B CN110874344 B CN 110874344B CN 201810910243 A CN201810910243 A CN 201810910243A CN 110874344 B CN110874344 B CN 110874344B
- Authority
- CN
- China
- Prior art keywords
- data
- disk
- migration
- destination
- node
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据迁移方法、装置及电子设备,其中,方法包括确定第一节点中的目的数据盘;将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的所述数据块的副本处于非数据迁移状态。本发明实施例采用在在节点内部的源数据盘和目的数据盘进行数据迁移的方式,同时配合数据迁移策略来避免出现全部副本都处于数据迁移状态,从而能够实现在不中断服务的前提下实现分布式系统的数据迁移。
Description
技术领域
本申请涉及一种数据迁移方法、装置及电子设备,属于计算机技术领域。
背景技术
随着分布式处理技术的发展,已经形成了许多的大数据处理平台,为用户提供针对海量数据的进行处理的服务。Hadoop分布式文件系统(简称HDFS)是一种被应用较多的分布式文件系统,由于HDFS具有较高的容错性,非常适合大规模数据集上的应用,因此,许多大数据平台的底层都采用了HDFS。
随着数据量的增长以及分布式技术的改进,数据迁移是分布式系统不可避免的问题。在基于HDFS的分布式系统中,数据迁移往往是整个HDFS集群一起执行迁移(例如谷歌所采用的迁移方式),即将现有的HDFS集群全部直接迁移至全新的HDFS集群。迁移前后数据块的存放规则依然要满足HDFS的要求。这种迁移方式,基于迁移的数据所运行的服务需要停止运行,直到迁移完成。
由于HDFS集群数据迁移耗时较长,会导致基于HDFS集群运行的服务中断时间较长,严重影响用户的使用。并且,在这样大规模集群迁移的过程中,也很容易出现各种错误,从而会导致迁移时间进一步延长。
发明内容
本发明实施例提供一种数据迁移方法、装置及电子设备,以实现在不中断服务运行的情况下实现分布式系统的数据迁移。
为了实现上述目的,本发明实施例提供了一种数据迁移方法,该方法应用于分布式系统,所述方法包括:
确定第一节点中数据迁移的目的数据盘;
将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的所述数据块的副本处于非数据迁移状态。
本发明实施例还提供了一种数据迁移方法
应用于分布式系统中,包括:
确定节点中数据迁移的目的数据盘;
将节点中源数据盘中的数据向目的数据盘中执行数据迁移,
其中,至少针对一组具有副本关联关系的节点进行串行的数据迁移,至少针对部分不具有副本关联关系的节点进行并行的数据迁移。
本发明实施例还提供了一种数据迁移装置,包括:
目的数据盘确定模块,用于确定第一节点中数据迁移的目的数据盘;
数据迁移模块,用于将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的所述数据块的副本处于非数据迁移状态。
本发明实施例又提供了一种数据迁移装置,包括:
数据迁移控制模块,用于在分布式系统中,控制迁移处理模块至少针对一组具有副本关联关系的节点进行串行的数据迁移以及至少针对部分不具有副本关联关系的节点进行并行的数据迁移,
迁移处理模块,用于确定节点中的目的数据盘,将节点中源数据盘中的数据向目的数据盘中执行数据迁移。
本发明实施例还提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于如下处理:
确定第一节点中数据迁移的目的数据盘;
将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的所述数据块的副本处于非数据迁移状态。
本发明实施例又提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于如下处理:
在分布式系统中,至少针对一组具有副本关联关系的节点进行串行的数据迁移,至少针对部分不具有副本关联关系的节点进行并行的数据迁移,所述数据迁移处理包括:
确定节点中数据迁移的目的数据盘;
将节点中源数据盘中的数据向目的数据盘中执行数据迁移。
本发明实施例数据迁移方法、装置及电子设备,采用在节点内部进行从源新数据盘向目的数据盘进行数据迁移,同时配合数据迁移策略来避免出现全部副本都处于数据迁移状态,从而能够实现在不中断服务的前提下实现分布式系统的数据迁移。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例的数据迁移技术应用场景示意图之一;
图2为本发明实施例的多任务方式的数据迁移处理过程的应用示意图;
图3为本发明实施例的数据迁移技术的负载均衡原理示意图;
图4为本发明实施例的数据迁移方法的流程示意图之一;
图5为本发明实施例的数据迁移方法的流程示意图之二;
图6为本发明实施例的数据迁移装置的结构示意图之一;
图7为本发明实施例的数据迁移装置的结构示意图之二;
图8为本发明实施例的电子设备之一的结构示意图;
图9为本发明实施例的电子设备之二的结构示意图;
图10为本发明实施例的数据迁移应用场景中新旧数据盘的示例结构示意图之一;
图11为本发明实施例的数据迁移应用场景中新旧数据盘的示例结构示意图之二;
图12为本发明实施例的数据迁移的任务流示意图;
图13为本发明实施例的任务调度原理示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
术语说明
分布式系统的副本(replica/copy):在本发明实施例中简称为副本,指在分布式系统中为数据或服务提供的冗余。分为数据副本和服务副本,对于数据副本指在不同的节点上持久化同一份数据,当出现某一个节点的存储的数据丢失时,可以从副本上读到数据。服务副本,指在数个节点上基于服务副本,能够提供某种相同的服务,也就是说,相同的服务可以在具有相同服务副本的节点上运行。在本发明实施例中,副本可以是服务副本也可以是数据副本,无论是数据副本还是服务副本都可以基于本发明实施例的技术方案来进行数据迁移。副本是相对的概念,从第一节点的角度来说,在该节点以外的其他第二节点中存储的相同数据块是副本,反过来,从第二节点来说,第一节点中存储的数据块就是该第二节点中数据块的副本。
HDFS:Hadoop分布式文件系统,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
分布式系统的节点:分布式系统由多个能独立运行的计算机(称为节点)组成,节点是指逻辑层面的能够提供服务的设备(可以是虚拟机或者服务器),节点之间是对等的,对外提供的服务,在任意一个节点挂掉的情况下不会影响分布式系统的整体运行。
整体说明
本发明实施例的数据迁移的技术方案适用于分布式系统的数据迁移场景,可以针对大规模的分布式系统的集群迁移,也可以针对分布式系统的部分节点进行数据迁移。本发明实施例的数据迁移的技术方案,利用了分布式系统的副本分布策略,在保证至少一个副本不被数据迁移处理所占用的前提下,在节点内进行源数据盘到目的数据盘的数据迁移方式,从而保证分布式系统的服务不会被中断。这里所说的目的数据盘可以是为了进行分布式系统的数据迁移而向节点中新加载的新数据盘,也可以是节点中已有的数据盘,例如,为了实现节点内的各个数据盘之间的负载均衡,而确定了要进行数据迁移的源数据盘和目标数据盘,通过在源数据盘和目标数据盘之间进行的数据迁移操作,来实现已有数据盘的负载均衡。
在本发明实施例中,数据迁移可以是以数据块为单位进行的数据迁移,可以是以数据盘为单位或者以节点为单位进行数据迁移。无论以哪种方式进行迁移,原则上,只要保证正在执行迁移的数据块、数据盘或者节点的至少一个副本没有处于数据迁移状态即可,那么这个副本就可以继续支持服务运行。
如图1所示,其为本发明实施例的数据迁移技术应用场景示意图之一。如图中所示,分布式系统中的节点A到节点D在以数据块为单位进行数据迁移,每个节点上都确定出了源数据盘和目的数据盘。以节点A为例,节点A中包括数据块1~3,其中,数据块1正在进行迁移。数据块1的副本位于节点C中,数据块1进行迁移的过程中,只要保证节点C中的数据块1的副本没有处于数据迁移状态,基于数据块1的服务就能正常运行,在节点C中可以进行数据块4的数据迁移,待节点A中的数据块1完成迁移后,节点C再执进行对数据块1的副本的数据迁移。
关于以数据块为单位的数据迁移方式
优选地,可以以数据块为单位进行数据迁移。在对每个数据块执行数据迁移的过程中,确保该数据块所在节点以外的至少一个数据块的副本处于非数据迁移状态即可。在节点内以数据块为单位进行数据迁移时,即使当前正在迁移的数据块被锁住,在该节点之外,仍然还有该数据块的副本能够支持正在运行的服务,所以不会导致服务中断。
在分布式系统中,副本的位置都会记录于副本位置索引文件中,通过副本位置索引文件可以定位到任意一个数据块的副本位于哪个节点上,从而可以从该节点上获取到数据块的副本是否处于数据迁移状态。在针对某一数据块执行数据迁移时,可以通过查询副本位置索引文件的方式来确保不会出现全部副本都被同时执行数据迁移。
以数据块为单位进行数据迁移,能够使得数据迁移的粒度较小,能够更加容易地实现多任务的并行处理以及负载均衡方面控制。另外,由于副本的部署也是数据块为粒度的,以数据块为单位进行数据迁移也能够更多地执行并行的数据迁移,从而提高数据迁移的效率。
此外,在每个节点中,源数据盘和目的数据盘一般为多个。在节点内部,为了保持数据的一致性,一般而言,数据迁移只能在两个数据盘之间进行。不过,在存在多个目的数据盘和源数据盘的情况下,多个目的数据盘和多个源数据盘可以形成多对数据盘对,以并行的方式执行数据迁移。多个数据盘对之间以并行方式进行数据迁移,能够增加数据迁移的吞吐量,降低迁移过程的耗时。
进一步地,多个数据盘之间数据迁移过程,也可以进行不断的变换,两个数据盘之间在迁移了一部分数据后,可以再重新与其数据盘形成数据盘对。这个过程可以通过形成多个数据迁移任务的方式来实现。每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块。
如图2所示,其为本发明实施例的多任务方式的数据迁移处理过程的应用示意图。如图中所示,针对一个节点的全部数据迁移任务可以预先规划好,存放于任务调度表中(如图中所示的任务T1~Tn),分布式系统的任务调度线程可以从任务调度表中提取数据迁移任务,放入任务执行线程池中进行执行。正在执行的数据迁移任务的任务信息会记录在系统的共享空间的任务信息表(如图中所示,正在执行的任务为任务T2、任务T7以及任务T8)中。在提取出的数据迁移任务被放入任务执行线程池,任务调度线程可以通过查询任务信息表,来确认是否存在数据迁移冲突,如果存在冲突,就等待数据迁移冲突结束后,再将提取出的数据迁移任务放入任务执行线程池中进行执行,或者也可以从任务调度表中获取其他数据迁移冲突的数据迁移任务再次进行数据迁移冲突检测。
关于负载均衡算法
由于源数据盘和目的数据盘的数量和容量并不一定相同,很可能出现,将数量较多容量相对较小的源数据盘,迁移到容量较大的数量较少的目的数据盘的情形。并且,源数据盘也可能在没有装满数据的状态下就要进行迁移。在这种情况下,希望在数据迁移的过程中,进行负载均衡的调控,以使得数据迁移后,在目的数据盘中能够尽可能实现负载均衡。
如图3所示,其为本发明实施例的数据迁移技术的负载均衡原理示意图,如图中所示,源数据盘E1~E3中,各自的使用率是不同的,通过本发明实施例的负载均衡处理后,迁移至目的数据盘F1和F2中后,目的数据盘F1和F2的使用率是相同的,图中示出目的数据盘F1和F2从各个源数据盘中接收数据的大致比例。
在本发明实施例中,负载均衡算法的目标是使得目的数据盘的数据的占用率是均等的,具体算法如下:
1)计算每个目的数据盘数据接受比率:
每个目的数据盘数据接受比率=每个目的数据盘的数据容量/全部新数据盘的数据容量之和………………………………………………式(1)
2)计算每个目的数据盘从每个源数据盘接受的数据量:
每个目的数据盘从每个源数据盘接受的数据量=每个源数据盘的数据量×每个目的数据盘的数据容量…………………………………式(2)
在执行完2)的计算处理后,就可以根据每个目的数据盘对每个源数据盘的数据接收量,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中执行数据迁移。具体的数据迁移处理,可以结合前述的多任务的方式,根据每个目的数据盘对每个源数据盘的数据接收量,合理规划处多个数据迁移任务,从而实现最终的负载均衡。
基于节点的数据迁移策略
在实际应用中,也可以根据分布式系统的副本分布策略来灵活定制数据迁移策略。数据迁移策略可以遵循如下原则:至少针对一组具有副本关联关系的节点进行串行的数据迁移,至少针对部分不具有副本关联关系的节点进行并行的数据迁移。串行的数据迁移是为了确保不会出现全部副本被同时进行数据迁移,而并行的数据迁移的目的是为了提升迁移效率。
下面以HDFS系统为例,来进一步说明一下本发明实施例的数据迁移策略。HDFS系统的副本分布策略为三副本机制:对于某个数据块而言,除了节点本身的数据块(三副本之一)以外,在隶属于同一个交换机的其他节点上会部署一个副本,在不隶属于同一个交换机(隶属于其他交换机)的节点上再部署一个副本。需要说明的是,对于某个节点来说,该节点的多个数据块会分布于不同的交换机上,而不会集中分布于一个交换机之上,每个节点都会留出一定的空间来存储其他节点的数据块的副本。在本发明实施例中,对于某一节点而言,该节点上的数据块的副本部署于另外一个节点中,那么这两个节点之间就具有副本关联关系。
在基于HDFS系统的副本分布策略的基础上,只要保证有三副本之中的一个副本没有被执行数据迁移,基于该数据块所提供的服务就不会受到影响。
以HDFS系统为例,采用如下几种迁移策略:
策略1:在隶属于同一交换机的多个节点上,逐一节点进行数据迁移,即进行串行的数据迁移。在不同的交换机所覆盖的节点范围上,进行并行迁移。这样,能够确保在隶属于同一交换机的多个节点中,对于任意一个数据块,都会存在一个副本能够正常提供服务。
策略2:在隶属于同一交换机的一组节点上,进行并行的数据迁移,在该组节点的数据迁移完成后,再针对隶属于另一交换机的下一组节点,进行并行的数据迁移。
策略3:在分布式系统中,副本的位置都会记录于副本位置索引文件中,在执行数据迁移之前,可以先根据分布式系统的副本位置索引文件,确定节点之间的副本关联关系,然后执行合理的数据迁移策略。策略3相对于策略1和策略2较为复杂些,不过能够更多地执行并行的数据迁移,提高数据迁移效率。
综上所述,本发明实施例采用在节点中加载目的数据盘的方式,在节点内部进行数据迁移,同时配合数据迁移策略来避免出现全部副本都处于数据迁移状态,从而能够实现在不中断服务的前提下实现分布式系统的数据迁移。
下面通过一些具体实施例来进一步说明本发明的技术方案。
实施例一
如图4所示,其为本发明实施例的数据迁移方法的流程示意图之一,该方法包括:
S101:确定第一节点中数据迁移的目的数据盘。
S102:将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据。在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的数据块的副本处于非数据迁移状态。具体地,可以通过查询分布式系统中的副本位置索引文件来获取数据块被存放的具体位置,并进一步通过所在的节点来获取到该数据块是处于数据迁移状态还是处于非数据迁移状态。
在第一节点中,目的数据盘和源数据盘可以为多个,则将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据的处理可以包括:多个目的数据盘和多个源数据盘形成多对数据盘对,以并行的方式执行数据迁移。进一步地,数据迁移可以以多任务的方式执行,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块。
为了保证数据的一致性,正在执行数据迁移任务的两个数据盘不能再同时执行其他数据迁移任务。因此,上述步骤S102中,还可以包括数据迁移冲突检测的处理,具体地,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据可以包括:
获取待执行的数据迁移任务;
判断待执行的数据迁移任务与正在执行的数据迁移任务是否存在数据迁移冲突,数据迁移冲突为该数据迁移任务所涉及的目的数据盘和源数据盘正在被正在执行的数据迁移任务所占用;
如果不存在数据迁移冲突,则执行待执行的数据迁移任务;
如果存在数据迁移冲突,则等待存在数据迁移冲突的正在执行的数据迁移任务执行完成后,再执行待执行的数据迁移任务,或者,获取其他待执行的数据迁移任务。
另外,在多任务的模式下,还可以包括确定副本是否被数据迁移任务所占用的处理。具体地,上述步骤S102中,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据可以包括:
获取待执行的数据迁移任务;
根据分布式系统的副本位置索引文件,获取待执行的数据迁移任务中涉及的数据块的副本所在的一个或多个第二节点;
判断第二节点中正在执行的数据迁移任务是否占用数据块的副本,如果在至少一个第二节点中数据块的副本没有被占用,则执行待执行的数据迁移任务;
如果数据块的全部副本都被占用,则等待任意一个占用数据块的副本的数据迁移任务执行完成后,再执行待执行的数据迁移任务,或者,获取其他待执行的数据迁移任务。
此外,在上述的数据迁移处理中,还可以包括实现目的数据盘负载均衡的处理机制,具体地,上述处理过程还可以包括:
根据每个目的数据盘的数据容量和全部目的数据盘的数据容量,计算每个目的数据盘的数据接收比率,具体公式详见前述的式(1)。
根据每个源数据盘中的数据存储量和每个目的数据盘的数据接收比率,计算每个目的数据盘对每个源数据盘的数据接收量,具体公式详见前述的式(2)。
相应地,在上述步骤S102中,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中执行数据迁移可以包括:根据每个目的数据盘对每个源数据盘的数据接收量,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据。
本发明实施例的数据迁移方法,采用在节点内部的源数据盘和目标数据盘之间进行数据迁移,同时保证至少一个副本处于非数据迁移状态。采用这样的迁移方式能够实现在不中断服务的前提下实现数据迁移。此外,通过引入多任务的数据迁移方式,能够实现并行的数据迁移以及负载均衡控制,从而提高数据迁移的效率以及迁移后数据的存储优化。
实施例二
如图5所示,其为本发明实施例的数据迁移方法的流程示意图之二,与实施例一不同之处在于,本实施例的数据迁移方法,从节点层面来设计了数据迁移策略,从而确保至少存在一个副本没有被数据迁移处理所占用。
具体地,在分布式系统中,至少针对一组具有副本关联关系的节点进行串行的数据迁移,至少针对部分不具有副本关联关系的节点进行并行的数据迁移。如前面所介绍的,对于某一节点而言,该节点上的数据块的副本部署于另外一个节点中,那么这两个节点之间就具有副本关联关系,由于分布式系统中的副本的部署经常以数据块为单位,那么多个节点之间可以会交错形成副本关联关系。
在本实施例中,可以通过查询分布式系统的副本位置索引文件,来确定出副本的分布情况,一般来说,在分布式系统中会存在多副本。将具有副本关联关系的节点作为一组,可能会形成多个组。对于任意一个节点来说,该节点中数据块的副本一定在该节点之外,因此,只要保证在这个组内进行逐个节点的串行的数据迁移处理,那么就可以确保在这个组内,对于任意一个数据块而言,其副本不会被数据迁移处理占用。与此同时,对于某一个组(称作当前组)中的节点的数据块来说,其他组中的节点的数据块是否进行数据迁移与当前组的节点是无关的,因此,在不同组之间的节点,可以进行并行的数据迁移处理。上述的数据迁移处理可以包括:
S201:确定节点中数据迁移的目的数据盘;
S202:将节点中源数据盘中的数据向目的数据盘中执行数据迁移。在本步骤中的数据迁移处理,基于前面描述的迁移策略,可以以数据块为单位,也可以以数据盘为单位。
进一步地,在分布式系统中,可以采用如下副本分布策略:对于任一节点上的数据,在隶属于同一个交换机的至少一个节点上部署至少一个副本,在隶属于其他交换机的至少一个节点上部署至少一个副本。例如,HDFS系统,其副本分布策略为三副本机制:对于某个数据块而言,除了节点本身的数据块(三副本之一)以外,在隶属于同一个交换机的其他节点上会部署一个副本,在隶属于其他交换机的节点上再部署一个副本。
针对上述的副本分布策略,数据迁移策略可以采用如下两种方式:
方式一:针对隶属于同一交换机的多个节点,进行串行的数据迁移,对隶属于不同交换机的节点,进行并行的数据迁移。
方式二:针对隶属于同一交换机的一组节点,进行并行的数据迁移;在该组节点的数据迁移完成后,再针对隶属于另一交换机的下一组节点,进行并行的数据迁移。
需要说明的是,在本实施例中的具体的数据迁移处理可以采用实施例一中介绍的各种处理机制,相关技术描述已经在实施例中进行了详细说明,在此不再赘述。
本发明实施例的数据迁移方法,根据副本在节点层面的分布策略,来合理地制定数据迁移策略,在保证至少存在一个副本不被数据迁移处理占用的前提下,尽可能地进行并行的数据迁移处理,从而提高数据迁移效率。
实施例三
如图6所示,其为本发明实施例的数据迁移装置的结构示意图之一,该装置可以设置于分布式系统的各个节点中,以实现各个节点的数据迁移处理,该装置包括:
目的数据盘确定模块11,用于确定第一节点中数据迁移的目的数据盘。
数据迁移模块12,用于将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的数据块的副本处于非数据迁移状态。
具体地,可以通过查询分布式系统中的副本位置索引文件来获取数据块被存放的具体位置,并进一步通过所在的节点来获取到该数据块是处于数据迁移状态还是处于非数据迁移状态。
在第一节点中,目的数据盘和源数据盘可以为多个,则将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据的处理可以包括:多个目的数据盘和多个源数据盘形成多对数据盘对,以并行的方式执行数据迁移。进一步地,数据迁移可以以多任务的方式执行,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块。
为了保证数据的一致性,正在执行数据迁移任务的两个数据盘不能再同时执行其他数据迁移任务。因此,上述数据迁移模块12所执行的处理中,还可以包括数据迁移冲突检测的处理,具体地,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据可以包括:
获取待执行的数据迁移任务;
判断待执行的数据迁移任务与正在执行的数据迁移任务是否存在数据迁移冲突,数据迁移冲突为该数据迁移任务所涉及的目的数据盘和源数据盘正在被正在执行的数据迁移任务所占用;
如果不存在数据迁移冲突,则执行待执行的数据迁移任务;
如果存在数据迁移冲突,则等待存在数据迁移冲突的正在执行的数据迁移任务执行完成后,再执行待执行的数据迁移任务,或者,获取其他待执行的数据迁移任务。
另外,在多任务的模式下,还可以包括确定副本是否被数据迁移任务所占用的处理。具体地,上述数据迁移模块12所执行的处理中,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据可以包括:
获取待执行的数据迁移任务;
根据分布式系统的副本位置索引文件,获取待执行的数据迁移任务中涉及的数据块的副本所在的一个或多个第二节点;
判断第二节点中正在执行的数据迁移任务是否占用数据块的副本,如果在至少一个第二节点中数据块的副本没有被占用,则执行待执行的数据迁移任务;
如果数据块的全部副本都被占用,则等待任意一个占用数据块的副本的数据迁移任务执行完成后,再执行待执行的数据迁移任务,或者,获取其他待执行的数据迁移任务。
此外,在上述的数据迁移处理中,还可以包括实现目的数据盘负载均衡的处理机制,具体地,上述装置还可以包括:
第一计算模块13,用于根据每个目的数据盘的数据容量和全部目的数据盘的数据容量,计算每个目的数据盘的数据接收比率,具体公式详见前述的式(1)。
第二计算模块14,用于根据每个源数据盘中的数据存储量和每个目的数据盘的数据接收比率,计算每个目的数据盘对每个源数据盘的数据接收量,具体公式详见前述的式(2)。
相应地,上述数据迁移模块12所执行的处理中,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中执行数据迁移可以包括:根据每个目的数据盘对每个源数据盘的数据接收量,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中执行数据迁移。
本发明实施例的数据迁移装置,采用在节点内部的源数据盘和目的数据盘之间进行数据迁移的方式,同时保证至少一个副本处于非数据迁移状态。采用这样的迁移方式能够实现在不中断服务的前提下实现数据迁移。此外,通过引入多任务的数据迁移方式,能够实现并行的数据迁移以及负载均衡控制,从而提高数据迁移的效率以及迁移后数据的存储优化。
实施例四
如图7所示,其为本发明实施例的数据迁移装置的结构示意图之二,该装置可以设置于分布式系统中,以实现针对多个节点的数据迁移处理,该装置包括:
数据迁移控制模块21,用于在分布式系统中,控制迁移处理模块至少针对一组具有副本关联关系的节点进行串行的数据迁移以及至少针对部分不具有副本关联关系的节点进行并行的数据迁移,
迁移处理模块22,用于确定节点中数据迁移的目的数据盘,将节点中源数据盘中的数据向目的数据盘中执行数据迁移。
进一步地,该装置还可以包括:
副本关联关系确定模块23,用于根据分布式系统的副本位置索引文件,确定节点之间的副本关联关系。
另外,针对不同的分布式系统的副本分布策略可以采用不同的数据迁移策略。具体地,分布式系统的副本分布策略可以为:对于任一节点上的数据,在隶属于同一个交换机的至少一个节点上部署至少一个副本,在隶属于其他交换机的至少一个节点上部署至少一个副本。
针对上述的副本分布策略,数据迁移控制模块21执行的数据迁移策略可以包括如下两种方式:
方式一:针对隶属于同一交换机的多个节点,进行串行的数据迁移,对隶属于不同交换机的节点,进行并行的数据迁移。
方式二:针对隶属于同一交换机的一组节点,进行并行的数据迁移;在该组节点的数据迁移完成后,再针对隶属于另一交换机的下一组节点,进行并行的数据迁移。
需要说明的是,在本实施例中的具体的数据迁移处理可以采用实施例一和三介绍的各种处理机制,相关技术描述已经在实施例中进行了详细说明,在此不再赘述。
本发明实施例的数据迁移装置,根据副本在节点层面的分布策略,来合理地制定数据迁移策略,在保证至少存在一个副本不被数据迁移处理占用的前提下,尽可能地进行并行的数据迁移处理,从而提高数据迁移效率。
实施例五
前面实施例描述了本发明实施例的数据迁移方法的流程处理及装置结构,上述的方法和装置的功能可借助一种电子设备实现完成,如图8所示,其为本发明实施例的电子设备之一的结构示意图,具体包括:存储器110和处理器120。
存储器110,用于存储程序。
除上述程序之外,存储器110还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器110可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器120,耦合至存储器110,用于执行存储器110中的程序,以用于执行如下处理:
确定第一节点中数据迁移的目的数据盘;
将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的数据块的副本处于非数据迁移状态。
其中,目的数据盘和源数据盘均为多个,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中执行数据迁移可以包括:
多个目的数据盘和多个源数据盘形成多对数据盘对,以并行的方式执行数据迁移。
其中,数据迁移以多任务的方式执行,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块,
将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中执行迁移可以包括:
获取待执行的数据迁移任务;
判断待执行的数据迁移任务与正在执行的数据迁移任务是否存在数据迁移冲突,数据迁移冲突为该数据迁移任务所涉及的目的数据盘和源数据盘正在被正在执行的数据迁移任务所占用;
如果不存在数据迁移冲突,则执行待执行的数据迁移任务。
另外,如果存在数据迁移冲突,则等待存在数据迁移冲突的正在执行的数据迁移任务执行完成后,再执行待执行的数据迁移任务,或者,获取其他待执行的数据迁移任务。
其中,数据迁移以多任务的方式执行,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:
获取待执行的数据迁移任务;
根据分布式系统的副本位置索引文件,获取待执行的数据迁移任务中涉及的数据块的副本所在的一个或多个第二节点;
判断第二节点中正在执行的数据迁移任务是否占用数据块的副本,如果在至少一个第二节点中数据块的副本没有被占用,则执行待执行的数据迁移任务。
另外,如果数据块的全部副本都被占用,则等待任意一个占用数据块的副本的数据迁移任务执行完成后,再执行待执行的数据迁移任务,或者,获取其他待执行的数据迁移任务。
其中,目的数据盘为多个,源数据盘为一个或多个,方法还包括:
根据每个目的数据盘的数据容量和全部目的数据盘的数据容量,计算每个目的数据盘的数据接收比率;
根据每个源数据盘中的数据存储量和每个目的数据盘的数据接收比率,计算每个目的数据盘对每个源数据盘的数据接收量;
将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:根据每个目的数据盘对每个源数据盘的数据接收量,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据。
进一步,如图所示,电子设备还可以包括:通信组件130、电源组件140、音频组件150、显示器160等其它组件。图中仅示意性给出部分组件,并不意味着电子设备只包括图中所示组件。
通信组件130被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件130经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件130还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件140,为电子设备的各种组件提供电力。电源组件140可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件150被配置为输出和/或输入音频信号。例如,音频组件150包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器110或经由通信组件130发送。在一些实施例中,音频组件150还包括一个扬声器,用于输出音频信号。
显示器160包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
实施例六
如图9所示,其为本发明实施例的电子设备之二的结构示意图,具体包括:存储器210和处理器220。
存储器210,用于存储程序。
除上述程序之外,存储器210还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器210可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器220,耦合至存储器210,用于执行存储器210中的程序,以用于执行如下处理:
在分布式系统中,至少针对一组具有副本关联关系的节点进行串行的数据迁移,至少针对部分不具有副本关联关系的节点进行并行的数据迁移,数据迁移处理包括:
确定节点中数据迁移的目的数据盘;
将节点中源数据盘中的数据向目的数据盘中执行数据迁移。
其中,上述处理还可以包括:
根据分布式系统的副本位置索引文件,确定节点之间的副本关联关系。
其中,分布式系统的副本分布策略为:对于任一节点上的数据,在隶属于同一个交换机的至少一个节点上部署至少一个副本,在隶属于其他交换机的至少一个节点上部署至少一个副本。
基于上述副本分布策略,至少针对一组具有副本关联关系的节点进行串行的数据迁移,至少针对部分不具有副本关联关系的节点进行并行的数据迁移的处理可以具体为如下两种方式:
方式一:针对隶属于同一交换机的多个节点,进行串行的数据迁移,对隶属于不同交换机的节点,进行并行的数据迁移。
方式二:针对隶属于同一交换机的一组节点,进行并行的数据迁移;在该组节点的数据迁移完成后,再针对隶属于另一交换机的下一组节点,进行并行的数据迁移。
上述对于上述处理过程具体说明、技术原理详细说明以及技术效果详细分析在前面实施例中进行了详细描述,在此不再赘述。
进一步,如图所示,电子设备还可以包括:通信组件230、电源组件240、音频组件250、显示器260等其它组件。图中仅示意性给出部分组件,并不意味着电子设备只包括图中所示组件。
通信组件130被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件230经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件230还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件240,为电子设备的各种组件提供电力。电源组件240可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件250被配置为输出和/或输入音频信号。例如,音频组件250包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器210或经由通信组件230发送。在一些实施例中,音频组件250还包括一个扬声器,用于输出音频信号。
显示器260包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
实施例七
本实施例描述了一个向节点内加载新数据盘作为目的数据盘,将已有的旧数据盘作为源数据盘,然后进行节点内的数据迁移的技术方案示例。该方案包括如下几个阶段:
阶段一:识别新数据盘和旧数据盘并获取盘的信息
在HDFS系统中,新添加的新数据盘里面只会存储少量的元信息,可以以此来区分新数据盘和旧数据盘,并分别保存到两个不同的有序集合中(目前采用链表存储)。区分出新数据盘和旧数据盘后,再获取数据盘的一些基本信息,比如盘的空间、盘的使用率、挂载的目录等。这些信息可以通过HDFS的NameNode上的datamodel接口获取到。
如图10所示,其为本发明实施例的数据迁移应用场景中新旧数据盘的示例结构示意图之一,节点上之前有3个数据盘,现在用户为该ECS实例申请了性能更好的2个新数据盘,想释放掉旧数据盘,并使用新添的新数据盘。接下来就需要将数据从旧数据盘迁移到新数据盘上。
阶段二:计算旧数据盘往新数据盘迁移的数据量
计算出每个旧数据盘往每个新数据盘迁移的数据量(数据量的计算结果可以以字节为单位),同时为了确保迁移后的新数据盘的数据分布依然是均衡的,本发明实施例设计了一个数据盘容量感知的数据迁移算法,以使迁移后的新数据盘的数据的占用率是均等的,算法的步骤如下:
(1)、首先计算出每个新数据盘的接受比率RatioOf Receivei,并以数组的形式保存。计算公式如下:
其中N为新数据盘的数量,VolumeCapacityi为第i个数据盘的容量。
(2)、根据接收比率计算出每个新数据盘应该从每个旧数据盘接收的数据量BytesToReceivej→i,该接收的数据量正比于它对应的接受比率值:
BytesToReceivej→i=TotalBytesToMigratej·RatioOfReceivei
其中,TotalBytesToMigratej代表从第j个旧数据盘中要迁移出的总数据量。
(3)、每个新数据盘接收的总数据量即为TotalBytesReceivei:
其中M为旧数据盘的数量。
如图11所示,其为本发明实施例的数据迁移应用场景中新旧数据盘的示例结构示意图之二,经过上述计算后,生成的数据迁移方案如图11所示。
阶段三:生成数据迁移任务流
计算出每对数据盘间的数据迁移量后,将每对数据盘(也称作数据盘对)和对应的数据迁移量封装成一个任务。任务可以是一个自定义的Java类,封装了该步的基本信息,例如,
public class Task{
private long startTime;//任务开始的时间
private long secondsElapsed;//任务执行的时间
private volumePair;//迁移涉及到的数据盘对
private long bytesToCopy;//任务要拷贝的数据量
private long bytesCopied;//已经拷贝的数据量
private long blocksCopied;//已经拷贝的数据量
……
如图12所示,其为本发明实施例的数据迁移的任务流示意图,最后,整个迁移过程就可以抽象成了一个如图12所示的任务流(采用链表保存)。
阶段四:调度并执行数据迁移工作流
虽然迁移任务之间没有严格的串行关系,但是不同的任务间可能工作于相同的数据盘,同时操作同一个数据盘是不允许的,会引发错误。因此,串行执行是最简单和安全的方式。但是,在实践中发现,迁移的速度非常慢。此外还进一步发现,在待调度的任务中,并不是所有的任务间都有冲突,没有冲突的任务是可以并行执行的。如果能挖掘出这些可以并行化的任务,将大大地缩短数据迁移的耗时。因此,本发明实施例中,设计了一个并行化调度任务流的方案。如图13所示,其为本发明实施例的任务调度原理示意图。
其中,该并行化的数据迁移方案大致流程如下:
1)设计的相关的数据结构:
待调度任务表(链表):等待被调度器调度的任务
任务信息表(map表):存储任务到任务信息的映射
工作中的数据盘(并发安全的集合):存放正在工作状态的数据盘ID
2)设计的相关的线程:
调度器:单线程,轮训的方式调度待调度的任务
任务执行线程池:线程池的最大线程数目由用户配置,默认为1
3)调度的过程:
调度器采用轮询的方式搜索待调度的任务,依次获取任务涉及的数据盘并检测是否与正在工作状态的数据盘有冲突。如果没有,则准备调度该任务:(1)将数据盘信息添加到工作状态数据盘的记录表中,(2)提交任务到任务执行线程池,(3)将任务从待调度任务表中删除;如果有,则检测下一个任务。以此循环。迁移过程结束的条件是:待调度任务表为空,且处于工作状态的数据盘记录表也为空。这种调度策略能够让迁移任务以最大的并行度执行。
4)任务执行步骤:
迭代器是HDFS提供的访问数块的接口,我们首先获取旧数据盘的数据块资源池的迭代器,如果有多个资源池,则对应多个迭代器,全部获取。从旧数据盘获取数据块放入到新数据盘中,这里涉及两个操作:从旧数据盘拷贝数据块并放入新数据盘,放入成功后再删除旧数据盘里的数据块。由于每个盘同时只会被一个任务操作,所以这里不会出现数据不一致的问题。
需要说明的是,在实际迁移的时候,迁移的数据的最小单位可以为数据块(通常可以是128-256MB),而计算阶段的迁移量的单位是字节,往往它不能保证是刚好整数个数据块。因此,在迁移的时候,每一步迁移的数据量都会比计划的稍微多一点(0~block.size之间),以此作为该步迁移结束的条件,而这样每个数据盘的最后一步迁移的数据量就会比计划的少,这一步结束的判断条件是盘里没有数据。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种数据迁移方法,该方法应用于分布式系统,所述方法包括:
确定第一节点中数据迁移的目的数据盘;
将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的所述数据块的副本处于非数据迁移状态;
其中,所述目的数据盘为多个,所述源数据盘为一个或多个,所述方法还包括:
根据每个目的数据盘的数据容量和全部目的数据盘的数据容量,计算每个目的数据盘的数据接收比率;
根据每个源数据盘中的数据存储量和每个目的数据盘的数据接收比率,计算每个目的数据盘对每个源数据盘的数据接收量;
所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:根据每个目的数据盘对每个源数据盘的数据接收量,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据。
2.根据权利要求1所述的方法,其中,所述目的数据盘和所述源数据盘均为多个,所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:
数据迁移以多任务的方式执行,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块;
多个目的数据盘和多个源数据盘形成多对数据盘对,以并行的方式执行数据迁移。
3.根据权利要求1所述的方法,其中,所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:
获取待执行的数据迁移任务;
判断所述待执行的数据迁移任务与正在执行的数据迁移任务是否存在数据迁移冲突,所述数据迁移冲突为该数据迁移任务所涉及的目的数据盘和源数据盘正在被正在执行的数据迁移任务所占用;
如果不存在数据迁移冲突,则执行所述待执行的数据迁移任务。
4.根据权利要求1所述的方法,其中,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块,所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:
获取待执行的数据迁移任务;
根据分布式系统的副本位置索引文件,获取所述待执行的数据迁移任务中涉及的数据块的副本所在的一个或多个第二节点;
判断所述第二节点中正在执行的数据迁移任务是否占用所述数据块的副本,如果在至少一个第二节点中所述数据块的副本没有被占用,则执行所述待执行的数据迁移任务。
5.一种数据迁移装置,包括:
目的数据盘确定模块,用于确定第一节点中数据迁移的目的数据盘;
数据迁移模块,用于将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的所述数据块的副本处于非数据迁移状态;
其中,所述目的数据盘为多个,所述源数据盘为一个或多个,所述装置还包括:
第一计算模块,用于根据每个目的数据盘的数据容量和全部目的数据盘的数据容量,计算每个目的数据盘的数据接收比率;
第二计算模块,用于根据每个源数据盘中的数据存储量和每个目的数据盘的数据接收比率,计算每个目的数据盘对每个源数据盘的数据接收量;
所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:根据每个目的数据盘对每个源数据盘的数据接收量,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据。
6.根据权利要求5所述的装置,其中,所述目的数据盘和所述源数据盘均为多个,所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:
数据迁移以多任务的方式执行,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块;
多个目的数据盘和多个源数据盘形成多对数据盘对,以并行的方式执行数据迁移。
7.根据权利要求5所述的装置,其中,
所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:
获取待执行的数据迁移任务;
判断所述待执行的数据迁移任务与正在执行的数据迁移任务是否存在数据迁移冲突,所述数据迁移冲突为该数据迁移任务所涉及的目的数据盘和源数据盘正在被正在执行的数据迁移任务所占用;
如果不存在数据迁移冲突,则执行所述待执行的数据迁移任务。
8.根据权利要求5所述的装置,其中,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块,所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中进行迁移包括:
获取待执行的数据迁移任务;
根据分布式系统的副本位置索引文件,获取所述待执行的数据迁移任务中涉及的数据块的副本所在的一个或多个第二节点;
判断所述第二节点中正在执行的数据迁移任务是否占用所述数据块的副本,如果在至少一个第二节点中所述数据块的副本没有被占用,则执行所述待执行的数据迁移任务。
9.一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于如下处理:
确定第一节点中数据迁移的目的数据盘;
将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据,在对数据块执行数据迁移的过程中,确保存储在该第一节点以外的一个或多个第二数据节点中的所述数据块的副本处于非数据迁移状态;
其中,所述目的数据盘为多个,所述源数据盘为一个或多个,所述处理还包括:
根据每个目的数据盘的数据容量和全部目的数据盘的数据容量,计算每个目的数据盘的数据接收比率;
根据每个源数据盘中的数据存储量和每个目的数据盘的数据接收比率,计算每个目的数据盘对每个源数据盘的数据接收量;
所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:根据每个目的数据盘对每个源数据盘的数据接收量,将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据。
10.根据权利要求9所述的电子设备,其中,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块,
所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中迁移数据包括:
获取待执行的数据迁移任务;
判断所述待执行的数据迁移任务与正在执行的数据迁移任务是否存在数据迁移冲突,所述数据迁移冲突为该数据迁移任务所涉及的目的数据盘和源数据盘正在被正在执行的数据迁移任务所占用;
如果不存在数据迁移冲突,则执行所述待执行的数据迁移任务。
11.根据权利要求9所述的电子设备,其中,每个数据迁移任务包括从指定的源数据盘向指定的目的数据盘迁移预设的多个数据块,所述将第一节点中源数据盘中的数据以数据块为单位向目的数据盘中进行迁移包括:
获取待执行的数据迁移任务;
根据分布式系统的副本位置索引文件,获取所述待执行的数据迁移任务中涉及的数据块的副本所在的一个或多个第二节点;
判断所述第二节点中正在执行的数据迁移任务是否占用所述数据块的副本,如果在至少一个第二节点中所述数据块的副本没有被占用,则执行所述待执行的数据迁移任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810910243.7A CN110874344B (zh) | 2018-08-10 | 2018-08-10 | 数据迁移方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810910243.7A CN110874344B (zh) | 2018-08-10 | 2018-08-10 | 数据迁移方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874344A CN110874344A (zh) | 2020-03-10 |
CN110874344B true CN110874344B (zh) | 2023-05-09 |
Family
ID=69714172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810910243.7A Active CN110874344B (zh) | 2018-08-10 | 2018-08-10 | 数据迁移方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874344B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522792A (zh) * | 2020-04-20 | 2020-08-11 | 中国银行股份有限公司 | 文件迁移方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6530004B1 (en) * | 2000-06-20 | 2003-03-04 | International Business Machines Corporation | Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration |
CN102096561A (zh) * | 2011-02-09 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 分层数据存储处理方法、装置以及存储设备 |
CN106843755A (zh) * | 2017-01-04 | 2017-06-13 | 北京百度网讯科技有限公司 | 用于服务器集群的数据均衡方法与装置 |
CN108228672A (zh) * | 2016-12-22 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 一种元数据迁移方法、装置、系统及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047015B2 (en) * | 2012-04-13 | 2015-06-02 | International Business Machines Corporation | Migrating thin-provisioned volumes in tiered storage architectures |
-
2018
- 2018-08-10 CN CN201810910243.7A patent/CN110874344B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6530004B1 (en) * | 2000-06-20 | 2003-03-04 | International Business Machines Corporation | Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration |
CN102096561A (zh) * | 2011-02-09 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 分层数据存储处理方法、装置以及存储设备 |
CN108228672A (zh) * | 2016-12-22 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 一种元数据迁移方法、装置、系统及设备 |
CN106843755A (zh) * | 2017-01-04 | 2017-06-13 | 北京百度网讯科技有限公司 | 用于服务器集群的数据均衡方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110874344A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
US11146502B2 (en) | Method and apparatus for allocating resource | |
US8751657B2 (en) | Multi-client storage system and storage system management method | |
US8984085B2 (en) | Apparatus and method for controlling distributed memory cluster | |
US9389995B2 (en) | Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning | |
JP5400482B2 (ja) | 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム | |
US9110697B2 (en) | Sending tasks between virtual machines based on expiration times | |
CN103608792A (zh) | 支持多核架构下资源隔离的方法及系统 | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
US20140149475A1 (en) | Managing distributed storage quotas | |
CN104123184A (zh) | 一种用于为构建过程中的任务分配资源的方法和系统 | |
CN103180852A (zh) | 分布式数据处理方法及装置 | |
US10810054B1 (en) | Capacity balancing for data storage system | |
CN112131208A (zh) | 全量数据迁移方法、装置、设备及计算机可读存储介质 | |
US10579419B2 (en) | Data analysis in storage system | |
CN114598665B (zh) | 资源调度方法、装置和计算机可读存储介质及电子设备 | |
CN110874344B (zh) | 数据迁移方法、装置及电子设备 | |
CN104182295A (zh) | 一种数据备份方法及装置 | |
CN110704851A (zh) | 公有云数据处理方法和设备 | |
US20170024245A1 (en) | Workload-aware shared processing of map-reduce jobs | |
KR20170102725A (ko) | 데이터 관리 시스템 및 방법 | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
US11080092B1 (en) | Correlated volume placement in a distributed block storage service | |
US11336519B1 (en) | Evaluating placement configurations for distributed resource placement | |
CN103838518B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024968 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |