一种基于云管理平台的虚拟数据中心备份方法及装置
文献发布时间:2023-06-19 09:26:02
技术领域
本申请涉及计算机技术领域,特别涉及一种基于云管理平台的虚拟数据中心备份方法、装置、设备及可读存储介质。
背景技术
目前,在k8s集群中,备份机制大多数是针对虚拟机、物理机的整机备份,或者是针对k8s集群的备份。然而,在实际应用中,用户往往存在一种细粒度的备份需求,如只对自己所属的虚拟数据中心下的部分资源与存储进行备份。
此外,当前容器存储卷的备份多数与依赖于存储服务器厂商提供的备份装置,不同的存储服务器厂商有不同的部分机制且都是在存储服务器端,在云管理平台层面无法统一进行备份。
可见,如何在k8s集群的云管理平台上实现一种细粒度的备份方案,是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种基于云管理平台的虚拟数据中心备份方法、装置、设备及可读存储介质,用以解决目前无法在云管理平台上实现细粒度备份的问题。其具体方案如下:
第一方面,本申请提供了一种基于云管理平台的虚拟数据中心备份方法,包括:
根据备份请求,确定虚拟数据中心中的待备份的容器应用;
从底层k8s集群获取所述容器应用的配置信息,将所述配置信息存储至对象存储服务器;
根据所述配置信息确定所述容器应用对应的存储卷,并获取所述存储卷的挂载路径;根据所述挂载路径,将所述容器应用的存储数据同步至所述对象服务器。
优选的,所述根据备份请求,确定虚拟数据中心中的待备份的容器应用,包括:
根据备份请求,确定目标虚拟数据中心,并确定所述目标虚拟数据中心中的待备份的容器应用。
优选的,所述根据备份请求,确定虚拟数据中心中的待备份的容器应用,包括:
根据备份请求,确定虚拟数据中心中的待备份的容器应用,并确定目标备份时间;
相应的,所述从底层k8s集群获取所述容器应用的配置信息,将所述配置信息存储至对象存储服务器,包括:
在达到所述目标备份时间时,从底层k8s集群获取所述容器应用的配置信息,将所述配置信息存储至对象存储服务器。
优选的,所述从底层k8s集群获取所述容器应用的配置信息,将所述配置信息存储至对象存储服务器,包括:
从底层k8s集群获取所述容器应用的配置信息,根据所述配置信息生成yaml文件;在对象存储服务器创建目标目录,将所述yaml文件存储至所述目标目录下,其中所述目标目录包括以下信息:所述虚拟数据中心的标识信息、时间戳、应用资源类型、文件名称。
优选的,所述根据所述挂载路径,将所述容器应用的存储数据同步至所述对象服务器,包括:
采用同步工具rclone,根据所述挂载路径,将所述容器应用的存储数据同步至所述对象服务器。
优选的,还包括:
根据恢复请求,确定虚拟数据中心中待恢复的容器应用;
从对象存储服务器获取所述容器应用的配置信息,将所述配置信息写入底层k8s集群;
根据所述配置信息确定所述容器应用对应的存储卷,在所述存储卷处于绑定状态时,将所述对象服务器中所述容器应用的存储数据同步至所述存储卷的挂载路径下。
优选的,所述从对象存储服务器获取所述容器应用的配置信息,将所述配置信息写入底层k8s集群,包括:
从对象存储服务器获取所述容器应用的配置信息,得到yaml文件;将所述yaml文件转换为json对象,并将所述json对象写入底层k8s集群。
第二方面,本申请提供了一种基于云管理平台的虚拟数据中心备份装置,包括:
请求解析模块:用于根据备份请求,确定虚拟数据中心中的待备份的容器应用;
配置信息备份模块:用于从底层k8s集群获取所述容器应用的配置信息,将所述配置信息存储至对象存储服务器;
存储数据备份模块:用于根据所述配置信息确定所述容器应用对应的存储卷,并获取所述存储卷的挂载路径;根据所述挂载路径,将所述容器应用的存储数据同步至所述对象服务器。
第三方面,本申请提供了一种基于云管理平台的虚拟数据中心备份设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的基于云管理平台的虚拟数据中心备份方法的步骤。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于云管理平台的虚拟数据中心备份方法的步骤。
本申请所提供的一种基于云管理平台的虚拟数据中心备份方法,包括:根据备份请求,确定虚拟数据中心中的待备份的容器应用;从底层k8s集群获取容器应用的配置信息,将配置信息存储至对象存储服务器;根据配置信息确定容器应用对应的存储卷,并获取存储卷的挂载路径;根据挂载路径,将容器应用的存储数据同步至对象服务器。
可见,该方法提供了一种细粒度的备份机制,能够基于云管理平台对虚拟数据中心中容器应用粒度的资源和存储进行备份,实现针对性的进行备份,满足用户的小粒度备份需求。而且,该备份机制基于云管理平台中容器存储卷在节点上的文件路径进行文件的同步与备份,不依赖于存储厂商的存储卷备份机制,适用于小粒度的存储卷的备份。
此外,本申请还提供了一种基于云管理平台的虚拟数据中心备份装置、设备及可读存储介质,其技术效果与上述方法相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种基于云管理平台的虚拟数据中心备份方法实施例一中备份过程的实现流程图;
图2为本申请所提供的一种基于云管理平台的虚拟数据中心备份方法实施例一中恢复过程的实现流程图;
图3为本申请所提供的一种基于云管理平台的虚拟数据中心备份方法实施例二中备份过程的示意图;
图4为本申请所提供的一种基于云管理平台的虚拟数据中心备份方法实施例二中恢复过程的示意图;
图5为本申请所提供的一种基于云管理平台的虚拟数据中心备份装置实施例的功能框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在k8s集群中,备份机制一般是针对虚拟机整机、物理机整机、整个k8s集群的备份。备份粒度较大,无法满足用户的细粒度备份需求。而且,当前容器存储卷的备份一般依赖于存储服务器厂商提供的备份装置,不同的存储服务器厂商有不同的备份机制且都是在存储服务器端进行备份,在云管理平台层面无法统一进行备份。
针对该问题,本申请提供了一种基于云管理平台的虚拟数据中心备份方法、装置、设备及可读存储介质,能够基于云管理平台对虚拟数据中心中容器应用粒度的资源和存储进行备份,基于=容器存储卷在节点上的文件路径进行文件的同步与备份,不依赖于存储厂商的存储卷备份机制。
下面对本申请提供的一种基于云管理平台的虚拟数据中心备份方法实施例一进行介绍,参见图1,实施例一基于云管理平台实现,包括以下步骤:
S101、根据备份请求,确定虚拟数据中心中的待备份的容器应用;
S102、从底层k8s集群获取容器应用的配置信息,将配置信息存储至对象存储服务器;
S103、根据配置信息确定容器应用对应的存储卷,并获取存储卷的挂载路径;根据挂载路径,将容器应用的存储数据同步至对象服务器。
对容器应用的备份包括两个备份过程:资源备份和存储备份。其中,资源备份主要指对容器应用的配置信息进行备份,存储备份主要指对容器应用的实际存储数据进行备份。
在进行资源备份时,用户在云管理平台上可以直接在虚拟数据中心中选择想要备份的容器应用,也可以先选择目标虚拟数据中心,然后在选定的目标虚拟数据中心中进一步选择想要备份的容器应用,最终生成相应的备份请求并下发。然后,本实施例通过解析备份请求,确定目标虚拟数据中心,并确定目标虚拟数据中心中的待备份的容器应用,在底层k8s集群中获取到该容器应用的配置信息,以yaml格式读取并记录,最终将配置信息存储到云管理平台后端的对象存储服务器中。
其中,对象存储服务器具体可以为Minio(Apache License v2.0下发布的对象存储服务)对象存储服务器。在获取到配置信息后,可以将其压缩为压缩包,然后再存储到对象存储服务器中,以提升效率。除此之外,在成功将配置信息存储到对象存储服务器之后,可以在云管理平台生成对应的备份记录。
作为一种优选的实施方式,用户在云管理平台上下发备份请求的时候还可以进一步指定备份时间,如立即执行或定时执行。在执行目标备份时间时,当且仅当在达到目标备份时间时,才执行资源备份的操作,即从底层k8s集群获取容器应用的配置信息,并存储至对象存储服务器。
在进行存储备份时,由于k8s中使用的存储最后还是会挂载在容器对应的节点的文件夹中,因此,对于存储的备份,本实施例的云管理平台会找到存储卷对应的文件夹,然后将对应的卷内容同步到云管理平台后端的对象存储服务器。作为一种具体的实施方式,可以通过同步工具,例如rclone(一种开源的就有命令行的同步工具,主要面向云存储的数据同步),将容器应用的存储数据同步至对象服务器。
上面描述了备份的过程,实际应用中,备份的主要目的就是用于恢复。下面介绍与上述备份过程相对应的恢复过程,如图2所示,主要包括以下步骤:
S201、根据恢复请求,确定虚拟数据中心中待恢复的容器应用;
S202、从对象存储服务器获取容器应用的配置信息,将配置信息写入底层k8s集群;
S203、根据配置信息确定容器应用对应的存储卷,在存储卷处于绑定状态时,将对象服务器中容器应用的存储数据同步至存储卷的挂载路径下。
与备份过程相对应,容器应用的恢复过程主要包括资源恢复和存储恢复,其中资源恢复是指配置信息的恢复,存储恢复是指实际存储数据的恢复。
在进行资源恢复时,调用对象存储接口获取待恢复的容器应用的配置信息,转换为k8s接口对应的格式数据,调用k8s的接口,在底层k8s集群重新创建对应的资源,并在云管理平台中生成对应的恢复记录。
等资源全部恢复以后,进行存储恢复。定位到容器存储卷新建以后保存的节点位置以及文件夹路径,通过节点位置以及文件夹路径定位到存储卷位置,将对象存储上的存储数据还原并覆盖对应的文件。
综上,本实施例所提供一种基于云管理平台的虚拟数据中心备份方法,应用于基于K8s的云管理平台,在云管理平台中对于资源、数据的备份与恢复是非常必要的功能,而且在业务需求上,客户也要求在云管理平台中有对虚拟数据中心资源的备份功能。针对该需求,本实施例实现了一种针对虚拟数据中心以及虚拟数据中心下容器应用的细粒度的备份方案。可以提升备份效率,有针对性的进行备份。
由于实施例只是对部分资源以及资源下的存储卷的细粒度备份,因此本实施例提供一种通过对挂载路径的备份来实现的存储卷备份机制,该种机制快速、方便、灵活,并且可以在云管理平台统一管理,不依赖于存储服务器厂商。
通过该备份方案,云管理平台用户可以手动或者定时对虚拟数据中心中的容器应用进行备份,并且可以根据备份文件对虚拟数据中心对应容器应用进行快速恢复。
下面开始详细介绍本申请提供的一种基于云管理平台的虚拟数据中心备份方法实施例二,实施例二基于前述实施例一实现,以在实际应用中的具体实现进行展开。
实施例二应用于云管理平台,云管理平台在部署时同时集成了Minio对象存储以及rclone同步工具。
实施例二中备份过程如图3所示,主要包括:
S301、用户在云管理平台中选择要备份的虚拟数据中心,并在选定的虚拟数据中心中选择想要备份的容器应用,包括但不限于以下类型:无状态负载、有状态负载、任务、定时任务、普通配置、加密配置。然后,用户可以进一步选择立即备份或者定时备份,云管理平台记录用户需要备份的容器应用以及备份时间,生成备份任务,并保存在数据库中。
S302、当到达用户设定的备份时间时,云管理平台确定待备份的容器应用,根据虚拟数据中心下的资源分类,对每一个容器应用调用底层对应的k8s接口,获取到当前容器应用的配置信息,并以yaml格式的文件保存在云管理平台中。
S303、云管理平台针对需要备份的虚拟数据中心,在云管理平台后端的对象存储服务器中建立对应的文件目录,文件模板格式具体可以为:虚拟数据中心名称-时间戳/资源类型/对应资源文件。
S304、云管理平台调用对象存储接口,将获取到的yaml格式的配置信息保存到文件存储。
S305、当资源均备份完成后,云管理平台开始进行存储备份。遍历对应虚拟数据中心下的存储卷信息,找到已经挂载的存储卷列表,并找到存储卷挂载的节点信息以及挂载路径。
S306、确定存储卷的挂载路径以后,云管理平台通过rclone工具将挂载路径对应的文件同步到云管理平台后端的对象存储服务器的指定目录下。此处的指定目录不一定为上述新创建的文件目录,只要两个目录之间存在对应关系即可。
S307、当所有的容器应用均备份完成以后,云管理平台会生成对应的一条备份成功的记录,并可以根据用户在云管理平台中设置的邮箱地址等信息进行通知。
实施例二中恢复过程如图4所示,主要包括:
S401、用户在云管理平台中选择想要恢复的容器应用,选择恢复时间,云管理平台生成恢复任务。
S402、在达到用户指定的恢复时间之后,云管理平台确定待恢复的容器应用,调用对象存储接口查询对象存储服务器中对应的文件信息,并调用接口将该文件信息获取到云管理平台中。
S403、云管理平台解析获取到的文件信息,依次读取文件信息并将yaml格式的文件信息转为对应的json对象。
S404、根据第三步中获取到的json对象,解析出底层k8s中对应的资源名称、版本、命名空间等信息,根据这些信息,云管理平台首先校验平台中是否存在该数据,如果没有则直接调用云管理平台中的创建接口进行创建;否则调用云管理平台中的更新接口进行更新。
S405、在全部资源恢复之后,开始进行存储恢复。云管理平台会遍历S403中获取的json对象,查找对应的存储卷信息,当发现所有备份的存储卷状态已经为绑定状态后,则开始对新的存储卷进行恢复。
S406、由于此时已恢复了所有的存储卷,则现在存储卷已经挂载到对应的节点上的docker文件夹下,通过存储卷挂载的节点以及对应的存储卷名称找到对应的文件夹,找到对应的文件夹以及路径后,云管理平台通过rclone命令,将同步目标路径设置为当前节点对应文件夹路径,并将源路径设置为Minio存储上的备份文件,以进行同步。
S407、所有容器应用恢复成功后,生成一条成功的恢复记录,并可以根据用户在云管理平台中设置的邮箱地址等信息进行通知。
可见,本实施例提供的一种基于云管理平台的虚拟数据中心备份方法,在云管理平台中提供了一种基于对象存储的k8s资源与存储的备份与恢复机制,通过该机制,用户可以对云管理平台中容器应用粒度、虚拟数据中心粒度的资源进行快速的备份与恢复。而且,本实施例不依赖于存储厂商的存储卷备份机制,本实施例中存储卷的备份机制是基于云管理平台中容器存储卷在节点上的文件路径进行文件的同步与备份,不需要在存储服务器端进行存储部分,适用于小粒度的存储卷的备份。
下面对本申请实施例提供的一种基于云管理平台的虚拟数据中心备份装置进行介绍,下文描述的一种基于云管理平台的虚拟数据中心备份装置与上文描述的一种基于云管理平台的虚拟数据中心备份方法可相互对应参照。
如图5所示,本实施例的基于云管理平台的虚拟数据中心备份装置,包括:
请求解析模块501:用于根据备份请求,确定虚拟数据中心中的待备份的容器应用;
配置信息备份模块502:用于从底层k8s集群获取容器应用的配置信息,将配置信息存储至对象存储服务器;
存储数据备份模块503:用于根据配置信息确定容器应用对应的存储卷,并获取存储卷的挂载路径;根据挂载路径,将容器应用的存储数据同步至对象服务器。
本实施例的基于云管理平台的虚拟数据中心备份装置用于实现前述的基于云管理平台的虚拟数据中心备份方法,因此该装置中的具体实施方式可见前文中的基于云管理平台的虚拟数据中心备份方法的实施例部分,例如,请求解析模块501、配置信息备份模块502、存储数据备份模块503,分别用于实现上述基于云管理平台的虚拟数据中心备份方法中步骤S101,S102,S103。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的基于云管理平台的虚拟数据中心备份装置用于实现前述的基于云管理平台的虚拟数据中心备份方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种基于云管理平台的虚拟数据中心备份设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行计算机程序,以实现如上文所述的基于云管理平台的虚拟数据中心备份方法的步骤。
最后,本申请提供了一种可读存储介质,可读存储介质用于存储计算机程序,计算机程序被处理器执行时用于实现如上文所述的基于云管理平台的虚拟数据中心备份方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 一种基于云管理平台的虚拟数据中心备份方法及装置
- 一种基于多云管理平台的应用接入方法及装置