数据迁移方法及系统
文献发布时间:2023-06-19 10:32:14
技术领域
本发明实施例涉及数据迁移技术领域,尤其涉及一种数据迁移方法及系统。
背景技术
分布式系统是建立在网络之上的软件系统,一般包括多个服务节点。分布式系统拥有多种通用的物理和逻辑资源,可以在多个服务节点上动态的分配任务,分散的物理和逻辑资源通过网络实现信息交换。在一些情况下,分布式系统需要将一些服务节点上的数据迁移到分布式系统的其他服务节点上,以达到预期的目的。
常见的分布式系统例如有安防监控系统、图像分析系统、或者视频分析系统等。以安防监控系统为例,安防监控系统每天要录入和处理大量的人脸特征数据,且部分人脸特征数据需要长期保存。随着时间的推移,当原先的服务节点的容量趋近饱和时,需要新增服务节点实现分布式系统的扩容,并将原先的服务节点的部分数据迁移到新增的服务节点。
现有技术中,分布式系统中数据的迁移通常采用迁移快照数据和操作日志的方式。其中,快照数据是在过去的某一时间节点对需要迁移的数据的拷贝数据,操作日志是从过去的某一时间节点至当前时间节点之间,与需要迁移的数据对应的操作记录。将快照数据和操作日志从源服务节点迁移到目的服务节点之后,目的服务节点首先将快照数据加载到内存中,恢复过去某一时间节点的数据,然后执行操作日志中的写操作,将数据恢复到当前时间节点,完成数据的迁移。
但是,现有的数据迁移方法,由于服务节点中数据的操作记录都保存在同一个操作日志中。当需要数据迁移时,需要将与迁移数据对应的操作记录从服务节点的操作日志中拆分出来,由于操作日志中的操作记录数量庞大,导致数据迁移的效率较低。
发明内容
本发明实施例提供一种数据迁移方法及系统,以解决现有技术中分布式系统的数据迁移效率低的问题。
第一个方面,本发明实施例提供一种数据迁移方法,应用于分布式系统,所述方法包括:
所述分布式系统中的中心服务节点根据所述分布式系统中的源服务节点的存储总容量和所述分布式系统中的扩容服务节点的存储总容量,从所述源服务节点和所述扩容服务节点中确定出目标数据待迁移的目的服务节点;
若所述目标数据所在的源服务节点和所述目标数据待迁移的目的服务节点不同,则所述中心服务节点向所述源服务节点发送所述目标数据的迁移请求;
所述源服务节点对所述目标数据执行强制快照,得到所述目标数据对应的快照数据;
所述源服务节点将所述目标数据对应的快照数据迁移到所述目的服务节点。
一种可选的实施方式中,所述从所述源服务节点和所述扩容服务节点中确定出所述源服务节点中的目标数据的目的服务节点,包括:
所述中心服务节点以所述源服务节点的存储总容量和所述扩容服务节点的存储总容量作为权重,通过平滑加权轮询的调度算法对所述源服务节点中的每个分片的目标数据进行计算,从所述源服务节点和所述扩容服务节点中确定所述每个分片的目标数据的目的服务节点。
一种可选的实施方式中,所述源服务节点对所述目标数据执行强制快照,得到所述目标数据对应的快照数据,包括:
所述源服务节点将所述目标数据导出为待迁移文件;
所述源服务节点生成所述待迁移文件的元文件,所述元文件用于描述所述待迁移文件;
所述源服务节点将所述待迁移文件和所述元文件组合为所述目标数据对应的快照数据。
一种可选的实施方式中,在所述源服务节点对所述目标数据执行强制快照,得到所述目标数据对应的快照数据之前,所述方法还包括:
所述源服务节点停止响应所述目标数据的外部访问请求。
一种可选的实施方式中,在所述源服务节点将所述待迁移数据对应的快照数据迁移到所述目的服务节点之后,所述方法还包括:
所述中心服务节点向所述源服务节点发送查询请求,所述查询请求用于查询所述快照数据的迁移进度;
所述源服务节点向所述目的服务节点发送反馈信息,所述反馈信息用于指示所述目标数据的迁移进度。
一种可选的实施方式中,在所述中心服务节点向所述源服务节点发送所述目标数据的迁移请求之后,所述方法还包括:
所述中心服务节点向所述分布式系统的第二数据库节点发送更新指示,所述更新指示中包含有所述目标数据的目的服务节点的标识;
所述第二数据库节点根据所述目的服务节点的标识,更新所述目标数据和所述目的服务节点的映射关系。
一种可选的实施方式中,所述源服务节点将所述目标数据对应的快照数据迁移到所述目的服务节点,包括:
所述源服务节点将所述目标数据对应的快照数据发送给所述分布式系统的第一数据库节点;
所述第一数据库节点根据目的服务节点的地址将所述目标数据对应的快照数据发送给所述目的服务节点。
一种可选的实施方式中,在所述第一数据库节点根据目的服务节点的地址将所述目标数据对应的快照数据发送给所述目的服务节点之后,所述方法还包括:
所述中心服务节点向所述目的服务节点发送重新加载指示,所述重新加载指示用于指示所述目的服务节点重新加载所述目标数据;
所述目的服务节点通过加载所述目标数据对应的快照数据恢复所述目标数据在所述目的服务节点的工作状态。
第二个方面,本发明实施例提供一种数据迁移系统,所述系统包括:
中心服务节点,用于根据所述分布式系统中的源服务节点的存储总容量和所述分布式系统中的扩容服务节点的存储总容量,从所述源服务节点和所述扩容服务节点中确定出目标数据待迁移的目的服务节点;若所述目标数据所在的源服务节点和所述目标数据待迁移的目的服务节点不同,则向所述源服务节点发送所述目标数据的迁移请求;
源服务节点,用于对所述目标数据执行强制快照,得到所述目标数据对应的快照数据;将所述目标数据对应的快照数据迁移到所述目的服务节点。
一种可选的实施方式中,所述中心服务节点,具体用于以所述源服务节点的存储总容量和所述扩容服务节点的存储总容量作为权重,通过平滑加权轮询的调度算法对所述源服务节点中的每个分片的目标数据进行计算,从所述源服务节点和所述扩容服务节点中确定所述每个分片的目标数据的目的服务节点。
一种可选的实施方式中,所述源服务节点,具体用于将所述目标数据导出为待迁移文件;生成所述待迁移文件的元文件,所述元文件用于描述所述待迁移文件;将所述待迁移文件和所述元文件组合为所述目标数据对应的快照数据。
一种可选的实施方式中,所述源服务节点,还用于停止响应所述目标数据的外部访问请求。
一种可选的实施方式中,所述中心服务节点,还用于向所述源服务节点发送查询请求,所述查询请求用于查询所述快照数据的迁移进度;
所述源服务节点,用于向所述目的服务节点发送反馈信息,所述反馈信息用于指示所述目标数据的迁移进度。
一种可选的实施方式中,所述系统还包括:第一数据库节点;
所述中心服务节点,还用于向所述分布式系统的第一数据库节点发送更新指示,所述更新指示中包含有所述目标数据的目的服务节点的标识;
所述第一数据库节点,用于根据所述目的服务节点的标识,更新所述目标数据和所述目的服务节点的映射关系。
一种可选的实施方式中,所述系统还包括:第二数据库节点;
所述源服务节点,还用于将所述目标数据对应的快照数据发送给所述分布式系统的第二数据库节点;
所述第二数据库节点,用于根据目的服务节点的地址将所述目标数据对应的快照数据发送给所述目的服务节点。
一种可选的实施方式中,所述系统还包括:目的服务节点;
所述中心服务节点,还用于向所述目的服务节点发送重新加载指示,所述重新加载指示用于指示所述目的服务节点重新加载所述目标数据;
所述目的服务节点,通过加载所述目标数据对应的快照数据恢复所述目标数据在所述目的服务节点的工作状态。
本发明的第三方面提供一种电子设备,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行本发明第一方面及第一方面各种可选的数据迁移方法。
本发明的第四个方面提供一种存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行第一方面及第一方面各种可选的数据迁移方法。
本发明的第五个方面提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现第一方面所述的方法。
本申请实施例提供的数据迁移方法及系统,分布式系统中的中心服务节点根据分布式系统中的源服务节点的存储总容量和分布式系统中的扩容服务节点的存储总容量,从源服务节点和扩容服务节点中确定出源服务节点中的目标数据的目的服务节点;若目标数据所在的源服务节点和目标数据的目的服务节点不同,则中心服务节点向源服务节点发送目标数据的迁移请求;源服务节点对目标数据执行强制快照,得到目标数据对应的快照数据;源服务节点将目标数据对应的快照数据迁移到目的服务节点。与现有技术相比,通过在迁移前得到目标数据对应的快照数据,从而使得在迁移时无需迁移目标数据的操作日志,进而提高了数据迁移效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据迁移方法的应用场景的示意图;
图2为本申请实施例提供的一种数据迁移方法的流程示意图;
图3为本申请实施例提供的另一种数据迁移方法的流程示意图;
图4为本申请实施例提供的一种数据迁移方法的信令交互图;
图5为本申请实施例提供的一种数据迁移系统的系统架构图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,分布式系统中数据的迁移通常采用迁移快照数据和操作日志的方式。其中,快照数据是在过去的某一时间节点对需要迁移的数据的拷贝数据,操作日志是从过去的某一时间节点至当前时间节点之间,与需要迁移的数据对应的操作记录。将快照数据和操作日志从源服务节点迁移到目的服务节点之后,目的服务节点首先将快照数据加载到内存中,恢复过去某一时间节点的数据,然后执行操作日志中的写操作,将数据恢复到当前时间节点,完成数据的迁移。但是,现有的数据迁移方法,由于服务节点中数据的操作记录都保存在同一个操作日志中。当需要数据迁移时,需要将与迁移数据对应的操作记录从服务节点的操作日志中拆分出来,由于操作日志中的操作记录数量庞大,导致数据迁移的效率较低。
为解决上述问题,本申请实施例提供一种数据迁移方法及装置,以解决现有技术中分布式系统的数据迁移效率低的问题。本申请的发明构思是:通过将最新的目标数据的快照数据发送给目的服务器来进行目标数据的迁移,从而使得在迁移过程中无需迁移目标数据的操作日志,进而提高了数据迁移效率。
下面对本申请的应用场景进行说明。图1为本申请实施例提供的一种数据迁移方法的应用场景的示意图。如图1所示,分布式系统包括有服务节点101、服务节点102、服务节点103、服务节点104、服务节点105。其中,服务节点105为分布式系统中的中心服务节点,用于对分布式系统中的其他服务节点进行控制。当其中的服务节点101不使用时,服务节点105需要对分布式系统中的数据进行重新分配,将服务节点101中的数据迁移到服务节点102、服务节点103和服务节点104中。或者,当其中的服务节点101为新增的服务节点时,服务节点105也需要对分布式系统中的数据进行重新分配,将服务节点102、服务节点103和服务节点104中的部分数据迁移到服务节点101中,来平衡各服务节点中的存储容量。
其中,分布式系统可以为安防监控系统、图像分析系统、或者视频分析系统等,本申请实施例对此不作限制。服务节点可以为服务器。
需要说明的是,本申请技术方案的应用场景可以是图1中的场景,但并不限于此,还可以应用于其他需要进行数据迁移的场景。
下面以集成或安装有相关执行代码的分布式系统中的各节点为例,以具体地实施例对本申请实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的一种数据迁移方法的流程示意图,本实施例涉及的是分布式系统如何将目标数据从源服务节点迁移到目的服务节点的具体过程。如图2所示,该方法包括:
S201、分布式系统中的中心服务节点根据分布式系统中的源服务节点的存储总容量和分布式系统中的扩容服务节点的存储总容量,从源服务节点和扩容服务节点中确定出目标数据待迁移的目的服务节点。
在本申请实施例中,中心服务节点为分布式系统中的控制节点,用于对分布式系统中的数据进行迁移控制;源服务节点为分布式系统中的原有的服务节点,用于存储分布式系统中的目标数据;扩容服务节点为分布式系统扩容后的服务节点,也用于存储分布式系统中的目标数据;目的服务节点为目标数据迁移后的服务节点,目的服务节点可以为任一源服务节点或扩容服务节点。
其中,目标数据可以为源服务节点存储的至少一个分片的特征数据对应的操作日志数据。
应理解,在本申请实施例涉及的分布式系统中,源服务节点以及后续新增的扩容服务节点只用于存放特征数据对应的操作日志数据等目标数据,分布式系统中的第一数据库节点用于存放目标数据与目标数据所在节点之间的映射关系,分布式系统中的第二数据库节点用于存放特征数据以及目标数据对应的快照数据。
本申请实施例对于如何从源服务节点和扩容服务节点中确定出目标数据的目的服务节点不做限制,可以根据源服务节点的存储总容量和扩容服务节点的存储总容量进行确定。
示例性的,若分布式系统包含两个源服务节点,每个源服务节点包含五个分片的特征数据对应的操作日志,后续的,在对分布式系统进行扩容的过程中添加了三个扩容服务节点,则中心服务节点可以对两个源服务节点中一共包含的十个分片的特征数据对应的操作日志重新分配目的服务节点,将两个源服务节点和三个扩容服务节点中分别分配两个分片的特征数据对应的操作日志。
在一些实施例中,中心服务节点以源服务节点的存储总容量和扩容服务节点的存储总容量作为权重,通过平滑加权轮询的调度算法对源服务节点中的每个分片的目标数据进行计算,从源服务节点和扩容服务节点中确定每个分片的目标数据的目的服务节点。
示例性的,中心服务节点可以先确定所有服务节点(所有服务节点包含源服务节点和扩容服务节点)的有效权重的初始值。随后,将所有服务节点中第M次更新后的有效权重最大的第一服务节点作为源服务节点中待迁移的第M+1个分片的目标数据的目的服务节点。
其中,第M次更新后的有效权重是根据第M-1次更新后的有效权重和每个服务节点的配置权重确定的,每个服务节点的有效权重的初始值为每个服务节点的配置权重,每个服务节点的配置权重与每个服务节点的存储总容量相关。M为大于等于2的整数。
相应的,在平滑加权轮询的方式中,每次迁移完目标数据后,需要对每个服务节点的有效权重进行更新。示例性的,可以先将第一服务节点的第M次更新后的有效权重减去所有服务节点的配置权重之和,得到第一服务节点的有效权重在第M+1次更新时的中间值。随后,可以将第一服务节点的有效权重在第M+1次更新时的中间值加上第一服务节点的配置权重,得到第一服务节点的第M+1次更新后的有效权重。最后,可以将除第一服务节点以外的各其他服务节的M次更新后的有效权重加上各其他服务节的配置权重,得到各其他服务节的第M+1次更新后的有效权重。
在本申请实施例中,通过平滑加权轮询的方式,可以基于源服务节点的存储总容量和扩容服务节点的存储总容量,确定在扩容后目标数据所应存放的目的服务节点,从而使得扩容后各服务节点所存放的数据量更加平均。
S202、若目标数据所在的源服务节点和目标数据待迁移的目的服务节点不同,则中心服务节点向源服务节点发送目标数据的迁移请求。
在本步骤中,在中心服务节点确定目标数据的目的服务节点后,中心服务节点可以将目标数据所在的源服务节点和目标数据待迁移的目的服务节点进行比较,若目标数据所在的源服务节点和目标数据待迁移的目的服务节点不同,则可以确定目标数据需要从源服务节点迁移到目的服务节点。此时,中心服务节点可以向源服务节点发送目标数据的迁移请求。
应理解,若目标数据所在的源服务节点和目标数据待迁移的目的服务节点为同一个服务节点,则可以确定该目标数据在数据迁移后仍存储在源服务节点中,则无需对该目标数据进行迁移。
在一些实施例中,目标数据的迁移请求中还可以包括目的服务节点的标识,以便源服务节点在接收到目标数据的迁移请求后可以确定目标数据所要迁移到的目的服务节点。
S203、源服务节点对目标数据执行强制快照,得到目标数据对应的快照数据。
在本步骤中,源服务节点在接收到目标数据的迁移请求后,可以对目标数据执行强制快照,得到目标数据对应的快照数据。
其中,快照为目标数据在某一时刻的状态记录。在本申请实施例中,得到的目标数据对应的快照数据,为当前目标数据最新状态的快照数据。
本申请实施例对于如何执行强制快照不做限制,在一些实施例中,源服务节点可以先将目标数据导出为待迁移文件。随后,源服务节点生成待迁移文件的元文件,该元文件用于描述待迁移文件。最后,源服务节点将待迁移文件和元文件组合为目标数据对应的快照数据。
在本申请实施例中,分布式系统中的图像和视频等状态是由操作日志对应的目标数据和目标数据的快照组成的。快照通常是定期生成的,反映的是某一时间点的状态,在这一时间点之后系统还会收到写操作请求,导致系统状态发生变化,引起状态变化的操作会记录在目标数据中。由于在数据迁移时,快照的迁移相对简单,目标数据的迁移则相对复杂,因此,在一些实施例中,在源服务节点对目标数据执行强制快照,得到目标数据对应的快照数据之前,源服务节点可以停止响应目标数据的外部访问请求。
本申请实施例对于如何停止响应外部访问请求不做限制,示例性的,可以从请求接入层屏蔽对城市级图像、视频分析系统等分布式系统的外部访问。
在另一些实施例中,在进行强制快照的过程中,在源服务节点将待迁移数据对应的快照数据迁移到目的服务节点之后,中心服务节点还可以向源服务节点发送查询请求,来查询快照数据的迁移进度。后续的,源服务节点向目的服务节点发送反馈信息,所来指示目标数据的迁移进度。
示例性的,中心服务节点可以通过向源服务节点发送查询请求(grpcSMapshotGet)来查询各服务节点强制快照的迁移执行进度,直至目标数据完成迁移。
S204、源服务节点向目的服务节点发送目标数据对应的快照数据。
在本步骤中,当源服务节点得到目标数据对应的快照数据之后,可以将目标数据对应的快照数据从源服务节点中迁移到目的服务节点中。
本申请实施例对于如何将目标数据的快照数据从源服务节点中迁移到目的服务节点中不做限制,可以根据实际情况选择合适的迁移方式。
在一些可选的实施方式中,源服务节点可以将目标数据对应的快照数据发送给分布式系统的第二数据库节点。随后,第二数据库节点根据目的服务节点的地址将目标数据对应的快照数据发送给目的服务节点。
其中,目的服务节点的地址可以由中心服务节点发送给第二数据库节点,也可以由源服务节点发送给第二数据库节点,本申请实施例对此不做限制。此外,本申请实施例对于第二数据库节点的类型也不做限制,可例如Minio数据库。
在一些实施例中,第二数据库节点在完成目标数据的迁移后,还可以生成用于描述每个服务节点快照信息的元文件。
应理解,在分布式系统中的第一数据库节点存放有目标数据与目标数据所在节点之间的映射关系。因此,在一些实施例中,在进行数据迁移时,中心服务节点还可以向分布式系统的第一数据库节点发送更新指示,该更新指示中包含有目标数据的目的服务节点的标识。随后,第一数据库节点根据目的服务节点的标识,更新目标数据和目的服务节点的映射关系。
此外,在一些实施例中,在完成目标数据的迁移后,中心服务节点可以向目的服务节点发送重新加载指示,该重新加载指示用于指示目的服务节点将目标数据对应的快照数据缓存到内存中并建立目标数据与目的服务节点的映射关系。
示例性的,目的服务节点在接收到重新加载指示后,可以将需迁移的分片数据的快照数据移至目的服务节点对应位置,待所有分片数据的快照数据迁移完成后,重新生成描述每个服务节点快照信息的元文件。
在一些实施例中,在完成迁移后,中心服务节点向目的服务节点发送重新加载指示,该重新加载指示用于指示目的服务节点重新加载目标数据。后续的,目的服务节点通过加载目标数据对应的快照数据恢复目标数据在目的服务节点的工作状态。
应理解,由于进行强制快照前源服务节点停止响应目标数据的外部访问请求,生成的快照数据可以完整反映服务节点状态。因此,目标数据在该快照对应时间点之后没有新的写操作,进而使得目的服务节点在重启时可以直接根据快照就恢复状态,无需放操作日志等目标数据。
本申请实施例提供的数据迁移方法,分布式系统中的中心服务节点根据分布式系统中的源服务节点的存储总容量和分布式系统中的扩容服务节点的存储总容量,从源服务节点和扩容服务节点中确定出目标数据待迁移的目的服务节点;若目标数据所在的源服务节点和目标数据待迁移的目的服务节点不同,则中心服务节点向源服务节点发送目标数据的迁移请求;源服务节点对目标数据执行强制快照,得到目标数据对应的快照数据;源服务节点将目标数据对应的快照数据迁移到目的服务节点。与现有技术相比,通过在迁移前得到目标数据对应的快照数据,从而使得在迁移时无需迁移目标数据的操作日志,进而提高了数据迁移效率。
在上述实施例的基础上,为了更好的平衡各服务节点存储的数据量,在进行数据迁移前,需要确定待迁移的目标数据,以及目标数据的目的服务节点。本申请实施例可以采用平滑加权轮询的方式确定源服务节点中待迁移的目标数据的目的服务节点。图3为本申请实施例提供的另一种数据迁移方法的流程示意图,本实施例的执行主体为中心服务器,如图3所示,该数据迁移方法包括:
S301、确定所有服务节点的有效权重的初始值。
S302、将所有服务节点中第M次更新后的有效权重最大的第一服务节点作为源服务节点中待迁移的第M+1个分片的目标数据的目的服务节点。
其中,第一服务节点可以为源服务节点,也可以为扩容服务节点,本申请实施例对此不作限制。
在本申请实施例中,第M次更新后的有效权重是根据第M-1次更新后的有效权重和每个服务节点的配置权重确定的,每个服务节点的有效权重的初始值为每个服务节点的配置权重,每个服务节点的配置权重与每个服务节点的存储总容量相关。M为大于等于2的整数。
S303、将第一服务节点的第M次更新后的有效权重减去所有服务节点的配置权重之和,得到第一服务节点的有效权重在第M+1次更新时的中间值。
S304、将第一服务节点的有效权重在第M+1次更新时的中间值加上第一服务节点的配置权重,得到第一服务节点的第M+1次更新后的有效权重。
S305、将除第一服务节点以外的各其他服务节的M次更新后的有效权重加上各其他服务节的配置权重,得到各其他服务节的第M+1次更新后的有效权重。
在本申请实施例中,步骤S301-S305为平滑加权轮询中选择目的服务节点以及更新有效权重的过程。下面通过举例说明平滑加权轮询。
示例性的,若有n个服务节点S={S
在第一次确定目标数据的目的服务节点时,可以将每个服务节点i的当前有效权重CW
随后,每确定一次目标数据的目的服务节点,各服务节点的有效权重会进行一次更新。源服务节点可以基于上一次更新后各服务节点的有效权重,确定出有效权重最大的服务节点,并通过CurrentPos指向该服务节点来确定该服务节点为本次目标数据的目的服务节点。
随后,源服务节点可以将第一服务节点当前有效权重CW
在本申请中,由于基于平滑加权轮询计算迁移方案来确定目标数据的目的服务节点,以各服务节点的容量为权重,在各个服务节点之间重新分配分片,从而做到充分均衡,对于新增的服务节点可以充分利用新增服务节点的存储资源和计算资源。
在上述实施例的基础上,下面对于目标数据完成迁移后如何告知目的服务节点重新加载目标数据进行说明。图4为本申请实施例提供的一种数据迁移方法的信令交互图,如图4所示,数据迁移方法,包括:
S401、分布式系统中的中心服务节点根据分布式系统中的源服务节点的存储总容量和分布式系统中的扩容服务节点的存储总容量,从源服务节点和扩容服务节点中确定出目标数据待迁移的目的服务节点。
S402、若目标数据所在的源服务节点和目标数据待迁移的目的服务节点不同,则中心服务节点向源服务节点发送目标数据的迁移请求。
S403、源服务节点对目标数据执行强制快照,得到目标数据对应的快照数据。
S404、源服务节点将目标数据对应的快照数据发送给分布式系统的第二数据库节点。
S405、第二数据库节点根据目的服务节点的地址将目标数据对应的快照数据发送给目的服务节点。
S401-S405的技术名词、技术效果、技术特征,以及可选实施方式,可参照图2所示的S201-S204理解,对于重复的内容,在此不再累述。
S406、中心服务节点向目的服务节点发送重新加载指示,重新加载指示用于指示目的服务节点重新加载目标数据。
S407、目的服务节点通过加载目标数据对应的快照数据恢复目标数据在目的服务节点的工作状态。
在本申请中,由于在迁移目标数据后,需要让各服务节点将目标数据重新加载到内存才能最终完成数据迁移,并正常提供服务。因此,中心服务节点在接收到目标服务节点发送的迁移完成消息后,可以指示重启目的服务节点。
应理解,由于进行强制快照前源服务节点停止响应目标数据的外部访问请求,生成的快照数据可以完整反映服务节点状态。因此,目标数据在该快照对应时间点之后没有新的写操作,进而使得目的服务节点在重启时可以直接根据快照就恢复状态,无需放操作日志等目标数据。
本申请实施例提供的数据迁移方法,分布式系统中的中心服务节点根据分布式系统中的源服务节点的存储总容量和分布式系统中的扩容服务节点的存储总容量,从源服务节点和扩容服务节点中确定出目标数据的目待迁移的服务节点;若目标数据所在的源服务节点和目标数据待迁移的目的服务节点不同,则中心服务节点向源服务节点发送目标数据的迁移请求;源服务节点对目标数据执行强制快照,得到目标数据对应的快照数据;源服务节点将目标数据对应的快照数据迁移到目的服务节点。与现有技术相比,通过在迁移前得到目标数据对应的快照数据,从而使得在迁移时无需迁移目标数据的操作日志,进而提高了数据迁移效率。
S408、中心服务节点向分布式系统的第一数据库节点发送更新指示,更新指示中包含有目标数据的目的服务节点的标识;
S409、第一数据库节点根据目的服务节点的标识,更新目标数据和目的服务节点的映射关系。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本申请实施例提供的一种数据迁移系统的系统架构图。该数据迁移系统包括:中心服务节点501、源服务节点502、目的服务节点503、第一数据库节点504、第二数据库节点505、扩容服务节点506。
中心服务节点501,用于根据分布式系统中的源服务节点502的存储总容量和分布式系统中的扩容服务节点506的存储总容量,从源服务节点502和扩容服务节点506中确定出目标数据待迁移的目的服务节点503;若目标数据所在的源服务节点502和目标数据待迁移的目的服务节点503不同,则向源服务节点502发送目标数据的迁移请求;
源服务节点502,用于对目标数据执行强制快照,得到目标数据对应的快照数据;将目标数据对应的快照数据迁移到目的服务节点503。
一种可选的实施方式中,中心服务节点501,具体用于以源服务节点502的存储总容量和扩容服务节点506的存储总容量作为权重,通过平滑加权轮询的调度算法对源服务节点502中的每个分片的目标数据进行计算,从源服务节点502和扩容服务节点506中确定每个分片的目标数据的目的服务节点503。
一种可选的实施方式中,源服务节点502,具体用于将目标数据导出为待迁移文件;生成待迁移文件的元文件,元文件用于描述待迁移文件;将待迁移文件和元文件组合为目标数据对应的快照数据。
一种可选的实施方式中,源服务节点502,还用于停止响应目标数据的外部访问请求。
一种可选的实施方式中,中心服务节点501,还用于向源服务节点502发送查询请求,查询请求用于查询快照数据的迁移进度;
源服务节点502,用于向目的服务节点503发送反馈信息,反馈信息用于指示目标数据的迁移进度。
一种可选的实施方式中,系统还包括:第一数据库节点504;
中心服务节点501,还用于向分布式系统的第一数据库节点504发送更新指示,更新指示中包含有目标数据的目的服务节点503的标识;
第一数据库节点504,用于根据目的服务节点503的标识,更新目标数据和目的服务节点503的映射关系。
一种可选的实施方式中,系统还包括:第二数据库节点505;
源服务节点502,还用于将目标数据对应的快照数据发送给分布式系统的第二数据库节点505;
第二数据库节点505,用于根据目的服务节点503的地址将目标数据对应的快照数据发送给目的服务节点503。
一种可选的实施方式中,系统还包括:目的服务节点503;
中心服务节点501,还用于向目的服务节点503发送重新加载指示,重新加载指示用于指示目的服务节点503重新加载目标数据;
目的服务节点503,通过加载目标数据对应的快照数据恢复目标数据在目的服务节点503的工作状态。
本申请实施例提供的数据迁移装置,可以执行上述方法实施例中的数据迁移方法的动作,其实现原理和技术效果类似,在此不再赘述。
图6为本申请实施例提供的一种电子设备的结构示意图。如图6所示,该电子设备可以包括:至少一个处理器601和存储器602。图6示出的是以一个处理器为例的电子设备。
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器602可能包含高速RAM存储器,也可能还包括非易失性存储器(MoM-volatile memory),例如至少一个磁盘存储器。
处理器601用于执行存储器602存储的计算机执行指令,以实现源服务节点侧的数据迁移方法,或者,以实现目的服务节点侧的数据迁移方法,或者,以实现中心服务节点侧的数据迁移方法。
其中,处理器601可能是一个中央处理器(CeMtral ProcessiMg UMit,简称为CPU),或者是特定集成电路(ApplicatioM Specific IMtegrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口、存储器602和处理器601独立实现,则通信接口、存储器602和处理器601可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(IMdustry StaMdard Architecture,简称为ISA)总线、外部设备互连(Peripheral CompoMeMt,简称为PCI)总线或扩展工业标准体系结构(ExteMded IMdustryStaMdard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口、存储器602和处理器601集成在一块芯片上实现,则通信接口、存储器602和处理器601可以通过内部接口完成通信。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-OMly Memory)、随机存取存储器(RAM,RaMdom AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本发明还提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述实施例中的数据迁移方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
- 一种数据迁移方法、数据迁移装置及数据迁移系统
- 一种不同系统间数据迁移方法、数据迁移系统及相关设备