CN116450287A - 业务容器存储容量的管理方法、装置、设备及可读介质 - Google Patents
业务容器存储容量的管理方法、装置、设备及可读介质 Download PDFInfo
- Publication number
- CN116450287A CN116450287A CN202310272533.4A CN202310272533A CN116450287A CN 116450287 A CN116450287 A CN 116450287A CN 202310272533 A CN202310272533 A CN 202310272533A CN 116450287 A CN116450287 A CN 116450287A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- cloud hard
- service container
- capacity
- index
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000002085 persistent effect Effects 0.000 claims description 23
- 230000009467 reduction Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 230000008602 contraction Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供的业务容器存储容量的管理方法、装置、设备及可读介质,属于计算机技术领域。所述方法包括:按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标;查询所述使用指标相对应的指标阈值范围;在所述使用指标超出所述指标阈值范围时,获取所述使用指标与所述指标阈值范围之间的比对结果;基于所述比对结果对所述业务容器所挂载的云硬盘进行伸缩调整。
Description
技术领域
本申请属于计算机技术领域,特别涉及一种业务容器存储容量的管理方法、装置、设备及可读介质。
背景技术
业务应用普遍运行在容器中,受限于容器存储空间等限制,业务往往需要挂载云端块存储设备(以下简称云硬盘)到容器内,现有技术能力下,一个容器内某个挂载点路径只能单独挂载一块云硬盘使用,不具备水平伸缩云硬盘数量的能力。
单块云硬盘的容量上限和IO上限有一定的阈值,在某些业务应用场景,挂载一块云硬盘,很难满足实际业务场景,因此需要挂载多块云硬盘组成一个逻辑设备来提供更高的带宽和更大的容量。在真实的业务环境里,业务负载压力是实时变化的,比如往往白天时段的负载较高,夜间时段的负载较低。
发明内容
本申请提供的一种业务容器存储容量的管理方法、装置、设备及可读介质。
本申请一些实施例提供一种业务容器存储容量的管理方法,所述方法包括:
按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标;
查询所述使用指标相对应的指标阈值范围;
在所述使用指标超出所述指标阈值范围时,获取所述使用指标与所述指标阈值范围之间的比对结果;
基于所述比对结果对所述业务容器所挂载的云硬盘进行伸缩调整。
可选地,所述基于所述容器调整参数对所述业务容器所挂载的云硬盘进行伸缩调整,包括:
在所述比对结果表征所述使用指标大于所述指标阈值范围的上限时,对所述业务容器所挂载的云硬盘执行缩容操作;
在所述比对结果表征所述使用指标小于所述指标阈值范围的下限时,对所述业务容器所挂载的云硬盘执行扩容操作。
可选地,所述对所述业务容器所挂载的云硬盘执行扩容操作,包括:
基于所述比对结果确定所需的扩容硬盘数量;
基于所述扩容硬盘数量创建新的云硬盘;
将所述新的云硬盘连接到所述业务容器。
可选地,所述基于所述扩容硬盘数量创建新的云硬盘,包括:
在所述容器平台为Kubernetes平台时,在持久卷声明中打上水平扩容开启的注释;
调用虚拟设备管理程序基于所述扩容硬盘数量为新的云硬盘创建物理机设备对;
所述将所述新的云硬盘连接到所述业务容器,包括:
将所述新的云硬盘的物理卷加入到卷组中,将所述新的云硬盘的物理卷加入到逻辑卷中;
控制所述业务容器加载所述新的云硬盘。
可选地,所述基于所述比对结果确定所需的扩容硬盘数量,包括:
利用所述使用指标减去所述指标阈值范围的上限,并对所得到的差值向上取整,得到扩容硬盘数量。
可选地,所述对所述业务容器所挂载的云硬盘执行缩容操作,包括:
在所述业务容器重建之前,基于所述比对结果确定所需的缩容硬盘数量;
基于所述缩容硬盘数量调整所述业务容器的云硬盘配置;
基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘;
创建所述业务容器。
可选地,所述基于所述比对结果确定所需的缩容硬盘数量,包括:
利用所述指标阈值范围的下限减去所述使用指标,并对所得到的差值取整,得到缩容硬盘数量。
可选地,所述基于所述缩容硬盘数量调整所述业务容器的云硬盘配置,包括:
在所述容器平台为Kubernetes平台时,调用虚拟机设备管理程序将所述业务容器的云硬盘配置中的云硬盘数量调整至所述云硬盘缩容数量;
所述基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘,包括:
在持久卷声明中打上水平缩容开启的注释,基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘。
可选地,在所述按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标之前,所述方法还包括:
为所述业务容器创建动态存储类配置文件,所述存储类配置文件至少包括:扩缩容开关参数、虚拟设备单位、所述指标阈值范围。
可选地,所述指标阈值范围包括:容量阈值范围、吞吐量阈值范围、读写量阈值范围中的至少一种。
可选地,所述存储类配置文件在包含所述指标阈值范围时,每个所述云硬盘存在与之一一对应的指标阈值范围。
可选地,在所述按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标之前,所述方法还包括:
为所述业务容器创建持久卷声明,所述持久卷声明至少包括:所述存储类配置文件、云硬盘空间大小;
在创建应用负载时,向所述云硬盘的服务端请求创建符合所述云硬盘空间大小的云硬盘;
将所述云硬盘挂载到所述业务容器上。
本申请一些实施例提供一种业务容器存储容量的管理装置,所述装置包括:
监控模块,用于按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标;
判断模块,用于查询所述使用指标相对应的指标阈值范围;
在所述使用指标超出所述指标阈值范围时,获取所述使用指标与所述指标阈值范围之间的比对结果;
伸缩模块,用于基于所述比对结果对所述业务容器所挂载的云硬盘进行伸缩调整。
可选地,所述伸缩模块,还用于:
在所述比对结果表征所述使用指标大于所述指标阈值范围的上限时,对所述业务容器所挂载的云硬盘执行缩容操作;
在所述比对结果表征所述使用指标小于所述指标阈值范围的下限时,对所述业务容器所挂载的云硬盘执行扩容操作。
可选地,所述伸缩模块,还用于:
基于所述比对结果确定所需的扩容硬盘数量;
基于所述扩容硬盘数量创建新的云硬盘;
将所述新的云硬盘连接到所述业务容器。
可选地,所述伸缩模块,还用于:
在所述容器平台为Kubernetes平台时,在持久卷声明中打上水平扩容开启的注释;
调用虚拟设备管理程序基于所述扩容硬盘数量为新的云硬盘创建物理机设备对;
将所述新的云硬盘的物理卷加入到卷组中,将所述新的云硬盘的物理卷加入到逻辑卷中;
控制所述业务容器加载所述新的云硬盘。
可选地,所述伸缩模块,还用于:
利用所述使用指标减去所述指标阈值范围的上限,并对所得到的差值向上取整,得到扩容硬盘数量。
可选地,所述伸缩模块,还用于:
在所述业务容器重建之前,基于所述比对结果确定所需的缩容硬盘数量;
基于所述缩容硬盘数量调整所述业务容器的云硬盘配置;
基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘;
创建所述业务容器。
可选地,所述伸缩模块,还用于:
利用所述指标阈值范围的下限减去所述使用指标,并对所得到的差值取整,得到缩容硬盘数量。
可选地,所述伸缩模块,还用于:
在所述容器平台为Kubernetes平台时,调用虚拟机设备管理程序将所述业务容器的云硬盘配置中的云硬盘数量调整至所述云硬盘缩容数量;
在持久卷声明中打上水平缩容开启的注释,基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘。
可选地,所述伸缩模块,还用于:
为所述业务容器创建动态存储类配置文件,所述存储类配置文件至少包括:扩缩容开关参数、虚拟设备单位、所述指标阈值范围。
可选地,所述指标阈值范围包括:容量阈值范围、吞吐量阈值范围、读写量阈值范围中的至少一种。
可选地,所述存储类配置文件在包含所述指标阈值范围时,每个所述云硬盘存在与之一一对应的指标阈值范围。
可选地,所述装置还包括:配置模块,用于:
为所述业务容器创建持久卷声明,所述持久卷声明至少包括:所述存储类配置文件、云硬盘空间大小;
在创建应用负载时,向所述云硬盘的服务端请求创建符合所述云硬盘空间大小的云硬盘;
将所述云硬盘挂载到所述业务容器上。
本申请一些实施例提供一种计算处理设备,包括:
存储器,其中存储有计算机可读代码;
一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行如上述的业务容器存储容量的管理方法。
本申请一些实施例提供一种非瞬态计算机可读介质,存储计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行上述的业务容器存储容量的管理方法。
本申请提供的一种业务容器存储容量的管理方法、装置、设备及可读介质,通过监控业务容器所挂载云硬盘的使用指标,在使用指标超出指标阈值范围时,自动依据使用指标和指标阈值范围之间的比对结果对云硬盘执行水平伸缩操作来调整云硬盘的数量,从而可以适用于业务情高效且便捷地对业务容器所挂载云硬盘的数量进行调整。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了本申请一些实施例提供的一种业务容器存储容量的管理方法的流程示意图;
图2示意性地示出了本申请一些实施例提供的一种业务容器存储容量的管理方法的逻辑示意图;
图3示意性地示出了本申请一些实施例提供的一种业务容器存储容量的管理方法的代码示意图之一;
图4示意性地示出了本申请一些实施例提供的一种业务容器存储容量的管理方法的代码示意图之二;
图5示意性地示出了本申请一些实施例提供的一种业务容器存储容量的管理装置的结构示意图;
图6示意性地示出了用于执行根据本申请一些实施例的方法的计算处理设备的框图;
图7示意性地示出了用于保持或者携带实现根据本申请一些实施例的方法的程序代码的存储单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示意性地示出了本申请提供的一种业务容器存储容量的管理方法的流程示意图,所述方法包括:
步骤101,按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标。
步骤102,查询所述使用指标相对应的指标阈值范围。
步骤103,在所述使用指标超出所述指标阈值范围时,获取所述使用指标与所述指标阈值范围之间的比对结果。
步骤104,基于所述比对结果对所述业务容器所挂载的云硬盘进行伸缩调整。
需要说明的是,容器平台是容器云平台指的是依靠容器技术,结合云原生技术,采用容器、容器编排、服务网格,无服务等技术构建的一种轻量化PaaS平台,目标是支撑企业数字化,构建相应的数字云平台。例如Kubernetes、Flink、Spark、TensorFlow、Serverless等,均可适用于本申请实施例,具体可以根据实际需求设置,此处不做限定。业务容器是一种便携式软件单元,可将应用及其所有依赖项合并为一个软件包,该软件包不受底层主机操作系统限制。云硬盘是一种虚拟块存储服务,主要为弹性云服务器和裸金属服务器提供块存储空间。
在本申请实施例中,系统按照例如30s、40s、1min等目标周期对容器平台上所使用的业务容器所挂载云硬盘进行轮询监控,获取云硬盘在使用过程中所涉及的数据传输、数据存储、数据处理等方面可能涉及的使用指标,该使用指标可以是例如云硬盘的bps(吞吐量)、可使用空间、空间利用率、IOPS(Input/OutputOperationsPerSecond,每秒读写量)等等,具体可以根据实际需求设置,此处不做限定。可以理解,云硬盘在业务容器的运行过程中可能由于硬盘数量不合适,导致存储资源浪费或者存储资源不足的现象出现,因此需要对使用指标进行监控来选择对云硬盘进行平行缩容的时机。
进一步的,系统对于不同的使用指标设置有相对应的指标阈值范围,该指标阈值范围限定有每个使用指标的最大上限取值和最小下限取值,若使用指标超出该指标阈值范围,则表明云硬盘的数量已不适用于当前的负载需求,需要对业务容器所挂载的云硬盘的数量进行缩容或者扩容。
具体的,可基于使用指标与指标阈值范围的数值关系来确定是对云硬盘执行缩容操作还是扩容操作,以及确定所需调整的云硬盘的数量。此处主要依据不同使用参数来设置调整逻辑,对于与云硬盘的数量呈正相关关系的使用指标,可在该使用指标超过指标阈值范围的上限值时通过扩容操作来降低使用指标回归到指标阈值范围内,在该使用指标低于指标阈值范围的下限值时,通过缩容操作来提升使用指标回归到指标阈值范围内。例如对于空间利用率,在其超过空间利用率阈值范围的上限值时,可通过扩容操作增加云硬盘数量来使得每个云硬盘上所需承载的数据量减少,从而降低空间利用率至空间利用率阈值范围内,在其低于空间利用率阈值范围的下限值时,可通过缩容操作减少云硬盘数量来使得每个云硬盘所需承载的数据量增加,从而提高空间可利用率至空间利用率阈值范围内。
反之,对于与云硬盘的数量呈负相关关系的使用指标,可在该使用指标超过指标阈值范围的线上值时,通过缩容操作来提升使用指标回归到指标阈值范围内,在该使用指标低于指标阈值范围的下限值时,通过扩容操作来降低使用指标回归到指标阈值范围内。例如对于可使用空间比例,在其低于可使用空间比例阈值范围的下限值时,可通过扩容操作增加云硬盘数量来使得每个云硬盘上所需承载的数据量减少,从而降低可使用空间比例至可使用空间比例阈值范围内,在其超过可使用空间比例阈值范围的上限值时,可通过缩容操作减少云硬盘数量来使得每个云硬盘所需承载的数据量增加,从而提高空间可利用率至可使用空间比例阈值范围内。当然上述仅是示例性描述,具体的使用指标和指标阈值范围之间的逻辑关系可基于实际需求设置,此处不做限制。
本申请实施例通过监控业务容器所挂载云硬盘的使用指标,在使用指标超出指标阈值范围时,自动依据使用指标和指标阈值范围之间的比对结果对云硬盘执行水平伸缩操作来调整云硬盘的数量,从而可以适用于业务情高效且便捷地对业务容器所挂载云硬盘的数量进行调整。
可选的,所述步骤104,包括:
步骤1041,在所述比对结果表征所述使用指标大于所述指标阈值范围的上限时,对所述业务容器所挂载的云硬盘执行缩容操作。
步骤1042,在所述比对结果表征所述使用指标小于所述指标阈值范围的下限时,对所述业务容器所挂载的云硬盘执行扩容操作。
在本申请实施例中,系统可基于比对结果所表征指标阈值范围与使用指标之间的数值关系,自动确定是对业务容器所挂载云硬盘执行缩容操作还是执行扩容操作,无需用户手动干预和调整业务容器挂载的云硬盘数量,可在业务高峰时段实时调整云硬盘的数量,满足业务对存储容量、读写性能的需求,在业务负载较低时缩写云硬盘数量,从而减少预算。
可选地,在所述步骤101之前,所述方法还包括:
步骤C1,为所述业务容器创建持久卷声明,所述持久卷声明至少包括:所述存储类配置文件、云硬盘空间大小。
步骤C2,在创建应用负载时,向所述云硬盘的服务端请求创建符合所述云硬盘空间大小的云硬盘。
步骤C3,将所述云硬盘挂载到所述业务容器上。
在本申请实施例中,使用指标可以是总存储容量、已使用的存储容量、IOPS和吞吐量中的至少一种。如图2所示,本申请在基于原生Kubernetes平台的动态存储类StorageClass和容器存储接口CSI中,提出了水平存储自动扩缩容的技术方案和实现,它由hsa-controller、hsa-webhook、hsa-agent三个模块构成。具体流程如图2所示,对应工作流程和实现细节描述如下:
(1)当用户希望为业务容器开启水平云盘扩容时,先创建一份动态存储类如图3的Storageclass(存储类)配置文件,在其parameters(配置参数)中,核心配置参数如下:hsa:true,表示开启水平自动扩缩容;devicesInit:2(设备单位),以2为例,表示初始状态只创建2块云硬盘以组成Linux虚拟设备;threshold_capacity(阈值-容量):80%,存储容量达到80%时自动触发扩容;threshold_bps(吞吐量):95%,吞吐量达到95%时自动触发扩容;threshold_iops(Input/OutputOperationsPerSecond,每秒读写量):95%,iops达到95%时自动触发扩容。因为不同云厂商提供的云硬盘的单盘吞吐量和iops略有差异,且各个云尝试提供的云硬盘API(ApplicationProgrammingInterface,应用程序编程接口)在功能上也有所差异,为了自动扩容的精确性,用户可以根据各个云尝试的官网文档,填写对应云硬盘的单盘bps和iops上限,以图3为例,用户选择使用SSD(SolidStateDisk,固态硬盘)类型的云硬盘,则建议在Storageclass的parameters中如下两个参数:bps_max:200MB/s,iops_max:10000,如果未填写,可以先尝试查询该云尝试的块存储服务API,去查询SSD这种类型的云硬盘的吞吐量上限和iops上限,查询不到则根据默认配置策略来确定单盘的最大吞吐量和iops。
(2)用户创建持久卷声明(PersistentVolumeClaim,PVC)(如图4),在持久卷声明中,关键配置参数为storageclassname,用于关联步骤(1)中创建的动态存储类;size:20,以20为例,用于表示创建的所有的云硬盘大小是20G;
(3)用户在创建应用负载的时候,选择步骤(2)中的持久卷声明;
(4)用户创建了应用负载并提交到KubernetesAPIServer,CSIController服务收到该请求并解析其中的parameters,当解析到hsa的值为true时,进一步获取devicesInit:2、diskType:ssd、size:20三个关键参数,将这些参数值封装到创建云硬盘的API请求中,向云服务提供商申请创建2块20G大小的ssd云硬盘;
(5)创建完所有的云硬盘后,CSIController服务调用云服务商的云硬盘AttachAPI,将所有的云硬盘都Attach(添加)到业务容器所在的计算节点;
(6)CSIDriver服务收到业务容器的挂载请求并解析其中的parameters,当hsa为true时,则调用lvcreate(用于创建逻辑卷,这是lvm技术中最常用的命令)创建lvm(LogicalVolumeManager,逻辑卷管理)。
可选地,所述步骤1042,包括:
步骤A1,基于所述比对结果确定所需的扩容硬盘数量。
步骤A2,基于所述扩容硬盘数量创建新的云硬盘。
步骤A3,将所述新的云硬盘连接到所述业务容器。
可选地,所述步骤A2,包括:
步骤A21,在所述容器平台为Kubernetes平台时,在持久卷声明中打上水平扩容开启的注释。
步骤A22,调用虚拟设备管理程序基于所述扩容硬盘数量为新的云硬盘创建物理机设备对。
在本申请实施例中,hsa-controller模块定期轮训各个节点上由Kubelet提供的MetricsAPI,其中包含volume_pvc_xxx_used和volume_pvc_xxx_total两个关键指标,计算得到存储空间使用率,并通过持久卷声明pvc的名字pvc_xxx,通过KuberneteswatchAPI查询该pvc对应的动态存储类storageclass,解析得到其配置的阈值,如果使用率小于该阈值,则跳过该轮训周期,如果使用率大于该阈值,则进入在线水平扩容流程;如果用户之前配置了threshold_bps或者threshold_iops,则hsa-controller也会对轮训到的bps和iops进行判断,如果实际值大于storageclass中配置的阈值,则同样进入水平扩容流程;
在线水平扩容流程:hsa-controller模块根据磁盘空间使用率和阈值,推导出需要多少磁盘空间才可以将利用率降低到阈值之下,其推导公式为:sizeNeed=volume_pvc_xxx_total*(磁盘空间使用率-阈值)。接着对sizeNeed进行向上取10的整数倍,得到最终需要的sizeNeed后,调用创建云硬盘的API,并将新建的云硬盘Attach到该计算节点,紧接着,调用KubernetesAPI,为该PVC打上hsa_expand_completed:true的annotation(注释);hsa-agent监听到该PVC的更新事件,检查pvc中包含hsa_expand_completed:true的annotation,则调用Linux虚拟设备lvm管理程序的pvcreate(pvcreate命令用于创建物理卷设备将该pv(PhysicalVolume(物理卷)就是实体磁盘利用fdisk等软件,将他们的ID改为LVM(8e)并修改磁盘的相关信息,让他们成为LVM可用的磁盘)加入vg(VolumeGroup,卷组)、调用lvextend(lvextend命令用于逻辑卷在线扩容)将新加入的pv扩展到lv中、调用resize2fs(resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小)完成文件系统的扩容,至此,水平存储自动扩容完成了;针对bps和iops触发的水平扩容流程和上述流程一致。
可选地,所述步骤A3,包括:
步骤A31,将所述新的云硬盘的物理卷加入到卷组中,将所述新的云硬盘的物理卷加入到逻辑卷中。
步骤A32,控制所述业务容器加载所述新的云硬盘。
可选地,所述A1,包括:利用所述使用指标减去所述指标阈值范围的上限,并对所得到的差值向上取整,得到扩容硬盘数量。
可选地,所述步骤1041,包括:
步骤B1,在所述业务容器重建之前,基于所述比对结果确定所需的缩容硬盘数量。
步骤B2,基于所述缩容硬盘数量调整所述业务容器的云硬盘配置。
步骤B3,基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘。
步骤B4,创建所述业务容器。
可选地,所述步骤B1,包括:利用所述指标阈值范围的下限减去所述使用指标,并对所得到的差值取整,得到缩容硬盘数量。
可选地,所述步骤B2,包括:在所述容器平台为Kubernetes平台时,调用虚拟机设备管理程序将所述业务容器的云硬盘配置中的云硬盘数量调整至所述云硬盘缩容数量。
所述步骤B3,包括:在持久卷声明中打上水平缩容开启的注释,基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘。
在本申请实施例中,限于当前缩容技术会对存储的数据带来不可控的风险,只有storageclass的参数配置中同时包含hsa:true和scaledown(按比例缩小):true时才会启动水平自动缩容,缩容比较适合无状态类的且业务方在变更工作负载之前自身具有数据冗余和备份能力的场景;水平自动缩容引入了hsa-webhook模块,该模块用于拦截创建应用负载容器的请求,并进行一定到鉴权和逻辑判断,在本申请实施例中主要用于判断是否应该进行水平自动缩容并做相应的逻辑处理。鉴于当前Linux虚拟设备的缩容能力尚不成熟,申请实施例涉及的水平自动缩容,不是在线缩容,以防止对业务数据的损坏,只有业务发起容器重建的变更时,水平自动缩容流程才会启动;具体流程如下,hsa-webhook监听所有的业务负载容器新建的事件,当该容器关联了pvc时,hsa-webhook会判断pvc对应的storageclass是否包含hsa:true的字段,如果不包含则跳过webhook,如果包含,则会调用hsa-controller中存储的该pvc的存储空间利用率信息,如果发现历史利用率远远低于其storageclass配置的阈值,则计算可释放的云硬盘数量,计算公式为volume_pvc_xxx_total*(阈值-磁盘空间使用率)/PVC中的size,并取整,例如,100*(80%—10%)/10=7,表示总共有10块10G的云硬盘,可释放7块云硬盘空间;hsa-webhook将pv资源中记录的云硬盘Id列表中的后7个Id封装到Detach云硬盘和删除云硬盘的API中,对这些盘进行Detach和删除操作,需要注意的是,此刻还不能Detach和删除云硬盘,需要节点上的hsa-agent先缩容,所以,这里hsa-webhook调用KubernetesAPI,为该PVC打上hsa_reduce_completed:pending的annotation;hsa-agent监听到该PVC的更新事件,检查包含hsa_reduce_completed:true的annotation,则调用Linux虚拟设备管理程序执行resize2fsvgname30G,表示缩小到30G,然后执行lvreduce-L-70G,表示缩小70G、执行pvremove(删除)对应到云硬盘即可,完成这些系统调用后,hsa-agent调用KubernetesAPI更新该PVC的hsa_reduce_completed为true;hsa-webhook监听到该更新事件后,才真正的执行云硬盘的Detach和删除操作,至此,水平缩容的流程执行完成,hsa-webhook流程一旦结束,业务应用的工作负载容器进入调度队列,开始调度和容器的创建。
可选地,在所述步骤101之前,所述方法还包括:为所述业务容器创建动态存储类配置文件,所述存储类配置文件至少包括:扩缩容开关参数、虚拟设备单位、所述指标阈值范围。
可选地,所述指标阈值范围包括:容量阈值范围、吞吐量阈值范围、读写量阈值范围中的至少一种。
可选地,所述存储类配置文件在包含所述指标阈值范围时,每个所述云硬盘存在与之一一对应的指标阈值范围。
图5示意性地示出了本申请提供的一种业务容器存储容量的管理装置20的结构示意图,所述装置包括:
监控模块201,用于按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标;
判断模块202,用于查询所述使用指标相对应的指标阈值范围;
在所述使用指标超出所述指标阈值范围时,获取所述使用指标与所述指标阈值范围之间的比对结果;
伸缩模块203,用于基于所述比对结果对所述业务容器所挂载的云硬盘进行伸缩调整。
可选地,所述伸缩模块203,还用于:
在所述比对结果表征所述使用指标大于所述指标阈值范围的上限时,对所述业务容器所挂载的云硬盘执行缩容操作;
在所述比对结果表征所述使用指标小于所述指标阈值范围的下限时,对所述业务容器所挂载的云硬盘执行扩容操作。
可选地,所述伸缩模块203,还用于:
基于所述比对结果确定所需的扩容硬盘数量;
基于所述扩容硬盘数量创建新的云硬盘;
将所述新的云硬盘连接到所述业务容器。
可选地,所述伸缩模块203,还用于:
在所述容器平台为Kubernetes平台时,在持久卷声明中打上水平扩容开启的注释;
调用虚拟设备管理程序基于所述扩容硬盘数量为新的云硬盘创建物理机设备对;
将所述新的云硬盘的物理卷加入到卷组中,将所述新的云硬盘的物理卷加入到逻辑卷中;
控制所述业务容器加载所述新的云硬盘。
可选地,所述伸缩模块203,还用于:
利用所述使用指标减去所述指标阈值范围的上限,并对所得到的差值向上取整,得到扩容硬盘数量。
可选地,所述伸缩模块203,还用于:
在所述业务容器重建之前,基于所述比对结果确定所需的缩容硬盘数量;
基于所述缩容硬盘数量调整所述业务容器的云硬盘配置;
基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘;
创建所述业务容器。
可选地,所述伸缩模块203,还用于:
利用所述指标阈值范围的下限减去所述使用指标,并对所得到的差值取整,得到缩容硬盘数量。
可选地,所述伸缩模块203,还用于:
在所述容器平台为Kubernetes平台时,调用虚拟机设备管理程序将所述业务容器的云硬盘配置中的云硬盘数量调整至所述云硬盘缩容数量;
在持久卷声明中打上水平缩容开启的注释,基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘。
可选地,所述伸缩模块203,还用于:
为所述业务容器创建动态存储类配置文件,所述存储类配置文件至少包括:扩缩容开关参数、虚拟设备单位、所述指标阈值范围。
可选地,所述指标阈值范围包括:容量阈值范围、吞吐量阈值范围、读写量阈值范围中的至少一种。
可选地,所述存储类配置文件在包含所述指标阈值范围时,每个所述云硬盘存在与之一一对应的指标阈值范围。
可选地,所述装置还包括:配置模块,用于:
为所述业务容器创建持久卷声明,所述持久卷声明至少包括:所述存储类配置文件、云硬盘空间大小;
在创建应用负载时,向所述云硬盘的服务端请求创建符合所述云硬盘空间大小的云硬盘;
将所述云硬盘挂载到所述业务容器上。
本申请实施例通过监控业务容器所挂载云硬盘的使用指标,在使用指标超出指标阈值范围时,自动依据使用指标和指标阈值范围之间的比对结果对云硬盘执行水平伸缩操作来调整云硬盘的数量,从而可以适用于业务情高效且便捷地对业务容器所挂载云硬盘的数量进行调整。
以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的计算处理设备中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在非瞬态计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图6示出了可以实现根据本申请的方法的计算处理设备。该计算处理设备传统上包括处理器310和以存储器320形式的计算机程序产品或者非瞬态计算机可读介质。存储器320可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器320具有用于执行上述方法中的任何方法步骤的程序代码331的存储空间330。例如,用于程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个程序代码331。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图7所述的便携式或者固定存储单元。该存储单元可以具有与图6的计算处理设备中的存储器320类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码331’,即可以由例如诸如310之类的处理器读取的代码,这些代码当由计算处理设备运行时,导致该计算处理设备执行上面所描述的方法中的各个步骤。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本申请的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种业务容器存储容量的管理方法,其特征在于,所述方法包括:
按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标;
查询所述使用指标相对应的指标阈值范围;
在所述使用指标超出所述指标阈值范围时,获取所述使用指标与所述指标阈值范围之间的比对结果;
基于所述比对结果对所述业务容器所挂载的云硬盘进行伸缩调整。
2.根据权利要求1所述的方法,其特征在于,所述基于所述容器调整参数对所述业务容器所挂载的云硬盘进行伸缩调整,包括:
在所述比对结果表征所述使用指标大于所述指标阈值范围的上限时,对所述业务容器所挂载的云硬盘执行缩容操作;
在所述比对结果表征所述使用指标小于所述指标阈值范围的下限时,对所述业务容器所挂载的云硬盘执行扩容操作。
3.根据权利要求2所述的方法,其特征在于,所述对所述业务容器所挂载的云硬盘执行扩容操作,包括:
基于所述比对结果确定所需的扩容硬盘数量;
基于所述扩容硬盘数量创建新的云硬盘;
将所述新的云硬盘连接到所述业务容器。
4.根据权利要求3所述的方法,其特征在于,所述基于所述扩容硬盘数量创建新的云硬盘,包括:
在所述容器平台为Kubernetes平台时,在持久卷声明中打上水平扩容开启的注释;
调用虚拟设备管理程序基于所述扩容硬盘数量为新的云硬盘创建物理机设备对;
所述将所述新的云硬盘连接到所述业务容器,包括:
将所述新的云硬盘的物理卷加入到卷组中,将所述新的云硬盘的物理卷加入到逻辑卷中;
控制所述业务容器加载所述新的云硬盘。
5.根据权利要求3所述的方法,其特征在于,所述基于所述比对结果确定所需的扩容硬盘数量,包括:
利用所述使用指标减去所述指标阈值范围的上限,并对所得到的差值向上取整,得到扩容硬盘数量。
6.根据权利要求2所述的方法,其特征在于,所述对所述业务容器所挂载的云硬盘执行缩容操作,包括:
在所述业务容器重建之前,基于所述比对结果确定所需的缩容硬盘数量;
基于所述缩容硬盘数量调整所述业务容器的云硬盘配置;
基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘;
创建所述业务容器。
7.根据权利要求6所述的方法,其特征在于,所述基于所述比对结果确定所需的缩容硬盘数量,包括:
利用所述指标阈值范围的下限减去所述使用指标,并对所得到的差值取整,得到缩容硬盘数量。
8.根据权利要求6所述的方法,其特征在于,所述基于所述缩容硬盘数量调整所述业务容器的云硬盘配置,包括:
在所述容器平台为Kubernetes平台时,调用虚拟机设备管理程序将所述业务容器的云硬盘配置中的云硬盘数量调整至所述云硬盘缩容数量;
所述基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘,包括:
在持久卷声明中打上水平缩容开启的注释,基于所述云硬盘配置卸载和删除所述业务容器挂载的云硬盘。
9.根据权利要求4或8所述的方法,其特征在于,在所述按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标之前,所述方法还包括:
为所述业务容器创建动态存储类配置文件,所述存储类配置文件至少包括:扩缩容开关参数、虚拟设备单位、所述指标阈值范围。
10.根据权利要求9所述的方法,其特征在于,所述指标阈值范围包括:容量阈值范围、吞吐量阈值范围、读写量阈值范围中的至少一种。
11.根据权利要求9所述的方法,其特征在于,所述存储类配置文件在包含所述指标阈值范围时,每个所述云硬盘存在与之一一对应的指标阈值范围。
12.根据权利要求9所述的方法,其特征在于,在所述按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标之前,所述方法还包括:
为所述业务容器创建持久卷声明,所述持久卷声明至少包括:所述存储类配置文件、云硬盘空间大小;
在创建应用负载时,向所述云硬盘的服务端请求创建符合所述云硬盘空间大小的云硬盘;
将所述云硬盘挂载到所述业务容器上。
13.一种业务容器存储容量的管理装置,其特征在于,所述装置包括:
监控模块,用于按照目标周期循环获取容器平台中各个业务容器所挂载云硬盘的使用指标;
判断模块,用于查询所述使用指标相对应的指标阈值范围;
在所述使用指标超出所述指标阈值范围时,获取所述使用指标与所述指标阈值范围之间的比对结果;
伸缩模块,用于基于所述比对结果对所述业务容器所挂载的云硬盘进行伸缩调整。
14.一种计算处理设备,其特征在于,包括:
存储器,其中存储有计算机可读代码;
一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行如权利要求1-12中任一项所述的业务容器存储容量的管理方法。
15.一种非瞬态计算机可读介质,其特征在于,存储计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行如权利要求1-12中任一项的所述的业务容器存储容量的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310272533.4A CN116450287A (zh) | 2023-03-20 | 2023-03-20 | 业务容器存储容量的管理方法、装置、设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310272533.4A CN116450287A (zh) | 2023-03-20 | 2023-03-20 | 业务容器存储容量的管理方法、装置、设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116450287A true CN116450287A (zh) | 2023-07-18 |
Family
ID=87122924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310272533.4A Pending CN116450287A (zh) | 2023-03-20 | 2023-03-20 | 业务容器存储容量的管理方法、装置、设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450287A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708579A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN117032905A (zh) * | 2023-10-09 | 2023-11-10 | 天津卓朗昆仑云软件技术有限公司 | 容器集群与块存储的关联方法、系统及虚拟机 |
-
2023
- 2023-03-20 CN CN202310272533.4A patent/CN116450287A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708579A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN116708579B (zh) * | 2023-08-04 | 2024-01-12 | 浪潮电子信息产业股份有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN117032905A (zh) * | 2023-10-09 | 2023-11-10 | 天津卓朗昆仑云软件技术有限公司 | 容器集群与块存储的关联方法、系统及虚拟机 |
CN117032905B (zh) * | 2023-10-09 | 2024-01-23 | 天津卓朗昆仑云软件技术有限公司 | 容器集群与块存储的关联方法、系统及虚拟机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116450287A (zh) | 业务容器存储容量的管理方法、装置、设备及可读介质 | |
US10817386B2 (en) | Virtual machine recovery method and virtual machine management device | |
US20150324144A1 (en) | Virtual machine backup from storage snapshot | |
US10572184B2 (en) | Garbage collection in data storage systems | |
US9940331B1 (en) | Proactive scavenging of file system snaps | |
CN110908609B (zh) | 一种磁盘处理的方法、系统、设备及可读存储介质 | |
CN109960517B (zh) | 镜像文件的制作方法、装置、系统及存储介质 | |
CN109582649B (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
US20150127661A1 (en) | Rapid cloud-based image centralization | |
WO2016148738A1 (en) | File management | |
CN107301090B (zh) | 在存储服务器中为应用设置数据处理路径的方法及装置 | |
US20210182151A1 (en) | User-based recovery point objectives for disaster recovery | |
CN109947712A (zh) | 计算框架内自动合并文件的方法、系统、设备及介质 | |
US20180203636A1 (en) | Likelihood of access based object storage in a cloud environment | |
CN112579550B (zh) | 一种分布式文件系统的元数据信息同步方法及系统 | |
CN108363727A (zh) | 一种基于zfs文件系统的数据存储方法及装置 | |
CN112269530A (zh) | 一种数据存储管理方法及相关装置 | |
US20210181945A1 (en) | User-based recovery point objectives for disaster recovery | |
CN114153395B (zh) | 一种对象存储数据生命周期管理方法、装置及设备 | |
CN109101843A (zh) | 一种归档数据安全存储方法和装置 | |
CN106909472B (zh) | 一种分布式文件系统的输入/输出负载调整方法及装置 | |
CN115469980A (zh) | 一种产品介质下载任务调度方法、装置及电子设备 | |
US11531642B2 (en) | Synchronous object placement for information lifecycle management | |
US10474535B2 (en) | Asset browsing and restoration over a network using on demand staging | |
CN112162949A (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 |