CN111273871B - 容器平台上动态分配存储资源的方法及装置 - Google Patents

容器平台上动态分配存储资源的方法及装置 Download PDF

Info

Publication number
CN111273871B
CN111273871B CN202010062736.7A CN202010062736A CN111273871B CN 111273871 B CN111273871 B CN 111273871B CN 202010062736 A CN202010062736 A CN 202010062736A CN 111273871 B CN111273871 B CN 111273871B
Authority
CN
China
Prior art keywords
resource
container
request
volume
service
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
CN202010062736.7A
Other languages
English (en)
Other versions
CN111273871A (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.)
Beijing Xingchen Tianhe Technology Co ltd
Original Assignee
Xsky Beijing Data Technology Corp 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 Xsky Beijing Data Technology Corp ltd filed Critical Xsky Beijing Data Technology Corp ltd
Priority to CN202010062736.7A priority Critical patent/CN111273871B/zh
Publication of CN111273871A publication Critical patent/CN111273871A/zh
Application granted granted Critical
Publication of CN111273871B publication Critical patent/CN111273871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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]
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45583Memory management, e.g. access or allocation

Landscapes

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

Abstract

本发明公开了一种容器平台上动态分配存储资源的方法及装置。其中,该方法包括:接收资源分配请求,其中,资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;基于资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,容器存储驱动为分布式部署的块存储驱动。本发明解决了相关技术中无法实现动态分配资源,需要管理员干预,造成容器应用部署效率降低的技术问题。

Description

容器平台上动态分配存储资源的方法及装置
技术领域
本发明涉及资源分配领域,具体而言,涉及一种容器平台上动态分配存储资源的方法及装置。
背景技术
相关技术中,会采用多种方式在容器场景下分配资源卷,部署容器平台应用,但是当前在分配资源卷时存在很大的弊端,例如,对于开源iSCSI CSI Driver,CSI ControllerServer无效,在为容器平台提供块设备时,无法动态供应卷,需要管理员人为干预,对接过程繁琐,第一步,需要管理员在存储端先创建卷;第二步,配置iSCSI服务端,添加块设备;第三步,配置客户端,指定服务端的地址;在以上三步完成后,才能部署容器平台应用,这种部署方式,当容器在当前节点重建时,存在容器与存储失联的风险,不适用于生产。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种容器平台上动态分配存储资源的方法及装置,以至少解决相关技术中无法实现动态分配资源,需要管理员干预,造成容器应用部署效率降低的技术问题。
根据本发明实施例的一个方面,提供了一种容器平台上动态分配存储资源的方法,包括:接收资源分配请求,其中,所述资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;基于所述资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,所述容器存储驱动为分布式部署的块存储驱动。
可选地,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:接收资源扩容请求,其中,所述资源扩容请求用于指示待扩容的基础资源卷的卷标识和新扩容卷大小;基于所述资源扩容请求,为所述基础资源卷挂载上新扩容卷。
可选地,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:接收资源卸载请求,其中,所述资源卸载请求用于指示待卸载的基础资源卷的卷标识;基于所述资源卸载请求,卸载所述基础资源卷。
可选地,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:接收资源克隆请求,其中,所述资源克隆请求用于指示待克隆的目标快照的快照信息,所述目标快照记录在某一时间点之前所完成操作的操作信息和时间信息;基于所述资源克隆请求,为所述目标快照创建相同的新快照;备份所述新快照。
可选地,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:接收版本升级请求,其中,所述版本升级请求用于指示升级历史版本的资源分配模式;获取容器部署文件,其中,所述容器部署文件指示历史版本的容器应用资源分配参数;基于所述容器部署文件,以历史版本的资源分配模式为基础,将镜像版本字段修改为待升级的目标版本字段;执行更新操作,完成版本升级。
可选地,所述方法还包括:将资源卷和快照信息存储在目标数据库中,其中,所述目标数据库为以容器方式部署的数据库。
可选地,所述容器存储驱动将第一套接字和第二套接字分开使用,其中,所述第一套接字为注册时使用的套接字,所述第二套接字为所述容器存储驱动中各模块之间通信时使用的套接字。
可选地,所述容器存储驱动包括:资源认证模块,用于认证所述容器存储驱动的身份;资源服务模块,用于接收资源服务请求,并基于所述资源服务请求向容器下发相应服务指令,其中,所述资源服务请求包括下述至少之一:资源分配请求、资源删除请求、快照创建请求、快照删除请求、资源克隆请求、快照回滚请求;资源处理模块,用于挂载新资源卷或卸载基础资源卷。
可选地,所述资源认证模块和所述资源服务模块之间通过接口服务模块与目标数据库交互。
可选地,所述容器存储驱动中设置并行的容器存储插件和辅助容器,其中,所述辅助容器用于备份资源卷和快照信息。
根据本发明实施例的另一方面,还提供了一种容器平台上动态分配存储资源的装置,包括:接收单元,用于接收资源分配请求,其中,所述资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;分配单元,用于基于所述资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,所述容器存储驱动为分布式部署的块存储驱动。
可选地,所述容器平台上动态分配存储资源的装置还包括:第一接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收资源扩容请求,其中,所述资源扩容请求用于指示待扩容的基础资源卷的卷标识和新扩容卷大小;挂载模块,用于基于所述资源扩容请求,为所述基础资源卷挂载上新扩容卷。
可选地,所述容器平台上动态分配存储资源的装置还包括:第二接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收资源卸载请求,其中,所述资源卸载请求用于指示待卸载的基础资源卷的卷标识;卸载模块,用于基于所述资源卸载请求,卸载所述基础资源卷。
可选地,所述容器平台上动态分配存储资源的装置还包括:第三接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收资源克隆请求,其中,所述资源克隆请求用于指示待克隆的目标快照的快照信息,所述目标快照记录在某一时间点之前所完成操作的操作信息和时间信息;创建模块,用于基于所述资源克隆请求,为所述目标快照创建相同的新快照;备份模块,用于备份所述新快照。
可选地,所述容器平台上动态分配存储资源的装置还包括:第四接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收版本升级请求,其中,所述版本升级请求用于指示升级历史版本的资源分配模式;第一获取模块,用于获取容器部署文件,其中,所述容器部署文件指示历史版本的容器应用资源分配参数;修改模块,用于基于所述容器部署文件,以历史版本的资源分配模式为基础,将镜像版本字段修改为待升级的目标版本字段;升级模块,用于执行更新操作,完成版本升级。
可选地,所述容器平台上动态分配存储资源的装置还用于将资源卷和快照信息存储在目标数据库中,其中,所述目标数据库为以容器方式部署的数据库。
可选地,所述容器存储驱动将第一套接字和第二套接字分开使用,其中,所述第一套接字为注册时使用的套接字,所述第二套接字为所述容器存储驱动中各模块之间通信时使用的套接字。
可选地,所述容器存储驱动包括:资源认证模块,用于认证所述容器存储驱动的身份;资源服务模块,用于接收资源服务请求,并基于所述资源服务请求向容器下发相应服务指令,其中,所述资源服务请求包括下述至少之一:资源分配请求、资源删除请求、快照创建请求、快照删除请求、资源克隆请求、快照回滚请求;资源处理模块,用于挂载新资源卷或卸载基础资源卷。
可选地,所述资源认证模块和所述资源服务模块之间通过接口服务模块与目标数据库交互。
可选地,所述容器存储驱动中设置并行的容器存储插件和辅助容器,其中,所述辅助容器用于备份资源卷和快照信息。
根据本发明实施例的另一方面,还提供了一种虚拟机运行系统,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的容器平台上动态分配存储资源的方法。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的容器平台上动态分配存储资源的方法。
在本发明实施例中,采用接收资源分配请求,其中,资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用,然后基于资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,容器存储驱动为分布式部署的块存储驱动。在该实施例中,可支持资源卷动态分配,减少人为干预,为容器平台提供丰富的特性,提高部署容器应用的效率,从而解决相关技术中无法实现动态分配资源,需要管理员干预,造成容器应用部署效率降低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的容器平台上动态分配存储资源的方法的流程图;
图2是根据本发明实施例的一种可选的容器存储驱动的示意图;
图3是根据本发明实施例的另一种可选的容器平台上动态分配存储资源的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
CSI:Container Storage Interface,容器存储接口(CSI)是一种标准,用于将任意块和文件存储系统暴露给容器编排系统(CO)上的容器化工作负载,例如:Kubernetes(容器云平台)。
XEBS:XSKY Enterprise Block Storage,是XSKY提供的专业的分布式块存储产品。
XEBS CSI Driver:XSKY分布式块存储的容器存储驱动。
CEPH CSI Driver:CEPH容器存储驱动。
iSCSI CSI Driver:开源iSCSI容器存储驱动。
CSI Identify:认证服务,用于检测驱动是否有效。
CSI Controller:供应资源服务,比如:创建卷、快照、回滚、克隆。
CSI Node:挂载/卸载卷服务。
Kubelet:是在每个业务节点上运行的主要“节点代理”。
Node-driver-registrar:驱动注册器,用于向容器平台注册驱动信息。
Hostpath volumes:本地文件或目录,主要用于将本地的文件和目录挂载到容器中。
Host/var/lib/Kubelet:kubelet工作目录,用于通信的套接字socket放在该目录下。
Kube Controller Manager:控制器管理器,监视集群的共享状态,并尝试进行更改以将当前状态转为所需状态。
External-provisioner:外置动态供应控制器,用于监听卷的资源变化。
External-attacher:外置挂载控制器,用于监听卷的挂载和卸载操作。
External-snapshotter:外置快照资源控制器,用于监听快照的资源变化。
External-resizer:外置卷扩容控制器,用于监听卷的容量的大小变化。
Driver Registration:驱动注册器,用于向容器平台注册驱动信息。
Mount propagation:一种挂载方式,允许挂载的卷在同一节点上的不同容器中传播。
Sidecar Container by Kubernetes Team:由(kubernetes)容器团队维护的辅助容器。
API Serveer:接口服务模块。
Etcd:以容器方式部署的数据库。
Master:管理节点,用于调度、各模块运行,并下发对应指令。
Node:业务节点,承载业务需求。
本发明实施例可以应用于容器平台上,可应用于虚拟机中,实现在各种容器应用的资源分配,动态分配存储资源,具体可以通过XEBS CSI Driver(即XSKY分布式块存储的容器存储驱动),支持动态供应,管理员只需定义好配置文件,无需其他操作,就可以给容器应用供应卷,实现容器场景下资源卷的动态分配,即支持动态供应卷,减少人工干预。同时为容器平台提供丰富的新特性,包括:快照、克隆、回滚、卷扩容,同时可以在容器的当前节点重建时,保障容器平台与存储数据库关联,保障数据完整,并且支持版本在线升级,新版本与旧版本兼容,旧版本的资源在新版本中再利用。下面对本发明实施例进行详细说明。
根据本发明实施例,提供了一种动态分配资源方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例主要实现容器场景下各容器应用的动态资源供应。
图1是根据本发明实施例的一种可选的容器平台上动态分配存储资源的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,接收资源分配请求,其中,资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;
通过分配请求来确定各个容器应用需求的资源卷数量和资源卷大小,从而进行资源卷的灵活分配,本发明实施例支持动态分配资源卷,无需管理员干预。
步骤S104,基于资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,容器存储驱动为分布式部署的块存储驱动。
其中,容器存储驱动可以理解为XEBS CSI Driver,通过XEBS CSI Driver的实现方式,支持动态供应,管理员只需定义好配置文件,无需其他操作,就可以给各个容器应用分配资源卷。
通过上述步骤,可以采用接收资源分配请求,其中,资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用,然后基于资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,容器存储驱动为分布式部署的块存储驱动。在该实施例中,可支持资源卷动态分配,减少人为干预,为容器平台提供丰富的特性,提高部署容器应用的效率,从而解决相关技术中无法实现动态分配资源,需要管理员干预,造成容器应用部署效率降低的技术问题。
在本发明实施例涉及到的容器存储驱动为自行设计的容器存储驱动,XEBS CSIDriver。可选的,容器存储驱动包括:资源认证模块,用于认证容器存储驱动的身份;资源服务模块,用于接收资源服务请求,并基于资源服务请求向容器下发相应服务指令,其中,资源服务请求包括下述至少之一:资源分配请求、资源删除请求、快照创建请求、快照删除请求、资源克隆请求、快照回滚请求;资源处理模块,用于挂载新资源卷或卸载基础资源卷。
上述资源认证模块,可以理解为CSI Identify,用于认证XEBS CSI Driver。
上述资源服务模块,可以理解为CSI Controller,用于接收资源分配请求和删除请求,支持创建和删除快照、资源卷;支持快照回滚和卷克隆;支持卷扩容等服务。
上述资源处理模块,可以理解为CSI Node,用于挂载和卸载基础资源卷。
可选的,资源认证模块和资源服务模块之间通过接口服务模块(API Server)与目标数据库(etcd,以容器方式部署的数据库)交互。CSI Controller&CSI Identify能通过API Server与etcd交互,保存与XEBS通信的信息,这样能保证容器存储驱动(XEBS CSIDriver)能在线升级。
XEBS CSI Driver通过API Server与ectd交互,将卷和快照的信息存储在etcd中;而与现有技术中将资源卷和快照的信息存放在本地,后续调整为以加密的方式传递卷和后端存储的信息,导致各个版本之前不能做在线升级的方式相比,本申请中容器存储驱动摒弃这种方式,达到各个版本可在线升级的效果。
在本发明实施例中,容器存储驱动中设置并行的容器存储插件和辅助容器,其中,辅助容器用于备份资源卷和快照信息。
图2是根据本发明实施例的一种可选的容器存储驱动的示意图,如图2所示,该容器存储驱动为XEBS CSI Driver,在管理节点(Master)和各个业务节点(Node)之间交互时,主要通过接口服务模块(API Server)与辅助容器(Deployment Pod)和容器存储插件(DaemonSet Pod)交互。在交互过程中,业务节点中主要节点代理(Kubelet)将数据存储至本地的文件和目录(Hostpath volumes),以将本地的文件和目录挂载到容器中,而kubelet工作目录(Host/var/lib/Kubelet)将通信的套接字socket放在该目录下。
上述管理节点包括:控制器管理器(Kube Controller Manager)、接口服务模块(API Serveer)、数据库(Etcd)。
上述的业务节点包括:节点代理(图2中的Kubelet)、容器存储插件(DaemonSetPod)、辅助容器(Deployment Pod)、本地文件或目录(Hostpath volumes)、kubelet工作目录(Host/var/lib/Kubelet)。
容器存储驱动(XEBS CSI Driver),可实现Identify Server(认证服务)、NodeServer(挂载/卸载卷服务)、Controller Server(供应资源服务)三个服务,与SidecarContainer交互。Controller Server监听资源的创建与删除事件,实现资源卷的动态供应。
上述的本地文件或目录,与容器存储插件(DaemonSet Pod)之间通过DriverRegistration向容器平台注册驱动信息;而kubelet工作目录(Host/var/lib/Kubelet)与XEBS CSI Driver Container通过Mount propagation进行挂载。
本发明实施例涉及的容器存储驱动扩展了多个特性。包括:资源扩容、资源卸载、克隆、快照、在线升级。
可选的,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,方法还包括:接收资源扩容请求,其中,资源扩容请求用于指示待扩容的基础资源卷的卷标识和新扩容卷大小;基于资源扩容请求,为基础资源卷挂载上新扩容卷。
另一种可选的,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,方法还包括:接收资源卸载请求,其中,资源卸载请求用于指示待卸载的基础资源卷的卷标识;基于资源卸载请求,卸载基础资源卷。
在本发明实施例中,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,方法还包括:接收资源克隆请求,其中,资源克隆请求用于指示待克隆的目标快照的快照信息,目标快照记录在某一时间点之前所完成操作的操作信息和时间信息;基于资源克隆请求,为目标快照创建相同的新快照;备份新快照。
作为本发明可选的实施例,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,方法还包括:接收版本升级请求,其中,版本升级请求用于指示升级历史版本的资源分配模式;获取容器部署文件,其中,容器部署文件指示历史版本的容器应用资源分配参数;基于容器部署文件,以历史版本的资源分配模式为基础,将镜像版本字段修改为待升级的目标版本字段;执行更新操作,完成版本升级。
通过上述实施例,可以实现容器存储驱动的版本动态升级,支持从低版本在线升级到高版本,使得用户在升级版本后,仍然能够使用早期版本的CEPH CSI Driver创建的资源,历史资源能够被重新使用,提高资源利用率,且符合用户版本升级、功能更新需求。
可选的,方法还包括:将资源卷和快照信息存储在目标数据库中,其中,目标数据库为以容器方式部署的数据库。
例如,容器存储驱动XEBS CSI Driver通过API Server与ectd交互,将资源卷和快照的信息存储在etcd中。
在本发明实施例中,容器存储驱动将第一套接字和第二套接字分开使用,其中,第一套接字为注册时使用的套接字,第二套接字为容器存储驱动中各模块之间通信时使用的套接字。例如,XEBS CSI Driver以Daemonset Pod的方式部署,将注册所使用的socket与服务模块之间通信所用的socket分开使用。
通过上述实施例,可以通过新设计的容器存储驱动,实现资源卷的动态供应,减少人为干预,提高资源卷的分配灵活性,管理员只需定义好配置文件,无需其他操作,就可以给容器应用供应卷,同时可以支持卷扩容(离线扩容、在线扩容)、卷克隆、驱动版本升级(支持从低版本在线升级到高版本,使得用户在升级版本后,仍然能够使用早期版本的CEPHCSI Driver创建的资源),为容器平台提供丰富的新特性,提高用户的使用兴趣。
实施例二
图3是根据本发明实施例的另一种可选的容器平台上动态分配存储资源的装置的示意图,如图3所示,该装置可以包括:接收单元31,分配单元33,其中,
接收单元31,用于接收资源分配请求,其中,资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;
分配单元33,用于基于资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,容器存储驱动为分布式部署的块存储驱动。
上述容器平台上动态分配存储资源的装置,可以通过接收单元31接收资源分配请求,其中,资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用,然后通过分配单元33基于资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,容器存储驱动为分布式部署的块存储驱动。在该实施例中,可支持资源卷动态分配,减少人为干预,为容器平台提供丰富的特性,提高部署容器应用的效率,从而解决相关技术中无法实现动态分配资源,需要管理员干预,造成容器应用部署效率降低的技术问题。
可选的,容器平台上动态分配存储资源的装置还包括:第一接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收资源扩容请求,其中,资源扩容请求用于指示待扩容的基础资源卷的卷标识和新扩容卷大小;挂载模块,用于基于资源扩容请求,为基础资源卷挂载上新扩容卷。
在本发明可选的实施例中,容器平台上动态分配存储资源的装置还包括:第二接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收资源卸载请求,其中,资源卸载请求用于指示待卸载的基础资源卷的卷标识;卸载模块,用于基于资源卸载请求,卸载基础资源卷。
另一种可选的,容器平台上动态分配存储资源的装置还包括:第三接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收资源克隆请求,其中,资源克隆请求用于指示待克隆的目标快照的快照信息,目标快照记录在某一时间点之前所完成操作的操作信息和时间信息;创建模块,用于基于资源克隆请求,为目标快照创建相同的新快照;备份模块,用于备份新快照。
在本发明实施例中,容器平台上动态分配存储资源的装置还包括:第四接收模块,用于在采用容器存储驱动为各个容器应用分配相应的资源卷之后,接收版本升级请求,其中,版本升级请求用于指示升级历史版本的资源分配模式;第一获取模块,用于获取容器部署文件,其中,容器部署文件指示历史版本的容器应用资源分配参数;修改模块,用于基于容器部署文件,以历史版本的资源分配模式为基础,将镜像版本字段修改为待升级的目标版本字段;升级模块,用于执行更新操作,完成版本升级。
可选的,容器平台上动态分配存储资源的装置还用于将资源卷和快照信息存储在目标数据库中,其中,目标数据库为以容器方式部署的数据库。
可选的,容器存储驱动将第一套接字和第二套接字分开使用,其中,第一套接字为注册时使用的套接字,第二套接字为容器存储驱动中各模块之间通信时使用的套接字。
可选的,容器存储驱动包括:资源认证模块,用于认证容器存储驱动的身份;资源服务模块,用于接收资源服务请求,并基于资源服务请求向容器下发相应服务指令,其中,资源服务请求包括下述至少之一:资源分配请求、资源删除请求、快照创建请求、快照删除请求、资源克隆请求、快照回滚请求;资源处理模块,用于挂载新资源卷或卸载基础资源卷。
可选的,资源认证模块和资源服务模块之间通过接口服务模块与目标数据库交互。
可选的,容器存储驱动中设置并行的容器存储插件和辅助容器,其中,辅助容器用于备份资源卷和快照信息。
上述的容器平台上动态分配存储资源的装置还可以包括处理器和存储器,上述接收单元31,分配单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来用容器存储驱动为各个容器应用分配相应的资源卷。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种虚拟机运行系统,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的容器平台上动态分配存储资源的方法。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的容器平台上动态分配存储资源的方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收资源分配请求,其中,资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;基于资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,容器存储驱动为分布式部署的块存储驱动。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (11)

1.一种容器平台上动态分配存储资源的方法,其特征在于,包括:
接收资源分配请求,其中,所述资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;
基于所述资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,所述容器存储驱动为分布式部署的块存储驱动,所述容器存储驱动中设置并行的容器存储插件和辅助容器,其中,所述辅助容器用于备份资源卷和快照信息;
所述容器存储驱动包括:资源认证模块,用于认证所述容器存储驱动的身份;资源服务模块,用于接收资源服务请求,并基于所述资源服务请求向容器下发相应服务指令,其中,所述资源服务请求包括:资源分配请求、资源删除请求、快照创建请求、快照删除请求、资源克隆请求、快照回滚请求;资源处理模块,用于挂载新资源卷或卸载基础资源卷,
所述容器存储驱动包括管理节点和各个业务节点,在管理节点和各个业务节点之间交互时,通过接口服务模块与辅助容器和容器存储插件交互,在交互过程中,所述业务节点中的节点代理将数据存储至本地的文件和目录,以将本地的文件和目录挂载到容器中,
所述容器存储驱动实现认证服务、挂载/卸载卷服务、供应资源服务,所述供应资源服务用于监听资源的创建与删除事件,实现资源卷的动态供应。
2.根据权利要求1所述的方法,其特征在于,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:
接收资源扩容请求,其中,所述资源扩容请求用于指示待扩容的基础资源卷的卷标识和新扩容卷大小;
基于所述资源扩容请求,为所述基础资源卷挂载上新扩容卷。
3.根据权利要求2所述的方法,其特征在于,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:
接收资源卸载请求,其中,所述资源卸载请求用于指示待卸载的基础资源卷的卷标识;
基于所述资源卸载请求,卸载所述基础资源卷。
4.根据权利要求1所述的方法,其特征在于,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:
接收资源克隆请求,其中,所述资源克隆请求用于指示待克隆的目标快照的快照信息,所述目标快照记录在某一时间点之前所完成操作的操作信息和时间信息;
基于所述资源克隆请求,为所述目标快照创建相同的新快照;
备份所述新快照。
5.根据权利要求1所述的方法,其特征在于,在采用容器存储驱动为各个容器应用分配相应的资源卷之后,所述方法还包括:
接收版本升级请求,其中,所述版本升级请求用于指示升级历史版本的资源分配模式;
获取容器部署文件,其中,所述容器部署文件指示历史版本的容器应用资源分配参数;
基于所述容器部署文件,以历史版本的资源分配模式为基础,将镜像版本字段修改为待升级的目标版本字段;
执行更新操作,完成版本升级。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:将资源卷和快照信息存储在目标数据库中,其中,所述目标数据库为以容器方式部署的数据库。
7.根据权利要求1所述的方法,其特征在于,所述容器存储驱动将第一套接字和第二套接字分开使用,其中,所述第一套接字为注册时使用的套接字,所述第二套接字为所述容器存储驱动中各模块之间通信时使用的套接字。
8.根据权利要求1所述的方法,其特征在于,所述资源认证模块和所述资源服务模块之间通过接口服务模块与目标数据库交互。
9.一种容器平台上动态分配存储资源的装置,其特征在于,包括:
接收单元,用于接收资源分配请求,其中,所述资源分配请求用于指示待分配的资源卷的数量和每个资源卷的大小,每个资源卷至少对应一个容器应用;
分配单元,用于基于所述资源分配请求,采用容器存储驱动为各个容器应用分配相应的资源卷,其中,所述容器存储驱动为分布式部署的块存储驱动,所述容器存储驱动中设置并行的容器存储插件和辅助容器,其中,所述辅助容器用于备份资源卷和快照信息;
所述容器存储驱动包括:资源认证模块,用于认证所述容器存储驱动的身份;资源服务模块,用于接收资源服务请求,并基于所述资源服务请求向容器下发相应服务指令,其中,所述资源服务请求包括:资源分配请求、资源删除请求、快照创建请求、快照删除请求、资源克隆请求、快照回滚请求;资源处理模块,用于挂载新资源卷或卸载基础资源卷,
所述容器存储驱动包括管理节点和各个业务节点,在管理节点和各个业务节点之间交互时,通过接口服务模块与辅助容器和容器存储插件交互,在交互过程中,所述业务节点中的节点代理将数据存储至本地的文件和目录,以将本地的文件和目录挂载到容器中,
所述容器存储驱动实现认证服务、挂载/卸载卷服务、供应资源服务,所述供应资源服务用于监听资源的创建与删除事件,实现资源卷的动态供应。
10. 一种虚拟机运行系统,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至8中任意一项所述的容器平台上动态分配存储资源的方法。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的容器平台上动态分配存储资源的方法。
CN202010062736.7A 2020-01-19 2020-01-19 容器平台上动态分配存储资源的方法及装置 Active CN111273871B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010062736.7A CN111273871B (zh) 2020-01-19 2020-01-19 容器平台上动态分配存储资源的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010062736.7A CN111273871B (zh) 2020-01-19 2020-01-19 容器平台上动态分配存储资源的方法及装置

Publications (2)

Publication Number Publication Date
CN111273871A CN111273871A (zh) 2020-06-12
CN111273871B true CN111273871B (zh) 2021-05-04

Family

ID=70998856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010062736.7A Active CN111273871B (zh) 2020-01-19 2020-01-19 容器平台上动态分配存储资源的方法及装置

Country Status (1)

Country Link
CN (1) CN111273871B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829780B2 (en) 2021-09-22 2023-11-28 International Business Machines Corporation Open-source container cluster hot plug adapter

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913665B (zh) * 2020-07-30 2023-11-24 北京星辰天合科技股份有限公司 存储卷的挂载方法及装置、电子设备
CN111949407B (zh) * 2020-08-13 2024-04-12 抖音视界有限公司 一种资源分配方法及装置
CN111966305B (zh) * 2020-10-22 2021-02-09 腾讯科技(深圳)有限公司 持久卷分配方法、装置、计算机设备和存储介质
CN113296711B (zh) * 2021-06-11 2022-10-28 中国科学技术大学 一种数据库场景中优化分布式存储延迟的方法
CN115048240B (zh) * 2022-05-17 2023-08-29 广州鼎甲计算机科技有限公司 基于Kubernetes的数据处理方法、系统及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301022A (zh) * 2017-06-27 2017-10-27 北京溢思得瑞智能科技研究院有限公司 一种基于容器技术的存储访问方法及系统
CN109697016A (zh) * 2017-10-20 2019-04-30 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
CN110597623A (zh) * 2019-08-13 2019-12-20 平安普惠企业管理有限公司 容器资源分配方法、装置、计算机设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131926B2 (en) * 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
CN105912403B (zh) * 2016-04-14 2019-08-06 聚好看科技股份有限公司 Docker容器的资源管理方法及装置
CN106095579B (zh) * 2016-06-14 2019-06-07 中国联合网络通信集团有限公司 容器资源分配方法及装置
CN107562545A (zh) * 2017-09-11 2018-01-09 南京奥之云信息技术有限公司 一种基于Docker技术的容器调度方法
CN110058813A (zh) * 2019-03-15 2019-07-26 启迪云计算有限公司 一种基于云平台块存储的本地存储管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301022A (zh) * 2017-06-27 2017-10-27 北京溢思得瑞智能科技研究院有限公司 一种基于容器技术的存储访问方法及系统
CN109697016A (zh) * 2017-10-20 2019-04-30 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
CN110597623A (zh) * 2019-08-13 2019-12-20 平安普惠企业管理有限公司 容器资源分配方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829780B2 (en) 2021-09-22 2023-11-28 International Business Machines Corporation Open-source container cluster hot plug adapter

Also Published As

Publication number Publication date
CN111273871A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111273871B (zh) 容器平台上动态分配存储资源的方法及装置
US20240223563A1 (en) Automatically Deployed Information Technology (IT) System and Method
US11561865B2 (en) Systems and methods for host image transfer
US10496503B2 (en) Healing cloud services during upgrades
CN108089913B (zh) 一种超融合系统的虚拟机部署方法
US10061656B2 (en) Snapshot generating method, system, and apparatus
EP3469478B1 (en) Server computer management system for supporting highly available virtual desktops of multiple different tenants
US8656387B2 (en) Method and system for workload distributing and processing across a network of replicated virtual machines
US9268590B2 (en) Provisioning a cluster of distributed computing platform based on placement strategy
EP3299957A1 (en) Performing live updates to file system volumes
US20140297733A1 (en) Cloud Computing System and Method for Managing Storage Resources Therein
US20220174096A1 (en) Automatically Deployed Information Technology (IT) System and Method with Enhanced Security
US9720719B2 (en) Method and system for optimizing virtual disk provisioning
CN111488241A (zh) 在容器编排平台实现无代理备份与恢复操作的方法和系统
US9141400B2 (en) Technique for deploying operating systems in a virtualized environment
US20140109089A1 (en) System to rebuild difference virtual hard disk for updating operation system and method thereof
CN106326226A (zh) 一种公有云上启动数据库服务的方法及系统
CN112468545A (zh) 一种云主机创建方法、装置、系统、设备及可读存储介质
WO2017000586A1 (zh) 虚拟网元的升级方法、装置和计算机存储介质
JP5670369B2 (ja) 情報処理装置、イメージファイル管理方法およびプログラム
US11295018B1 (en) File system modification
CN111124598A (zh) 一种虚拟桌面软件管理方法及系统
CN105550018A (zh) 一种在云计算系统创建虚拟机的方法
CN114115920A (zh) 操作系统部署方法、系统、设备及计算机可读存储介质
CN110704249A (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
CP03 Change of name, title or address

Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing

Patentee after: Beijing Xingchen Tianhe Technology Co.,Ltd.

Address before: 100097 office building 805-806, block B, Jinyuan times business center, lantianchang Road, Shijingshan District, Beijing

Patentee before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd.

CP03 Change of name, title or address