本发明涉及数据迁移技术领域,特别是涉及一种大规模集群的数据迁移方法、装置和计算机可读存储介质。
背景技术:
随着互联网技术高速发展,庞大数量的用户在使用互联网时会产生大量的数据,服务商需要考虑将用户的数据存储起来,但由于存储用户数量的数据库的承载量是有限的,随着用户量的增加、数据量的不断积累,需要对数据库进行扩容。
目前扩容的方法是增加更多的数据库,但同时产生了一系列的问题:增加数据库后为了方便用户数据的管理,需要将用户数据进行迁移,但是数据迁移涉及数据量过于庞大,基本上都是海量级别。现有的迁移方法通常是将整个数据库的用户数据一起进行迁移,并且需要服务端暂停一段时间的服务来完成数据的迁移,这样会对用户使用过程带来不便。由于目前的数据量都已达到pb级,将整个数据库的用户数据一起进行迁移时的效率偏低。
可见,如何在大规模集群下高效的迁移数据,是本领域技术人员需要解决的问题。
技术实现要素:
本发明实施例的目的是提供一种大规模集群的数据迁移方法、装置和计算机可读存储介质,可以在大规模集群下高效的迁移数据。
为解决上述技术问题,本发明实施例提供一种大规模集群的数据迁移方法,包括:
按照设定的部署计划构建新集群;
关闭所述原集群上所述元数据对应的对外服务,并将原集群上的元数据迁移至所述新集群;
重启所述原集群和所述新集群,依据所述部署计划中包含的迁移数量,将所述原集群上的数据节点依次迁移至所述新集群。
可选地,所述按照设定的部署计划构建新集群包括:
在当前时间达到设定的时间值或所述原集群的数据量大于或等于预设数据量时,在与原集群相同的网段下构建新集群。
可选地,所述依据所述部署计划中包含的迁移数量,将所述原集群上的数据节点依次迁移至所述新集群包括:
对所述原集群上的数据节点依次设置标号;
按照标号顺序从所述原集群中筛选出与所述迁移数量相等并且处于关闭状态的目标数据节点;
将所述目标数据节点迁移至所述新集群。
可选地,在所述将所述目标数据节点迁移至所述新集群之后还包括:
按照设定的数据校验规则,对各所述目标数据节点进行校验;
当所有所述目标数据节点通过校验时,则执行所述按照标号顺序从所述原集群中筛选出与所述迁移数量相等并且处于关闭状态的目标数据节点的步骤。
可选地,在所述将所述原集群上的数据节点依次迁移至所述新集群之后还包括:
判断所述原集群上是否存在剩余的数据节点;
若所述原集群上不存在剩余的数据节点,则关闭所述原集群;
若所述原集群上存在剩余的数据节点,则将剩余的数据节点迁移至所述新集群,并在完成剩余的数据节点的迁移之后,关闭所述原集群。
本发明实施例还提供了一种大规模集群的数据迁移装置,包括构建单元、关闭单元、第一迁移单元、重启单元和第二迁移单元;
所述构建单元,用于按照设定的部署计划构建新集群;
所述关闭单元,用于关闭所述原集群上所述元数据对应的对外服务;
所述第一迁移单元,用于将原集群上的元数据迁移至所述新集群;
所述重启单元,用于重启所述原集群和所述新集群;
所述第二迁移单元,用于依据所述部署计划中包含的迁移数量,将所述原集群上的数据节点依次迁移至所述新集群。
可选地,所述构建单元用于在当前时间达到设定的时间值或所述原集群的数据量大于或等于预设数据量时,在与原集群相同的网段下构建新集群。
可选地,所述第二迁移单元包括设置子单元、筛选子单元和迁移子单元;
所述设置子单元,用于对所述原集群上的数据节点依次设置标号;
所述筛选子单元,用于按照标号顺序从所述原集群中筛选出与所述迁移数量相等并且处于关闭状态的目标数据节点;
所述迁移子单元,用于将所述目标数据节点迁移至所述新集群。
可选地,还包括校验单元;
所述校验单元,用于按照设定的数据校验规则,对各所述目标数据节点进行校验;当所有所述目标数据节点通过校验时,则触发所述筛选子单元。
可选地,还包括判断单元;
所述判断单元,用于在所述将所述原集群上的数据节点依次迁移至所述新集群之后,判断所述原集群上是否存在剩余的数据节点;
若所述原集群上不存在剩余的数据节点,则触发所述关闭单元关闭所述原集群;
若所述原集群上存在剩余的数据节点,则触发所述第二迁移单元将剩余的数据节点迁移至所述新集群;并在完成剩余的数据节点的迁移之后,触发所述关闭单元关闭所述原集群。
本发明实施例还提供了一种大规模集群的数据迁移装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述任意一项所述大规模集群的数据迁移方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述大规模集群的数据迁移方法的步骤。
由上述技术方案可以看出,按照设定的部署计划构建新集群;关闭原集群上所述元数据对应的对外服务,并将原集群上的元数据迁移至新集群;重启原集群和新集群,依据部署计划中包含的迁移数量,将原集群上的数据节点依次迁移至新集群。在该技术方案中,将集群中的数据分为元数据和数据节点两部分,将原集群的元数据的服务关闭并迁移至新集群,重启原集群和新集群,使新集群元数据服务可以在原集群上寻找数据节点,保证服务的正常运行。并且按照迁移数量,少量多次的实现各数据节点的迁移,可以在保证当前服务正常运行的情况下实现数据的快速迁移。整个数据迁移过程,只需要在执行元数据的迁移时关闭服务,在执行数据节点的迁移时,其它数据节点仍可以提供正常服务。与传统方式中将整个数据库的用户数据一起进行迁移的方式相比,该技术方案中将元数据和数据节点分开迁移,可以有效的缩短服务端暂停服务的时间,并且将各数据节点多次批量的迁移,可以提升数据迁移的效率。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种大规模集群的数据迁移方法的流程图;
图2为本发明实施例提供的一种大规模集群的数据迁移装置的结构示意图;
图3为本发明实施例提供的一种大规模集群的数据迁移装置的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种大规模集群的数据迁移方法。图1为本发明实施例提供的一种大规模集群的数据迁移方法的流程图,该方法包括:
s101:按照设定的部署计划构建新集群。
部署计划中可以包含构建新集群的时机,以及集群间执行数据迁移的要求。
在具体实现中,可以在当前时间达到设定的时间值或原集群的数据量大于或等于预设数据量时,在与原集群相同的网段下构建新集群。
时间值和数据量的取值可以根据实际需求设置,在此不做限定。
通过将新集群与原集群设置在同一网段,通过依据底层的可靠机制,可以实现两个集群间数据的自动化迁移,减少人为干预,节省运维成本。
s102:关闭原集群上元数据对应的对外服务,并将原集群上的元数据迁移至新集群。
在本发明实施例中,为了降低数据迁移时服务中断的时间,可以将集群上的数据划分为元数据和数据节点。
在执行元数据的迁移时,需要关闭原集群上元数据对应的对外服务,从而将原集群上的元数据迁移至新集群。
s103:重启原集群和新集群,依据部署计划中包含的迁移数量,将原集群上的数据节点依次迁移至新集群。
完成元数据的迁移后,可以重启原集群和新集群。此时,新集群可以依赖于元数据,在原集群上寻找数据节点,保证服务的正常运行。整个数据迁移过程,只需要在执行元数据的迁移时关闭服务,与传统方式中将整个数据库的用户数据一起进行迁移的方式相比,该技术方案中将元数据和数据节点分开迁移,可以有效的缩短服务端暂停服务的时间。
在执行数据节点的迁移时,其它数据节点仍可以提供正常服务。并且将各数据节点多次批量的迁移,可以提升数据迁移的效率。
在实际应用中,可以对原集群上的数据节点依次设置标号;按照标号顺序从原集群中筛选出与迁移数量相等并且处于关闭状态的目标数据节点;将目标数据节点迁移至新集群。以此类推,直至完成所有数据节点的迁移。
由上述技术方案可以看出,按照设定的部署计划构建新集群;关闭原集群上所述元数据对应的对外服务,并将原集群上的元数据迁移至新集群;重启原集群和新集群,依据部署计划中包含的迁移数量,将原集群上的数据节点依次迁移至新集群。在该技术方案中,将集群中的数据分为元数据和数据节点两部分,将原集群的元数据的服务关闭并迁移至新集群,重启原集群和新集群,使新集群元数据服务可以在原集群上寻找数据节点,保证服务的正常运行。并且按照迁移数量,少量多次的实现各数据节点的迁移,可以在保证当前服务正常运行的情况下实现数据的快速迁移。整个数据迁移过程,只需要在执行元数据的迁移时关闭服务,在执行数据节点的迁移时,其它数据节点仍可以提供正常服务。与传统方式中将整个数据库的用户数据一起进行迁移的方式相比,该技术方案中将元数据和数据节点分开迁移,可以有效的缩短服务端暂停服务的时间,并且将各数据节点多次批量的迁移,可以提升数据迁移的效率。
在本发明实施例中,为了保证迁移数据的正确性,可以按照设定的数据校验规则,对各目标数据节点进行校验;当所有目标数据节点通过校验时,则再次按照迁移数量,对剩余的数据节点执行迁移。
数据校验规则可以根据传统的数据校验方式设置,在此不做赘述。
在将原集群上的数据节点依次迁移至新集群之后,可以判断原集群上是否存在剩余的数据节点;若原集群上不存在剩余的数据节点,则说明已经完成了数据的迁移,此时可以关闭原集群。若原集群上存在剩余的数据节点,则将剩余的数据节点迁移至新集群,并在完成剩余的数据节点的迁移之后,关闭原集群。
通过对原集群数据迁移的情况进行检测,可以避免数据节点遗漏的情况发生。并且在完成所有数据的迁移之后,将原集群的服务关闭,可以降低无用集群对系统的资源消耗。
图2为本发明实施例提供的一种大规模集群的数据迁移装置的结构示意图,包括构建单元21、关闭单元22、第一迁移单元23、重启单元24和第二迁移单元25;
构建单元21,用于按照设定的部署计划构建新集群;
关闭单元23,用于关闭原集群上元数据对应的对外服务;
第一迁移单元22,用于将原集群上的元数据迁移至新集群;
重启单元24,用于重启原集群和新集群;
第二迁移单元25,用于依据部署计划中包含的迁移数量,将原集群上的数据节点依次迁移至新集群。
可选地,构建单元用于在当前时间达到设定的时间值或原集群的数据量大于或等于预设数据量时,在与原集群相同的网段下构建新集群。
可选地,第二迁移单元包括设置子单元、筛选子单元和迁移子单元;
设置子单元,用于对原集群上的数据节点依次设置标号;
筛选子单元,用于按照标号顺序从原集群中筛选出与迁移数量相等并且处于关闭状态的目标数据节点;
迁移子单元,用于将目标数据节点迁移至新集群。
可选地,还包括校验单元;
校验单元,用于按照设定的数据校验规则,对各目标数据节点进行校验;当所有目标数据节点通过校验时,则触发筛选子单元。
可选地,还包括判断单元;
判断单元,用于在将原集群上的数据节点依次迁移至新集群之后,判断原集群上是否存在剩余的数据节点;
若原集群上不存在剩余的数据节点,则触发关闭单元关闭原集群;
若原集群上存在剩余的数据节点,则触发第二迁移单元将剩余的数据节点迁移至新集群;并在完成剩余的数据节点的迁移之后,触发关闭单元关闭原集群。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,按照设定的部署计划构建新集群;关闭原集群上所述元数据对应的对外服务,并将原集群上的元数据迁移至新集群;重启原集群和新集群,依据部署计划中包含的迁移数量,将原集群上的数据节点依次迁移至新集群。在该技术方案中,将集群中的数据分为元数据和数据节点两部分,将原集群的元数据的服务关闭并迁移至新集群,重启原集群和新集群,使新集群元数据服务可以在原集群上寻找数据节点,保证服务的正常运行。并且按照迁移数量,少量多次的实现各数据节点的迁移,可以在保证当前服务正常运行的情况下实现数据的快速迁移。整个数据迁移过程,只需要在执行元数据的迁移时关闭服务,在执行数据节点的迁移时,其它数据节点仍可以提供正常服务。与传统方式中将整个数据库的用户数据一起进行迁移的方式相比,该技术方案中将元数据和数据节点分开迁移,可以有效的缩短服务端暂停服务的时间,并且将各数据节点多次批量的迁移,可以提升数据迁移的效率。
图3为本发明实施例提供的一种大规模集群的数据迁移装置30的硬件结构示意图,包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序以实现如权上述任意实施例所述的大规模集群的数据迁移方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项所述的大规模集群的数据迁移方法的步骤。
以上对本发明实施例所提供的一种大规模集群的数据迁移方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。