CN114968092B - 容器平台下基于qcow2技术的存储空间动态供应的方法及应用 - Google Patents

容器平台下基于qcow2技术的存储空间动态供应的方法及应用 Download PDF

Info

Publication number
CN114968092B
CN114968092B CN202210470150.3A CN202210470150A CN114968092B CN 114968092 B CN114968092 B CN 114968092B CN 202210470150 A CN202210470150 A CN 202210470150A CN 114968092 B CN114968092 B CN 114968092B
Authority
CN
China
Prior art keywords
qcow2
node
format file
csi
file
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
CN202210470150.3A
Other languages
English (en)
Other versions
CN114968092A (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.)
Anchao Cloud Software Co
Original Assignee
Anchao Cloud Software 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 Anchao Cloud Software Co Ltd filed Critical Anchao Cloud Software Co Ltd
Priority to CN202210470150.3A priority Critical patent/CN114968092B/zh
Publication of CN114968092A publication Critical patent/CN114968092A/zh
Application granted granted Critical
Publication of CN114968092B publication Critical patent/CN114968092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

本发明公开了一种容器平台下基于QCOW2技术的存储空间动态供应的方法及应用,该方法包括:在所述Kubernetes集群主节点的QCOW2‑CSI Controller组件接收到用户创建空间事件的配置文件时,所述QCOW2‑CSI Controller组件根据各节点的本地可使用空间,选择和所述配置文件中空间大小匹配的节点,并将所述创建空间事件通过kube‑apiserver通知所述节点的QCOW2‑CSI Node组件;所述QCOW2‑CSI Node组件在所述节点创建满足所述空间大小的QCOW2格式文件,将所述节点名称标记在所述配置文件对应的资源对象中,并通知QCOW2‑CSI Controller组件所述事件创建成功;在POD使用所述QCOW2格式文件时,将所述QCOW2格式文件映射为块设备,以供所述POD使用。该方法能够实现应用容器使用QCOW2文件作为存储后端,实现容器平台下QCOW2存储的动态供应,并提高容器平台下本地存储空间的使用率。

Description

容器平台下基于QCOW2技术的存储空间动态供应的方法及 应用
技术领域
本发明是关于云计算技术领域,特别是关于一种容器平台下基于QCOW2技术的存储空间动态供应的方法及应用。
背景技术
随着云计算技术的发展,以Kubernetes为代表的容器平台逐渐成为了行业标准,容器对接的后端存储种类也越来越多。
QCOW2(QCOW是QEMU copy on write的缩写)是虚拟机磁盘镜像的一种存储格式,由于其具有支持稀疏文件、可压缩以及快照等功能,在QEMU虚拟机系统镜像中被广泛的应用。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种容器平台下基于QCOW2技术的存储空间动态供应的方法及应用,解决现有技术中不能使用QCOW2格式的文件作为容器存储的后端的问题。
为实现上述目的,本发明的实施例提供了一种容器平台下基于QCOW2技术的存储空间动态供应的方法。
在本发明的一个或多个实施方式中,所述方法包括:在所述Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,所述QCOW2-CSIController组件根据各节点的本地可使用空间,选择和所述配置文件中空间大小匹配的节点,并将所述创建空间事件通过kube-apiserver通知所述节点的QCOW2-CSI Node组件;所述QCOW2-CSI Node组件在所述节点创建满足所述空间大小的QCOW2格式文件,将所述节点名称标记在所述配置文件对应的资源对象中,并通知QCOW2-CSI Controller组件所述事件创建成功;以及在POD使用所述QCOW2格式文件时,将所述QCOW2格式文件映射为块设备,以供所述POD使用。
在本发明的一个或多个实施方式中,所述在POD使用所述QCOW2格式文件时,将所述QCOW2格式文件映射为块设备,包括:在容器使用所述QCOW2格式文件时,将所述容器调度至所述QCOW2格式文件标记的节点名称对应的节点;以及所述QCOW2-CSI Node组件将所述QCOW2格式文件加载到NBD-Server中,并通过NBD-Client将所述NBD-Server中的QCOW2格式文件映射为所述节点的块设备;以及将所述块设备挂载至容器使用目录,以供所述POD使用。
在本发明的一个或多个实施方式中,所述方法还包括:在所述QCOW2格式文件对应的块设备未被格式化时,将所述块设备格式化为文件系统。
在本发明的一个或多个实施方式中,所述方法还包括:在主节点的QCOW2-CSIController组件接收到用户创建快照事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;所述节点的QCOW2-CSI Node组件在收到所述创建快照事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行快照创建,并将快照创建结果返回至所述QCOW2-CSI Controller组件。
在本发明的一个或多个实施方式中,所述方法还包括:在主节点的QCOW2-CSIController组件接收到用户修改空间使用容量事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;所述节点的QCOW2-CSI Node组件在收到所述修改空间使用容量事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行扩容,并将扩容结果返回至所述QCOW2-CSIController组件。
在本发明的另一个方面当中,提供了一种容器平台下基于QCOW2技术的存储空间动态供应的装置,其包括匹配模块、创建模块和使用模块。
匹配模块,用于在所述Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,所述QCOW2-CSI Controller组件根据各节点的本地可使用空间,选择和所述配置文件中空间大小匹配的节点,并将所述创建空间事件通过kube-apiserver通知所述节点的QCOW2-CSI Node组件。
创建模块,用于所述QCOW2-CSI Node组件在所述节点创建满足所述空间大小的QCOW2格式文件,将所述节点名称标记在所述配置文件对应的资源对象中,并通知QCOW2-CSI Controller组件所述事件创建成功。
使用模块,用于在POD使用所述QCOW2格式文件时,将所述QCOW2格式文件映射为块设备,以供所述POD使用。
在本发明的一个或多个实施方式中,所述使用模块还用于:在容器使用所述QCOW2格式文件时,将所述容器调度至所述QCOW2格式文件标记的节点名称对应的节点;以及所述QCOW2-CSI Node组件将所述QCOW2格式文件加载到NBD-Server中,并通过NBD-Client将所述NBD-Server中的QCOW2格式文件映射为所述节点的块设备;以及将所述块设备挂载至容器使用目录,以供所述POD使用。
在本发明的一个或多个实施方式中,所述使用模块还用于:在所述QCOW2格式文件对应的块设备未被格式化时,将所述块设备格式化为文件系统。
在本发明的一个或多个实施方式中,所述创建模块还用于:在主节点的QCOW2-CSIController组件接收到用户创建快照事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;所述节点的QCOW2-CSI Node组件在收到所述创建快照事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行快照创建,并将快照创建结果返回至所述QCOW2-CSI Controller组件。
在本发明的一个或多个实施方式中,所述创建模块还用于:在主节点的QCOW2-CSIController组件接收到用户修改空间使用容量事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;所述节点的QCOW2-CSI Node组件在收到所述修改空间使用容量事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行扩容,并将扩容结果返回至所述QCOW2-CSIController组件。
在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的容器平台下基于QCOW2技术的存储空间动态供应的方法。
在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的容器平台下基于QCOW2技术的存储空间动态供应的方法的步骤。
与现有技术相比,根据本发明实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法及应用,其能够将QCOW2文件通过NBD方式作为容器存储空间,并通过在Kubernetes集群中部署QCOW2-CSI组件实现应用容器使用QCOW2格式文件作为存储后端,实现了容器平台下QCOW2存储的动态供应,并提高了容器平台下本地存储空间的使用率,还实现了基于QCOW2的存储空间动态分配机器快照与扩容功能。
附图说明
图1是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的流程图;
图2是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的整体结构图;
图3是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的动态供应流程图;
图4是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的部分流程图;
图5是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的快照流程图;
图6是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的快照具体流程图;
图7是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的扩容流程图;
图8是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法的扩容具体流程图;
图9是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的装置的结构图;
图10是根据本发明一实施方式的容器平台下基于QCOW2技术的存储空间动态供应的计算设备的硬件结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
如图1至图4所示,介绍本发明的一个实施例中容器平台下基于QCOW2技术的存储空间动态供应的方法,该方法包括如下步骤。
在步骤S101中,在Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,QCOW2-CSI Controller组件根据各节点的本地可使用空间,选择和配置文件中空间大小匹配的节点,并将创建空间事件通过kube-apiserver通知节点的QCOW2-CSI Node组件。
QCOW2存储动态供应系统由两个组件构成:(1)QCOW2-CSI Controller:部署在Kubernetes集群的主节点上,用于和Kubernetes系统中的kube-apiserver交互;负责处理来自用户的请求并管理用户使用的各个QCOW2存储块的生命周期;将用户命令选择合适节点下发。(2)QCOW2-CSI Node:部署在Kubernetes集群的各节点上,接收来自QCOW2-CSIController的命令,通过qemu-img二进制QCOW2管理工具执行QCOW2文件的增删改查操作。
如图3所示,用户想要使用一定量的QCOW2存储时,只需要创建一个部署文件,该部署文件包含需要使用空间的大小以及指定使用QCOW2-CSI进行创建即可,该配置文件提交后会在Kubernetes集群中生成一个资源对象对应这个配置文件。当用户创建完该部署文件后,QCOW2-CSI Controller会接收到该创建事件,根据各个节点的本地可使用空间,选择和部署文件中空间大小最匹配的节点,并将创建请求通过kube-apiserver通知该节点QCOW2-CSI Node组件。
kube-apiserver是Kubernetes最重要的核心之一,主要功能如下:提供集群管理的rest api接口,包括认证授权、数据校验一级集群状态变更等;提供与其他模块之间的数据交互和通信。
在步骤S102中,QCOW2-CSI Node组件在节点创建满足空间大小的QCOW2格式文件,将节点名称标记在配置文件对应的资源对象中,并通知QCOW2-CSI Controller组件事件创建成功。
由QCOW2-CSI Node组件在节点上创建出用户指定空间大小的QCOW2格式文件,将QCOW2格式文件所在节点名称标记在该配置文件对应的资源对象中,并通知QCOW2-CSIControlle组件存储空间创建成功。这样实现了QCOW2存储空间的动态供应。
由于QCOW2文件是稀疏文件格式,会随着用户数据的存放量动态扩大磁盘空间占用,因此根据本发明实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法及应用可以提高本地磁盘空间的使用率。
在步骤S103中,在POD使用QCOW2格式文件时,将QCOW2格式文件映射为块设备,以供POD使用。
如图4所示,当POD使用该QCOW2存储时,首先kube-scheduler会根据该存储空间的节点标记,调度POD到该节点。然后QCOW2-CSI Node组件将对应的QCOW2格式文件加载到NBD-Server中,通过NBD-Client将该QCOW2格式文件映射为本节点的块设备。如果该QCOW2格式文件对应的块设备未被格式化成文件系统,则对该块设备进行格式化,最后将该块设备挂载给POD使用。
NBD指的是Network Block Device,NBD让用户可以通过网络访问到某个块设备,或者设备镜像。NBD-Server:是Linux网络块设备(NBD)的服务器,用户可以将文件加载到服务器中,通过网络将文件导出作为块设备使用。NBD-Client:可以连接到运行nbd-server的服务器,从而将服务器中的磁盘空间作为本地客户端上的块设备。
实施例2
如图5至图6所示,介绍本发明的一个实施例中容器平台下基于QCOW2技术的存储空间动态供应的方法,该方法包括如下步骤。
在步骤S201中,在Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,QCOW2-CSI Controller组件根据各节点的本地可使用空间,选择和配置文件中空间大小匹配的节点,并将创建空间事件通过kube-apiserver通知节点的QCOW2-CSI Node组件。
QCOW2存储动态供应系统由两个组件构成:(1)QCOW2-CSI Controller:部署在Kubernetes集群的主节点上,用于和Kubernetes系统中的kube-apiserver交互;负责处理来自用户的请求并管理用户使用的各个QCOW2存储块的生命周期;将用户命令选择合适节点下发。(2)QCOW2-CSI Node:部署在Kubernetes集群的各节点上,接收来自QCOW2-CSIController的命令,通过qemu-img二进制QCOW2管理工具执行QCOW2文件的增删改查操作。
用户想要使用一定量的QCOW2存储时,只需要创建一个部署文件,该部署文件包含需要使用空间的大小以及指定使用QCOW2-CSI进行创建即可,该配置文件提交后会在Kubernetes集群中生成一个资源对象对应这个配置文件。当用户创建完该部署文件后,QCOW2-CSI Controller会接收到该创建事件,根据各个节点的本地可使用空间,选择和部署文件中空间大小最匹配的节点,并将创建请求通过kube-apiserver通知该节点QCOW2-CSI Node组件。
kube-apiserver是Kubernetes最重要的核心之一,主要功能如下:提供集群管理的rest api接口,包括认证授权、数据校验一级集群状态变更等;提供与其他模块之间的数据交互和通信。
在步骤S202中,QCOW2-CSI Node组件在节点创建满足空间大小的QCOW2格式文件,将节点名称标记在配置文件对应的资源对象中,并通知QCOW2-CSI Controller组件事件创建成功。
由QCOW2-CSI Node组件在节点上创建出用户指定空间大小的QCOW2格式文件,将QCOW2格式文件所在节点名称标记在该配置文件对应的资源对象中,并通知QCOW2-CSIControlle组件存储空间创建成功。这样实现了QCOW2存储空间的动态供应。
在步骤S203中,在POD使用QCOW2格式文件时,将QCOW2格式文件映射为块设备,以供POD使用。
当POD使用该QCOW2存储时,首先kube-scheduler会根据该存储空间的节点标记,调度POD到该节点。然后QCOW2-CSI Node组件将对应的QCOW2格式文件加载到NBD-Server中,通过NBD-Client将该QCOW2格式文件映射为本节点的块设备。如果该QCOW2格式文件对应的块设备未被格式化成文件系统,则对该块设备进行格式化,最后将该块设备挂载给POD使用。
在步骤S204中,基于qemu-img QCOW2管理工具对逻辑卷进行快照。
如图6所示,在主节点的QCOW2-CSI Controller组件接收到用户创建快照事件的配置文件时触发快照创建流程,其中,创建快照事件的配置文件中包含逻辑卷信息,根据配置文件中的逻辑卷信息在配置文件对应的资源对象中找到逻辑卷所在的节点,该节点的QCOW2-CSI Node组件收到创建快照事件后找到该节点的QCOW2格式文件,使用qemu-img命令执行快照创建操作,并将结果返回给QCOW2-CSI Controller组件,用户可以通过kube-apiserver查询本次快照创建结果。
实施例3
如图7至图8所示,介绍本发明的一个实施例中容器平台下基于QCOW2技术的存储空间动态供应的方法,该方法包括如下步骤。
在步骤S301中,在Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,QCOW2-CSI Controller组件根据各节点的本地可使用空间,选择和配置文件中空间大小匹配的节点,并将创建空间事件通过kube-apiserver通知节点的QCOW2-CSI Node组件。
QCOW2存储动态供应系统由两个组件构成:(1)QCOW2-CSI Controller:部署在Kubernetes集群的主节点上,用于和Kubernetes系统中的kube-apiserver交互;负责处理来自用户的请求并管理用户使用的各个QCOW2存储块的生命周期;将用户命令选择合适节点下发。(2)QCOW2-CSI Node:部署在Kubernetes集群的各节点上,接收来自QCOW2-CSIController的命令,通过qemu-img二进制QCOW2管理工具执行QCOW2文件的增删改查操作。
如图3所示,用户想要使用一定量的QCOW2存储时,只需要创建一个部署文件,该部署文件包含需要使用空间的大小以及指定使用QCOW2-CSI进行创建即可,该配置文件提交后会在Kubernetes集群中生成一个资源对象对应这个配置文件。当用户创建完该部署文件后,QCOW2-CSI Controller会接收到该创建事件,根据各个节点的本地可使用空间,选择和部署文件中空间大小最匹配的节点,并将创建请求通过kube-apiserver通知该节点QCOW2-CSI Node组件。
kube-apiserver是Kubernetes最重要的核心之一,主要功能如下:提供集群管理的rest api接口,包括认证授权、数据校验一级集群状态变更等;提供与其他模块之间的数据交互和通信。
在步骤S302中,QCOW2-CSI Node组件在节点创建满足空间大小的QCOW2格式文件,将节点名称标记在配置文件对应的资源对象中,并通知QCOW2-CSI Controller组件事件创建成功。
由QCOW2-CSI Node组件在节点上创建出用户指定空间大小的QCOW2格式文件,将QCOW2格式文件所在节点名称标记在该配置文件对应的资源对象中,并通知QCOW2-CSIControlle组件存储空间创建成功。这样实现了QCOW2存储空间的动态供应。
在步骤S303中,在POD使用QCOW2格式文件时,将QCOW2格式文件映射为块设备,以供POD使用。
当POD使用该QCOW2存储时,首先kube-scheduler会根据该存储空间的节点标记,调度POD到该节点。然后QCOW2-CSI Node组件将对应的QCOW2格式文件加载到NBD-Server中,通过NBD-Client将该QCOW2格式文件映射为本节点的块设备。如果该QCOW2格式文件对应的块设备未被格式化成文件系统,则对该块设备进行格式化,最后将该块设备挂载给POD使用。
在步骤S304中,基于qemu-img QCOW2管理工具对逻辑卷进行扩容。
如图8所示,在主节点的QCOW2-CSI Controller组件接收到用户修改空间使用容量事件的配置文件时触发扩容流程,其中,配置文件中包含逻辑卷的信息以及逻辑卷扩容后的空间大小,QCOW2-CSI Controller组件根据配置文件中的逻辑卷信息在配置文件对应的资源对象中查询逻辑卷所在的节点,该逻辑卷所在节点的QCOW2-CSI Node组件收到扩容请求后找到该节点的QCOW2格式文件,使用qemu-img命令执行扩容操作,并将结果返回给QCOW2-CSI Controller组件,用户可以通过kube-apiserver查询本次扩容结果。
如图9所示,介绍根据本发明具体实施方式的容器平台下基于QCOW2技术的存储空间动态供应的装置。
在本发明的实施方式中,容器平台下基于QCOW2技术的存储空间动态供应的装置包括匹配模块901、创建模块902和使用模块903。
匹配模块901,用于在Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,QCOW2-CSI Controller组件根据各节点的本地可使用空间,选择和配置文件中空间大小匹配的节点,并将创建空间事件通过kube-apiserver通知节点的QCOW2-CSI Node组件。
创建模块902,用于QCOW2-CSI Node组件在节点创建满足空间大小的QCOW2格式文件,将节点名称标记在配置文件对应的资源对象中,并通知QCOW2-CSI Controller组件事件创建成功。
使用模块903,用于在POD使用QCOW2格式文件时,将QCOW2格式文件映射为块设备,以供POD使用。
使用模块903还用于:在容器使用QCOW2格式文件时,将容器调度至QCOW2格式文件标记的节点名称对应的节点;以及QCOW2-CSI Node组件将QCOW2格式文件加载到NBD-Server中,并通过NBD-Client将NBD-Server中的QCOW2格式文件映射为节点的块设备;以及将块设备挂载至容器使用目录,以供POD使用。
使用模块903还用于:在QCOW2格式文件对应的块设备未被格式化时,将块设备格式化为文件系统。
创建模块902还用于:在主节点的QCOW2-CSI Controller组件接收到用户创建快照事件的配置文件时,根据配置文件中的QCOW2格式文件信息在配置文件对应的资源对象中查询QCOW2格式文件所在的节点;节点的QCOW2-CSI Node组件在收到创建快照事件时,在该节点的QCOW2格式文件中使用qemu-img命令进行快照创建,并将快照创建结果返回至QCOW2-CSI Controller组件。
创建模块902还用于:在主节点的QCOW2-CSI Controller组件接收到用户修改空间使用容量事件的配置文件时,根据配置文件中的QCOW2格式文件信息在配置文件对应的资源对象中查询QCOW2格式文件所在的节点;节点的QCOW2-CSI Node组件在收到修改空间使用容量事件时,在该节点的QCOW2格式文件中使用qemu-img命令进行扩容,并将扩容结果返回至QCOW2-CSI Controller组件。
图10示出了根据本说明书的实施例的用于容器平台下基于QCOW2技术的存储空间动态供应的计算设备100的硬件结构图。如图10所示,计算设备100可以包括至少一个处理器1001、存储器1002(例如非易失性存储器)、内存1003和通信接口1004,并且至少一个处理器1001、存储器1002、内存1003和通信接口1004经由总线1005连接在一起。至少一个处理器1001执行在存储器1002中存储或编码的至少一个计算机可读指令。
应该理解,在存储器1002中存储的计算机可执行指令当执行时使得至少一个处理器1001进行本说明书的各个实施例中以上结合图1-10描述的各种操作和功能。
在本说明书的实施例中,计算设备100可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-10描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据本发明实施方式的容器平台下基于QCOW2技术的存储空间动态供应的方法及应用,其能够将QCOW2文件通过NBD方式作为容器存储空间,并通过在Kubernetes集群中部署QCOW2-CSI组件实现应用容器使用QCOW2格式文件作为存储后端,实现了容器平台下QCOW2存储的动态供应,并提高了容器平台下本地存储空间的使用率,还实现了基于QCOW2的存储空间动态分配机器快照与扩容功能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

Claims (8)

1.一种容器平台下基于QCOW2技术的存储空间动态供应的方法,其特征在于,所述方法包括:
在Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,所述QCOW2-CSI Controller组件根据各节点的本地可使用空间,选择和所述配置文件中空间大小匹配的节点,并将所述创建空间事件通过kube-apiserver通知所述节点的QCOW2-CSI Node组件;
所述QCOW2-CSI Node组件在所述节点创建满足所述空间大小的QCOW2格式文件,将所述节点名称标记在所述配置文件对应的资源对象中,并通知QCOW2-CSI Controller组件所述事件创建成功;以及
在POD使用所述QCOW2格式文件时,将所述QCOW2格式文件映射为块设备,以供所述POD使用;
在主节点的QCOW2-CSI Controller组件接收到用户创建快照事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;
所述节点的QCOW2-CSI Node组件在收到所述创建快照事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行快照创建,并将快照创建结果返回至所述QCOW2-CSIController组件。
2.如权利要求1所述的容器平台下基于QCOW2技术的存储空间动态供应的方法,其特征在于,所述在POD使用所述QCOW2格式文件时,将所述QCOW2格式文件映射为块设备,包括:
在容器使用所述QCOW2格式文件时,将所述容器调度至所述QCOW2格式文件标记的节点名称对应的节点;以及
所述QCOW2-CSINode组件将所述QCOW2格式文件加载到NBD-Server中,并通过NBD-Client将所述NBD-Server中的QCOW2格式文件映射为所述节点的块设备;以及
将所述块设备挂载至容器使用目录,以供所述POD使用。
3.如权利要求2所述的容器平台下基于QCOW2技术的存储空间动态供应的方法,其特征在于,所述方法还包括:
在所述QCOW2格式文件对应的块设备未被格式化时,将所述块设备格式化为文件系统。
4.如权利要求1所述的容器平台下基于QCOW2技术的存储空间动态供应的方法,其特征在于,所述方法还包括:
在主节点的QCOW2-CSI Controller组件接收到用户修改空间使用容量事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;
所述节点的QCOW2-CSI Node组件在收到所述修改空间使用容量事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行扩容,并将扩容结果返回至所述QCOW2-CSIController组件。
5.一种容器平台下基于QCOW2技术的存储空间动态供应的装置,其特征在于,所述装置包括:
匹配模块,用于在Kubernetes集群主节点的QCOW2-CSI Controller组件接收到用户创建空间事件的配置文件时,所述QCOW2-CSI Controller组件根据各节点的本地可使用空间,选择和所述配置文件中空间大小匹配的节点,并将所述创建空间事件通过kube-apiserver通知所述节点的QCOW2-CSINode组件;
创建模块,用于所述QCOW2-CSI Node组件在所述节点创建满足所述空间大小的QCOW2格式文件,将所述节点名称标记在所述配置文件对应的资源对象中,并通知QCOW2-CSIController组件所述事件创建成功;以及
使用模块,用于在POD使用所述QCOW2格式文件时,将所述QCOW2格式文件映射为块设备,以供所述POD使用;
所述创建模块还用于:在主节点的QCOW2-CSI Controller组件接收到用户创建快照事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;所述节点的QCOW2-CSI Node组件在收到所述创建快照事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行快照创建,并将快照创建结果返回至所述QCOW2-CSI Controller组件。
6.如权利要求5所述的容器平台下基于QCOW2技术的存储空间动态供应的装置,其特征在于,所述使用模块还用于:
在容器使用所述QCOW2格式文件时,将所述容器调度至所述QCOW2格式文件标记的节点名称对应的节点;以及
所述QCOW2-CSINode组件将所述QCOW2格式文件加载到NBD-Server中,并通过NBD-Client将所述NBD-Server中的QCOW2格式文件映射为所述节点的块设备;以及
将所述块设备挂载至容器使用目录,以供所述POD使用。
7.如权利要求6所述的容器平台下基于QCOW2技术的存储空间动态供应的装置,其特征在于,所述使用模块还用于:
在所述QCOW2格式文件对应的块设备未被格式化时,将所述块设备格式化为文件系统。
8.如权利要求5所述的容器平台下基于QCOW2技术的存储空间动态供应的装置,其特征在于,所述创建模块还用于:
在主节点的QCOW2-CSI Controller组件接收到用户修改空间使用容量事件的配置文件时,根据所述配置文件中的QCOW2格式文件信息在所述配置文件对应的资源对象中查询所述QCOW2格式文件所在的节点;
所述节点的QCOW2-CSI Node组件在收到所述修改空间使用容量事件时,在所述节点的QCOW2格式文件中使用qemu-img命令进行扩容,并将扩容结果返回至所述QCOW2-CSIController组件。
CN202210470150.3A 2022-04-28 2022-04-28 容器平台下基于qcow2技术的存储空间动态供应的方法及应用 Active CN114968092B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210470150.3A CN114968092B (zh) 2022-04-28 2022-04-28 容器平台下基于qcow2技术的存储空间动态供应的方法及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210470150.3A CN114968092B (zh) 2022-04-28 2022-04-28 容器平台下基于qcow2技术的存储空间动态供应的方法及应用

Publications (2)

Publication Number Publication Date
CN114968092A CN114968092A (zh) 2022-08-30
CN114968092B true CN114968092B (zh) 2023-10-17

Family

ID=82979825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210470150.3A Active CN114968092B (zh) 2022-04-28 2022-04-28 容器平台下基于qcow2技术的存储空间动态供应的方法及应用

Country Status (1)

Country Link
CN (1) CN114968092B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201357A (zh) * 2016-07-18 2016-12-07 浪潮(北京)电子信息产业有限公司 一种存储池的构建方法及系统
CN106446275A (zh) * 2016-10-21 2017-02-22 国云科技股份有限公司 一种支持文件系统扩容的容器实现方法
CN110362384A (zh) * 2019-07-16 2019-10-22 北京奇艺世纪科技有限公司 一种资源分配方法、装置、电子设备及存储介质
WO2020062131A1 (zh) * 2018-09-29 2020-04-02 北京连云决科技有限公司 一种基于区块链技术的容器云管理系统
CN111427666A (zh) * 2020-04-01 2020-07-17 山东汇贸电子口岸有限公司 一种OpenStack环境下虚拟机镜像快速导入方法及系统
CN112000421A (zh) * 2020-07-15 2020-11-27 北京计算机技术及应用研究所 基于超融合架构的管理调度技术
US11029869B1 (en) * 2018-02-05 2021-06-08 Virtuozzo International Gmbh System and method for multiqueued access to cloud storage
CN113438107A (zh) * 2021-06-22 2021-09-24 康键信息技术(深圳)有限公司 集群节点的扩展方法、装置、设备及存储介质
CN114296864A (zh) * 2021-12-08 2022-04-08 中国—东盟信息港股份有限公司 一种iso镜像转换成容器镜像的方法及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10362143B2 (en) * 2016-09-29 2019-07-23 International Business Machines Corporation Dynamically transitioning the file system role of compute nodes for provisioning a storlet
US11586507B2 (en) * 2019-07-12 2023-02-21 Trilio Data, Inc. Scalable cloud-based backup method
US20210149769A1 (en) * 2019-11-17 2021-05-20 Trilio Data, Inc. Container-Based Application Data Protection Method and System

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201357A (zh) * 2016-07-18 2016-12-07 浪潮(北京)电子信息产业有限公司 一种存储池的构建方法及系统
CN106446275A (zh) * 2016-10-21 2017-02-22 国云科技股份有限公司 一种支持文件系统扩容的容器实现方法
US11029869B1 (en) * 2018-02-05 2021-06-08 Virtuozzo International Gmbh System and method for multiqueued access to cloud storage
WO2020062131A1 (zh) * 2018-09-29 2020-04-02 北京连云决科技有限公司 一种基于区块链技术的容器云管理系统
CN110362384A (zh) * 2019-07-16 2019-10-22 北京奇艺世纪科技有限公司 一种资源分配方法、装置、电子设备及存储介质
CN111427666A (zh) * 2020-04-01 2020-07-17 山东汇贸电子口岸有限公司 一种OpenStack环境下虚拟机镜像快速导入方法及系统
CN112000421A (zh) * 2020-07-15 2020-11-27 北京计算机技术及应用研究所 基于超融合架构的管理调度技术
CN113438107A (zh) * 2021-06-22 2021-09-24 康键信息技术(深圳)有限公司 集群节点的扩展方法、装置、设备及存储介质
CN114296864A (zh) * 2021-12-08 2022-04-08 中国—东盟信息港股份有限公司 一种iso镜像转换成容器镜像的方法及设备

Also Published As

Publication number Publication date
CN114968092A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN102938039B (zh) 针对应用的选择性文件访问
CN101650660B (zh) 从中央存储装置引导计算机系统
CN105426223B (zh) 应用加载方法和装置
CN105550345A (zh) 文件操作方法和装置
CN103544153A (zh) 一种基于数据库的数据更新方法和系统
CN103514298A (zh) 一种实现文件锁的方法及元数据服务器
CN113157290B (zh) 一种多系统安装方法、计算设备及存储介质
CN110968554A (zh) 一种基于文件链分块的区块链存储方法、存储系统及存储介质
CN109753379B (zh) 快照数据备份、删除方法、装置及系统
CN111290836A (zh) 虚拟机快照创建方法、装置、存储介质及计算机设备
CN105224418A (zh) 一种数据备份方法和装置
EP3343395A1 (en) Data storage method and apparatus for mobile terminal
CN108228842B (zh) Docker镜像库文件存储方法、终端、设备以及存储介质
CN105677481A (zh) 一种数据处理方法、系统及电子设备
CN114968092B (zh) 容器平台下基于qcow2技术的存储空间动态供应的方法及应用
CN108205559B (zh) 一种数据管理方法及其设备
CN111078407B (zh) 内存管理的方法、装置、存储介质及电子设备
CN110543351B (zh) 数据处理方法以及计算机设备
CN113485713B (zh) 快速编译程序的方法及装置、电子设备和存储介质
CN109343928B (zh) 虚拟化集群中虚拟机的虚拟内存文件重定向方法及其系统
CN110704249A (zh) 一种保证应用一致性的方法、装置及系统
CN110018985B (zh) 快照删除方法、装置及系统
CN105117282A (zh) 一种对输入输出请求进行拆分的方法及装置
CN113918284B (zh) 云主机批量迁移的方法及装置、电子设备和存储介质
CN114816756A (zh) 容器平台下san存储动态供应的方法及应用

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
TA01 Transfer of patent application right

Effective date of registration: 20230719

Address after: Room 1602, No. 6, Financial Third Street, Wuxi Economic Development Zone, Jiangsu Province, 214,000

Applicant after: Anchao Cloud Software Co.

Address before: Room 1601, no.6, financial Third Street, Wuxi Economic Development Zone, Jiangsu Province, 214000

Applicant before: Jiangsu Anchao cloud Software Co.,Ltd.

TA01 Transfer of patent application right
CI02 Correction of invention patent application

Correction item: Applicant

Correct: Anchao cloud Software Co.,Ltd.

False: Anchao Cloud Software Co.

Number: 31-01

Volume: 39

CI02 Correction of invention patent application
GR01 Patent grant
GR01 Patent grant