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

文档序号:31354972发布日期:2022-08-31 13:28阅读:69来源:国知局
一种数据迁移方法、装置、设备及可读存储介质与流程

1.本技术涉及存储技术领域,特别是涉及一种数据迁移方法、装置、设备及可读存储介质。


背景技术:

2.随着各行各业都先后涌现出了不同规模的数据中心,海量数据迁移已经成为企业解决存储空间不足和信息系统升级改造等过程中,必须面对的现实问题。
3.其中,对象存储一般基于全量迁移方法进行数据迁移。这种场景下的迁移,一般要求新旧集群暂停对外提供数据服务,且一旦迁移过程中因各种问题导致迁移进程中断,则需要从头开始再次迁移。从而导致长时间影响业务正常运行。
4.综上所述,如何有效地解决对象存储的集群间数据迁移等问题,是目前本领域技术人员急需解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种数据迁移方法、装置、设备及可读存储介质,以降低全量迁移对集群业务的影响。
6.为解决上述技术问题,本技术提供如下技术方案:
7.一种数据迁移方法,包括:
8.在待迁移集群与目标集群之间进行全量迁移;
9.在全量迁移期间,监听所述待迁移集群的数据变动业务,并记录操作日志;
10.在全量迁移完成后,关闭所述待迁移集群的数据变动业务;
11.利用所述操作日志,确定在全量迁移期间变动的存储对象;
12.迁移所述存储对象至所述目标集群。
13.优选地,监听所述待迁移集群的数据变动业务,并记录操作日志,包括:
14.监听所述数据变动业务,得到数据变动操作信息;
15.将所述数据变动操作信息写入所述操作日志。
16.优选地,所述在待迁移集群与目标集群之间进行全量迁移,包括:
17.创建迁移表;
18.遍历所述待迁移集群中桶分片,并在所述迁移表中记录所述桶分片的迁移状态;
19.对所述迁移状态为未执行的桶分片中对象进行迁移,并修改对应所述迁移状态为执行中;
20.在迁移完成后,在所述迁移表中修改对应所述迁移状态为已执行;
21.若所述待迁移集群所有所述桶分片的所述迁移状态均为已执行,则确定完成全量迁移。
22.优选地,还包括:
23.全量迁移中断后,利用所述迁移表确定迁移断点;
24.从所述迁移断点处,恢复全量迁移。
25.优选地,利用所述迁移表确定迁移断点,包括:
26.遍历所述迁移表,确定所述迁移状态为执行中的目标桶分片;
27.确定所述目标桶分片所在位置为所述迁移断点。
28.优选地,对所述迁移状态为未执行的桶分片中对象进行迁移,包括:
29.为所述迁移表中的桶分片各自分配一个迁移线程;
30.利用所述迁移线程对所述迁移状态为未执行桶分片中对象进行迁移。
31.优选地,在迁移所述存储对象至所述目标集群之后,还包括:
32.开启所述目标集群的数据变动业务。
33.一种数据迁移装置,包括:
34.全量迁移模块,用于在待迁移集群与目标集群之间进行全量迁移;
35.监听模块,用于在全量迁移期间,监听所述待迁移集群的数据变动业务,并记录操作日志;
36.业务控制模块,用于在全量迁移完成后,关闭所述待迁移集群的数据变动业务;
37.补迁移模块,用于利用所述操作日志,确定在全量迁移期间变动的存储对象;迁移所述存储对象至所述目标集群。
38.一种电子设备,包括:
39.存储器,用于存储计算机程序;
40.处理器,用于执行所述计算机程序时实现上述数据迁移方法的步骤。
41.一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据迁移方法的步骤。
42.应用本技术实施例所提供的方法,在待迁移集群与目标集群之间进行全量迁移;在全量迁移期间,监听待迁移集群的数据变动业务,并记录操作日志;在全量迁移完成后,关闭待迁移集群的数据变动业务;利用操作日志,确定在全量迁移期间变动的存储对象;迁移存储对象至目标集群。
43.全量迁移过程中,可待迁移集群正常提供服务,如数据变动业务;通过对数据变动业务进行监听,可以得到操作日志。基于该操作日志可以明确全量迁移过程中,产生变动的存储对象。然后,在全量迁移完成之后,将待迁移集群的数据变动业务关闭,基于所确定的全量迁移期间变动的存储对象,进而二次迁移。如此,全量迁移期间不影响对外服务,二次迁移又可免去全量列举对象流程。相比直接中断读写业务的全量迁移,本技术采用全量迁移和二次迁移的方式,大大降低了业务中断时间,可以有效保障集群业务。
44.相应地,本技术实施例还提供了与上述数据迁移方法相对应的数据迁移装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
45.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1为本技术实施例中一种数据迁移方法的实施流程图;
47.图2为本技术实施例中一种数据迁移方法的具体实施示意图;
48.图3为本技术实施例中一种数据迁移装置的结构示意图;
49.图4为本技术实施例中一种电子设备的结构示意图;
50.图5为本技术实施例中一种电子设备的具体结构示意图。
具体实施方式
51.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.请参考图1,图1为本技术实施例中一种数据迁移方法的流程图,该方法包括以下步骤:
53.s101、在待迁移集群与目标集群之间进行全量迁移。
54.其中,待迁移集群可以具体为旧集群,目标集群为新集群,二者均属于分布式对象存储系统中的集群。即,需要从旧集群中迁移数据至新集群。
55.需要注意的是,在本技术中,在待迁移集群与目标集群之间所进行的全量迁移不比关闭待迁移集群的业务。也就是说,待迁移集群仍然可以提供数据服务,且该服务不仅仅是查看服务,还可以包括数据变动服务。即,待迁移集群其内存储的对象仍然可以变动,如增加、删除和修改。
56.s102、在全量迁移期间,监听待迁移集群的数据变动业务,并记录操作日志。
57.在本技术中,由于全量迁移期间,待迁移集群的业务没有被中断/关闭,因而待迁移集群的对象仍然可能发生变化,为了保障最终目标集群中的数据稳定可靠,因而需要同步带迁移集群中的对象变化。因而,需要在全量迁移期间,对待迁移集群的数据变动业务进行监听,并记录下操作日志。如此,后续便可基于操作日志,明确全量迁移期间产生了变动的对象,并完成有效数据同步。
58.在本技术中的一种具体实施方式中,步骤s102中的监听待迁移集群的数据变动业务,并记录操作日志,包括:
59.步骤一、监听数据变动业务,得到数据变动操作信息;
60.步骤二、将数据变动操作信息写入操作日志。
61.为便于描述,下面将上述两个步骤结合起来进行说明。
62.其中,数据变动操作信息,即记录待迁移集群中对象的新增、修改和删除所对应的信息,例如,新增的对象信息,如对象名,对象存储位置等。
63.也就是说,在全量迁移过程开始时,开始记录待迁移集群中对象的相关操作日志(可记录为map),主要记录上传(对应数据新增)、修改和删除等,该信息可记录在元数据池中。在实际应用中,在数据全量迁移业务开始后,只要不强制重新进行全量迁移,会一直记录对象的相关操作。
64.s103、在全量迁移完成后,关闭待迁移集群的数据变动业务。
65.在完成全量迁移之后,可以将待迁移集群的数据变动业务关闭。即,使得待迁移集
群中的对象不产生变化,以保障数据的一致性。
66.s104、利用操作日志,确定在全量迁移期间变动的存储对象。
67.由于操作日志中记载了权利迁移期间,待迁移集群中的对象变化信息,因而基于该操作日志,可以确定出权利迁移期间变动的存储对象。具体的,可以通过遍历位于元数据池中的map(其内记载了操作日志)的方式,来确定出全量迁移期间变动的存储对象。即,这些存储对象即为迁移期间产生了变化的对象。
68.s105、迁移存储对象至目标集群。
69.由于全量迁移期间,待迁移集群的业务并没有被中断,且在此期间,存在对象产生了变化,为了保障待迁移集群与目标集群数据的一致性,因而,需要二次迁移这些存储对象至目标集群。
70.在迁移存储对象至目标集群之后,开启目标集群的数据变动业务。即,完成迁移后,便可由目标集群提供服务。
71.应用本技术实施例所提供的方法,在待迁移集群与目标集群之间进行全量迁移;在全量迁移期间,监听待迁移集群的数据变动业务,并记录操作日志;在全量迁移完成后,关闭待迁移集群的数据变动业务;利用操作日志,确定在全量迁移期间变动的存储对象;迁移存储对象至目标集群。
72.全量迁移过程中,可待迁移集群正常提供服务,如数据变动业务;通过对数据变动业务进行监听,可以得到操作日志。基于该操作日志可以明确全量迁移过程中,产生变动的存储对象。然后,在全量迁移完成之后,将待迁移集群的数据变动业务关闭,基于所确定的全量迁移期间变动的存储对象,进而二次迁移。如此,全量迁移期间不影响对外服务,二次迁移又可免去全量列举对象流程。相比直接中断读写业务的全量迁移,本技术采用全量迁移和二次迁移的方式,大大降低了业务中断时间,可以有效保障集群业务。
73.需要说明的是,基于上述实施例,本技术实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
74.在本技术中的一种具体实施方式中,步骤s101在待迁移集群与目标集群之间进行全量迁移,包括:
75.步骤一、创建迁移表。
76.该迁移表可具体为能够对待迁移对象的信息进行罗列即可,例如list链表。
77.步骤二、遍历待迁移集群中桶分片,并在迁移表中记录桶分片的迁移状态。
78.其中,桶分片,即rgw(rados gateway,提供对象存储的网关,也即对象存储网关)中桶的索引对象的分片,用于记录桶内对象以及对象相关信息。
79.在本实施例中,迁移状态,具体包括未执行、执行中和已执行。
80.步骤三、对迁移状态为未执行的桶分片中对象进行迁移,并修改对应迁移状态为执行中。
81.其中,对迁移状态为未执行的对象进行迁移,包括:
82.步骤1、为迁移表中的桶分片各自分配一个迁移线程;
83.步骤2、利用迁移线程对迁移状态为未执行桶分片中对象进行迁移。
84.也就是说,可以通过为每一个桶分片分配一个迁移线程的方式,实现多个桶分片
同时遍历迁移。即,能够实现多线程分别处理不同的桶分片上的对象,能够显著提高数据迁移的性能和效率。
85.步骤四、在一个桶分片中对象迁移完成后,在迁移表中修改对应迁移状态为已执行;
86.步骤五、若待迁移集群所有桶分片的迁移状态均为已执行,则确定完成全量迁移。
87.为便于理解,下面将上述五个步骤结合起来进行说明。
88.在本实施例中,可以建立一个迁移表,当通过遍历待迁移集群中桶分片后,可以在迁移表中记录桶分片的迁移状态,从而在迁移时,以桶分片为粒度,实施迁移。
89.在进行全量迁移时,对迁移状态为未执行的桶分片中的对象进行迁移,在迁移过程中,将对应桶分片的迁移状态修改为执行中,在迁移完成之后,在迁移表中修改对应的迁移状态为已执行。如此,通过查询迁移表中各桶分片的具体迁移状态,即可明确当前的迁移进度以及各个桶分片的迁移情况。在迁移表中迁移状态均为已执行的情况下,即表明本次全量迁移完成。
90.优选地,由于迁移表中记录了各个桶分片的迁移状态,因而即便出现了迁移中断的情况,可以在不重新遍历的情况下,直接基于迁移表恢复全量迁移。具体而言,即再次针对迁移表中迁移状态为未执行和执行中的桶分片中对象进行再次迁移即可。进一步地,在本技术中的一种具体实施方式中,基于迁移表,还可实现全量迁移中断后恢复迁移进程。具有实现步骤:
91.步骤一、全量迁移中断后,利用迁移表确定迁移断点;
92.迁移断点即为迁移过程中,出现迁移中断的处。具体来说,对于链表记载的对象,采用顺序迁移方式进行,因而其内记载的各个桶分片的迁移状态会规律性呈现。因而,在实际应用中,迁移断点的确定,可以具体包括:
93.步骤1、遍历迁移表,确定迁移状态为执行中的目标桶分片;
94.步骤2、确定目标桶分片所在位置为迁移断点。
95.当然,在实际应用中,可能会出现当前无对象正在迁移而中断全量迁移,因而迁移表中无迁移中的迁移状态,此时可以找出迁移状态为已执行与未执行的分界点,可将该分界点确定为迁移断点。
96.步骤二、从迁移断点处,恢复全量迁移。
97.即,从全量迁移中断位置,重新继续迁移。可以无需重新遍历桶分片,也无需重复迁移全量迁移中断前已迁移部分的对象,节省时间。
98.为便于本领域技术人员更好地理解本技术实施例所提供的数据迁移方法,下面结合具体的相关技术,并以应用场景为例,对数据迁移方法的具体实施进行详细说明。
99.在当前大数据环境和信息技术快速发展情况下,企业的信息系统数据量成几何级数增加。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其扩展性差、成本高缺点也越来越明显。分布式对象存储同时具有块存储高速直接访问磁盘的特点以及文件存储分布式共享的特点,适用于图片、视频等海量非结构化数据的存储。
100.随着业务需求的变化,信息技术的不断更新换代,原有的存储系统必然会遇到一些无法逾越的限制,为了能够让存储设备更好的支撑企业的发展,设备的更新换代是必然的。为使原有系统产生的业务数据在新系统中能够继续提供价值,需要将原有系统的数据
迁移至新的系统。随着各行各业都先后涌现出了不同规模的数据中心,海量数据迁移已经成为企业解决存储空间不足和信息系统升级改造等过程中必须面对的现实问题。
101.使用复杂架构来应对海量数据迁移需求,一般在无业务压力场景批量迁移数据,并在数据到达数据仓库后再进行分析,但在实际实施过程中却进展缓慢,难以应对网络故障、断电等异常场景。
102.对象存储一般基于全量迁移方法进行数据迁移。具体的,根据新旧集群ip和端口设置创建链接,链接创建成功后,创建迁移进程。对于源端,首先进行目录以及文件名称的合法行校验,然后遍历源端桶目录下所有文件,追加到list链表;对于目的端,判断系统中是否存在此文件,若存在同名的文件,则校验该文件与源端的一致性,如果不同则强制覆盖目的端的同名文件,直至迁移完成。这种场景下的迁移,一般要求新旧集群皆无业务压力,且一旦迁移过程中因各种问题导致迁移进程中断,则需要从头开始再次迁移。即数据迁移的稳定性不高,且会导致长时间影响业务正常运行。
103.本技术基于对象存储场景下的海量数据迁移,提出一种全量+二次迁移的海量数据迁移方法。迁移过程以桶分片为粒度,通过桶分片遍历的方式读取源端桶目录下所有文件;全量迁移过程中,可在旧集群正常进行业务;虽然二次迁移需要中断业务,但避免了全量列举对象流程;针对迁移过程异常中断情况,设计中断继续迁移的方法。
104.具体的,全量迁移过程开始时,开始记录集群中对象的相关操作日志(可记录为map),主要是记录上传、修改和删除等,该信息可记录在元数据池中。数据迁移业务开始后,只要不强制重新进行全量迁移,会一直记录对象的相关操作。直到集群业务中断,二次迁移开始。
105.全量迁移过程中,以桶分片为单位遍历桶内对象。桶分片的迁移状态信息保存在索引池,数据迁移执行时,初始化该状态为“未执行”,线程根据该状态遍历桶内对象。如果桶分片正在被某一线程执行,该状态置为“执行中”,其他线程则无法操作该桶分片,故可以实现多线程的迁移。桶分片内对象遍历完毕,该状态置为“已执行”。待所有分片遍历完毕,该桶内数据迁移完毕。
106.二次迁移过程中,采用增量迁移的方式。该阶段需要停止旧集群的写、删等业务。二次迁移直接根据操作日志(map),迁移变动的对象,无需进行遍历桶内对象的过程,相比直接中断读写业务的全量迁移,大大降低了业务中断时间。
107.迁移过程添加容错机制,每完成迁移一个对象,记录其所在分片及对象名(marker),中途业务中断时,下一次迁移从该marker开始。该容错机制能够有效提高迁移过程的稳定性。
108.迁移过程,对应步骤如下:
109.步骤1、根据新旧集群ip和端口设置创建链接,链接创建成功后,创建迁移进程;
110.步骤2、开始记录迁移开始后变动的对象,记录在map中,保存在元数据池;
111.步骤3、按顺序遍历桶分片对象,同时进行迁移(重复步骤4-6,直到分片遍历完成);
112.步骤4、遍历桶分片内对象,遍历的结果记到一个list链表;
113.步骤5、按照遍历结果迁移对象,每次迁移成功后更新对象marker(对象名);
114.步骤6、当桶分片上所有对象的迁移完毕,修改该桶分片迁移遍历状态为已完成;
115.步骤7、开始进行下一个桶分片上对象的迁移,直到所有桶分片遍历完毕,该桶迁移完成;
116.步骤8、中断存储业务,停止写删操作,开始进行二次迁移
117.步骤9、遍历map中的对象,同时进行迁移(重复步骤10,直到分片遍历完成);
118.步骤10、依次读取map中的对象,同时进行迁移,删除(增删改)则在新集群执行删除操作,对象迁移完成,更新marker信息;
119.步骤11、map遍历完成,二次迁移完成,数据迁移完成。
120.具体实施时,可参照图2所示。即当全量迁移开始,即可开始记录变动的对象(主要对应写入、删除和修改),具体可以记录到map上。然后,按照桶分片顺序开始遍历和迁移。具体的,可以从桶分片序号0开始,遍历该桶分片内的对象名,将对象记为objs,对objs进行迁移,迁移成功更新objs(即将objs指向下一个对象),当一个桶分片内对象遍历完成后,确定桶分片是否全部完成遍历,如果否,则对桶分片序号加1,从而进入下一个桶分片遍历和迁移。当确定全部桶分片遍历完成,则确定权利迁移结束,等待进行二次迁移。
121.当待迁移集群的业务中断后,进行二次迁移,首先可获取map,然后读取每一个map,并判断迁移是否成功,如果迁移失败,则记录obj_marker,然后遍历对应map内的对象进行迁移。
122.在各迁移阶段中,当存在迁移失败的情况,可等待中断续传。
123.相应于上面的方法实施例,本技术实施例还提供了一种数据迁移装置,下文描述的数据迁移装置与上文描述的数据迁移方法可相互对应参照。
124.参见图3所示,该装置包括以下模块:
125.全量迁移模块101,用于在待迁移集群与目标集群之间进行全量迁移;
126.监听模块102,用于在全量迁移期间,监听待迁移集群的数据变动业务,并记录操作日志;
127.业务控制模块103,用于在全量迁移完成后,关闭待迁移集群的数据变动业务;
128.补迁移模块104,用于利用操作日志,确定在全量迁移期间变动的存储对象;迁移存储对象至目标集群。
129.应用本技术实施例所提供的装置,在待迁移集群与目标集群之间进行全量迁移;在全量迁移期间,监听待迁移集群的数据变动业务,并记录操作日志;在全量迁移完成后,关闭待迁移集群的数据变动业务;利用操作日志,确定在全量迁移期间变动的存储对象;迁移存储对象至目标集群。
130.全量迁移过程中,可待迁移集群正常提供服务,如数据变动业务;通过对数据变动业务进行监听,可以得到操作日志。基于该操作日志可以明确全量迁移过程中,产生变动的存储对象。然后,在全量迁移完成之后,将待迁移集群的数据变动业务关闭,基于所确定的全量迁移期间变动的存储对象,进而二次迁移。如此,全量迁移期间不影响对外服务,二次迁移又可免去全量列举对象流程。相比直接中断读写业务的全量迁移,本技术采用全量迁移和二次迁移的方式,大大降低了业务中断时间,可以有效保障集群业务。
131.在本技术的一种具体实施方式中,监听模块102,具体用于监听数据变动业务,得到数据变动操作信息;
132.将数据变动操作信息写入操作日志。
133.在本技术的一种具体实施方式中,全量迁移模块101,具体用于
134.创建迁移表;
135.遍历待迁移集群中桶分片,并在迁移表中记录桶分片的迁移状态;
136.对迁移状态为未执行的桶分片中对象进行迁移,并修改对应迁移状态为执行中;
137.在一个桶分片中对象迁移完成后,在迁移表中修改对应迁移状态为已执行;
138.若待迁移集群所有桶分片的迁移状态均为已执行,则确定完成全量迁移。
139.在本技术的一种具体实施方式中,还包括:
140.迁移中断恢复单元,用于全量迁移中断后,利用迁移表确定迁移断点;
141.从迁移断点处,恢复全量迁移。
142.在本技术的一种具体实施方式中,全量迁移模块101,具体用于遍历迁移表,确定迁移状态为执行中的目标桶分片;
143.确定目标桶分片所在位置为迁移断点。
144.在本技术的一种具体实施方式中,全量迁移模块101,具体用于为迁移表中的桶分片各自分配一个迁移线程;
145.利用迁移线程对迁移状态为未执行桶分片中对象进行迁移。
146.在本技术的一种具体实施方式中,业务控制模块103,还用于在迁移存储对象至目标集群之后,开启目标集群的数据变动业务。
147.相应于上面的方法实施例,本技术实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种数据迁移方法可相互对应参照。
148.参见图4所示,该电子设备包括:
149.存储器332,用于存储计算机程序;
150.处理器322,用于执行计算机程序时实现上述方法实施例的数据迁移方法的步骤。
151.具体的,请参考图5,图5为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
152.电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
153.上文所描述的数据迁移方法中的步骤可以由电子设备的结构实现。
154.相应于上面的方法实施例,本技术实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据迁移方法可相互对应参照。
155.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据迁移方法的步骤。
156.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
157.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1