CN114090191A - 存储资源的调度方法、装置、设备及存储介质 - Google Patents

存储资源的调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114090191A
CN114090191A CN202111444739.8A CN202111444739A CN114090191A CN 114090191 A CN114090191 A CN 114090191A CN 202111444739 A CN202111444739 A CN 202111444739A CN 114090191 A CN114090191 A CN 114090191A
Authority
CN
China
Prior art keywords
storage
node
storage pool
scheduling
pool
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
CN202111444739.8A
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.)
Henan Xinghuan Zhongzhi Information Technology Co ltd
Original Assignee
Henan Xinghuan Zhongzhi Information 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 Henan Xinghuan Zhongzhi Information Technology Co ltd filed Critical Henan Xinghuan Zhongzhi Information Technology Co ltd
Priority to CN202111444739.8A priority Critical patent/CN114090191A/zh
Publication of CN114090191A publication Critical patent/CN114090191A/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/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
    • 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/45587Isolation or security of 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种存储资源的调度方法、装置、设备及存储介质,其中,该方法包括:当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。本发明实施例提供的技术方案可以保证云平台***存储资源的可控管理和调度,减少节点存储资源碎片,提升集群存储利用率。

Description

存储资源的调度方法、装置、设备及存储介质
技术领域
本发明实施例涉及资源调度技术,尤其涉及一种存储资源的调度方法、装置、设备及存储介质。
背景技术
在容器云平台***中,存储***按照部署方式分为两种:外部存储***和本地存储***。外部存储***与云平台***物理隔离,云平台***上的业务进程通过网络协议访问存储***;本地存储***与云平台***部署在同一个物理集群,云平台***中的业务直接通过IO栈访问本地存储***。由于网络带宽限制,相较于外部存储***,本地存储***在数据读写速率上有明显优势,因而成为专有容器云平台***常用的存储***。其中,本地存储***的特点在于,存储卷与节点的存储池一一绑定;Pod事件调度到某个节点后,其挂载的存储卷需要同步在存储池创建,否则业务容器会因为无法挂载存储卷而启动失败。
在使用本地存储***的集群上,Kubernetes原生调度框架有明显缺点:Pod事件在调度时不考虑节点是否有足够的存储资源,导致节点存储资源的分配失衡和碎片化,甚至由于存储资源不足导致Pod事件调度失败,或者调度成功之后由于存储卷没有创建而无法正常运行,严重影响存储资源规划、管理和调度。
发明内容
本发明实施例提供一种存储资源的调度方法、装置、设备及存储介质,可以保证云平台***存储资源的可控管理和调度,减少节点存储资源碎片,提升集群存储利用率。
第一方面,本发明实施例提供了一种存储资源的调度方法,包括:
当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;
将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;
基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
第二方面,本发明实施例还提供了一种存储资源的调度装置,包括:
存储池调度模块,用于当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;
预留模块,用于将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;
节点调度模块,用于基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
第三方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的方法。
本发明实施例提供的技术方案,通过基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池,将存储卷所消耗的容量在每个节点的存储池中进行扣减,得到存储池中剩余的可用存储资源;基于可用存储资源的属性信息确定pod事件调度到的目标节点,即在监听到pod事件时,进行存储卷的调度,在存储卷调度的基础上再进行pod事件的调度,通过双层调度,两者实现同步调度,保证云平台***存储资源的可控管理和调度,保证业务容器顺利运行,可以减少节点存储资源碎片,提升集群存储利用率。
附图说明
图1是本发明实施例提供的一种存储资源的调度方法流程图;
图2a是本发明实施例提供的一种存储资源的调度方法流程图;
图2b是本发明实施例提供的技术方案原理图;
图2c是本发明实施例提供的pod事件调度流程图;
图2d是存储卷调度流程图;
图3是本发明实施例提供的一种存储资源的调度装置结构框图;
图4是本发明实施例提供的电子设备结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
相关技术中,Kubernetes是一套基于容器技术并以Apache2.0许可协议发布的开源软件框架。在Kubernetes容器编排***中,Pod作为容器运行的最小逻辑单元,由调度器按照预选、优选算法调度到最优节点。原生调度器框架(Scheduler Framework v2)开放了调度周期的扩展点,允许内置和外置插件,调度程序插件可以注册在一个或多个扩展点。这样,使用者可以自定义插件集成到调度器,不需要侵入式修改。
基于该调度框架,Kubernetes原生的调度器针对中央处理器(CPU)和内存等***资源,内置了如下调度插件:NodeResourcesFit:检查节点是否拥有Pod请求的所有资源;NodeResourcesBalancedAllocation:调度Pod事件时,选择资源使用更为均衡的节点;NodeResourcesLeastAllocated:选择资源分配较少的节点;NodeResourcesMostAllocated:选择资源分配较多的节点,这些资源调度插件注册在过滤和打分的扩展点,目的是在保证满足业务Pod运行的前提下,让节点的CPU和内存资源使用更均衡,提高集群整体的资源利用率。但是Kubernetes原生调度框架有明显缺点:Pod事件在调度时不考虑节点是否有足够的存储资源,导致节点存储资源的分配失衡和碎片化,甚至由于存储资源不足导致Pod事件调度失败,或者调度成功之后由于存储卷没有创建而无法正常运行,严重影响存储资源规划、管理和调度。
为了解决上述问题,图1是本发明实施例提供的一种存储资源的调度方法流程图,所述方法可以由一种存储资源的调度装置来执行,所述装置可以由软件和/或硬件来实现,所述装置可以配置在调度器中,该调度器可以是配置在Kubernetes调度框架中,所述方法可以应用于对云平台中存储资源进行调度的情况。
如图1所示,本发明实施例提供的技术方案包括:
S110:当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池。
在本发明实施例中,当监听到pod事件时,开始进行pod调度流程,在pod调度过程中,可以先进行存储卷的调度。其中,可以通过调度器对pod事件进行监听。可选的,存储池的属性信息包括存储池的类型、容量以及其他属性信息等。
在本发明实施例的一个实施方式中,可选的,所述基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池,包括:将获取的存储池信息生成节点的缓存快照;将pod事件对应的存储卷加入到调度队列,从所述调度队列依次取出存储卷;针对每个节点,通过过滤插件将不满足所述存储卷所需条件的存储池进行过滤,得到候选的存储池;对候选的存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池。
在本发明实施例中,每个节点可以有对应的节点缓存,可以将存储池信息存储至节点缓存中,其中,节点缓存的信息可以只读不写,还可以将存储池信息生成节点的缓存快照,该缓存快照记录了存储池信息,可以进行读写,在存储卷调度的过程中可以更新,其中,存储池信息可以包括节点上存储池容量大小、存储池已经申请的容量大小、存储池的数量等。
在本发明实施例中,可以预先设置pod事件对应的存储卷,当监听到pod事件时,可以根据预先的设置确定pod事件对应的存储卷,可以是一个或者多个存储卷,将存储卷加入到调度队列,按照调度队列中的排列顺序对存储卷进行调度。在本发明实施例的一个实施方式中,可选的,所述将pod事件对应的存储卷加入到调度队列,包括:将pod事件对应的存储卷在调度队列中按照申请容量的大小进行排序。其中,可以将申请容量较大的存储卷加入到调度队列的前端,以进行优先调度。
在本发明实施例的一个实施方式中,可选的,所述针对每个节点,通过过滤插件将不满足所述存储卷所需条件的存储池进行过滤,包括:通过过滤插件将类型与所述存储卷的申请类型不符,且容量小于存储卷容量以及其他属性信息不满足所述存储卷的存储池进行过滤。其中,如果存储池的类型与存储卷的类型不匹配,则无法调度,则需要将该存储池进行过滤,不能作为候选的存储池;如果存储池的容量小于存储卷申请的容量大小,则无法调度,则需要将该存储池进行过滤,不能作为候选的存储池。可选的,除存储池类型和容量外,也可以根据存储池的其他属性信息进行过滤存储池。
在本发明实施例的一个实施方式中,可选的,对于候选的存储池,可以进行打分,基于分数选择存储卷调度到的存储池。可选的,所述对候选的存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池,包括:通过第一打分插件基于所述存储池的可用容量对每个节点的存储池进行打分,得到所述存储池的第一分数;通过第二打分插件基于所述存储池的使用率对每个节点的存储池进行打分,得到所述存储池的第二分数;基于所述第一分数以及所述第二分数确定所述存储池的总分数;在每个节点上,选择总分数最高的存储池作为所述存储卷调度到的存储池。其中,存储容量越大的存储池得分可以越高,使用率小的存储池可以得分越高;可选的,第一分数和第二分数的权重可以根据需要设置,从而得到存储池的总分数,在每个节点上选取总分数最高的存储池作为存储卷调度到的存储池。
S120:将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到存储池中剩余的可用存储资源。
在本发明实施例中,在完成存储卷的调度之后,需要将存储卷所消耗的容量在调度到的存储池中进行扣减,得到每个节点上存储池中剩余的可用存储资源,从而可以保证在下一个存储卷调度周期内,被预留的本次调度存储卷所消耗的存储池的存储空间不会被重复使用。
在本发明实施例的一个实施方式中,可选的,将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到存储池中剩余的可用存储资源,包括:通过预留插件将所述缓存快照中存储的存储池的容量扣减所述存储卷消耗的容量,以更新存储池中剩余的可用存储资源。其中,每个节点的缓存快照中可以记录存储池的信息,当存储池的容量发生改变时,可以修改缓存快照中存储池的信息,通过缓存快照中记录的存储池信息可以了解存储池的可用存储资源信息等,以便于进行下一周期的存储卷的调度。
S130:基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
在本发明实施例中,若所有存储卷调度完成,可以对每个节点上存储池的可用存储资源的判断,再进行pod事件的调度,使pod事件调度到目标节点,从而在该目标节点创建存储卷,并运行pod事件。
在本发明实施例中,可用存储资源的属性信息可以包括存储资源的可用容量、使用率以及其他属性信息。在本发明实施例的一个实施方式中,可选的,所述基于所述可用存储资源的属性信息确定pod事件调度到的目标节点,包括:通过第三打分插件基于所述可用存储资源的可用容量对所述可用资源进行打分,得到所述可用存储资源的第三分数;通过第四打分插件基于所述可用存储资源的使用率对所述可用资源进行打分,得到所述可用存储资源的第四分数;基于所述第三分数和所述第四分数确定可用存储资源的总分数;选取总分数最高的节点作为pod事件调度到的目标节点。其中,可用容量越大的存储池的得分越高,使用率越小的存储池得分越高,可以根据需要设置第三分数和第四分数的权重,从而计算可用存储资源的总分数;可选的,还可以采用自定义插件通过可用存储资源的其他属性信息进行打分,将得到的分数设置相应权重,与第三分数、第四分数一起计算可用存储资源的总分数,从而选取总分数最高的节点作为pod事件调度到的目标节点,在该目标节点上创建存储卷,并运行pod事件。
本发明实施例提供的技术方案,通过基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池,将存储卷所消耗的容量在每个节点的存储池中进行扣减,得到存储池中剩余的可用存储资源;基于可用存储资源的属性信息确定pod事件调度到的目标节点,即在监听到pod事件时,先进行存储卷的调度,在存储卷调度的基础上再进行pod事件的调度,通过双层调度,两者实现同步调度,保证云平台***存储资源的可控管理和调度,保证业务容器顺利运行,可以减少节点存储资源碎片,提升集群存储利用率。
图2a是本发明实施例提供的一种存储资源的调度方法流程图,在本实施例中,可选的,所述基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池,包括:
将获取的存储池信息生成节点的缓存快照;
将pod事件对应的存储卷加入到调度队列,从所述调度队列依次取出存储卷;
针对每个节点,通过过滤插件将不满足所述存储卷所需条件的存储池进行过滤,得到候选的存储池;
对候选的所述存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池;
相应的,将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到存储池中剩余的可用存储资源,包括:
通过预留插件将所述缓存快照中存储的存储池的容量扣减所述存储卷消耗的容量,以更新存储池中剩余的可用存储资源。
可选的,所述对候选的存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池,包括:
通过第一打分插件基于所述存储池的可用容量对每个节点的存储池进行打分,得到所述存储池的第一分数;
通过第二打分插件基于所述存储池的使用率对每个节点的存储池进行打分,得到所述存储池的第二分数;
基于所述第一分数以及所述第二分数确定所述存储池的总分数;
在每个节点上,选择总分数最高的存储池作为所述存储卷调度到的存储池。
可选的,所述基于所述可用存储资源的属性信息确定pod事件调度到的目标节点,包括:
通过第三打分插件基于所述可用存储资源的可用容量对所述可用存储资源进行打分,得到所述可用存储资源的第三分数;
通过第四打分插件基于所述可用存储资源的使用率对所述可用存储资源进行打分,得到所述可用存储资源的第四分数;
基于所述第三分数和所述第四分数确定可用存储资源的总分数;
选取总分数最高的节点作为pod事件调度到的目标节点。
可选的,在监听到pod事件之前,还包括:
获取集群中每个节点上存储池的信息,并将存储池的信息进行更新;
将所述存储池的信息更新至节点缓存中;
在基于所述可用存储资源的属性信息确定pod事件调度到的目标节点之后,还包括:
将存储池中剩余的可用存储资源更新至所述节点缓存中,以进行下一个Pod事件的调度。
如图2a所示,本发明实施例提供的技术方案包括:
S210:获取集群中每个节点上存储池的信息,并将存储池的信息进行更新。
在本发明实施例中,可以通过接口获取存储池的信息,其中,存储池的信息包括存储池数量、存储池容量大小、存储池已申请容量的大小。可选的,可以将存储池的信息进行更新,例如,可以更新到节点注释,节点可以是指Kubernetes对象Node,注释可以是NodeAnnotations字段。
S220:将所述存储池的信息更新至节点缓存中。
在本发明实施例中,每个节点有对应的节点缓存,可以将存储池的信息更新到节点缓存中,其中,节点缓存的信息可以只读不写。
S230:将获取的存储池信息生成节点的缓存快照。
S240:将pod事件对应的存储卷加入到调度队列,从所述调度队列依次取出存储卷。
S250:通过第一打分插件基于所述存储池的可用容量对每个节点的存储池进行打分,得到所述存储池的第一分数。
S260:通过第二打分插件基于所述存储池的使用率对每个节点的存储池进行打分,得到所述存储池的第二分数。
S270:基于所述第一分数以及所述第二分数确定所述存储池的总分数,在每个节点上,选择总分数最高的存储池作为所述存储卷调度到的存储池。
S280:通过预留插件将所述缓存快照中存储的存储池的容量扣减所述存储卷消耗的容量,以更新存储池中剩余的可用存储资源。
S290:通过第三打分插件基于所述可用存储资源的可用容量对所述可用资源进行打分,得到所述可用存储资源的第三分数。
S291:通过第四打分插件基于所述可用存储资源的使用率对所述可用资源进行打分,得到所述可用存储资源的第四分数。
S292:基于所述第三分数和所述第四分数确定可用存储资源的总分数,选取总分数最高的节点作为pod事件调度到的目标节点。
其中,S230-S292的介绍可以参考上述实施例的介绍。
S293:将存储池中剩余的可用存储资源更新至所述节点缓存中,以进行下一个Pod事件的调度。
在本发明实施例中,可以通过预绑定的插件从节点缓存中扣除存储卷所消耗的容量,即将存储池剩余的可用存储资源更新至节点缓存中,可以保证在下一个pod事件调度周期内,已经预留的本次调度消耗的容量不会被重复使用。
为了更清楚的表述本发明实施例提供的技术方案,本发明实施例提供技术方案具体如下:如图2b所示,本发明实施例在Kubernetes原生调度的基础上,增加存储卷调度,组成存储资源感知的双层调度框架。这两层调度框架的区别在于,第一层调度框架以Pod事件为调度对象,目的是将Pod事件调度到合适的节点;第二层调度框架以存储卷为调度对象,目的是将存储卷调度到合适的存储池。两层调度框架结合之后,业务容器和存储卷可以同步调度并创建,容器进程启动之后挂载存储卷,协同工作保证Pod事件成功运行。
其中,存储卷调度框架设计了过滤、打分和预留扩展点,算法通过扩展点注册插件的方式集成到框架中,调度程序插件可以注册在一个或多个扩展点。
图2c是本发明设计的存储资源的调度主流程图,即pod事件调度框架执行的流程图,包括如下的步骤:
(1)获取集群的存储信息。假设本地存储***已经实现接口可获取如下信息:存储池数量、存储池容量大小、存储池已申请的容量大小。
(2)更新到节点注释。这里的节点可以是Kubernetes对象Node,注释可以是指NodeAnnotations字段。为了保证存储资源的实时更新,本发明实施例将周期性执行步骤(1)(2),保证调度开始前获取实时的节点存储信息。
(3)初始化节点缓存。将节点的存储信息进行缓存至节点缓存中,只读不写。
(4)调度Pod。调度器监听到Pod创建的事件,开始Pod调度流程。
(5)执行过滤插件。在本发明实施例中,可以在过滤扩展点注册了名为“存储资源匹配”的插件,其功能是初始化二层存储卷调度框架,并执行已注册的调度插件。该插件的具体执行流程如图2d所示。
a)缓存快照。生成节点的缓存快照,该缓存快照可以读写,不影响全局节点状态。
b)待调度的存储卷加入调度队列。为减少存储池碎片,可以申请容量较大的存储卷加入到队列前端,优先调度。
c)从调度队列中取出一个存储卷,开始存储卷调度流程。
d)执行过滤插件。其中,可以过滤扩展点注册了多个插件,包括:
i:“存储池类型匹配”:如果存储池类型与申请存储卷类型不匹配,无法调度,不进入待选列表;
ii:“存储池容量匹配”:如果存储池可用容量小于存储卷的申请容量大小,无法调度,不进入待选列表;
iii:除存储池类型和容量外,也可根据存储池的其他属性,定义相应插件,注册到过滤扩展点。
e):执行打分插件,对待选列表中的存储池打分。打分权重可以自定义,以适应不同场景下的各异需求。在打分扩展点注册了多个插件(可以包括第一打分插件,第二打分插件),包括:
i:“最大存储池可用容量”:可用存储容量越大的存储池得分越高;
ii:“最小存储池使用率”:使用率越小的存储池得分越高;
iii:除存储池的可用容量和和使用率外,也可以根据存储池的其他属性,定义相应插件,注册到打分扩展点。
f)选择分数最高的存储池,作为存储卷调度的存储池。
g)执行预留插件。可以预留扩展点注册了名为“存储池容量匹配”的插件,功能是从缓存快照中消费已调度的存储池容量,保证在下一个存储卷调度周期内,已经被预留的存储空间不会被重复使用。
h)判断是否所有存储卷都完成调度。如全部调度完成,结束调度周期;反之,回到步骤c),从调度队列中取出下一个存储卷开始调度,知道所有存储卷调度完成。
(6)执行打分插件。可以在打分扩展点注册了多个插件(可以包括第三打分插件和第三打分插件),包括:
i:“最大存储可用容量”:可用存储资源越多的节点得分越高;
ii:“最小存储使用率”:存储资源使用率越小的节点得分越高;
iii:除存储可用容量和使用率外,也可以根据存储资源的其他属性,定义相应插件,注册到打分扩展点。
(7)选择分数最高的节点,成为Pod调度的目标节点。
(8)执行预绑定插件。本方案在预绑定扩展点注册了名为“存储容量匹配”的插件,从节点缓存中消费已调度的存储池容量,保证在下一个Pod调度周期内,已经被预留的存储空间不会被重复使用。
(9)调度结束。
由此,本发明实施例提供的技术方案,通过双层调度框架调度存储卷和pod事件,与现有的Kubernetes原生节点资源调度策略相比,弥补了原生调度策略对存储资源感知的缺失,使得Pod事件和所需存储卷同步调度、同步创建,二者协同工作保障业务容器的顺利运行,可以实现局部最优化调度,减少节点存储资源碎片,提升集群存储利用率,保障云平台存储资源的可控管理。
图3是本发明实施例提供的一种存储资源的调度装置结构框图,如图3所示,所述装置包括:存储池调度模块310、预留模块320和节点调度模块330。
存储池调度模块310,用于当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;
预留模块320,用于将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;
节点调度模块330,用于基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
可选的,所述基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池,包括:
将获取的存储池信息生成节点的缓存快照;
将pod事件对应的存储卷加入到调度队列,从所述调度队列依次取出存储卷;
针对每个节点,通过过滤插件将不满足所述存储卷所需条件的存储池进行过滤,得到候选的存储池;
对候选的所述存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池;
相应的,将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到存储池中剩余的可用存储资源,包括:
通过预留插件将所述缓存快照中存储的存储池的容量扣减所述存储卷消耗的容量,以更新存储池中剩余的可用存储资源。
可选的,所述针对每个节点,通过过滤插件将不满足所述存储卷所需条件的存储池进行过滤,包括:
通过过滤插件将类型与所述存储卷的申请类型不符,且容量小于存储卷容量以及其他属性信息不满足所述存储卷的存储池进行过滤。
可选的,所述对候选的存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池,包括:
通过第一打分插件基于所述存储池的可用容量对每个节点的存储池进行打分,得到所述存储池的第一分数;
通过第二打分插件基于所述存储池的使用率对每个节点的存储池进行打分,得到所述存储池的第二分数;
基于所述第一分数以及所述第二分数确定所述存储池的总分数;
在每个节点上,选择总分数最高的存储池作为所述存储卷调度到的存储池。
可选的,所述基于所述可用存储资源的属性信息确定pod事件调度到的目标节点,包括:
通过第三打分插件基于所述可用存储资源的可用容量对所述可用存储资源进行打分,得到所述可用存储资源的第三分数;
通过第四打分插件基于所述可用存储资源的使用率对所述可用存储资源进行打分,得到所述可用存储资源的第四分数;
基于所述第三分数和所述第四分数确定可用存储资源的总分数;
选取总分数最高的节点作为pod事件调度到的目标节点。
可选的,所述将pod事件对应的存储卷加入到调度队列,包括:
将pod事件对应的存储卷在调度队列中按照申请容量的大小进行排序。
可选的,在监听到pod事件之前,还包括:
更新模块,用于:获取集群中每个节点上存储池的信息,并将存储池的信息进行更新;
将所述存储池的信息更新至节点缓存中;
在基于所述可用存储资源的属性信息确定pod事件调度到的目标节点之后,还包括:
预绑定插件,用于将存储池中剩余的可用存储资源更新至所述节点缓存中,以进行下一个Pod事件的调度。
上述装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
图4是本发明实施例提供的一种设备结构示意图,如图4所示,该设备包括:
一个或多个处理器410,图4中以一个处理器410为例;
存储器420;
所述设备还可以包括:输入装置430和输出装置440。
所述设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种存储资源的调度方法对应的程序指令/模块(例如,附图3所示的存储池调度模块310、预留模块320和节点调度模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种存储资源的调度方法,即:
当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;
将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;
基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种存储资源的调度方法:
当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;
将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;
基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种存储资源的调度方法,其特征在于,包括:
当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;
将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;
基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
2.根据权利要求1所述的方法,其特征在于,所述基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池,包括:
将获取的存储池信息生成节点的缓存快照;
将pod事件对应的存储卷加入到调度队列,从所述调度队列依次取出存储卷;
针对每个节点,通过过滤插件将不满足所述存储卷所需条件的存储池进行过滤,得到候选的存储池;
对候选的所述存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池;
相应的,将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到存储池中剩余的可用存储资源,包括:
通过预留插件将所述缓存快照中存储的存储池的容量扣减所述存储卷消耗的容量,以更新存储池中剩余的可用存储资源。
3.根据权利要求2所述的方法,其特征在于,所述针对每个节点,通过过滤插件将不满足所述存储卷所需条件的存储池进行过滤,包括:
通过过滤插件将类型与所述存储卷的申请类型不符,且容量小于存储卷容量以及其他属性信息不满足所述存储卷的存储池进行过滤。
4.根据权利要求2所述的方法,其特征在于,所述对候选的存储池进行打分,选取分数最高的存储池作为所述存储卷调度到的存储池,包括:
通过第一打分插件基于所述存储池的可用容量对每个节点的存储池进行打分,得到所述存储池的第一分数;
通过第二打分插件基于所述存储池的使用率对每个节点的存储池进行打分,得到所述存储池的第二分数;
基于所述第一分数以及所述第二分数确定所述存储池的总分数;
在每个节点上,选择总分数最高的存储池作为所述存储卷调度到的存储池。
5.根据权利要求1所述的方法,其特征在于,所述基于所述可用存储资源的属性信息确定pod事件调度到的目标节点,包括:
通过第三打分插件基于所述可用存储资源的可用容量对所述可用存储资源进行打分,得到所述可用存储资源的第三分数;
通过第四打分插件基于所述可用存储资源的使用率对所述可用存储资源进行打分,得到所述可用存储资源的第四分数;
基于所述第三分数和所述第四分数确定可用存储资源的总分数;
选取总分数最高的节点作为pod事件调度到的目标节点。
6.根据权利要求2所述的方法,其特征在于,所述将pod事件对应的存储卷加入到调度队列,包括:
将pod事件对应的存储卷在调度队列中按照申请容量的大小进行排序。
7.根据权利要求1所述的方法,其特征在于,在监听到pod事件之前,还包括:
获取集群中每个节点上存储池的信息,并将存储池的信息进行更新;
将所述存储池的信息更新至节点缓存中;
在基于所述可用存储资源的属性信息确定pod事件调度到的目标节点之后,还包括:
将存储池中剩余的可用存储资源更新至所述节点缓存中,以进行下一个Pod事件的调度。
8.一种存储资源的调度装置,其特征在于,包括:
存储池调度模块,用于当监听到pod事件,基于集群中每个节点存储池的属性信息对pod事件对应的存储卷进行调度,在每个所述节点上确定所述存储卷调度到的存储池;
预留模块,用于将调度所述存储卷所消耗的容量在每个所述节点的存储池中进行扣减,得到所述存储池中剩余的可用存储资源;
节点调度模块,用于基于所述可用存储资源的属性信息确定pod事件调度到的目标节点。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的方法。
CN202111444739.8A 2021-11-30 2021-11-30 存储资源的调度方法、装置、设备及存储介质 Pending CN114090191A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111444739.8A CN114090191A (zh) 2021-11-30 2021-11-30 存储资源的调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111444739.8A CN114090191A (zh) 2021-11-30 2021-11-30 存储资源的调度方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114090191A true CN114090191A (zh) 2022-02-25

Family

ID=80305991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111444739.8A Pending CN114090191A (zh) 2021-11-30 2021-11-30 存储资源的调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114090191A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697331A (zh) * 2022-03-29 2022-07-01 浪潮云信息技术股份公司 一种云盘挂载数量调度方法、***、装置及存储介质
US20240004546A1 (en) * 2022-06-30 2024-01-04 Pure Storage, Inc. IO Profiles in a Distributed Storage System

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697331A (zh) * 2022-03-29 2022-07-01 浪潮云信息技术股份公司 一种云盘挂载数量调度方法、***、装置及存储介质
CN114697331B (zh) * 2022-03-29 2024-06-07 浪潮云信息技术股份公司 一种云盘挂载数量调度方法、***、装置及存储介质
US20240004546A1 (en) * 2022-06-30 2024-01-04 Pure Storage, Inc. IO Profiles in a Distributed Storage System

Similar Documents

Publication Publication Date Title
CN109117265A (zh) 在集群中调度作业的方法、装置、设备及存储介质
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
WO2021036229A1 (zh) 一种变更设备业务的方法和业务变更***
CN108681565B (zh) 区块链数据并行处理方法、装置、设备和存储介质
JP2021516395A (ja) リソース構成方法、装置、端末、および記憶媒体
EP2454666B1 (en) Fault tolerant batch processing
CN114090191A (zh) 存储资源的调度方法、装置、设备及存储介质
CN110113188B (zh) 跨子域通信运维方法、总运维服务器和介质
CN108572845B (zh) 分布式微服务集群的升级方法及相关***
CN103873534A (zh) 一种应用集群迁移方法及装置
EP3879875A1 (en) Resource change method and device, apparatus, and storage medium
CN112068957A (zh) 资源分配方法、装置、计算机设备及存储介质
CN115033340A (zh) 一种宿主机的选择方法及相关装置
CN109858817A (zh) 一种工作流管理***及方法
CN113204425B (zh) 供进程管理内部线程的方法、装置、电子设备及存储介质
CN115373861A (zh) Gpu资源调度方法、装置、电子设备及存储介质
CN105933136B (zh) 一种资源调度方法及***
CN114153609A (zh) 资源控制方法及装置、电子设备、计算机可读存储介质
EP4123449A1 (en) Resource scheduling method and related device
US9575795B2 (en) Reverting a virtual resource to its base configuration using the snapshot image based on frequency the virtual resource is requested
CN111143033A (zh) 基于可伸缩操作***的操作执行方法及装置
CN112448833A (zh) 一种多管理域的通信方法和装置
CN115361349A (zh) 资源使用方法和装置
CN109005071A (zh) 一种决策部署方法和调度设备
CN115150268A (zh) Kubernetes集群的网络配置方法、装置、及电子设备

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