CN117389713B - 存储系统应用业务数据迁移方法、装置、设备及介质 - Google Patents

存储系统应用业务数据迁移方法、装置、设备及介质 Download PDF

Info

Publication number
CN117389713B
CN117389713B CN202311706336.5A CN202311706336A CN117389713B CN 117389713 B CN117389713 B CN 117389713B CN 202311706336 A CN202311706336 A CN 202311706336A CN 117389713 B CN117389713 B CN 117389713B
Authority
CN
China
Prior art keywords
target
resource pool
persistent storage
storage volume
source
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
Application number
CN202311706336.5A
Other languages
English (en)
Other versions
CN117389713A (zh
Inventor
王志国
杨勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311706336.5A priority Critical patent/CN117389713B/zh
Publication of CN117389713A publication Critical patent/CN117389713A/zh
Application granted granted Critical
Publication of CN117389713B publication Critical patent/CN117389713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种存储系统应用业务数据迁移方法、装置、设备及介质,涉及计算机技术领域,该方法包括:在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定;将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池。本发明提供的存储系统应用业务数据迁移方法、装置、设备及介质,能以持久化存储卷共享的方式快速高效的完成业务数据的跨资源池迁移,避免源资源池和目标资源池中均存储业务数据的拷贝,能减少数据冗余,节约存储资源,提高了应用业务数据的跨资源池迁移的迁移效率。

Description

存储系统应用业务数据迁移方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种存储系统应用业务数据迁移方法、装置、设备及介质。
背景技术
Kubernetes(通常被简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。随着云原生技术的不断发展,Kubernetes的应用场景越来越广泛。
Kubernetes集群在进行版本升级时,涉及到应用业务数据的迁移。相关技术中,通常基于开源的Velero+Restic方案迁移应用业务数据。基于开源的Velero+Restic方案迁移应用业务数据时,可以利用Restic以卷拷贝的方式将源应用的业务数据拷贝至目标应用的存储卷中,
但是,由于拷贝的速度缓慢,导致应用业务数据的迁移效率较低,需要耗费较长的时间才能完成应用业务数据迁移,用户体验较差。
发明内容
本发明提供一种存储系统应用业务数据迁移方法、装置、设备及介质,用以解决现有技术中应用业务数据的迁移效率较低的缺陷,实现提高应用业务数据的迁移效率。
本发明提供一种存储系统应用业务数据迁移方法,包括:
在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定;
将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池,包括:
调用目标插件绑定持久化存储卷与所述目标应用对应的目标资源池,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述调用目标插件绑定持久化存储卷与所述目标应用对应的目标资源池,包括:
获取所述源资源池中所述源应用对应的持久化存储卷请求,作为原始持久化存储卷请求;
基于所述原始持久化存储卷请求,确定目标持久化存储卷请求;
将所述目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷;
获取所述目标持久化存储卷的配置信息,对所述目标持久化存储卷的配置信息进行数据处理,获得所述目标持久化存储卷的目标配置信息;
调用目标插件基于所述目标持久化存储卷的目标配置信息,在所述目标资源池创建持久化存储卷,调用目标插件基于所述目标持久化存储卷请求的配置信息,在所述目标资源池中创建持久化存储卷请求;
调用目标插件绑定所述目标资源池中基于所述目标持久化存储卷的目标配置信息创建的持久化存储卷和基于所述目标持久化存储卷请求创建的持久化存储卷请求。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述基于所述原始持久化存储卷请求,确定目标持久化存储卷请求,包括:
剔除所述原始持久化存储卷请求中非绑定状态的持久化存储卷请求以及非目标插件创建的持久化存储卷请求,并将所述原始持久化存储卷请求中剩余的持久化存储卷请求确定为目标持久化存储卷请求。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述对所述目标持久化存储卷的配置信息进行数据处理,获得所述目标持久化存储卷的目标配置信息,包括:
清除所述目标持久化存储卷的配置信息中的绑定状态字段和状态信息字段,获得所述目标持久化存储卷的目标配置信息。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述将所述目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷,包括:获取所述目标持久化存储卷请求的配置信息,包括:
获取所述目标持久化存储卷请求的配置信息;
基于所述目标持久化存储卷请求的配置信息,确定所述目标持久化存储卷请求绑定的持久化存储卷,进而将所述目标持久化存储卷请求绑定的持久化存储卷确定为所述目标持久化存储卷。
根据本发明提供的一种存储系统应用业务数据迁移方法,在所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之前,所述方法还包括:
对所述源资源池进行持久化存储卷打快照操作,创建所述源资源池对应的持久化存储卷快照;
在所述将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池之后,所述方法还包括:
在确定所述源资源池中不存在所述源应用的业务数据的情况下,查看所述目标资源池中所述源应用的业务数据是否完整以及是否出现错误;
在所述目标资源池中所述源应用的业务数据不完整和/或出现错误的情况下,基于所述源资源池对应的持久化存储卷快照,对所述源应用的业务数据进行数据回滚操作。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述对所述源资源池进行持久化存储卷打快照操作,创建所述源资源池对应的持久化存储卷快照,包括:
调用目标插件对所述源资源池中的卷进行打快照操作,创建所述源资源池对应的持久化存储卷快照。
根据本发明提供的一种存储系统应用业务数据迁移方法,在所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,在所述关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定之前,所述方法还包括:
判断所述目标应用所在目标集群以及所述源应用所在源集群是否满足预设条件;
在所述源集群和所述目标集群满足所述预设条件的情况下,关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定;
其中,所述预设条件包括:所述目标集群与容器卷相关的功能无异常、所述目标集群中已创建所述源集群对应的命名空间和存储类、所述目标集群中已部署Minio对象存储服务器、所述目标集群与所述源集群之间已建立通信连接、所述目标集群与所述源集群的时间同步以及所述目标集群的计算资源和存储资源满足迁移所述源应用的业务数据所需的计算资源和存储资源;所述源集群和所述目标集群均为Kubernetes集群。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务,包括:
在接收到用户输入的表示触发所述业务数据迁移任务的指令的情况下,触发所述业务数据迁移任务。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务,包括:
在上一次完成所述业务数据迁移任务之后已间隔预设时长的情况下,触发所述业务数据迁移任务。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述获取所述源资源池中所述源应用对应的持久化存储卷请求,作为原始持久化存储卷请求之前,所述方法还包括:
基于所述源资源池的第一配置文件建立与所述源资源池的连接。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述调用目标插件基于所述目标持久化存储卷的目标配置信息,在所述目标资源池创建持久化存储卷,调用目标插件基于所述目标持久化存储卷请求的配置信息,在所述目标资源池中创建持久化存储卷请求之前,所述方法还包括:
基于所述目标资源池的第二配置文件建立与所述目标资源池的连接。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述关闭所述目标应用,包括:
调用目标插件关闭所述目标应用。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述关闭所述源应用以实现持久化存储卷与源资源池的解除绑定,包括:
调用目标插件关闭所述源应用,以实现持久化存储卷与所述源应用对应的源资源池的解绑。
根据本发明提供的一种存储系统应用业务数据迁移方法,所述将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池之后,所述方法还包括:
在确定所述源资源池中不存在所述源应用的业务数据的情况下,启动所述目标应用和所述源应用。
根据本发明提供的一种存储系统应用业务数据迁移方法,还包括:
在触发将所述源应用的元数据由所在的源资源池迁移至所述目标资源池的元数据迁移任务的情况下,将所述源资源池中所述源应用的元数据备份至对象存储器;
将所述对象存储器中所述源应用的元数据下载至所述目标资源池。
本发明还提供一种存储系统应用业务数据迁移装置,包括:
应用业务启停模块,用于在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定;
业务数据迁移模块,用于将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述存储系统应用业务数据迁移方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述存储系统应用业务数据迁移方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述存储系统应用业务数据迁移方法。
本发明提供的存储系统应用业务数据迁移方法、装置、设备及介质,通过在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定之后,将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池,能以持久化存储卷共享的方式快速高效的完成业务数据的跨资源池迁移,避免源资源池和目标资源池中均存储业务数据的拷贝,能减少数据冗余,节约存储资源,提高了应用业务数据的跨资源池迁移的迁移效率,进而减少了应用业务数据的跨资源池迁移所需消耗的时间,缩短应用停机的时长,提升用户体验。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的存储系统应用业务数据迁移方法的流程示意图;
图2是本发明提供的存储系统应用业务数据迁移方法中调用目标插件绑定持久化存储卷与目标应用对应的目标资源池的流程示意图;
图3是本发明提供的存储系统应用业务数据迁移装置的结构示意图之一;
图4是本发明提供的存储系统应用业务数据迁移装置的结构示意图之二;
图5是本发明提供的存储系统应用业务数据迁移装置中各模块间的交互示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本申请的描述中,术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,本申请的描述中,“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,相关技术中基于开源的Velero+Restic方案迁移应用业务数据时,可以利用Restic以卷拷贝的方式将源应用的业务数据拷贝至目标应用的存储卷中。其中,Velero(原名Ark)是一个开源的Kubernetes 备份工具和恢复工具,提供了自动跨Kubernetes集群迁移的功能。Restic 是一个开源的备份工具,可以将数据进行加密并存储到各种后端存储介质中。
但是,目标应用的存储卷需要重新创建,会造成存储资源的浪费;上述拷贝的过程会占用大量的主机网络、CPU等资源,会造成计算资源的浪潮,并且,由于拷贝的速度缓慢,导致需要耗费较长的时间才能完成应用业务数据迁移,从而造成应用停机的时长较长,用户体验较差。
对此,本发明提供一种存储系统应用业务数据迁移方法、装置、设备及介质。本发明提供的存储系统应用业务数据迁移方法,通过静态配置卷技术直接改变后端存储到Kubernetes中持久化存储卷的映射方向,以卷共享的方式的快速高效的完成应用业务数据的跨资源池迁移,节省了主机资源成本,提高了迁移效率,提高了用户体验。
图1是本发明提供的存储系统应用业务数据迁移方法的流程示意图。下面结合图1描述本发明的存储系统应用业务数据迁移方法。如图1所示,该方法包括:步骤101、在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定;
需要说明的是,本发明实施例的执行主体为存储系统应用业务数据迁移装置。
具体地,源应用的业务数据为本发明提供的存储系统应用业务数据迁移方法的迁移对象。基于本发明提供的存储系统应用业务数据迁移方法,可以在无需利用Restic进行卷拷贝的情况下,将源应用的业务数据由上述源应用的业务数据所在源资源池,迁移至目标应用对应的目标资源池中。
需要说明的是,本发明实施例中的源应用和目标应用可以根据实际需求确定。本发明实施例中对源应用和目标应用不作具体限定。
可以理解的是,本发明实施例中的应用,可以指应用程序。
需要说明的是,本发明实施例中可以将用于存放迁移后源应用的业务数据的资源池,确定为目标应用对应的目标资源池。可以理解的是,目标资源池亦可以用于存放目标应用的业务数据。
可以理解的是,在需要将源应用的业务数据由所在的源资源池迁移至目标资源池的情况下,可以触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务。
本发明实施例中可以通过多种方式触发源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务,例如:可以基于用户的输入触发上述业务数据迁移任务;或者,还可以基于预设配置规则,触发上述业务数据迁移任务;又或者,可以周期性触发上述业务数据迁移任务。本发明实施例中对触发上述业务数据迁移任务的具体方式不作限定。
作为一个可选地实施例,触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务,包括:在接收到用户输入的表示触发业务数据迁移任务的指令的情况下,触发业务数据迁移任务。
具体地,用户在想要将源应用的业务数据由所在的源资源池迁移至目标资源池的情况下,可以输入表示触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的指令。
在接收用户输入的上述指令情况下,可以触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务。
需要说明的是,本发明实施例中用户可以通过多种方式输入表示触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的指令。例如:用户的输入,可以表现为在目标界面的触控输出,上述触控输出可以包括但不限于点击输入、滑动输入和按压输入等。用户的输入,还可以表现为实体按键输入。用户的第一输入,还可以表现为语音输入。
可以理解的是,上述列举的各个输入均是示例性的列举,即本申请实施例包括但不限于上述列举的各个输入。实际实现时,用户的输入还可以包括其它任意可能的输入,可以根据实际使用需求具体确定,本申请实施例不作限定。
本发明实施例通过基于用户输入的表示触发业务数据迁移任务的指令,触发业务数据迁移任务,能更灵活地满足用户的业务数据迁移需求,能提高用户感知。
作为一个可选地实施例,触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务,包括:在上一次完成业务数据迁移任务之后已间隔预设时长的情况下,触发业务数据迁移任务。
具体地,本发明实施例中可以每隔预设时长,就将源应用的业务数据由所在的源资源池向目标应用对应的目标资源池迁移一次。
本发明实施例可以将上一次完成将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的时刻作为起始时刻,在当前时刻与上述起始时刻之间间隔预设时长的情况下,可以再次触发上述业务数据迁移任务。
需要说明的是,本发明实施例中的预设时长可以是基于先验知识和/或实际情况确定的。本发明实施例中对预设时长的具体取值不作限定。
本发明实施例通过将源应用的业务数据由所在的源资源池周期性地迁移至目标应用对应的目标资源池,能提高业务数据迁移的效率和自动化水平,能提高用户感知。
在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭源应用和目标应用,避免在将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的过程中,源应用和/或目标应用产生的业务数据丢失。
需要说明的是,关闭源应用之后,源应用会自动释放持久化存储卷,从而实现持久化存储卷与源资源池的解除绑定。
其中,持久化存储卷(Persistent Volume,简称PV)是Kubernetes中用于存储数据的一种抽象概念。持久化存储卷提供了一种独立于Pod的存储解决方案,使得应用程序可以在不同的Pod之间共享和保留数据。
本发明实施例中可以通过控制指令关闭源应用和目标应用,还可以调用插件关闭源应用和目标应用。本发明实施例中对关闭源应用和目标应用的具体方式不作限定。
作为一个可选地实施例,关闭目标应用,包括:调用目标插件关闭目标应用。
具体地,本发明实施例中的目标插件是一种存储管理接口,可以将存储系统与容器编排系统解耦,使不同的存储系统能够通过标准化的接口与容器编排系统进行交互。
可选地,本发明实施例中的目标插件为CSI存储插件。
需要说明的是,CSI(Container Storage Interface)存储插件是Kubernetes中实现存储解决方案的标准接口。CSI存储插件定义了一种插件式架构,基于CSI存储插件可以更加灵活地提供存储解决方案,并支持多种不同的存储场景和应用需求。
CSI存储插件可以用于提供存储卷支持:CSI存储插件允许容器编排系统通过统一的接口向存储系统请求创建、删除、挂载和卸载存储卷;
CSI存储插件还可以用于支持不同存储后端:CSI标准定义了一组接口,可以被不同类型的存储系统实现,因此可以支持各种不同的存储后端,如NFS、GlusterFS、Ceph等。
CSI存储插件还可以用于解耦存储系统和编排系统:CSI存储插件的引入使得存储系统和容器编排系统之间的耦合度降低,使得存储系统的选择更加灵活多样,同时也简化了编排系统的开发和维护工作。
在使用CSI存储插件时,用户可以通过容器编排系统的API(如Kubernetes的PersistentVolumeClaim)向存储系统请求存储资源,而无需关心底层存储系统的细节。同时,存储管理员可以根据需要选择适合自己环境的存储后端,并实现符合CSI标准的存储插件,以便与容器编排系统无缝集成。
本发明实施例中可以调用CSI存储插件关闭目标应用。
作为一个可选地实施例,关闭源应用以实现持久化存储卷与源资源池的解除绑定,包括:调用目标插件关闭源应用,以实现持久化存储卷与源应用对应的源资源池的解绑。
需要说明的是,持久化存储卷通常由管理员进行创建和配置,持久化存储卷和具体的底层的共享存储技术的实现方式有关,比如Ceph、GlusterFS、NFS等,都是通过插件机制完成与共享存储的对接。
本发明实施例通过调用CSI存储插件关闭源应用之后,源应用会自动释放持久化存储卷,从而实现持久化存储卷与源资源池的解除绑定。
步骤102、将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池。
具体地,关闭源应用和目标应用之后,本发明实施例中可以通过多种方式绑定持久化存储卷与目标应用对应的目标资源池。例如,可以通过控制指令绑定持久化存储卷与目标应用对应的目标资源池;或者,还可以调用CSI存储插件绑定持久化存储卷与目标应用对应的目标资源池。
绑定持久化存储卷与目标资源池可以直接改变目标资源池到Kubernetes中持久化存储卷的映射方向,持久化存储卷与目标资源池绑定之后,源应用的业务数据将由源资源池自动迁移至目标资源池,从而可以以持久化存储卷共享的方式快速高效的完成源应用的业务数据的跨资源池迁移。
需要说明的是,本发明实施例中持久化存储卷的volumehandle字段,可以唯一标识持久化存储卷与目标资源池之间的绑定关系。其中,volumehandle是唯一标识卷的字符串值。volumehandle字段值必须与CSI驱动在CreateVolumeResponse的volume_id字段中返回的值相对应;接口定义在CSI规范中。在所有对CSI卷驱动程序的调用中,引用该CSI卷时都使用此值作为volume_id参数。
需要说明的是,本发明实施例中源资源池中卷的volumehandle字段与目标资源池中卷的volumehandle字段一致。
需要说明的是,源资源池的storageclass参数与目标资源池的storageclass参数相同。其中,storageclass是一个存储类,在Kubernetes中,StorageClass(存储类)是一种资源对象,用于定义持久化存储的属性和行为,通过创建storageclass可以动态生成一个持久化存储卷。storageclass参数可以包括调用CSI存储插件绑定持久化存储卷与目标资源池时的输入参数。
本发明实施例通过在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定之后,将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池,能以持久化存储卷共享的方式快速高效的完成业务数据的跨资源池迁移,避免源资源池和目标资源池中均存储业务数据的拷贝,能减少数据冗余,节约存储资源,提高了应用业务数据的跨资源池迁移的迁移效率,进而减少了应用业务数据的跨资源池迁移所需消耗的时间,缩短应用停机的时长,提升用户体验。
作为一个可选地实施例,将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池,包括:调用目标插件绑定持久化存储卷与目标应用对应的目标资源池,以实现源应用的业务数据由源资源池迁移至目标资源池。
具体地,本发明实施例中调用CSI存储插件绑定持久化存储卷与目标应用对应的目标资源池,以实现源资源池与目标资源池的持久化存储卷共享。
作为一个可选地实施例,调用目标插件绑定持久化存储卷与目标应用对应的目标资源池,包括:获取源资源池中源应用对应的持久化存储卷请求,作为原始持久化存储卷请求;
图2是本发明提供的存储系统应用业务数据迁移方法中调用CSI存储插件绑定持久化存储卷与目标应用对应的目标资源池的流程示意图。如图2所示,本发明实施例中可以通过执行相关命令或调用API等方式,获取源资源池中源应用对应的持久化存储卷请求,作为原始持久化存储请求。
其中,持久化存储卷请求(PersistentVolumeClaim,简称PVC)是在Kubernetes中定义和请求持久化存储资源的对象。持久化存储卷请求是用户存储的请求,PVC允许用户声明Pod需要多大的存储容量、存储类别以及访问模式等属性。在需要在Pod中使用持久化存储的情况下,可以创建一个PVC并指定所需的存储容量。Kubernetes会根据PVC的要求去匹配合适的PV,并将其绑定到该PVC上。若没有符合要求的PV可用,PVC将保持未绑定状态,直到有合适的PV可用为止。通过PVC,Pod可以引用该PVC并使用相应的PV。
可以理解的是,源资源池中源应用对应的持久化存储卷请求的数量可以为一个或多个,即原始持久化存储卷请求的数量可以为一个或多个。
作为一个可选地实施例,获取源资源池中源应用对应的持久化存储卷请求,作为原始持久化存储卷请求之前,所述方法还包括:基于源资源池的第一配置文件建立与源资源池的连接。
具体地,本发明实施例中的第一配置文件可以用于认证和配置Kubernetes集群访问权限的文件。第一配置文件中包含了与集群通信所需的认证凭据、API服务器的地址等信息。
可选地,第一配置文件可以是kubeconfig文件。
本发明实施例中可以在获取源资源池中源应用对应的持久化存储卷请求的原始配置信息之前,基于源资源池的kubeconfig文件建立与源资源池的连接。
基于原始持久化存储卷请求,确定目标持久化存储卷请求;
具体地,获得原始持久化存储卷请求之后,可以通过数据筛选、条件判断等方式,在上述原始持久化存储卷请求中确定目标持久化存储卷请求。
可以理解的是,目标持久化存储卷请求的数量可以为一个或多个。
作为一个可选地实施例,基于原始持久化存储卷请求,确定目标持久化存储卷请求,包括:剔除原始持久化存储卷请求中非绑定状态的持久化存储卷请求以及非目标插件创建的持久化存储卷请求,并将原始持久化存储卷请求中剩余的持久化存储卷请求确定为目标持久化存储卷请求。
具体地,获取原始持久化存储卷请求之后,可以剔除上述原始持久化存储卷请求中非绑定(bound)状态的持久化存储卷请求以及非CSI存储插件创建的持久化存储卷请求,并将上述原始持久化存储卷请求中剩余的持久化存储请求,确定为目标持久化存储卷请求。
需要说明的是,在Kubernetes中,持久化存储卷请求的状态包括:Bound(已绑定)、Pending(等待中)、Lost(丢失)和Released(已释放)。在持久化存储卷请求的状态为已绑定的情况下,表示持久化存储卷请求已成功与一个持久化存储卷进行了绑定,可以供应用使用。相应地,目标持久化存储卷请求为已成功绑定持久化存储卷的持久化存储卷请求。
需要说明的是,由于本申请中调用CSI存储插件对持久化存储卷与目标资源池进行绑定,因此,需要将剔除上述原始持久化存储卷请求中非CSI存储插件创建的持久化存储卷请求。相应地,目标持久化存储卷请求为CSI存储插件创建的持久化存储卷请求。
将目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷;
具体地,获得目标持久化存储卷请求之后,可以基于持目标持久化存储卷请求,通过执行相关命令或调用API等方式,获得目标持久卷存储卷请求绑定的持久化存储,作为目标持久化存储卷。
作为一个可选地实施例,将目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷,包括:获取目标持久化存储卷请求的配置信息;
具体地,获取标持久化存储卷请求之后,可以通过执行相关命令或调用API等方式,获取目标持久化存储卷请求的配置信息。
其中,持久化存储卷请求的配置信息中可以包括:名称(Name)字段、访问模式(Access Modes)字段、存储容量(Storage Capacity)字段、存储类别(Storage Class)字段以及选择器(Selector)字段等;
名称字段用于在Kubernetes中唯一标识持久化存储卷请求;
访问模式字段用于定义持久化存储卷请求的访问模式,包括ReadWriteOnce(单节点只读/写)、ReadOnlyMany(多节点只读)和ReadWriteMany(多节点读/写);
存储容量字段用于定义持久化存储卷请求所需的存储容量大小;存储类别定义了持久化存储资源所属的存储类别,用于支持动态分配和管理存储资源;
选择器字段用于定义持久化存储卷请求绑定的持久化存储卷。
基于目标持久化存储卷请求的配置信息,确定目标持久化存储卷请求绑定的持久化存储卷,进而将目标持久化存储卷请求绑定的持久化存储卷确定为目标持久化存储卷。
具体地,获取目标配置持久化存储卷请求的配置信息之后,可以基于目标配置持久化存储卷请求的配置信息,确定目标配置持久化存储卷请求绑定的持久化存储卷,进而可以将目标配置持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷。
获取目标持久化存储卷的配置信息,对目标持久化存储卷的配置信息进行数据处理,获得目标持久化存储卷的目标配置信息;
具体地,确定目标持久化存储卷之后,可以通过执行相关命令或调用API等方式,获取目标持久化存储卷的配置信息。
其中,持久化存储卷的配置信息可以包括:名称(Name)字段、绑定状态(claimRef)字段和状态(status)字段;
持久化存储卷的名称字段,用于在Kubernetes中唯一标识持久化存储卷;
绑定状态字段用于指示与持久化存储卷绑定的持久化存储卷请求的信息,例如上述持久化存储卷请求所属的命名空间(Namespace)和名称(Name);
状态信息字段用于指示持久化存储卷的当前状态。状态信息字段通常由Kubernetes自动维护,用于记录持久化存储卷的使用情况和状况,持久化存储卷的状态通常包括Pending、Available、Bound Released以及Failed。
获取目标持久化存储卷的配置信息之后,可以基于获取目标持久化存储卷的配置信息,通过数据筛选、条件判断等方式对获取目标持久化存储卷的配置信息进行数据处理,并将数据处理后得到的配置信息确定为持久化存储卷的目标配置信息。
作为一个可选地实施例,对目标持久化存储卷的配置信息进行数据处理,获得目标持久化存储卷的目标配置信息,包括:清除目标持久化存储卷的配置信息中的绑定状态字段和状态信息字段,获得目标持久化存储卷的目标配置信息。
具体地,获取目标持久化存储卷的配置信息之后,可以清除目标持久化存储卷的配置信息中的绑定状态(claimRef)字段和状态(status)字段,并将清除绑定状态(claimRef)字段和状态(status)字段后的目标持久化存储卷的配置信息,确定为目标持久化存储卷的目标配置信息。
调用目标插件基于目标持久化存储卷的目标配置信息,在目标资源池创建持久化存储卷,调用目标插件基于目标持久化存储卷请求的配置信息,在目标资源池中创建持久化存储卷请求;
具体地,获得目标持久化存储卷的目标配置信息之后,可以调用CSI存储插件基于目标持久化存储卷的目标配置信息,在目标资源池中创建持久化存储卷,还可以调用CSI存储插件基于目标持久化存储卷请求的配置信息,在目标资源池中创建持久化存储卷请求。
作为一个可选地实施例,调用目标插件基于目标持久化存储卷的目标配置信息,在目标资源池创建持久化存储卷,调用目标插件基于目标持久化存储卷请求的配置信息,在目标资源池中创建持久化存储卷请求之前,所述方法还包括:基于目标资源池的第二配置文件建立与目标资源池的连接。
具体地,本发明实施例中的第二配置文件可以用于认证和配置Kubernetes集群访问权限的文件。第一配置文件中包含了与集群通信所需的认证凭据、API服务器的地址等信息。
可选地,第二配置文件可以是kubeconfig文件。
调用目标插件绑定目标资源池中基于目标持久化存储卷的目标配置信息创建的持久化存储卷和基于目标持久化存储卷请求创建的持久化存储卷请求。
具体地,基于目标持久化存储卷的目标配置信息和目标持久化存储卷请求的配置信息在目标资源池创建持久化存储卷和持久化存储卷请求之后,可以调用CSI存储插件绑定目标资源池中基于目标持久化存储卷的目标配置信息创建的持久化存储卷和基于目标持久化存储卷请求创建的持久化存储卷请求,从而实现持久化存储卷与目标资源池的绑定。
本发明实施例通过调用CSI存储插件绑定持久化存储卷与目标资源池,能更高效、更准确地实现持久化存储卷与目标资源池的绑定,能进一步提高应用业务数据的跨资源池迁移的迁移效率。
作为一个可选地实施例,在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之前,所述方法还包括:对源资源池进行持久化存储卷打快照操作,创建源资源池对应的持久化存储卷快照;
具体地,本发明实施例中为了防止出现源应用的业务数据丢失,在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之前,先对源资源池进行持久化存储卷打快照操作,创建源资源池对应的持久化存储卷快照。
作为一个可选地实施例,对源资源池进行持久化存储卷打快照操作,创建源资源池对应的持久化存储卷快照,包括:调用目标插件对源资源池中的卷进行打快照操作,创建源资源池对应的持久化存储卷快照。
将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池之后,所述方法还包括:在确定源资源池中不存在源应用的业务数据的情况下,查看目标资源池中源应用的业务数据是否完整以及是否出现错误;
具体地,将持久化存储卷与目标应用对应的目标资源池进行绑定之后,可以监控源资源池中是否还存在源应用的业务数据。
在确定源资源池中不存在源应用的业务数据的情况下,可以查看目标资源池中源应用的业务数据是否完整以及是否出现错误。
在目标资源池中源应用的业务数据不完整和/或出现错误的情况下,基于源资源池对应的持久化存储卷快照,对源应用的业务数据进行数据回滚操作。
具体地,若目标资源池中源应用的业务数据完整且未出现错误,则可以确定源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务执行成功;
若目标资源池中源应用的业务数据不完整或出现错误,则可以确定源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务执行不成功,源应用的业务数据在数据迁移出现数据丢失和/或迁移错误,可以基于预先创建的源资源池对应的持久化存储卷快照,对源应用的业务数据进行数据回滚操作,从而可以在源资源池中恢复源应用的业务数据。
作为一个可选地实施例,将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池之后,所述方法还包括:在确定源资源池中不存在源应用的业务数据的情况下,启动目标应用和源应用。
本发明实施例通过在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之前,方法还包括:对源资源池进行持久化存储卷打快照操作,创建源资源池对应的持久化存储卷快照,在确定源资源池中不存在源应用的业务数据但目标资源池中源应用的业务数据不完整和/或出现错误的情况下,基于源资源池对应的持久化存储卷快照,对源应用的业务数据进行数据回滚操作,能在将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务执行失败的情况下,避免出现源应用的业务数据丢失,能提高应用业务数据迁移的安全性,能提高用户感知。
作为一个可选地实施例,在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,在关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定之前,方法还包括:判断目标应用所在目标集群以及源应用所在源集群是否满足预设条件;
其中,预设条件包括:目标集群与容器卷相关的功能无异常、目标集群中已创建源集群对应的命名空间和存储类、目标集群中已部署Minio对象存储服务器、目标集群与源集群之间已建立通信连接、目标集群与源集群的时间同步以及目标集群的计算资源和存储资源满足迁移源应用的业务数据所需的计算资源和存储资源;源集群和目标集群均为Kubernetes集群。
需要说明的是,MinIO是一款开源的对象存储服务器,MinIO可以兼容Amazon S3接口,并提供高性能、可扩展和持久化的存储解决方案。
MinIO是一个非常轻量级的对象存储服务器,可以以容器或二进制文件形式运行在各种环境中,包括本地机器、云环境和Kubernetes集群等。MinIO采用分布式架构,可以水平扩展存储容量和吞吐量,并具有数据冗余和故障恢复机制,保证了数据的高可用性和持久性。
具体地,在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,可以判断目标集群中是否将MinIO对象存储服务器部署于某一节点上。
在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,还可以判断目标集群是否配置好xsky v4版本,并验证目标集群与容器卷相关的功能是否出现异常。其中,目标集群与容器卷相关的功能包括持久化存储卷和持久化存储卷请求、存储类(Storage Class)、动态卷供应(DynamicProvisioning)、Volume插件、数据卷(EmptyDir)、以及存储卷插件(FlexVolume)。
在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,还可以判断目标集群与源集群之间是否已建立通信连接、目标集群与源集群的是否时间同步以及目标集群的计算资源和存储资源是否满足迁移源应用的业务数据所需的计算资源和存储资源。
需要说明的是,在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,还可以排查源集群对应的应用是否与目标集群中的节点之间存在绑定关系,若确定源集群对应的应用与目标集群中的节点之间存在绑定关系,可以在上述节点打上用于表示与源集群对应的应用之间绑定关系的标签。
在源集群和目标集群满足预设条件的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定;
具体地,在目标集群和源集群满足目标集群与容器卷相关的功能无异常、目标集群中已创建源集群对应的命名空间和存储类、目标集群中已部署Minio对象存储服务器、目标集群与源集群之间已建立通信连接、目标集群与源集群的时间同步以及目标集群的计算资源和存储资源满足迁移源应用的业务数据所需的计算资源和存储资源的情况下,可以确定目标集群和源集群满足预设条件,进而可以关闭源应用以实现持久化存储卷与源应用对应的源资源池的解绑。
本发明实施例通过在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,在目标应用所在目标集群以及源应用所在源集群是否满足预设条件的情况下,再关闭目标应用,以及关闭源应用以实现持久化存储卷与源应用对应的源资源池的解绑,能够提高应用业务数据的跨资源池迁移的迁移成功率。
作为一个可选地实施例,还包括:在触发将源应用的元数据由所在的源资源池迁移至目标资源池的元数据迁移任务的情况下,将源资源池中源应用的元数据备份至对象存储器;
将对象存储器中源应用的元数据下载至目标资源池。
具体地,本发明实施例中可以基于开源的Velero+Restic方案迁移源应用的元数据。基于开源的Velero+Restic方案迁移源应用的元数据时,可以利用Restic以卷拷贝的方式将源应用的元数据拷贝至目标资源池中。
图3是本发明提供的存储系统应用业务数据迁移装置的结构示意图之一。下面结合图3对本发明提供的存储系统应用业务数据迁移装置进行描述,下文描述的存储系统应用业务数据迁移装置与上文描述的本发明提供的存储系统应用业务数据迁移方法可相互对应参照。如图3所示,应用业务启停模块301和业务数据迁移模块302。
应用业务启停模块301,用于在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定;
业务数据迁移模块302,用于将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池。
具体地,应用业务启停模块301和业务数据迁移模块302电连接。
可选地,业务数据迁移模块302具体用于调用CSI存储插件绑定持久化存储卷与目标应用对应的目标资源池,以实现源应用的业务数据由源资源池迁移至目标资源池。
进一步地,业务数据迁移模块302具体用于获取源资源池中源应用对应的持久化存储卷请求,作为原始持久化存储卷请求;基于原始持久化存储卷请求,确定目标持久化存储卷请求;将目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷;获取目标持久化存储卷的配置信息,对目标持久化存储卷的配置信息进行数据处理,获得目标持久化存储卷的目标配置信息;调用CSI存储插件基于目标持久化存储卷的目标配置信息,在目标资源池创建持久化存储卷,调用CSI存储插件基于目标持久化存储卷请求的配置信息,在目标资源池中创建持久化存储卷请求;调用CSI存储插件绑定目标资源池中基于目标持久化存储卷的目标配置信息创建的持久化存储卷和基于目标持久化存储卷请求创建的持久化存储卷请求。
业务数据迁移模块302还具体用于剔除原始持久化存储卷请求中非绑定状态的持久化存储卷请求以及非CSI存储插件创建的持久化存储卷请求,并将原始持久化存储卷请求中剩余的持久化存储卷请求确定为目标持久化存储卷请求。
业务数据迁移模块302还具体用于清除目标持久化存储卷的配置信息中的绑定状态字段和状态信息字段,获得目标持久化存储卷的目标配置信息。
业务数据迁移模块302还具体用于获取目标持久化存储卷请求的配置信息;基于目标持久化存储卷请求的配置信息,确定目标持久化存储卷请求绑定的持久化存储卷,进而将目标持久化存储卷请求绑定的持久化存储卷确定为目标持久化存储卷。
获取源资源池中源应用对应的持久化存储卷请求,作为原始持久化存储卷请求之前,业务数据迁移模块302还具体用于基于源资源池的kubeconfig文件建立与源资源池的连接。
调用CSI存储插件基于持久化存储卷目标配置信息,在目标资源池创建目标持久化存储卷,调用CSI存储插件基于持久化存储卷请求的目标配置信息在目标资源池中创建目标持久化存储卷请求之前,业务数据迁移模块302还具体用于基于目标资源池的kubeconfig文件建立与目标资源池的连接。
图4是本发明提供的存储系统应用业务数据迁移装置的结构示意图之二。如图4所示,存储系统应用业务数据迁移装置还包括:业务数据回滚模块401。
业务数据回滚模块401用于在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之前,对源资源池进行持久化存储卷打快照操作,创建源资源池对应的持久化存储卷快照;业务数据回滚模块401还用于在将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池之后,在确定源资源池中不存在源应用的业务数据的情况下,查看目标资源池中源应用的业务数据是否完整以及是否出现错误;在目标资源池中源应用的业务数据不完整和/或出现错误的情况下,基于源资源池对应的持久化存储卷快照,对源应用的业务数据进行数据回滚操作。
业务数据回滚模块401具体用于调用CSI存储插件对源资源池中的卷进行打快照操作,创建源资源池对应的持久化存储卷快照。
可选地,在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,在关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定之前,业务数据迁移模块302还具体用于判断目标应用所在目标集群以及源应用所在源集群是否满足预设条件;在源集群和目标集群满足预设条件的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源应用对应的源资源池的解绑;其中,预设条件包括:目标集群与容器卷相关的功能无异常、目标集群中已创建源集群对应的命名空间和存储类、目标集群中已部署Minio对象存储服务器、目标集群与源集群之间已建立通信连接、目标集群与源集群的时间同步以及目标集群的计算资源和存储资源满足迁移源应用的业务数据所需的计算资源和存储资源;源集群和目标集群均为Kubernetes集群。
可选地,应用业务启停模块301具体用于在接收到用户输入的表示触发业务数据迁移任务的指令的情况下,触发业务数据迁移任务。
可选地,应用业务启停模块301还具体用于在上一次完成业务数据迁移任务之后已间隔预设时长的情况下,触发业务数据迁移任务。
可选地,应用业务启停模块301还具体用于调用CSI存储插件关闭目标应用。
可选地,应用业务启停模块301还具体用于调用CSI存储插件关闭源应用,以实现持久化存储卷与源应用对应的源资源池的解绑。
可选地,应用业务启停模块301还具体用于在确定源资源池中不存在源应用的业务数据的情况下,启动目标应用和源应用。
如图4所示,存储系统应用业务数据迁移装置还包括:应用元数据迁移模块402。
应用元数据迁移模块402用于在触发将源应用的元数据由所在的源资源池迁移至目标资源池的元数据迁移任务的情况下,将源资源池中源应用的元数据备份至对象存储器;将对象存储器中源应用的元数据下载至目标资源池。
如图4所示,存储系统应用业务数据迁移装置还包括:API接口403以及日志、审计和配置中心404。
API接口403可以用于与其他电子设备进行数据通信。日志、审计和配置中心404可以进行对业务数据迁移过程进行日志记录、审计和参数配置。
图5是本发明提供的存储系统应用业务数据迁移装置中各模块间的交互示意图。存储系统应用业务数据迁移装置中各模块间的交互如图5所示。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行存储系统应用业务数据迁移方法,该方法包括:在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定;将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的存储系统应用业务数据迁移方法,该方法包括:在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定;将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的存储系统应用业务数据迁移方法,该方法包括:在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭目标应用,以及关闭源应用以实现持久化存储卷与源资源池的解除绑定;将持久化存储卷与目标资源池进行绑定,以实现源应用的业务数据由源资源池迁移至目标资源池。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (18)

1.一种存储系统应用业务数据迁移方法,其特征在于,包括:
在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定;
将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池;
所述将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池,包括:
调用目标插件绑定持久化存储卷与所述目标应用对应的目标资源池,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池;
所述调用目标插件绑定持久化存储卷与所述目标应用对应的目标资源池,包括:
获取所述源资源池中所述源应用对应的持久化存储卷请求,作为原始持久化存储卷请求;
基于所述原始持久化存储卷请求,确定目标持久化存储卷请求;
将所述目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷;
获取所述目标持久化存储卷的配置信息,对所述目标持久化存储卷的配置信息进行数据处理,获得所述目标持久化存储卷的目标配置信息;
调用目标插件基于所述目标持久化存储卷的目标配置信息,在所述目标资源池创建持久化存储卷,调用目标插件基于所述目标持久化存储卷请求的配置信息,在所述目标资源池中创建持久化存储卷请求;
调用目标插件绑定所述目标资源池中基于所述目标持久化存储卷的目标配置信息创建的持久化存储卷和基于所述目标持久化存储卷请求创建的持久化存储卷请求。
2.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述基于所述原始持久化存储卷请求,确定目标持久化存储卷请求,包括:
剔除所述原始持久化存储卷请求中非绑定状态的持久化存储卷请求以及非目标插件创建的持久化存储卷请求,并将所述原始持久化存储卷请求中剩余的持久化存储卷请求确定为目标持久化存储卷请求。
3.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述对所述目标持久化存储卷的配置信息进行数据处理,获得所述目标持久化存储卷的目标配置信息,包括:
清除所述目标持久化存储卷的配置信息中的绑定状态字段和状态信息字段,获得所述目标持久化存储卷的目标配置信息。
4.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述将所述目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷,包括:
获取所述目标持久化存储卷请求的配置信息;
基于所述目标持久化存储卷请求的配置信息,确定所述目标持久化存储卷请求绑定的持久化存储卷,进而将所述目标持久化存储卷请求绑定的持久化存储卷确定为所述目标持久化存储卷。
5.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,在所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之前,所述方法还包括:
对所述源资源池进行持久化存储卷打快照操作,创建所述源资源池对应的持久化存储卷快照;
在所述将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池之后,所述方法还包括:
在确定所述源资源池中不存在所述源应用的业务数据的情况下,查看所述目标资源池中所述源应用的业务数据是否完整以及是否出现错误;
在所述目标资源池中所述源应用的业务数据不完整和/或出现错误的情况下,基于所述源资源池对应的持久化存储卷快照,对所述源应用的业务数据进行数据回滚操作。
6.根据权利要求5所述的存储系统应用业务数据迁移方法,其特征在于,所述对所述源资源池进行持久化存储卷打快照操作,创建所述源资源池对应的持久化存储卷快照,包括:
调用目标插件对所述源资源池中的卷进行打快照操作,创建所述源资源池对应的持久化存储卷快照。
7.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,在所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务之后,在所述关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定之前,所述方法还包括:
判断所述目标应用所在目标集群以及所述源应用所在源集群是否满足预设条件;
在所述源集群和所述目标集群满足所述预设条件的情况下,关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定;
其中,所述预设条件包括:所述目标集群与容器卷相关的功能无异常、所述目标集群中已创建所述源集群对应的命名空间和存储类、所述目标集群中已部署Minio对象存储服务器、所述目标集群与所述源集群之间已建立通信连接、所述目标集群与所述源集群的时间同步以及所述目标集群的计算资源和存储资源满足迁移所述源应用的业务数据所需的计算资源和存储资源;所述源集群和所述目标集群均为Kubernetes集群。
8.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务,包括:
在接收到用户输入的表示触发所述业务数据迁移任务的指令的情况下,触发所述业务数据迁移任务。
9.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务,包括:
在上一次完成所述业务数据迁移任务之后已间隔预设时长的情况下,触发所述业务数据迁移任务。
10.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述获取所述源资源池中所述源应用对应的持久化存储卷请求,作为原始持久化存储卷请求之前,所述方法还包括:
基于所述源资源池的第一配置文件建立与所述源资源池的连接。
11.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述调用目标插件基于所述目标持久化存储卷的目标配置信息,在所述目标资源池创建持久化存储卷,调用目标插件基于所述目标持久化存储卷请求的配置信息,在所述目标资源池中创建持久化存储卷请求之前,所述方法还包括:
基于所述目标资源池的第二配置文件建立与所述目标资源池的连接。
12.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述关闭所述目标应用,包括:
调用目标插件关闭所述目标应用。
13.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述关闭所述源应用以实现持久化存储卷与源资源池的解除绑定,包括:
调用目标插件关闭所述源应用,以实现持久化存储卷与所述源应用对应的源资源池的解绑。
14.根据权利要求1所述的存储系统应用业务数据迁移方法,其特征在于,所述将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池之后,所述方法还包括:
在确定所述源资源池中不存在所述源应用的业务数据的情况下,启动所述目标应用和所述源应用。
15.根据权利要求1至14任一所述的存储系统应用业务数据迁移方法,其特征在于,还包括:
在触发将所述源应用的元数据由所在的源资源池迁移至所述目标资源池的元数据迁移任务的情况下,将所述源资源池中所述源应用的元数据备份至对象存储器;
将所述对象存储器中所述源应用的元数据下载至所述目标资源池。
16.一种存储系统应用业务数据迁移装置,其特征在于,包括:
应用业务启停模块,用于在触发将源应用的业务数据由所在的源资源池迁移至目标应用对应的目标资源池的业务数据迁移任务的情况下,关闭所述目标应用,以及关闭所述源应用以实现持久化存储卷与源资源池的解除绑定;
业务数据迁移模块,用于将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池;
所述业务数据迁移模块将持久化存储卷与所述目标资源池进行绑定,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池,包括:
调用目标插件绑定持久化存储卷与所述目标应用对应的目标资源池,以实现所述源应用的业务数据由所述源资源池迁移至所述目标资源池;
所述业务数据迁移模块调用目标插件绑定持久化存储卷与所述目标应用对应的目标资源池,包括:
获取所述源资源池中所述源应用对应的持久化存储卷请求,作为原始持久化存储卷请求;
基于所述原始持久化存储卷请求,确定目标持久化存储卷请求;
将所述目标持久化存储卷请求绑定的持久化存储卷,确定为目标持久化存储卷;
获取所述目标持久化存储卷的配置信息,对所述目标持久化存储卷的配置信息进行数据处理,获得所述目标持久化存储卷的目标配置信息;
调用目标插件基于所述目标持久化存储卷的目标配置信息,在所述目标资源池创建持久化存储卷,调用目标插件基于所述目标持久化存储卷请求的配置信息,在所述目标资源池中创建持久化存储卷请求;
调用目标插件绑定所述目标资源池中基于所述目标持久化存储卷的目标配置信息创建的持久化存储卷和基于所述目标持久化存储卷请求创建的持久化存储卷请求。
17.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至15任一项所述存储系统应用业务数据迁移方法。
18.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至15任一项所述存储系统应用业务数据迁移方法。
CN202311706336.5A 2023-12-13 2023-12-13 存储系统应用业务数据迁移方法、装置、设备及介质 Active CN117389713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311706336.5A CN117389713B (zh) 2023-12-13 2023-12-13 存储系统应用业务数据迁移方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311706336.5A CN117389713B (zh) 2023-12-13 2023-12-13 存储系统应用业务数据迁移方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN117389713A CN117389713A (zh) 2024-01-12
CN117389713B true CN117389713B (zh) 2024-02-23

Family

ID=89435999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311706336.5A Active CN117389713B (zh) 2023-12-13 2023-12-13 存储系统应用业务数据迁移方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN117389713B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103765371A (zh) * 2011-08-26 2014-04-30 威睿公司 导出作为存储对象的逻辑卷的数据存储系统
CN107193499A (zh) * 2017-05-26 2017-09-22 郑州云海信息技术有限公司 一种容器数据卷的迁移方法及装置
CN111273872A (zh) * 2020-02-14 2020-06-12 北京百度网讯科技有限公司 一种数据迁移方法、装置、设备和介质
CN111475104A (zh) * 2020-03-08 2020-07-31 苏州浪潮智能科技有限公司 一种存储设备数据在线迁移方法、系统、终端及存储介质
CN114138197A (zh) * 2021-11-28 2022-03-04 北京大道云行科技有限公司 一种在线跨池数据迁移方法及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230115261A1 (en) * 2021-10-12 2023-04-13 Vmware, Inc. Migrating stateful workloads between container clusters with different storage backends

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103765371A (zh) * 2011-08-26 2014-04-30 威睿公司 导出作为存储对象的逻辑卷的数据存储系统
CN107193499A (zh) * 2017-05-26 2017-09-22 郑州云海信息技术有限公司 一种容器数据卷的迁移方法及装置
CN111273872A (zh) * 2020-02-14 2020-06-12 北京百度网讯科技有限公司 一种数据迁移方法、装置、设备和介质
CN111475104A (zh) * 2020-03-08 2020-07-31 苏州浪潮智能科技有限公司 一种存储设备数据在线迁移方法、系统、终端及存储介质
CN114138197A (zh) * 2021-11-28 2022-03-04 北京大道云行科技有限公司 一种在线跨池数据迁移方法及电子设备

Also Published As

Publication number Publication date
CN117389713A (zh) 2024-01-12

Similar Documents

Publication Publication Date Title
US11226847B2 (en) Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US20210149769A1 (en) Container-Based Application Data Protection Method and System
CN107515776B (zh) 业务不间断升级方法、待升级节点和可读存储介质
US10050850B2 (en) Rack awareness data storage in a cluster of host computing devices
KR101970839B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
CN111338854B (zh) 基于Kubernetes集群快速恢复数据的方法及系统
CN112099918A (zh) 容器化环境中的集群的实时迁移
US10659523B1 (en) Isolating compute clusters created for a customer
RU2429529C2 (ru) Динамическое конфигурирование, выделение и развертывание вычислительных систем
US10445186B1 (en) Associating a guest application within a virtual machine to create dependencies in backup/restore policy
US10061665B2 (en) Preserving management services with self-contained metadata through the disaster recovery life cycle
US10372555B1 (en) Reversion operations for data store components
US20140007092A1 (en) Automatic transfer of workload configuration
CN113032085A (zh) 云操作系统的管理方法、装置、服务器、管理系统及介质
WO2012054160A2 (en) High availability of machines during patching
US20190114231A1 (en) Image restore from incremental backup
US20130067454A1 (en) Modular Architecture for Distributed System Management
US10572294B1 (en) Automated application footprint discovery for application migration to containers
US11588698B2 (en) Pod migration across nodes of a cluster
CN106406980B (zh) 一种虚拟机的部署方法和装置
US20080263183A1 (en) Management of Kernel configurations for nodes in a clustered system
CN112035062B (zh) 云计算的本地存储的迁移方法、计算机设备及存储介质
CN117389713B (zh) 存储系统应用业务数据迁移方法、装置、设备及介质
CN115878374B (zh) 针对指派给租户的命名空间备份数据
CN111656331B (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