CN116126468A - 容器rootfs的限额方法、装置、电子设备及存储介质 - Google Patents
容器rootfs的限额方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116126468A CN116126468A CN202211718645.XA CN202211718645A CN116126468A CN 116126468 A CN116126468 A CN 116126468A CN 202211718645 A CN202211718645 A CN 202211718645A CN 116126468 A CN116126468 A CN 116126468A
- Authority
- CN
- China
- Prior art keywords
- rbd
- image
- container
- directory
- rootfs
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Silver Salt Photography Or Processing Solution Therefor (AREA)
- Solid-Sorbent Or Filter-Aiding Compositions (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
本发明提供了一种容器rootfs的限额方法、装置、电子设备及存储介质,涉及计算机技术领域。所述方法包括:创建容器镜像的镜像目录;调用Ceph接口创建指定额度的RBD image,将所述RBD image映射为物理机上的RBD块设备;根据所述RBD块设备,创建工作目录;将所述工作目录和所述镜像目录进行联合挂载,得到限额的容器rootfs。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种容器rootfs的限额方法、装置、电子设备及存储介质。
背景技术
对容器rootfs(根文件系统)进行限额,可以避免单个容器大量消耗物理机本地的存储资源,从而影响物理机上的其它容器以及服务的可用性。
相关技术中的容器rootfs限额手段有project quota(磁盘配额)和devmapper(设备映射器)两种方式。然而,在上述两种限额方式中,容器rootfs仍然使用的是物理机的本地存储,单台物理机上的容器部署密度不可避免地受限于物理机本地存储空间大小。
发明内容
鉴于上述问题,本发明实施例提供了一种容器rootfs的限额方法、装置、电子设备及存储介质,以便克服上述问题或者至少部分地解决上述问题。
本发明实施例的第一方面,提供了一种容器rootfs的限额方法,包括:
创建容器镜像的镜像目录;
调用Ceph接口创建指定额度的RBD image,将所述RBD image映射为物理机上的RBD块设备;
根据所述RBD块设备,创建工作目录;
将所述工作目录和所述镜像目录进行联合挂载,得到限额的容器rootfs。
可选地,所述创建容器镜像的镜像目录,包括:
将所述容器镜像的第一层layer解压为目录;
将所述容器镜像的每个非第一层layer进行解压,并与该非第一层layer的上一层layer对应的目录进行联合挂载,形成所述镜像目录。
可选地,所述根据所述RBD块设备,创建工作目录,包括:
对所述RBD块设备进行格式化,得到文件系统;
在所述文件系统中创建所述工作目录。
可选地,所述根据所述RBD块设备,创建工作目录,包括:
对所述RBD块设备进行格式化,得到文件系统;
取消所述RBD image和所述RBD块设备之间的映射;
为所述RBD image创建已经格式化的RBD快照;
克隆所述RBD快照,得到目标RBD image;
将所述目标RBD image映射为物理机上的目标RBD块设备,所述目标RBD块设备无需进行格式化;
将所述目标RBD块设备的目录,作为所述工作目录。
可选地,在所述得到限额的容器rootfs之后,还包括:
清理所述限额的容器rootfs;
解挂所述限额的容器rootfs的挂载点,清理挂载点目录;
清理所述工作目录。
可选地,所述清理所述工作目录,包括:
将所述RBD块设备从所述挂载点解挂;
解除所述RBD image和所述块设备的映射;
调用所述Ceph接口删除所述指定额度的RBD image。
可选地,在所述得到限额的容器rootfs之后,还包括:
拷贝存储在所述RBD image中的工作目录;
将拷贝的所述工作目录和所述限额的容器rootfs的镜像目录进行打包,制作成新的镜像。
本发明实施例的第二方面,提供了一种容器rootfs的限额装置,包括:
镜像目录创建模块,被配置为创建容器镜像的镜像目录;
映射模块,被配置为调用Ceph接口创建指定额度的RBD image,将所述RBD image映射为物理机上的RBD块设备;
工作目录创建模块,被配置为根据所述RBD块设备,创建工作目录;
联合挂载模块,被配置为将所述工作目录和所述镜像目录进行联合挂载,得到限额的容器rootfs。
可选地,所述镜像目录创建模块包括:
解压单元,被配置为将所述容器镜像的第一层layer解压为目录;
联合挂载单元,被配置为将所述容器镜像的每个非第一层layer进行解压,并与该非第一层layer的上一层layer对应的目录进行联合挂载,形成所述镜像目录。
可选地,所述工作目录创建模块包括:
第一格式化单元,被配置为对所述RBD块设备进行格式化,得到文件系统;
工作目录创建单元,被配置为在所述文件系统中创建所述工作目录。
可选地,所述工作目录创建模块包括:
第二格式化单元,被配置为对所述RBD块设备进行格式化,得到文件系统;
取消映射单元,被配置为取消所述RBD image和所述RBD块设备之间的映射;
快照创建单元,被配置为为所述RBD image创建已经格式化的RBD快照;
克隆快照单元,被配置为克隆所述RBD快照,得到目标RBD image;
映射单元,被配置为将所述目标RBD image映射为物理机上的目标RBD块设备,所述目标RBD块设备无需进行格式化;
工作目录确定单元,被配置为将所述目标RBD块设备的目录,作为所述工作目录。
可选地,在所述得到限额的容器rootfs之后,还包括:
清理容器模块,被配置为清理所述限额的容器rootfs;
解挂模块,被配置为解挂所述限额的容器rootfs的挂载点,清理挂载点目录;
清理目录模块,被配置为清理所述工作目录。
可选地,所述清理目录模块包括:
解挂单元,被配置为将所述RBD块设备从所述挂载点解挂;
解除映射单元,被配置为解除所述RBD image和所述块设备的映射;
删除单元,被配置为调用所述Ceph接口删除所述指定额度的RBD image。
可选地,在所述得到限额的容器rootfs之后,还包括:
拷贝模块,被配置为拷贝存储在所述RBD image中的工作目录;
打包模块,被配置为将拷贝的所述工作目录和所述限额的容器rootfs的镜像目录进行打包,制作成新的镜像。
本发明实施例的第三方面,提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的容器rootfs的限额方法。
本发明实施例的第四方面,提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如第一方面所述的容器rootfs的限额方法。
本发明实施例的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的容器rootfs的限额方法。
本发明实施例包括以下优点:
本实施例中,创建了容器镜像的镜像目录,并创建了工作目录,通过将工作目录和镜像目录进行联合挂载,可以实现将容器运行过程中的修改数据保存至RBD image中。而RBD image占用的是Ceph的存储空间,而非物理机本地的存储空间,因此,容器的部署密度不再受限于物理机本地存储空间大小。并且,可以通过设置创建的RBD image的额度,来实现对容器rootfs的限额。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中一种容器rootfs的限额方法的步骤流程图;
图2是本发明实施例中容器rootfs的限额方法的流程示意图;
图3是本发明实施例中删除容器的流程示意图;
图4是本发明实施例中提交容器的流程示意图;
图5是本发明实施例中优化容器rootfs的限额方法的流程示意图;
图6是本发明实施例中一种容器rootfs的限额装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
针对相关技术中容器rootfs限额手段并不能解决容器部署密度受限于物理机本地存储空间的问题,本发明实施例提出了overlayfs-rbd(文件系统和RBD的联合挂载)机制,利用Ceph集群的存储能力,将容器运行过程中的修改数据保存至RBD image中,最终通过overlayfs联合挂载本地的容器镜像目录和RBD image上的容器工作目录构建容器rootfs。
参照图1所示,示出了本发明实施例中一种容器rootfs的限额方法步骤流程图,如图1所示,该容器rootfs的限额方法具体可以包括步骤S11~步骤S14。
在步骤S11中,创建容器镜像的镜像目录。
容器镜像是分层的,每层都有父子关系,各个层互不影响。每层可以解压为一个目录。将各个目录进行联合挂载之后,会形成容器镜像的镜像目录。
镜像目录只向外展示一个目录,对容器rootfs的写数据,会自动保存到可写的工作目录,而不会保存到只读的镜像目录。当位于只读层的文件需要被编辑时,存储在较低层layer中的文件就会被拉到最上层的layer,然后将那些更改存储在可写层中。
容器镜像分很多层layer,每一层layer都是后面追加的,不会去修改前面的每层layer,只会将容器镜像层解压出来的目录,额外和一个新的空的目录,一起进行联合挂载。将修改数据写入新目录,镜像层的目录是只读的,可以同时被很多容器使用。
镜像目录的每一层layer之间不会互相影响。修改数据是在最上面一层layer新增了一层layer,然后写内容在新增layer中。把每一层的文件进行解压,再进行挂载,形成镜像目录。只是追加数据,不会影响之前的层。联合挂载完之后可以看到作出的修改。
可选地,创建容器镜像的镜像目录的步骤可以包括:将所述容器镜像的第一层layer解压为目录;将所述容器镜像的每个非第一层layer进行解压,并与该非第一层layer的上一层layer对应的目录进行联合挂载,形成所述镜像目录。
在步骤S12中,调用Ceph接口创建指定额度的RBD image,将所述RBD image映射为物理机上的RBD块设备。
Ceph(分布式文件系统)中的存储空间不会影响物理机的存储空间。Ceph可以提供块存储RBD。RBD块设备类似磁盘可以被挂载。RBD块设备具有快照、多副本、克隆和一致性等特性,数据以条带化的方式存储在Ceph集群的多个OSD中。Ceph的OSD是Ceph存储集群最重要的组件,Ceph OSD将数据以对象的形式存储到集群中每个节点的物理磁盘上,完成存储工作由OSD进程完成。RBD的使用实际上就是对RBD image(RBD镜像)的使用,RBD image是由多个对象条带化存储到后端的块设备。
调用Ceph接口,在Ceph中创建一个RBD image,该RBD image所占用的存储空间为Ceph的存储空间。将创建的RBD image映射为物理机上的RBD块设备。该RBD image用于存储容器rootfs在运行过程中的修改数据。通过在创建RBD image时,指定RBD image的存储空间额度,可以实现对存储容器rootfs的限额。
在步骤S13中,根据所述RBD块设备,创建工作目录。
可选地,可以是对所述RBD块设备进行格式化,得到文件系统;在所述文件系统中创建所述工作目录。
可以通过mkfs(make filesystem,创建文件系统)命令,对RBD块设备进行格式化,得到文件系统。mkfs是个综合命令,在使用的时候,mkfs命令会调用不同的命令来将分区格式化为相应的文件系统。得到文件系统之后,则可以在文件系统中创建工作目录。
在步骤S14中,将所述工作目录和所述镜像目录进行联合挂载,得到限额的容器rootfs。
在得到工作目录和镜像目录之后,可以通过将工作目录和镜像目录进行联合挂载,形成限额的容器rootfs。形成的限额的容器rootfs在运行过程中的修改数据,会被存储到RBD image,因为RBD image的额度是指定的,因此,容器rootfs的额度也被限定,从而实现了容器rootfs的限额,并且,容器rootfs的修改数据占用的存储空间为Ceph的存储空间,而非物理机本地的存储空间。
采用本发明实施例的技术方案,创建了容器镜像的镜像目录,并创建了工作目录,通过将工作目录和镜像目录进行联合挂载,可以实现将容器运行过程中的修改数据保存至RBD image中。而RBD image占用的是Ceph的存储空间,而非物理机本地的存储空间,因此,容器的部署密度不再受限于物理机本地存储空间大小。并且,可以通过设置创建的RBDimage的额度,来实现对容器rootfs的限额。
作为一个实施例,可以利用对容器引擎containerd改造来实现容器rootfs的限额方法。containerd是容器虚拟化技术,从docker(容器技术)中剥离出来,形成开放容器接口(OCI)标准的一部分。
containerd的改造涉及两个方面,第一方面为注解和标签:根据overlayfs-rbd的工作原理,需要区分镜像snapshot(快照技术)和工作snapshot。可以利用注解和标签做到这种区分,在容器创建过程中打上相应的标签。第二方面为overlayfs-rbd snapshotter(快照器):实现一个新的存储驱动插件,和原有的overlayfs snapshotter的差异主要体现在Prepare和Remove接口上。Prepare接口在进行联合挂载之前,需要创建RBD image等操作;Remove接口在进行解挂载操作后,还需要清理RBD image等操作。
需要注意的是,containerd与RBD中的snapshot概念有所区别。在containerd中snapshot可以看作是可以直接读写的,snapshotter则是对应的存储驱动:对于overlayfssnapshotter来说,一个snapshot对应一个目录;而对于devmapper snapshotter来说,一个snapshot对应一个块设备。而RBD中的snapshot则更像是一种状态,必须根据这个状态来恢复或者克隆一个RBD image,然后才能对RBD image进行读写。
参照图2所示的容器rootfs的限额方法的流程示意图,利用containerd实现容器rootfs的限额方法具体包括以下步骤:
步骤1:对容器镜像每层layer调用snapshotter的Prepare接口获取一个空目录,然后将layer解压到指定的目录,得到镜像目录;
步骤2:对每个snapshot调用Commit(提交)接口,将snapshot提交变为不可写状态;
步骤3:准备工作snapshot,具体包括:调用创建RBD image、映射RBD块设备、mkfs格式化、挂载RBD块设备,然后调用Prepare接口在RBD块设备中创建一个空目录,作为工作目录;
步骤4:构建容器rootfs,具体包括:将现有的镜像snapshot和工作snapshot对应的目录联合挂载,形成限额的容器rootfs。
可选地,在上述技术方案的基础上,还可以删除容器。删除容器的步骤可以包括:清理所述限额的容器rootfs;解挂所述限额的容器rootfs的挂载点,清理挂载点目录;清理所述工作目录。
可选地,清理所述工作目录可以包括:将所述RBD块设备从所述挂载点解挂;解除所述RBD image和所述块设备的映射;调用所述Ceph接口删除所述指定额度的RBD image。
参照图3所示的删除容器的流程示意图,作为一个实施例,可以利用容器引擎containerd删除容器,包括:调用snapshotter Remove接口清理容器rootfs,解挂载容器rootfs的挂载点。然后接口清理工作snapshot,解挂载工作目录、取消RBD块设备映射、删除RBD image。
可选地,在上述技术方案的基础上,还可以提交容器rootfs。提交容器rootfs的步骤可以包括:拷贝存储在所述RBD image中的工作目录;将拷贝的所述工作目录和所述限额的容器rootfs的镜像目录进行打包,制作成新的镜像。
提交容器是用于保存运行容器的已有修改,可用于制作新的镜像。提交容器只需要将存储在RBD image中的工作目录拷贝到本地制定路径即可。然后将新拷贝的工作目录和旧的layer目录重新按照OCI标准打包,制作成新的镜像。
参照图4所示的提交容器的流程示意图,作为一个实施例,可以利用容器引擎containerd提交容器,包括:调用snapshotter Commit接口保存容器工作snapshot,将RBDimage中的目录拷贝到本地指定目录;然后取消RBD块设备映射、删除RBD image。
前文所述的容器rootfs的限额方法,为一个容器准备rootfs需要创建RBD image、映射到本地RBD块设备、mkfs格式化文件系统、挂载RBD块设备等操作。可以通过预先制作一个已经格式化过的镜像的RBD快照,从快照创建RBD镜像则无需再进行格式化文件系统的步骤,从而缩短容器启动所需要的时间。
因此,在上述技术方案的基础上,因为RBD块设备具有可克隆性,因此,可以预先准备好RBD快照,在需要RBD image时,通过对RBD快照进行克隆,直接得到目标RBD image,并将目标RBD image映射为物理机上的目标RBD块设备,目标RBD块设备无需再进行格式化。
然后将目标RBD块设备的目录,作为工作目录,并将工作目录和容器镜像的镜像目录进行联合挂载,得到限额的容器rootfs。
具体地,得到目标RBD块设备的步骤可以包括:调用Ceph接口创建指定额度的RBDimage,将所述RBD image映射为物理机上的RBD块设备;对所述RBD块设备进行格式化,得到文件系统;取消所述RBD image和所述RBD块设备之间的映射;为所述RBD image创建已经格式化的RBD快照;克隆所述RBD快照,得到目标RBD image;将所述目标RBD image映射为物理机上的目标RBD块设备,所述目标RBD块设备无需进行格式化。
之后即可直接将目标RBD块设备的目录,作为所述工作目录;并将工作目录和容器镜像的镜像目录进行联合挂载,得到限额的容器rootfs。
图5是本发明实施例中优化容器rootfs的限额方法的流程示意图,作为一个实施例,可以利用容器引擎containerd优化容器rootfs的限额方法,包括:准备RBD snapshot,在snapshotter初始化阶段创建一个RBD image,将其映射到本地后,mkfs格式化文件系统,然后取消映射。为这个RBD image创建快照RBD snapshot。后续所有运行容器流程,RBDimage不再直接创建,而是通过克隆RBD snapshot得到,以此跳过格式文件系统步骤。
采用本发明实施例的技术方案,利用Ceph的存储能力,把运行中容器对rootfs的修改数据保存到RBD image,在实现了限额功能的同时将容器部署密度从物理机本地存储空间的瓶颈中解脱出来。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图6是本发明实施例的一种容器rootfs的限额装置的结构示意图,如图6所示,所述装置包括镜像目录创建模块、映射模块、工作目录创建模块和联合挂载模块,其中:
镜像目录创建模块,被配置为创建容器镜像的镜像目录;
映射模块,被配置为调用Ceph接口创建指定额度的RBD image,将所述RBD image映射为物理机上的RBD块设备;
工作目录创建模块,被配置为根据所述RBD块设备,创建工作目录;
联合挂载模块,被配置为将所述工作目录和所述镜像目录进行联合挂载,得到限额的容器rootfs。
可选地,所述镜像目录创建模块包括:
解压单元,被配置为将所述容器镜像的第一层layer解压为目录;
联合挂载单元,被配置为将所述容器镜像的每个非第一层layer进行解压,并与该非第一层layer的上一层layer对应的目录进行联合挂载,形成所述镜像目录。
可选地,所述工作目录创建模块包括:
第一格式化单元,被配置为对所述RBD块设备进行格式化,得到文件系统;
工作目录创建单元,被配置为在所述文件系统中创建所述工作目录。
可选地,所述工作目录创建模块包括:
第二格式化单元,被配置为对所述RBD块设备进行格式化,得到文件系统;
取消映射单元,被配置为取消所述RBD image和所述RBD块设备之间的映射;
快照创建单元,被配置为为所述RBD image创建已经格式化的RBD快照;
克隆快照单元,被配置为克隆所述RBD快照,得到目标RBD image;
映射单元,被配置为将所述目标RBD image映射为物理机上的目标RBD块设备,所述目标RBD块设备无需进行格式化;
工作目录确定单元,被配置为将所述目标RBD块设备的目录,作为所述工作目录。
可选地,在所述得到限额的容器rootfs之后,还包括:
清理容器模块,被配置为清理所述限额的容器rootfs;
解挂模块,被配置为解挂所述限额的容器rootfs的挂载点,清理挂载点目录;
清理目录模块,被配置为清理所述工作目录。
可选地,所述清理目录模块包括:
解挂单元,被配置为将所述RBD块设备从所述挂载点解挂;
解除映射单元,被配置为解除所述RBD image和所述块设备的映射;
删除单元,被配置为调用所述Ceph接口删除所述指定额度的RBD image。
可选地,在所述得到限额的容器rootfs之后,还包括:
拷贝模块,被配置为拷贝存储在所述RBD image中的工作目录;
打包模块,被配置为将拷贝的所述工作目录和所述限额的容器rootfs的镜像目录进行打包,制作成新的镜像。
需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、装置、电子设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种容器rootfs的限额方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种容器rootfs的限额方法,其特征在于,包括:
创建容器镜像的镜像目录;
调用Ceph接口创建指定额度的RBD image,将所述RBD image映射为物理机上的RBD块设备;
根据所述RBD块设备,创建工作目录;
将所述工作目录和所述镜像目录进行联合挂载,得到限额的容器rootfs。
2.根据权利要求1所述的方法,其特征在于,所述创建容器镜像的镜像目录,包括:
将所述容器镜像的第一层layer解压为目录;
将所述容器镜像的每个非第一层layer进行解压,并与该非第一层layer的上一层layer对应的目录进行联合挂载,形成所述镜像目录。
3.根据权利要求1所述的方法,其特征在于,所述根据所述RBD块设备,创建工作目录,包括:
对所述RBD块设备进行格式化,得到文件系统;
在所述文件系统中创建所述工作目录。
4.根据权利要求1所述的方法,其特征在于,所述根据所述RBD块设备,创建工作目录,包括:
对所述RBD块设备进行格式化,得到文件系统;
取消所述RBD image和所述RBD块设备之间的映射;
为所述RBD image创建已经格式化的RBD快照;
克隆所述RBD快照,得到目标RBD image;
将所述目标RBD image映射为物理机上的目标RBD块设备,所述目标RBD块设备无需进行格式化;
将所述目标RBD块设备的目录,作为所述工作目录。
5.根据权利要求1所述的方法,其特征在于,在所述得到限额的容器rootfs之后,还包括:
清理所述限额的容器rootfs;
解挂所述限额的容器rootfs的挂载点,清理挂载点目录;
清理所述工作目录。
6.根据权利要求5所述的方法,其特征在于,所述清理所述工作目录,包括:
将所述RBD块设备从所述挂载点解挂;
解除所述RBD image和所述块设备的映射;
调用所述Ceph接口删除所述指定额度的RBD image。
7.根据权利要求1所述的方法,其特征在于,在所述得到限额的容器rootfs之后,还包括:
拷贝存储在所述RBD image中的工作目录;
将拷贝的所述工作目录和所述限额的容器rootfs的镜像目录进行打包,制作成新的镜像。
8.一种容器rootfs的限额装置,其特征在于,包括:
镜像目录创建模块,被配置为创建容器镜像的镜像目录;
映射模块,被配置为调用Ceph接口创建指定额度的RBD image,将所述RBD image映射为物理机上的RBD块设备;
工作目录创建模块,被配置为根据所述RBD块设备,创建工作目录;
联合挂载模块,被配置为将所述工作目录和所述镜像目录进行联合挂载,得到限额的容器rootfs。
9.根据权利要求8所述的装置,其特征在于,所述镜像目录创建模块包括:
解压单元,被配置为将所述容器镜像的第一层layer解压为目录;
联合挂载单元,被配置为将所述容器镜像的每个非第一层layer进行解压,并与该非第一层layer的上一层layer对应的目录进行联合挂载,形成所述镜像目录。
10.根据权利要求8所述的装置,其特征在于,所述工作目录创建模块包括:
第一格式化单元,被配置为对所述RBD块设备进行格式化,得到文件系统;
工作目录创建单元,被配置为在所述文件系统中创建所述工作目录。
11.根据权利要求8所述的装置,其特征在于,所述工作目录创建模块包括:
第二格式化单元,被配置为对所述RBD块设备进行格式化,得到文件系统;
取消映射单元,被配置为取消所述RBD image和所述RBD块设备之间的映射;
快照创建单元,被配置为为所述RBD image创建已经格式化的RBD快照;
克隆快照单元,被配置为克隆所述RBD快照,得到目标RBD image;
映射单元,被配置为将所述目标RBD image映射为物理机上的目标RBD块设备,所述目标RBD块设备无需进行格式化;
工作目录确定单元,被配置为将所述目标RBD块设备的目录,作为所述工作目录。
12.根据权利要求8所述的装置,其特征在于,在所述得到限额的容器rootfs之后,还包括:
清理容器模块,被配置为清理所述限额的容器rootfs;
解挂模块,被配置为解挂所述限额的容器rootfs的挂载点,清理挂载点目录;
清理目录模块,被配置为清理所述工作目录。
13.根据权利要求12所述的装置,其特征在于,所述清理目录模块包括:
解挂单元,被配置为将所述RBD块设备从所述挂载点解挂;
解除映射单元,被配置为解除所述RBD image和所述块设备的映射;
删除单元,被配置为调用所述Ceph接口删除所述指定额度的RBD image。
14.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的容器rootfs的限额方法。
15.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的容器rootfs的限额方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718645.XA CN116126468A (zh) | 2022-12-29 | 2022-12-29 | 容器rootfs的限额方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718645.XA CN116126468A (zh) | 2022-12-29 | 2022-12-29 | 容器rootfs的限额方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126468A true CN116126468A (zh) | 2023-05-16 |
Family
ID=86309512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211718645.XA Pending CN116126468A (zh) | 2022-12-29 | 2022-12-29 | 容器rootfs的限额方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126468A (zh) |
-
2022
- 2022-12-29 CN CN202211718645.XA patent/CN116126468A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117425B (zh) | 用于数字资产同步的方法、系统和介质 | |
US11086725B2 (en) | Orchestration of heterogeneous multi-role applications | |
US10579364B2 (en) | Upgrading bundled applications in a distributed computing system | |
US11847484B2 (en) | Virtual machine image management using delta trees | |
US11113158B2 (en) | Rolling back kubernetes applications | |
US8904137B1 (en) | Deduplication system space recycling through inode manipulation | |
US8924355B1 (en) | Checkpoint restart | |
US11347684B2 (en) | Rolling back KUBERNETES applications including custom resources | |
US9009273B2 (en) | Address server | |
US10929350B2 (en) | Enhanced techniques for copying cloud stored files | |
US20090307245A1 (en) | Uninterrupted Data Access During the Migration of Data Between Physical File Systems | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
JP2016099949A (ja) | メタ情報書込方法、メタ情報読出方法、ファイル管理システム、コンピュータ・システム、プログラムおよびデータ構造 | |
US9665436B2 (en) | Creation and management of logical volume snapshots under hierarchical storage system | |
CN110968417A (zh) | 管理存储单元的方法、装置、系统和计算机程序产品 | |
US8082230B1 (en) | System and method for mounting a file system on multiple host computers | |
US11176089B2 (en) | Systems and methods for implementing dynamic file systems | |
CN116126468A (zh) | 容器rootfs的限额方法、装置、电子设备及存储介质 | |
CN112262378A (zh) | 脱水文件的层级的水合 | |
AU2021348394B2 (en) | Data storage volume recovery management | |
TWI740429B (zh) | 管理資料備份的方法及系統 | |
JP4086600B2 (ja) | ロールバック可能fatファイルシステム及びプログラム | |
KR101544094B1 (ko) | 메모리의 데이터 관리방법 및 그 시스템 | |
CN115469891A (zh) | 一种Kubernetes集群环境中容器镜像管理控制方法及系统 | |
CN116560793A (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 | ||
CB02 | Change of applicant information |
Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Applicant after: Tianyiyun Technology Co.,Ltd. Address before: 100093 Floor 4, Block E, Xishan Yingfu Business Center, Haidian District, Beijing Applicant before: Tianyiyun Technology Co.,Ltd. |
|
CB02 | Change of applicant information |