CN113641311B - 一种基于本地盘的容器存储资源动态分配的方法和系统 - Google Patents

一种基于本地盘的容器存储资源动态分配的方法和系统 Download PDF

Info

Publication number
CN113641311B
CN113641311B CN202111206877.2A CN202111206877A CN113641311B CN 113641311 B CN113641311 B CN 113641311B CN 202111206877 A CN202111206877 A CN 202111206877A CN 113641311 B CN113641311 B CN 113641311B
Authority
CN
China
Prior art keywords
container
host
storage
volume
local disk
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
CN202111206877.2A
Other languages
English (en)
Other versions
CN113641311A (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.)
Whale Cloud Technology Co Ltd
Original Assignee
Whale Cloud 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 Whale Cloud Technology Co Ltd filed Critical Whale Cloud Technology Co Ltd
Priority to CN202111206877.2A priority Critical patent/CN113641311B/zh
Publication of CN113641311A publication Critical patent/CN113641311A/zh
Application granted granted Critical
Publication of CN113641311B publication Critical patent/CN113641311B/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/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/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/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

本发明公开了一种基于本地盘的容器存储资源动态分配的方法和系统,该方法包括以下步骤:对用户创建Kubernetes容器的请求进行接收;给该容器进行Kubernetes宿主机的预分配;对容器所申请的持久卷请求进行预处理;将容器所申请的持久卷请求发送至预分配的宿主机;通过宿主机进行持久卷所需存储卷的创建;将该存储卷进行挂载,并给用户所创建的容器使用。有益效果:实现了在Kubernetes容器创建时按宿主机的本地盘资源进行容器的预调度,保证了容器运行时所需资源的可用性,并实现容器所申请PV的动态自动创建和挂载使用,保证了能够使用宿主机的本地盘为容器动态分配存储资源。

Description

一种基于本地盘的容器存储资源动态分配的方法和系统
技术领域
本发明涉及Kubernetes存储领域,具体来说,涉及一种基于本地盘的容器存储资源动态分配的方法和系统。
背景技术
Kubernetes是基于容器的集群管理系统,它构建于docker、container等容器运行环境之上,用于管理容器化的工作负载和服务,是一个可移植的、可扩展的开源平台,拥有一个庞大且快速增长的生态系统,其服务、支持和工具广泛可用。
Pod是Kubernetes中创建和管理的、最小的可部署的计算单元,包含一个或多个容器,这些容器共享存储、网络、以及怎样运行这些容器的声明。Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器,这些容器是相对紧密的耦合在一起的。
PV(PersistentVolume,持久卷)是集群中的一块存储,可以由管理员事先供应,或者使用存储类(Storage Class)来动态供应。持久卷是集群资源,就像节点也是集群资源一样。PV持久卷和普通的Volume一样,也是使用卷插件来实现的,只是它们拥有独立于任何使用 PV的 Pod 的生命周期。
PVC(PersistentVolumeClaim,持久卷请求)表达的是用户对存储的请求。概念上与 Pod 类似。Pod会耗用节点资源,而PVC申领会耗用PV资源。Pod可以请求特定数量的资源(CPU和内存);同样PVC申领也可以请求特定的大小和访问模式。
StorageClass为管理员提供了描述存储“类”的方法。不同的类型可能会映射到不同的服务质量等级或备份策略,或是由集群管理员制定的任意策略。
但是,随着硬件服务器、私有虚拟机及公有云ECS等自带存储介质的容量和性能不断提升。为了让企业客户能够便捷的使用主机本地盘这种高性价比的存储资源,如何能够有效的利用主机的本地盘为容器动态的提供存储变成急需解决的问题。而现有的Kubernetes存储子系统无法实现对宿主机本地盘的动态分配,只能通过人工分配和静态PV的方式来完成。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种基于本地盘的容器存储资源动态分配的方法和系统,以克服现有相关技术所存在的上述技术问题。
为此,本发明采用的具体技术方案如下:
根据本发明的一个方面,提供了一种基于本地盘的容器存储资源动态分配的方法,该方法包括以下步骤:
S1、对用户创建Kubernetes容器的请求进行接收;
S2、按照容器所需的存储资源进行资源调度,并给该容器进行Kubernetes宿主机的预分配;
S3、对容器所申请的持久卷请求进行预处理;
S4、将容器所申请的持久卷请求发送至预分配的宿主机;
S5、通过宿主机进行持久卷所需存储卷的创建;
S6、将该存储卷进行挂载,并给用户所创建的容器使用。
进一步的,其特征在于,所述S1中对用户创建Kubernetes容器的请求进行接收还包括以下步骤:
S11、通过Kubernetes集群实时监听用户向Kubernetes发起的Pod的创建请求;
S12、通过Kubernetes集群对请求解析出容器的存储资源需求。
进一步的,所述S1中对用户创建Kubernetes容器的请求进行接收时,请求包含存储容量大小的需求值。
进一步的,所述S2中按照容器所需的存储资源进行资源调度,并给该容器进行Kubernetes宿主机的预分配还包括以下步骤:
S21、根据宿主机本地盘容量判断该宿主机本地盘是否满足存储容量的需求值,并筛选出可分配容器所需存储容量的宿主机列表;
S22、对筛选出的宿主机列表中各个宿主机进行打分,并选择出分值最低的宿主机作为容器存储资源的预分配节点。
进一步的,所述S22中对筛选出的宿主机列表中各个宿主机进行打分时,打分规则按如下公式:
Figure 318168DEST_PATH_IMAGE002
其中,Local_Disk_Size表示宿主机的本地盘剩余可用容量,单位为字节;Local_Disk_Size/ 109表示将宿主机的本地盘剩余可用容量的单位换算成GB;Disk_Weight表示宿主机的本地盘的权重值,该值>=1,默认值为1,本地盘的Disk_Weight值越小,该盘的空间越会优先被分配出去。
进一步的,所述S3中对容器所申请的持久卷请求进行预处理时,具体查询步骤S2中预分配节点的可调用的gRPC接口地址,且通过读取接收到的PV创建请求,获取容器的唯一标识,同时使用该标识访问Kubernetes获取到预分配的宿主机IP地址。
进一步的,所述S4中将容器所申请的持久卷请求发送至预分配的宿主机时,通过宿主机IP和端口向该宿主机上的本地盘管理接口发生创建存储卷的请求。
进一步的,所述S5中通过宿主机进行持久卷所需存储卷的创建还包括以下步骤:
S51、接受容器所申请持久卷的存储卷创建请求;
S52、解析该存储卷创建需求,并获得用于该存储卷的VG卷组、容量大小及文件系统类型,其中,该文件系统类型包括xfs和ext4;
S53、在VG卷组上,创建需求大小的存储卷;
S54、按步骤S52所解析出的文件系统类型,对该存储卷进行格式化;
其中,所用到的卷管理命令如下:
Figure 97905DEST_PATH_IMAGE003
其中,Vol_Size为存储卷的大小,默认单位为m,Vol_Name为存储卷名称,VG_Name为本地盘的VG名称。
进一步的,所述S6中将该存储卷进行挂载,并给用户所创建的容器使用还包括以下步骤:
S61、将创建的所述存储卷信息返回给Kubernetes;
S62、由Kubernetes给宿主机发起创建容器的指令;
S63、宿主机创建该容器,并在存储挂载阶段,将存储卷从宿主机操作系统层映射到容器中使用。
根据本发明的另一方面,提供了一种基于本地盘的容器存储资源动态分配的系统,该系统包括:容器存储资源预分配模块、存储资源分配调度模块、宿主机本地盘管理模块及宿主机存储访问模块;
其中,所述容器存储资源预分配模块,用于对具备本地盘存储资源的宿主机进行是否满足容器存储资源需求的过滤,并对满足需求的宿主机本地盘存储资源进行打分;
所述存储资源分配调度模块,用于根据接受到的容器所需创建、删除持久卷的存储卷信息,查找出预分配宿主机本地盘管理模块的gRPC接口地址,并将容器存储请求发送给宿主机本地盘管理模块;
所述宿主机本地盘管理模块,用于提供宿主机本地盘存储资源的创建、删除、修改、查询接口,并为其他功能模块提供接口调用服务;
所述宿主机存储访问模块,用于将该宿主机本地盘为容器分配的存储卷资源挂载到Kubernetes容器中,供其使用;
其中,所述宿主机包括裸金属服务器、私有云虚拟机及公有云弹性云服务器中的至少一种。
本发明的有益效果为:
(1)本发明采用的对宿主机的本地盘存储资源筛选方法,能够有效的对宿主机本地盘存储资源进行过滤,筛选掉无法满足容器对存储资源需求的宿主机,避免了在存储卷创建阶段因本地盘容量不足所引起的创建失败,保证了能够成功为容器动态分配宿主机本地盘的存储资源。
(2)本发明采用对宿主机本地盘容量和分配权重的打分方法,在能够成功为容器动态分配宿主机本地盘的存储资源的基础上,通过该打分策略,实现按空间最少使用的策略对宿主机本地盘资源进行分配,同时兼顾容量过大和过小,提高了对宿主机本地盘资源打分的灵活性,避免因随机分配导致的若干宿主机的本地盘可用空间不均匀的情况,保证了基于宿主机本地盘的容器存储资源分配的均衡性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种基于本地盘的容器存储资源动态分配的方法的流程图一;
图2是根据本发明实施例的一种基于本地盘的容器存储资源动态分配的方法的流程图二;
图3是根据本发明实施例的一种基于本地盘的容器存储资源动态分配的方法的流程图三;
图4是根据本发明实施例的一种基于本地盘的容器存储资源动态分配的方法的流程图四;
图5是根据本发明实施例的一种基于本地盘的容器存储资源动态分配的系统的功能图。
具体实施方式
为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
根据本发明的实施例,提供了一种基于本地盘的容器存储资源动态分配的方法和系统,主要涉及对容器存储资源申请需求的接受和解析、存储资源的预分配、存储资源的预处理、创建和挂载存储资源的方法等,旨在实现为Kubernetes Pod容器的存储资源需求自动分配Kubernetes宿主机的本地盘存储资源,并实现宿主机本地盘分配的有效性和均衡性。以本发明作为关键技术开发实现的CSI插件(CSI,全称是Container StorageInterface,即容器存储接口,用于将任意块和文件存储系统暴露给诸如Kubernetes之类的容器编排系统(CO)上的容器化工作负载的标准,为容器编排引擎和存储系统间建立了一套标准的存储调用接口,通过该接口能为容器编排引擎提供存储服务)和schedulerextender(调度器扩展器)插件,不仅能够实现为Kubernetes Pod容器的存储资源需求自动分配Kubernetes宿主机的本地盘存储资源,并实现宿主机本地盘分配的有效性和均衡性,是CSI和scheduler extender插件是目前实现为Kubernetes容器自动分配宿主机本地盘资源的首选组合之一。
现结合附图和具体实施方式对本发明进一步说明,如图1所示,根据本发明的一个方面,提供了一种基于本地盘的容器存储资源动态分配的方法,该方法包括以下步骤:
S1、对用户创建Kubernetes容器的请求进行接收和解析;
其中,如图2所示,所述S1中对用户创建Kubernetes容器的请求进行接收还包括以下步骤:
S11、通过Kubernetes集群负责实时监听用户向Kubernetes发起的Pod的创建请求;
S12、通过Kubernetes集群对请求解析出容器的存储资源需求,此步骤的存储资源申请需求包含的关键信息如下表1所示:
表1 关键信息
Figure 493115DEST_PATH_IMAGE004
所述S1中对用户创建Kubernetes容器的请求进行接收时,请求包含存储容量大小的需求值。
S2、按照容器所需的存储资源进行资源调度,并给该容器进行Kubernetes宿主机的预分配;
其中,如图2所示,所述S2中按照容器所需的存储资源进行资源调度,并给该容器进行Kubernetes宿主机的预分配还包括以下步骤:
S21、根据宿主机本地盘容量判断该宿主机本地盘是否满足存储容量的需求值,并筛选出可分配容器所需存储容量的宿主机列表(由自定义的scheduler extender插件按照卷容量、本地盘标识的需求对宿主机进行过滤,过滤掉不满足这两个需求的宿主机);
过滤的判断逻辑符合如下算法1:
算法1:评估宿主机容量资源
Input:包含可用本地盘容量信息的宿主机列表,NEitems;容器存储容量的需求值,DNsize;
Output: 满足容器所需存储容量的需求值的宿主机列表,NEfree;
1. for Node,Disksize in NEitems
2. if Disksize >= DNsize then
3. NEfree = append(NEfree,Node)
4. end if
5. end for
其中,若某个宿主机Disksize>=DNsize,则将通过NEfree=append(NEfree,Node)将该宿主机加入满足存储容量需求的列表NEfree中;若不满足,则将该宿主机过滤掉。
S22、再按宿主机本地盘容量、本地盘权重等信息对筛选出的宿主机列表中各个宿主机本地盘进行打分,并选择出分值最低的宿主机作为容器存储资源的预分配节点,从而得到能满足Pod申请需求的宿主机列表信息。
所述S22中对筛选出的宿主机列表中各个宿主机进行打分时,打分规则按如下公式:
Figure 245170DEST_PATH_IMAGE005
其中,Local_Disk_Size表示宿主机的本地盘剩余可用容量,单位为字节;Local_Disk_Size /109表示将宿主机的本地盘剩余可用容量的单位换算成GB;Disk_Weight表示宿主机的本地盘的权重值,该值>=1,默认值为1,本地盘的Disk_Weight值越小,该盘的空间越会优先被分配出去。
参考此打分规则公式,如下表2所示,为若干本地盘可用空间满足Pod PV 申请需求的宿主机节点打分分值列表:
表2 分值列表
Figure 67633DEST_PATH_IMAGE006
S3、对容器所申请的持久卷(PV)请求进行预处理(查询步骤S1中为申请PV的容器预分配的宿主机信息);
其中,所述S3中对容器所申请的持久卷请求进行预处理时,具体查询步骤S2中预分配节点的可调用的gRPC(由Google 发起的一种开源远程过程调用系统,该系统基于HTTP/2 协议传输)接口地址,且通过读取接收到的PV创建请求,获取容器的唯一标识,同时使用该标识访问Kubernetes获取到预分配的宿主机IP(网络之间互联协议)地址。
S4、将容器所申请的持久卷请求发送至预分配的宿主机;
其中,所述S4中将容器所申请的持久卷请求发送至预分配的宿主机时,通过宿主机IP和端口向该宿主机上的本地盘管理接口发生创建存储卷的请求。
S5、通过宿主机进行持久卷所需存储卷(Volume)的创建;
其中,如图3所示,所述S5中通过宿主机进行持久卷所需存储卷的创建还包括以下步骤:
S51、接受容器所申请持久卷的存储卷创建请求;
S52、解析该存储卷创建需求,并获得用于该存储卷创建的VG(卷组)、容量大小及文件系统类型等,其中,该文件系统类型包括xfs和ext4;
S53、在VG卷组上,创建需求大小的存储卷(创建指定容量大小的存储卷);
S54、按步骤S52所解析出的文件系统类型,对该存储卷进行格式化;
其中,所用到的卷管理命令如下:
Figure DEST_PATH_IMAGE007
其中,Vol_Size为存储卷的大小,默认单位为m,Vol_Name为存储卷名称,VG_Name为本地盘的VG名称。
S6、将该存储卷进行挂载,并给用户所创建的容器使用;
其中,如图4所示,所述S6中将该存储卷进行挂载,并给用户所创建的容器使用还包括以下步骤:
S61、将创建的所述存储卷信息以CreateVolumeResponse(CSI提供的一种用于创建Volume的返回消息格式)消息格式返回给Kubernetes;
S62、由Kubernetes给申请该PV Volume的容器预分配的宿主机发起创建容器的指令(即发送运行该Pod的指令);
S63、宿主机开始创建该容器,并在给Pod挂载存储时,通过调用宿主机存储访问模块的Volume挂载接口将存储卷从宿主机操作系统层映射到容器中使用(即将该Volume提供给Pod容器使用)。
结合附图5,根据本发明的另一方面,提供了一种基于本地盘的容器存储资源动态分配的系统,该系统包括:容器存储资源预分配模块、存储资源分配调度模块、宿主机本地盘管理模块及宿主机存储访问模块;
其中,所述容器存储资源预分配模块,用于对具备本地盘存储资源的宿主机进行是否满足容器存储资源需求的过滤,并对满足需求的宿主机本地盘存储资源进行打分,从而保证容器能够被分配到满足其存储资源需求的宿主机上;
所述存储资源分配调度模块,用于根据接受到的容器所需创建、删除持久卷的存储卷信息,查找出预分配宿主机本地盘管理模块的gRPC接口地址,并将容器存储请求发送给宿主机本地盘管理模块,从而及时将容器侧对Volume的创建/删除的请求及时发送给宿主机本地盘管理模块;
所述宿主机本地盘管理模块,用于提供宿主机本地盘存储资源的创建、删除、修改、查询等接口,并为其他功能模块提供接口调用服务;
所述宿主机存储访问模块,用于将该宿主机本地盘为容器分配的存储卷资源挂载到Kubernetes容器中,供其使用;
其中,所述宿主机包括裸金属服务器、私有云虚拟机及公有云弹性云服务器等中的至少一种。
该系统还包括调度器扩展单元、控制器服务单元、本地盘管理单元及节点服务单元;
所述调度器扩展单元,通过对Kubernetes Scheduler Extender调度器扩展功能的拓展,实现容器存储资源预分配模块的功能。首先实现对宿主机节点的过滤,然后再对拥有本地盘的宿主机进行打分。并按步骤S2中的打分规则进行打分,保证为所需创建的容器预分配到最小得分的宿主机。在系统部署过程中,为了本单元能够正常被Kubernetes默认调度器所调度,需要提供如下文本内容所示的配置文件:
{
"kind" :"Policy",
"apiVersion" :"v1",
"extenders":
[{
"urlPrefix":"http://127.0.0.1:9251",
"filterVerb":"predicate",
"prioritizeVerb":"prioritize",
"nodeCacheCapable":false,
"weight":1,
"managedResources":
[{
"name":"csi.diselvm.io/capacity",
"ignoredByScheduler":true
}]
}]
}
所述控制器服务单元,通过实例化Kubernetes的CSI Controller(控制器)的部分接口功能,实现存储资源分配调度模块的功能。主要包括创建Volume、删除Volume及查询所申请PV对应容器被预分配的主机信息等功能,其运行的Pod类型为deployment(一种Kubernetes的Pod类型)。
所述本地盘管理单元,主要实现宿主机本地盘管理模块的功能。通过gRPC接口服务,对其他单元提供本地盘资源的创建、删除、状态查询等接口功能。此单元对Volume名称的命名采用UUID(通用唯一识别码)的方式保证其唯一性,创建出的Volume名称诸如“be3f426c-b404-4546-8515-a6e9ab04f5e2”的格式。
所述节点服务单元,通过实例化Kubernetes的CSI Node(节点)的部分接口功能,实现存储资源访问模块的功能,提供将Volume,并将该Volume挂载Pod容器中供其使用。
综上所述,借助于本发明的上述技术方案,本发明采用的对宿主机的本地盘存储资源筛选方法,能够有效的对宿主机本地盘存储资源进行过滤,筛选掉无法满足容器对存储资源需求的宿主机,避免了在存储卷创建阶段因本地盘容量不足所引起的创建失败,保证了能够成功为容器动态分配宿主机本地盘的存储资源。本发明采用对宿主机本地盘容量和分配权重的打分方法,在能够成功为容器动态分配宿主机本地盘的存储资源的基础上,通过该打分策略,实现按空间最少使用的策略对宿主机本地盘资源进行分配,同时兼顾容量过大(按步骤S22的公式,打分大于10的均采用10)和过小(按步骤S22的公式,打分小于0的均采用0),提高了对宿主机本地盘资源打分的灵活性,避免因随机分配导致的若干宿主机的本地盘可用空间不均匀的情况,保证了基于宿主机本地盘的容器存储资源分配的均衡性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于本地盘的容器存储资源动态分配的方法,其特征在于,该方法包括以下步骤:
S1、对用户创建Kubernetes容器的请求进行接收;
S2、按照容器所需的存储资源进行资源调度,并给该容器进行Kubernetes宿主机的预分配;
S3、对容器所申请的持久卷请求进行预处理;
S4、将容器所申请的持久卷请求发送至预分配的宿主机;
S5、通过宿主机进行持久卷所需存储卷的创建;
S6、将该存储卷进行挂载,并给用户所创建的容器使用;
其中,所述S2中按照容器所需的存储资源进行资源调度,并给该容器进行Kubernetes宿主机的预分配还包括以下步骤:
S21、根据宿主机本地盘容量判断该宿主机本地盘是否满足存储容量的需求值,并筛选出可分配容器所需存储容量的宿主机列表;
S22、对筛选出的宿主机列表中各个宿主机进行打分,并选择出分值最低的宿主机作为容器存储资源的预分配节点;所述S22中对筛选出的宿主机列表中各个宿主机进行打分时,打分规则按如下公式:
Figure 719570DEST_PATH_IMAGE002
其中,Local_Disk_Size表示宿主机的本地盘剩余可用容量,单位为字节;Local_Disk_Size/ 109表示将宿主机的本地盘剩余可用容量的单位换算成GB;Disk_Weight表示宿主机的本地盘的权重值,该值>=1,默认值为1,本地盘的Disk_Weight值越小,该盘的空间越会优先被分配出去;
所述S5中通过宿主机进行持久卷所需存储卷的创建还包括以下步骤:
S51、接受容器所申请持久卷的存储卷创建请求;
S52、解析该存储卷创建需求,并获得用于该存储卷的VG卷组、容量大小及文件系统类型,其中,该文件系统类型包括xfs和ext4;
S53、在VG卷组上,创建需求大小的存储卷;
S54、按步骤S52所解析出的文件系统类型,对该存储卷进行格式化;
其中,所用到的卷管理命令如下:
Figure DEST_PATH_IMAGE003
其中,Vol_Size为存储卷的大小,默认单位为m,Vol_Name为存储卷名称,VG_Name为本地盘的VG名称。
2.根据权利要求1所述的一种基于本地盘的容器存储资源动态分配的方法,其特征在于,所述S1中对用户创建Kubernetes容器的请求进行接收还包括以下步骤:
S11、通过Kubernetes集群实时监听用户向Kubernetes发起的Pod的创建请求;
S12、通过Kubernetes集群对请求解析出容器的存储资源需求。
3.根据权利要求2所述的一种基于本地盘的容器存储资源动态分配的方法,其特征在于,所述S1中对用户创建Kubernetes容器的请求进行接收时,请求包含存储容量大小的需求值。
4.根据权利要求1所述的一种基于本地盘的容器存储资源动态分配的方法,其特征在于,所述S3中对容器所申请的持久卷请求进行预处理时,具体查询步骤S2中预分配节点的可调用的gRPC接口地址,且通过读取接收到的PV创建请求,获取容器的唯一标识,同时使用该标识访问Kubernetes获取到预分配的宿主机IP地址。
5.根据权利要求1所述的一种基于本地盘的容器存储资源动态分配的方法,其特征在于,所述S4中将容器所申请的持久卷请求发送至预分配的宿主机时,通过宿主机IP和端口向该宿主机上的本地盘管理接口发生创建存储卷的请求。
6.根据权利要求1所述的一种基于本地盘的容器存储资源动态分配的方法,其特征在于,所述S6中将该存储卷进行挂载,并给用户所创建的容器使用还包括以下步骤:
S61、将创建的所述存储卷信息返回给Kubernetes;
S62、由Kubernetes给宿主机发起创建容器的指令;
S63、宿主机创建该容器,并在存储挂载阶段,将存储卷从宿主机操作系统层映射到容器中使用。
7.一种基于本地盘的容器存储资源动态分配的系统,用于实现权利要求1-6任一项的所述一种基于本地盘的容器存储资源动态分配的方法,其特征在于,该系统包括:容器存储资源预分配模块、存储资源分配调度模块、宿主机本地盘管理模块及宿主机存储访问模块;
其中,所述容器存储资源预分配模块,用于对具备本地盘存储资源的宿主机进行是否满足容器存储资源需求的过滤,并对满足需求的宿主机本地盘存储资源进行打分;
所述存储资源分配调度模块,用于根据接受到的容器所需创建、删除持久卷的存储卷信息,查找出预分配宿主机本地盘管理模块的gRPC接口地址,并将容器存储请求发送给宿主机本地盘管理模块;
所述宿主机本地盘管理模块,用于提供宿主机本地盘存储资源的创建、删除、修改、查询接口,并为其他功能模块提供接口调用服务;
所述宿主机存储访问模块,用于将该宿主机本地盘为容器分配的存储卷资源挂载到Kubernetes容器中,供其使用;
其中,所述宿主机包括裸金属服务器、私有云虚拟机及公有云弹性云服务器中的至少一种。
CN202111206877.2A 2021-10-18 2021-10-18 一种基于本地盘的容器存储资源动态分配的方法和系统 Active CN113641311B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111206877.2A CN113641311B (zh) 2021-10-18 2021-10-18 一种基于本地盘的容器存储资源动态分配的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111206877.2A CN113641311B (zh) 2021-10-18 2021-10-18 一种基于本地盘的容器存储资源动态分配的方法和系统

Publications (2)

Publication Number Publication Date
CN113641311A CN113641311A (zh) 2021-11-12
CN113641311B true CN113641311B (zh) 2022-02-01

Family

ID=78427139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111206877.2A Active CN113641311B (zh) 2021-10-18 2021-10-18 一种基于本地盘的容器存储资源动态分配的方法和系统

Country Status (1)

Country Link
CN (1) CN113641311B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391952B (zh) * 2021-06-07 2022-03-11 北京同创永益科技发展有限公司 一种云原生环境基于lvm快照的自动化备份方法
CN114461149B (zh) * 2022-02-09 2023-03-24 镁佳(北京)科技有限公司 一种基于K8s的分布式数据存储方法及装置
CN114756170B (zh) * 2022-04-02 2023-03-24 苏州空天信息研究院 一种面向容器应用的存储隔离系统及其方法
CN114816272B (zh) * 2022-06-23 2022-09-06 江苏博云科技股份有限公司 Kubernetes环境下的磁盘管理系统
CN115017117B (zh) * 2022-08-05 2022-11-11 浩鲸云计算科技股份有限公司 一种基于本地盘的容器文件系统在线扩容的方法和系统
CN115525425B (zh) * 2022-09-16 2024-05-14 中国电信股份有限公司 基于云原生技术的联邦学习计算引擎编排方法及其设备
CN118012598A (zh) * 2022-11-10 2024-05-10 中兴通讯股份有限公司 存储资源管理的方法、管理平台、业务系统、介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193504A (zh) * 2017-06-02 2017-09-22 郑州云海信息技术有限公司 一种基于Kubernetes的自动化分配和创建应用存储的方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106873921A (zh) * 2017-03-24 2017-06-20 努比亚技术有限公司 一种多分区外置存储设备的挂载方法及装置
KR20200105582A (ko) * 2019-02-28 2020-09-08 에스케이브로드밴드주식회사 컨테이너를 활용한 가상 데스크탑 시스템 및 그 데이터 처리 방법
US11467775B2 (en) * 2019-10-15 2022-10-11 Hewlett Packard Enterprise Development Lp Virtual persistent volumes for containerized applications
US11550513B2 (en) * 2020-01-24 2023-01-10 Vmware, Inc. Global cache for container images in a clustered container host system
CN111666158A (zh) * 2020-06-23 2020-09-15 中信银行股份有限公司 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备
CN113010265A (zh) * 2021-03-16 2021-06-22 建信金融科技有限责任公司 Pod的调度方法、调度器、存储插件及系统
CN113504954B (zh) * 2021-07-08 2024-02-06 华云数据控股集团有限公司 调用CSI LVM Plugin插件、动态持久卷供应的方法、系统及介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193504A (zh) * 2017-06-02 2017-09-22 郑州云海信息技术有限公司 一种基于Kubernetes的自动化分配和创建应用存储的方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KubCG: A dynamic Kubernetes scheduler for heterogeneous clusters;Ghofrane El Haj Ahmed等;《Software: Practice and Experience》;20210228;第51卷(第2期);第213-234页 *
基于Kubernetes的监控和调度技术研究;魏饴;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20210215;I137-22 *

Also Published As

Publication number Publication date
CN113641311A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
CN113641311B (zh) 一种基于本地盘的容器存储资源动态分配的方法和系统
US11218364B2 (en) Network-accessible computing service for micro virtual machines
CN108984560B (zh) 文件存储方法及装置
US7623547B2 (en) Internet protocol address management system and method
US10834140B1 (en) Public service network job processing
US8370481B2 (en) Inventory management in a computing-on-demand system
US20200401452A1 (en) Using multidimensional metadata tag sets to determine resource allocation in a distributed computing environment
KR100974149B1 (ko) 네임스페이스에 대한 정보 유지 방법, 시스템 및 컴퓨터 판독가능 저장 매체
US7257635B2 (en) System and method for describing and automatically managing resources
US7171459B2 (en) Method and apparatus for handling policies in an enterprise
CN112532675B (zh) 一种网络边缘计算系统的创建方法、装置及介质
US7444395B2 (en) Method and apparatus for event handling in an enterprise
CN113687795A (zh) 一种实现有状态应用的存储卷隔离性分配的方法和系统
US20080239985A1 (en) Method and apparatus for a services model based provisioning in a multitenant environment
EP3664420A1 (en) Managing address spaces across network elements
CN114788227A (zh) 使用动态标记和清单的灵活策略语义扩展
US8782372B2 (en) Method, system and program product for storing downloadable content on a plurality of enterprise storage system (ESS) cells
US20060126636A1 (en) Internet protocol address management system and method
CN109005071B (zh) 一种决策部署方法和调度设备
CN116032614A (zh) 容器网络微隔离方法、装置、设备和介质
CN115618409A (zh) 数据库云服务生成方法、装置、设备及可读存储介质
WO2021248972A1 (zh) 默认网关管理方法、网关管理器、服务器及存储介质
CN115017117B (zh) 一种基于本地盘的容器文件系统在线扩容的方法和系统
CN115174529A (zh) 一种网络处理方法、装置、电子设备及存储介质
US20060168108A1 (en) Methods and systems for defragmenting subnet space within an adaptive infrastructure

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