CN113110918A - 读写速率管控方法、装置、节点设备及存储介质 - Google Patents

读写速率管控方法、装置、节点设备及存储介质 Download PDF

Info

Publication number
CN113110918A
CN113110918A CN202110522854.6A CN202110522854A CN113110918A CN 113110918 A CN113110918 A CN 113110918A CN 202110522854 A CN202110522854 A CN 202110522854A CN 113110918 A CN113110918 A CN 113110918A
Authority
CN
China
Prior art keywords
read
equipment
write rate
control
container
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
Application number
CN202110522854.6A
Other languages
English (en)
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.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya 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 Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202110522854.6A priority Critical patent/CN113110918A/zh
Publication of CN113110918A publication Critical patent/CN113110918A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/4557Distribution 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供的读写速率管控方法、装置、节点设备及存储介质,方法应用于节点设备,节点设备上配置有至少一个容器组;容器组内的容器被配置有资源限制内容;资源限制内容用于限制容器挂载的设备的读写速率;当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息;其中,管控配置数据是用户基于业务需求进行配置的;控制策略表征待管控设备的目标读写速率;根据控制策略和设备信息更改待管控设备对应的资源限制内容中的读写速率。本申请提避免了需要登录宿主机才能限制的弊端,能够实现边监控边更改的动态限制读写速率的效果。

Description

读写速率管控方法、装置、节点设备及存储介质
技术领域
本发明涉及容器技术领域,具体而言,涉及一种读写速率管控方法、装置、节点设备及存储介质。
背景技术
目前,为了应对多个业务的高并发场景,需要对设备的磁盘读写性能进行优化,保证不同业务之间的磁盘读写性能的稳定性,同时,随着业务高峰低谷的波动,需要一种可以即使生效的磁盘限制方案,提高用户对业务波动以及对磁盘性能优化的感知度。
容器化应用Kubernetes(简称K8s)结合应用容器引擎技术能够实现容器化集群内的磁盘读写(I/O)能力限制,但目前的限制方式要么不能做到动态限制,即不能达到及时限制及时生效的效果,要么就是只有运维人员登录宿主机进行底层逻辑修改才能完成,用户感知度低。
发明内容
有鉴于此,本发明的目的在于提供一种读写速率管控方法、装置、节点设备及存储介质,用以对设备的磁盘读写性能进行动态管控,保证不同业务之间的磁盘读写性能的稳定性。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种读写速率管控方法,应用于节点设备,所述节点设备上配置有至少一个容器组;所述容器组内的容器被配置有资源限制内容;所述资源限制内容用于限制所述容器挂载的设备的读写速率;当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息;其中,所述管控配置数据是用户基于业务需求进行配置的;所述控制策略表征所述待管控设备的目标读写速率;根据所述控制策略和设备信息更改所述待管控设备对应的资源限制内容中的读写速率。
可选地,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息,包括:解析所述管控配置数据,获取所述目标读写速率和所述待管控设备的路径信息;根据所述路径信息读取所述待管控设备的设备信息。
可选地,根据所述控制策略和设备信息更改所述资源限制内容中所述待管控设备对应的读写速率,包括:根据所述设备信息和所述控制策略生成所述待管控设备对应的读写速率限制内容;根据生成的所述读写速率限制内容更改所述资源限制内容中所述待管控设备对应的读写速率。
可选地,在根据生成的所述读写速率限制内容更改所述待管控设备对应的资源限制内容之前,所述方法还包括:获取所述待管控设备所在容器的容器标识以及所述容器所在容器组的容器组标识;根据所述容器标识和所述容器组标识确定所述待管控设备对应的资源限制内容的路径信息。
可选地,在所述节点设备上部署有管控组件;所述方法包括:通过所述管控组件监听所述容器组的配置状态是否被更改。
第二方面,本发明提供读写速率管控装置,应用于节点设备,所述节点设备上配置有至少一个容器组;所述容器组内具有多个容器;所述容器配置有读写速率控制文件;所述读写速率控制文件用于维护所述容器上挂载的设备的读写速率管控信息;包括:监听模块,用于当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息;其中,所述管控配置数据是用户基于业务需求进行配置的;所述控制策略表征所述待管控设备的目标读写速率;更改模块,用于根据所述控制策略和设备信息更改所述待管控设备对应的资源限制内容中的读写速率。
可选地,监听模块,具体用于:解析所述管控配置数据,获取所述目标读写速率和所述待管控设备的路径信息;根据所述路径信息读取所述待管控设备的设备信息。
可选地,更改模块,具体用于:根据所述设备信息和所述控制策略生成所述待管控设备对应的读写速率限制内容;根据生成的所述读写速率限制内容更改所述资源限制内容中所述待管控设备对应的读写速率。
可选地,监听模块,还用于获取所述待管控设备所在容器的容器标识以及所述容器所在容器组的容器组标识;根据所述容器标识和所述容器组标识确定所述待管控设备对应的资源限制内容的路径信息。
可选地,监听模块,还用于通过所述管控组件监听所述容器组的配置信息是否被更改。
第三方面,本发明提供一种节点设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现第一方面所述的方法。
第四方面,本发明提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
本发明提供一种读写速率管控方法、装置、节点设备及存储介质,方法应用于节点设备,所述节点设备上配置有至少一个容器组;所述容器组内的容器被配置有资源限制内容;所述资源限制内容用于限制所述容器挂载的设备的读写速率;当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息;其中,所述管控配置数据是用户基于业务需求进行配置的;所述控制策略表征所述待管控设备的目标读写速率;根据所述控制策略和设备信息更改所述待管控设备对应的资源限制内容中的读写速率。
本发明与现有技术的区别在于,现有技术无法将限制方案体现在容器组的元数据中,难以维护和管理,并且只有运维人员登录到宿主上才能进行操作,用户(尤其是业务人员)感知度低,无法做到动态修改,需要容器重启才能修改生效。而本申请中节点设备的管控配置数据是由基于业务需求配置的,提高了用户感知度,避免了需要登录宿主机才能限制的弊端,一旦监听容器组的配置状态,就说明用户基于业务需求对容器组元数据配置进行了更改,实现将限制方案写入元数据的效果,方便维护和管理,另一方面,根据获得的管控配置数据可以获得控制策略的待管控设备的设备信息,进而可以根据管控策略修改资源限制内容中待管控设备的设备信息对应的读写速率,完成对读写速率的管控,从而实现边监控边更改的动态限制方案。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种K8s系统架构图;
图2为本发明实施例提供的一种读写速率管控方法的示意性流程图;
图3为本发明实施例提供的一种步骤S21的实现方式的示意性流程图;
图4为本发明实施例提供的一种读写速率限制声明的示例图;
图5为本发明实施例提供的一种步骤S22的实现方式的示意性流程图;
图6为本发明实施例提供的另一种步骤S22的实现方式的示意性流程图;
图7为本发明实施例提供的一种读写速率管控装置的功能模块图;
图8为本发明实施例提供的一种节点设备结构框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
目前,为了应对多个业务的高并发场景,需要对设备的磁盘读写性能进行优化,保证不同业务之间的磁盘读写(I/O)性能的稳定性,同时,随着业务高峰低谷的波动,需要一种可以即使生效的磁盘限制方案,提高用户对业务波动以及对磁盘性能优化的感知度。
对于高并发场景来说,现在一般都在使用容器集群管理工具,最流行的是容器化应用Kubernetes(以下简称K8s),因为它能管理大规模的容器集群,极大地降低了容器集群管理的成本,而且水平扩展容易,目前在K8s集群上管理磁盘资源是比较简单的,下面以K8s为例,详细介绍相关技术中对磁盘进行读写速率管控的实现方式和存在的技术问题。
首先对K8s技术涉及的相关技术名词进行解释,方便读者理解。
K8s:google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用K8s能方便管理跨集群运行容器化的应用。
Docker:一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。
Pod:K8s调度的最小单元,包含一个或者多个容器,相当于一个容器组,每个Pod拥有一个唯一的IP地址,在包含多个容器的时候,依然是拥有一个IP地址。一个Pod内的容器共享存储资源和网络,在同一台docker主机上运行。
容器(Container):容器是程序代码和其依赖关系在应用层的一个抽象。多个容器各自作为孤立的进程在同一台机器上的用户空间中运行,并共享操作系统内核。
自控制组群controlgroups(以下简称cgroups):cgroup是linux内核提供的一种资源限制的功能机制,它可以通过编辑文件的形式进行配置修改,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。目前主流的容器方案都是基于cgroup进行资源限制。而K8s目前只提供了cpu和内存的资源限制,通过K8s创建的容器无法直接通过cgroup限制容器的blkio读写。
blkiocgorup:linuxcgroup支持的多个子系统中的其中一种,这个子系统为块设备设定输入/输出限制,比如物理设备(磁盘,固态硬盘,USB等等)。
APIserver:APIserver负责对外提供RESTful的K8sAPI的服务,它是系统管理指令的统一接口,任何对资源的增删该查都要交给APIserver处理。
守护进程DaemonSet用于确保容器化集群中的每一个节点设备只运行特定的Pod副本,通常用于实现系统级后台任务。
结合上述技术基础,为了实现限制磁盘读写(I/O)速率的效果,现有技术往往在宿主机(容器集群中的节点设备)上修改底层blkiocgorup对应的资源限制配置数据来达到限制读写速率的效果,这种修改方虽然能够实现动态修改的目的,但是这种方式无法将限制方案体现在容器组的元数据中,难以维护和管理,并且只有运维人员登录到宿主上才能进行操作,用户(尤其是业务人员)感知度低。
现有技术还通过dockerapi可以在启动Pod时为某个容器的设置blkiocgroup的限制配置数据,但无法做到动态修改,需要容器重启才能修改生效。实际生产环境中也不会对用户直接暴露dockerapi。
由上述内容可知,为了应对多个业务的高并发场景而限制磁盘读写速率,现有技术要么不能做到动态限制,即不能达到及时限制及时生效的效果,要么就是只有运维人员登录宿主机进行底层逻辑修改才能完成,用户感知度低。
为了解决上述技术问题,本发明实施例提供了一种读写速率管控方法,该方法可以应用在上述K8s系统中,参见图1,图1为本发明实施例提供的一种K8s系统架构图。其中包括至少一个主节点(master)和多个工作节点(node)。在每个工作节点上运行有本申请实施例提出的监控守护组件(vscaled)。
在一些可能的实施例中,主节点上运行linux操作系统,可以是物理机或者虚拟机。为了实现高可用,在一个K8s系统中可以运行多个主节点。本申请实施例中主节点内可以运行有K8s应用接口服务(APIserver)以及其它实现容器管理的组件。具体地,APIserver负责对外提供RESTful接口的K8sAPI的服务,用户可以通过RESTful接口对node上的容器进行配置更改操作,将读写速率限制文件配置在容器元数据中,这样一来,一旦node上负责监控状态的组件监听到容器的配置发生改变,就会根据用户声明的读写速率配置文件来限制容器上挂载的设备的读写速率。
在一些可能的实施例中,工作节点node用于运行容器应用,由master管理,node负责监控并汇报容器的状态,node运行在linux的操作系统上,可以是物理机或者是虚拟机。
在本申请实施例中,工作节点配置有至少一个容器组(Pod);该容器组有可以有一个或者多个容器(Container),每个容器可以挂设备(例如磁盘)每个容器被配置有资源限制内容;资源限制内容可以但不限于用于限制容器上挂载的设备的读写速率、内存、CPU等;工作节点上还运行有监控守护组件(vscaled),该监控守护组件以守护进程(daemonset)形式部署在每一台node节点上,负责监听Pod的状态变化,当监听到用户的读写速率限制声明后,通过修改容器对应的资源控制配置数据达到读写速率的效果,不会侵入K8s核心代码。
结合上述系统架构,下面详细介绍本发明实施例提供的一种读写速率管控方法,该方法可以应用在图1所示的工作节点(node)上,请参见图2,图2为本发明实施例提供的一种读写速率管控方法的示意性流程图,该方法可以包括:
S21、当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息。
其中,上述的管控配置数据是用户基于业务需求进行配置的,在一些高并发的业务场景中,用户可以在部分io敏感型的业务场景下,我们对同一台宿主上的读写优先级不同的容器进行读写速率的限制,防止全部业务对磁盘带宽的占用比相同,难以保证不同业务之间的磁盘io稳定。用户可以通过以下方式进行配置。
第一种方式,由于主节点上运行有应用接口服务(APIserver)组件,APIserver负责对外提供RESTful接口的用户可以通过RESTful接口对node上的容器进行配置更改操作,将读写速率限制文件配置在容器元数据中。
第二种方式,用户还可以在主节点设备上利用kubectl命令行工具生成上述管控配置数据,其中,kubectl是管理K8s集群的命令行工具,从用户的角度来看,kubectl为用户提供的控制K8s的工具,允许用户执行所有可能的K8s操作,从技术角度来看,kubectl是K8sAPI的客户端,可以对K8sAPI执行HTTP请求。
可以理解的是,上述的待管控设备是挂载在容器上的磁盘设备,控制策略表征的磁盘设备的目标读速率和目标写速率,可以统称为IOPS(Input/OutputPerSecond)即每秒的输入输出量(或读写次数),单位可以是bps(bytes/s),IOPS是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量。
还可以理解的是,本申请实施例中的工作节点上运行有监控守护的管控组件(vscaled),用于监听容器组(Pod)的配置状态变化。
S22、根据控制策略和设备信息更改待管控设备对应的资源限制内容中的读写速率。
可以理解的是,容器内的容器被配置有资源限制内容;资源限制内容用于限制容器挂载的设备的资源使用极值,包括但不限于读写速率值、内存等,资源限制内容是linux操作系统提供的一种资源限制机制。本方案的读写速率管控方案是linuxcgroup支持的多个子系统中的blkiocgorup。资源限制内容可以但不限于用来限制容器挂载的设备的读写速率。
与现有技术的区别在于,现有技术无法将限制方案体现在容器组的元数据中,难以维护和管理,并且只有运维人员登录到宿主上才能进行操作,用户(尤其是业务人员)感知度低,无法做到动态修改,需要容器重启才能修改生效。而本申请中节点设备的管控配置数据是由基于业务需求配置的,提高了用户感知度,避免了需要登录宿主机才能限制的弊端,一旦监听容器组的配置状态,就说明用户基于业务需求对容器组元数据配置进行了更改,实现将限制方案写入元数据的效果,方便维护和管理,另一方面,根据获得的管控配置数据可以获得控制策略的待管控设备的设备信息,进而可以根据管控策略修改资源限制内容中待管控设备的设备信息对应的读写速率,完成对读写速率的管控,从而实现边监控边更改的动态限制方案。
可选地,下面给出一种确定控制策略和设备信息的实现方式,请参见图3,图3为本发明实施例提供的一种步骤S21的实现方式的示意性流程图,步骤S21可以包括以下步骤:
S211、解析管控配置数据,获取目标读写速率和待管控设备的路径信息。
在一些可能的实施例中,用户通过主节点上的APIserver可以对容器Pod进行配置操作,将控制策略(也可以理解为读写速率限制声明)以json格式配置在容器组的元数据中(例如Pod.metadata.annotations),为了方便理解,请参见图4,图4为本发明实施例提供的一种读写速率限制声明的示例图。
从图4可以看出,用户声明了对容器组Pod中名为mysql的容器进行读写速率限制,限制的设备的路径信息为/dev/dm-1,分别设置了目标读速率和目标写速率的bps为10mb/s(10485760=1024*1024*10,bps限制的单位为bytes/s)。
在本申请实施例中,vscaled组件运行在每台宿主机,当监听到配置变化后,解析出上述配置,可以获得需要被管控的设备的目标读写速率和待管控设备的路径信息。
S212、根据路径信息读取待管控设备的设备信息。
在本发明实施例中,以工作节点1为例,vscaled组件启动时挂载的/dev目录,因此能过获得工作节点1上挂载的所有设备的视图,根据设备路径可以读取待管控设备(/dev/dm-1)的设备信息(syscall->devices),包括设备所用的驱动(major)和设备标识(minor)。
可选地,下面给出一种根据设备信息和控制策略修改待管控设备对应的资源限制内容的实现方式,请参见图5,图5为本发明实施例提供的一种步骤S22的实现方式的示意性流程图,步骤S22可以包括:
S221、根据设备信息和控制策略生成待管控设备对应的读写速率限制内容。
可以理解是,本方案的读写速率限制是基于linuxcgroup实现,是利用linuxcgroup支持的多个子系统中的blkiocgorup实现对指定设备的读写速率限制,读写速率限制内容(也就是blkiocgorup的内容)可以形如:101:10485760,就是设备信息为101的设备,限制读写速率在10485760(也就是就是10m/s)。
S224、根据生成的读写速率限制内容更改资源限制内容中待管控设备对应的读写速率。
可选地,在更改待管控设备对应的资源限制内容之前,需要先确定资源限制内容所在的位置,下面给出一种实现方式,请参见图6,图6为本发明实施例提供的另一种步骤S22的实现方式的示意性流程图,步骤S22还可以包括:
S222、获取待管控设备所在容器的容器标识以及容器所在容器组的容器组标识。
可以理解的是,容器组标识和容器标识都记录在容器组的元数据里,可以直接读取得到。
S223、根据容器标识和容器组标识确定待管控设备对应的资源限制内容的路径信息。
可以理解的是,blkiocgroup路径是K8s在创建容器时维护的,根据容器标识和容器组标识生成的。获得容器标识和容器组标识后,即可获得对应的blkiocgroup路径(devices->cgroup)。
本方案的读写速率管控方案是基于linuxcgroup支持的多个子系统中的blkiocgorup实现的,宿主机挂载Cgrouproot目录可以形如/sys/fs/cgroup,blkio子系统的路径为/sys/fs/cgroup/blkio,基于该路径信息,可以将上述的读写速率限制内容写入,形如/sys/fs/cgroup/blkio.throttle.write_bps_device…;/sys/fs/cgroup/blkio.throttle.write_bps_device…。
需要说明的是,本方案的读写速率限制是基于linuxcgroup实现,因此具体能限制的io类型取决于cgroup的版本,在主流的cgroupv1下,只能限制directIO(也就是直接从磁盘读数据或者直接将数据写入磁盘)而无法限制bufferIO(也就是将数据读写到缓冲区后根据匹配到的策略在读写磁盘),在cgroupv2下则可以同时限制bufferIO。本方案描述的流程是以cgroupv1为例。
在cgroupv1系统支持下,本发明技术方案支持的读写速率限制维度包括限制指定设备的读操作的iops、限制指定设备的写操作的iops、限制指定设备的读操作的bps和限制指定设备的写操作的bps。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种读写速率管控装置的实现方式,请参阅图7,图7为本发明实施例提供的一种读写速率管控装置的功能模块图。需要说明的是,本实施例所提供的读写速率管控装置,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该读写速率管控装置30包括:监听模块31和更改模块32;
监听模块31,用于当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息;
其中,所述管控配置数据是用户基于业务需求进行配置的;所述控制策略表征所述待管控设备的目标读写速率;
更改模块32,用于根据所述控制策略和设备信息更改所述待管控设备对应的资源限制内容中的读写速率。
可选地,监听模块31,具体用于:解析所述管控配置数据,获取所述目标读写速率和所述待管控设备的路径信息;根据所述路径信息读取所述待管控设备的设备信息。
可选地,更改模块32,具体用于:根据所述设备信息和所述控制策略生成所述待管控设备对应的读写速率限制内容;根据生成的读写速率限制内容更改资源限制内容中待管控设备对应的读写速率。
可选地,监听模块31,还用于获取所述待管控设备所在容器的容器标识以及所述容器所在容器组的容器组标识;根据所述容器标识和所述容器组标识确定所述待管控设备对应的资源限制内容的路径信息。
可选地,监听模块31,还用于通过所述管控组件监听所述容器组的配置信息是否被更改。
本发明实施例还提供一种电子设备,如图8,图8为本发明实施例提供的一种节点设备结构框图。该节点设备可以是图1所示的工作节点,该节点设备80包括通信接口801、处理器802和存储器803。该处理器802、存储器803和通信接口801相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器803可用于存储软件程序及模块,如本发明实施例所提供的基于读写速率管控方法对应的程序指令/模块,处理器802通过执行存储在存储器803内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口801可用于与其他节点设备进行信令或数据的通信。在本发明中该电子设备80可以具有多个通信接口801。
其中,存储器803可以是但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(ReadOnlyMemory,ROM),可编程只读存储器(ProgrammableRead-OnlyMemory,PROM),可擦除只读存储器(ErasableProgrammableRead-OnlyMemory,EPROM),电可擦除只读存储器(ElectricErasableProgrammableRead-OnlyMemory,EEPROM)等。
处理器802可以是一种集成电路芯片,具有信号处理能力。该处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图8所示的存储器中或固化于该节点设备的操作系统(OperatingSystem,OS)中,并可由图8中节点设备的处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器中。
本发明实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项读写速率管控。该计算机可读存储介质可以是,但不限于,U盘、移动硬盘、ROM、RAM、PROM、EPROM、EEPROM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种读写速率管控方法,其特征在于,应用于节点设备,所述节点设备上配置有至少一个容器组;所述容器组内的容器被配置有资源限制内容;所述资源限制内容用于限制所述容器挂载的设备的读写速率;
当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息;
其中,所述管控配置数据是用户基于业务需求进行配置的;所述控制策略表征所述待管控设备的目标读写速率;
根据所述控制策略和设备信息更改所述待管控设备对应的资源限制内容中的读写速率。
2.根据权利要求1所述的读写速率管控方法,其特征在于,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息,包括:
解析所述管控配置数据,获取所述目标读写速率和所述待管控设备的路径信息;
根据所述路径信息读取所述待管控设备的设备信息。
3.根据权利要求1所述的读写速率管控方法,其特征在于,根据所述控制策略和设备信息更改所述资源限制内容中所述待管控设备对应的读写速率,包括:
根据所述设备信息和所述控制策略生成所述待管控设备对应的读写速率限制内容;
根据生成的所述读写速率限制内容更改所述资源限制内容中所述待管控设备对应的读写速率。
4.根据权利要求3所述的读写速率管控方法,其特征在于,在根据生成的所述读写速率限制内容更改所述待管控设备对应的资源限制内容之前,所述方法还包括:
获取所述待管控设备所在容器的容器标识以及所述容器所在容器组的容器组标识;
根据所述容器标识和所述容器组标识确定所述待管控设备对应的资源限制内容的路径信息。
5.根据权利要求1至4任意一项所述的读写速率管控方法,其特征在于,在所述节点设备上部署有管控组件;所述方法包括:
通过所述管控组件监听所述容器组的配置状态是否被更改。
6.一种读写速率管控装置,其特征在于,应用于节点设备,所述节点设备上配置有至少一个容器组;所述容器组内具有多个容器;所述容器配置有读写速率控制文件;所述读写速率控制文件用于维护所述容器上挂载的设备的读写速率管控信息;包括:
监听模块,用于当监听到任意至少一个容器组的配置状态被更改,根据获取的管控配置数据获取待管控设备对应控制策略和设备信息;
其中,所述管控配置数据是用户基于业务需求进行配置的;所述控制策略表征所述待管控设备的目标读写速率;
更改模块,用于根据所述控制策略和设备信息更改所述待管控设备对应的资源限制内容中的读写速率。
7.根据权利要求6所述的读写速率管控装置,其特征在于,监听模块,具体用于:
解析所述管控配置数据,获取所述目标读写速率和所述待管控设备的路径信息;
根据所述路径信息读取所述待管控设备的设备信息。
8.根据权利要求6所述的读写速率管控装置,其特征在于,更改模块,具体用于:
根据所述设备信息和所述控制策略生成所述待管控设备对应的读写速率限制内容;
根据生成的所述读写速率限制内容更改所述资源限制内容中所述待管控设备对应的读写速率。
9.一种节点设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-5任一所述的方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
CN202110522854.6A 2021-05-13 2021-05-13 读写速率管控方法、装置、节点设备及存储介质 Pending CN113110918A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110522854.6A CN113110918A (zh) 2021-05-13 2021-05-13 读写速率管控方法、装置、节点设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110522854.6A CN113110918A (zh) 2021-05-13 2021-05-13 读写速率管控方法、装置、节点设备及存储介质

Publications (1)

Publication Number Publication Date
CN113110918A true CN113110918A (zh) 2021-07-13

Family

ID=76722468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110522854.6A Pending CN113110918A (zh) 2021-05-13 2021-05-13 读写速率管控方法、装置、节点设备及存储介质

Country Status (1)

Country Link
CN (1) CN113110918A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113867629A (zh) * 2021-09-08 2021-12-31 长沙市致存科技有限责任公司 存储器的数据读写方法、系统、终端设备以及存储介质
CN114816276A (zh) * 2022-06-29 2022-07-29 江苏博云科技股份有限公司 在Kubernetes下基于逻辑卷管理提供磁盘限速的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039954A (zh) * 2018-07-25 2018-12-18 广东石油化工学院 多租户容器云平台虚拟计算资源自适应调度方法及系统
CN111190719A (zh) * 2018-11-14 2020-05-22 北京京东尚科信息技术有限公司 优化集群资源分配的方法、装置、介质及电子设备
CN111258759A (zh) * 2020-01-13 2020-06-09 北京百度网讯科技有限公司 资源分配方法、装置以及电子设备
CN111651178A (zh) * 2020-05-27 2020-09-11 平安普惠企业管理有限公司 容器配置更新方法、装置、计算机设备和存储介质
CN112181764A (zh) * 2020-09-23 2021-01-05 南京南瑞继保电气有限公司 Kubernetes资源数据的监视方法及装置
CN112398914A (zh) * 2020-10-28 2021-02-23 武汉大势智慧科技有限公司 基于Kubernetes容器集群的云渲染平台
CN112416737A (zh) * 2019-08-21 2021-02-26 广州虎牙科技有限公司 一种容器的测试方法、装置、设备和存储介质
US20210081292A1 (en) * 2019-09-13 2021-03-18 EMC IP Holding Company LLC Managing containers on a data storage system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039954A (zh) * 2018-07-25 2018-12-18 广东石油化工学院 多租户容器云平台虚拟计算资源自适应调度方法及系统
CN111190719A (zh) * 2018-11-14 2020-05-22 北京京东尚科信息技术有限公司 优化集群资源分配的方法、装置、介质及电子设备
CN112416737A (zh) * 2019-08-21 2021-02-26 广州虎牙科技有限公司 一种容器的测试方法、装置、设备和存储介质
US20210081292A1 (en) * 2019-09-13 2021-03-18 EMC IP Holding Company LLC Managing containers on a data storage system
CN111258759A (zh) * 2020-01-13 2020-06-09 北京百度网讯科技有限公司 资源分配方法、装置以及电子设备
CN111651178A (zh) * 2020-05-27 2020-09-11 平安普惠企业管理有限公司 容器配置更新方法、装置、计算机设备和存储介质
CN112181764A (zh) * 2020-09-23 2021-01-05 南京南瑞继保电气有限公司 Kubernetes资源数据的监视方法及装置
CN112398914A (zh) * 2020-10-28 2021-02-23 武汉大势智慧科技有限公司 基于Kubernetes容器集群的云渲染平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈玉华: "如何玩转专利大数据—智慧容器助力专利分析与运营", 知识产权出版社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113867629A (zh) * 2021-09-08 2021-12-31 长沙市致存科技有限责任公司 存储器的数据读写方法、系统、终端设备以及存储介质
CN113867629B (zh) * 2021-09-08 2024-02-09 长沙市致存科技有限责任公司 存储器的数据读写方法、系统、终端设备以及存储介质
CN114816276A (zh) * 2022-06-29 2022-07-29 江苏博云科技股份有限公司 在Kubernetes下基于逻辑卷管理提供磁盘限速的方法
CN114816276B (zh) * 2022-06-29 2022-09-23 江苏博云科技股份有限公司 在Kubernetes下基于逻辑卷管理提供磁盘限速的方法

Similar Documents

Publication Publication Date Title
US20210216209A1 (en) Proactive Data Rebuild Based On Queue Feedback
US10831399B2 (en) Method and system for enabling agentless backup and restore operations on a container orchestration platform
CN105893139B (zh) 在云存储环境中用于向租户提供存储服务的方法和装置
KR102478395B1 (ko) 통지와 함께 백그라운드 활동을 효율적으로 관리하는 ssd를 위한 메카니즘
KR101930117B1 (ko) 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법
US9304815B1 (en) Dynamic replica failure detection and healing
US10528527B2 (en) File management in thin provisioning storage environments
US10860385B2 (en) Method and system for allocating and migrating workloads across an information technology environment based on persistent memory availability
JP2013509658A (ja) 将来の使用推量に基づく記憶メモリの割り当て
CN109992373B (zh) 资源调度方法、信息管理方法和装置及任务部署系统
CN110806911B (zh) 一种云桌面管控方法、装置及系统
US11914894B2 (en) Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system
CN113110918A (zh) 读写速率管控方法、装置、节点设备及存储介质
US20200379653A1 (en) Reclaiming free space in a storage system
CN112596762A (zh) 一种滚动升级方法及装置
CN115543548B (zh) 一种容器组的配置方法、装置、设备及可读存储介质
US9798483B2 (en) Object storage power consumption optimization
CN113377278A (zh) 固态硬盘、垃圾回收及控制方法、设备、系统及存储介质
US10613896B2 (en) Prioritizing I/O operations
CN108604231B (zh) 镜像处理方法以及计算设备
JP2021513137A (ja) 階層型ストレージ管理システムにおけるデータ・マイグレーション
CN116932196A (zh) 融合系统的数据处理方法、装置、设备和系统
US20210157507A1 (en) Storage alteration monitoring
US20200034445A1 (en) Techniques for limiting the maximum storage consumed by a file system without shrinking an underlying volume
WO2023024621A1 (en) Conditionally deploying a reusable group of containers for a job based on available system resources

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210713

RJ01 Rejection of invention patent application after publication