CN114490062A - 一种本地磁盘的调度方法、装置、电子设备及存储介质 - Google Patents
一种本地磁盘的调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114490062A CN114490062A CN202210086577.3A CN202210086577A CN114490062A CN 114490062 A CN114490062 A CN 114490062A CN 202210086577 A CN202210086577 A CN 202210086577A CN 114490062 A CN114490062 A CN 114490062A
- Authority
- CN
- China
- Prior art keywords
- disk
- local disk
- local
- service node
- information
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- General Factory Administration (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种本地磁盘的调度方法、装置、电子设备及存储介质,属于云平台技术领域,该方法包括:响应于待调度Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,并获取待调度Pod的磁盘需求,基于这至少一个业务节点的本地磁盘信息和待调度Pod的磁盘需求,从这至少一个业务节点的本地磁盘中选取目标本地磁盘,然后,存储目标本地磁盘的标识信息,由目标本地磁盘所在的业务节点基于标识信息为待调度Pod提供存储服务,从而提供了一种调度本地磁盘的方案。
Description
技术领域
本申请涉及云平台技术领域,尤其涉及一种本地磁盘的调度方法、装置、电子设备及存储介质。
背景技术
容器技术的兴起衍生了一系列应用编排管理系统如Kubernetes、Docker Swarm和Mesosphere。其中,Kubernetes凭借强大的应用编排能力和智能化调度算法成为容器编排领域的领导者。
Kubernetes的核心组件为部署在管理节点上的原生调度器(Scheduler),原生调度器主要用于合理分配节点资源,并将编排的应用调度到合适的业务节点上。然而,原生调度器只提供对业务节点的中央处理器(Central Processing Unit,CPU)、内存、图形处理器(Graphics Processing Unit,GPU)等资源的分配调度,并未提供对业务节点的本地磁盘的调度方案。因此,急需提供一种对本地磁盘进行调度的方案。
发明内容
本申请实施例提供一种本地磁盘的调度方法、装置、电子设备及存储介质,用以提供一种对本地磁盘进行调度的方案。
第一方面,本申请实施例提供一种本地磁盘的调度方法,包括:
响应于待调度容器组Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,获取所述待调度Pod的磁盘需求;
基于所述至少一个业务节点的本地磁盘信息和所述磁盘需求,从所述至少一个业务节点挂载的本地磁盘中选取目标本地磁盘;
存储所述目标本地磁盘的标识信息,由所述目标本地磁盘所在的业务节点基于所述标识信息为所述待调度Pod提供存储服务。
在一些实施例中,基于所述至少一个业务节点的本地磁盘信息和所述磁盘需求,从所述至少一个业务节点挂载的本地磁盘中选取目标本地磁盘,包括:
基于所述至少一个业务节点的本地磁盘信息,从所述至少一个业务节点挂载的本地磁盘中选取能满足所述磁盘需求的候选本地磁盘;
从所述候选本地磁盘中选取所述目标本地磁盘。
在一些实施例中,所述磁盘需求包括磁盘的应用需求和磁盘硬件需求,每个业务节点的本地磁盘信息包括所述业务节点挂载的每个本地磁盘的应用范围信息和硬件描述信息,以及
基于所述磁盘需求和所述至少一个业务节点的本地磁盘信息,从所述至少一个业务节点挂载的本地磁盘中选取候选本地磁盘,包括:
基于所述至少一个业务节点挂载的各本地磁盘的应用范围信息,从各本地磁盘中选取应用范围能满足所述应用需求的作为初选本地磁盘;
基于所述初选本地磁盘的硬件描述信息,从所述初选本地磁盘中选取磁盘硬件能满足所述磁盘硬件需求的作为所述候选本地磁盘。
在一些实施例中,每个业务节点挂载的本地磁盘的应用范围信息是通过配置文件预先配置的。
在一些实施例中,所述目标本地磁盘所在的业务节点在为所述待调度Pod提供存储服务后,删除所述目标本地磁盘的标识信息。
第二方面,本申请实施例提供一种本地磁盘的调度装置,包括:
获取模块,用于响应于待调度容器组Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,获取所述待调度Pod的磁盘需求;
选取模块,用于基于所述至少一个业务节点的本地磁盘信息和所述磁盘需求,从所述至少一个业务节点挂载的本地磁盘中选取目标本地磁盘;
存储模块,用于存储所述目标本地磁盘的标识信息,由所述目标本地磁盘所在的业务节点基于所述标识信息为所述待调度Pod提供存储服务。
在一些实施例中,所述选取模块具体用于:
基于所述至少一个业务节点的本地磁盘信息,从所述至少一个业务节点挂载的本地磁盘中选取能满足所述磁盘需求的候选本地磁盘;
从所述候选本地磁盘中选取所述目标本地磁盘。
在一些实施例中,所述磁盘需求包括磁盘的应用需求和磁盘硬件需求,每个业务节点的本地磁盘信息包括所述业务节点挂载的每个本地磁盘的应用范围信息和硬件描述信息,所述选取模块具体用于:
基于所述至少一个业务节点挂载的各本地磁盘的应用范围信息,从各本地磁盘中选取应用范围能满足所述应用需求的作为初选本地磁盘;
基于所述初选本地磁盘的硬件描述信息,从所述初选本地磁盘中选取磁盘硬件能满足所述磁盘硬件需求的作为所述候选本地磁盘。
在一些实施例中,每个业务节点挂载的本地磁盘的应用范围信息是通过配置文件预先配置的。
在一些实施例中,所述目标本地磁盘所在的业务节点在为所述待调度Pod提供存储服务后,删除所述目标本地磁盘的标识信息。
第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述本地磁盘的调度方法。
第四方面,本申请实施例提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行上述本地磁盘的调度方法。
本申请实施例中,响应于待调度Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,并获取待调度Pod的磁盘需求,基于这至少一个业务节点的本地磁盘信息和待调度Pod的磁盘需求,从这至少一个业务节点的本地磁盘中选取目标本地磁盘,然后,存储目标本地磁盘的标识信息,由目标本地磁盘所在的业务节点基于标识信息为待调度Pod提供存储服务,从而提供了一种调度本地磁盘的方案。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种Kubernetes的架构示意图;
图2为本申请实施例提供的一种本地磁盘的调度方法的流程图;
图3为本申请实施例提供的一种选取目标本地磁盘的方法流程图;
图4为本申请实施例提供的一种节点磁盘管理的操作流程图;
图5为本申请实施例提供的一种扩展调度器的操作流程图;
图6为本申请实施例提供的一种CSI守护进程的操作流程图;
图7为本申请实施例提供的一种本地磁盘的调度装置的结构示意图;
图8为本申请实施例提供的一种用于实现本地磁盘的调度方法的电子设备的硬件结构示意图。
具体实施方式
为了提供一种对本地磁盘进行调度的方案,本申请实施例提供了一种本地磁盘的调度方法、装置、电子设备及存储介质。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了便于理解本申请,本申请涉及的技术术语中:
Kubernetes,一个对容器集群进行自动化部署、扩容以及运维的开源平台。应用开发者无需关心底层CPU、内存、网络等基础资源的具体分配和设置,仅需专注于描述容器化应用的部署架构,通过声明式的应用程序接口(API)提交给Kubernetes,Kubernetes会根据用户的期望使用Service、Deployment、容器组(Pod)等各种资源对象完成自动化部署。
Pod,Kubernetes的最小调度单元,一个Pod里面可装载至少一个容器。
本地磁盘,指在本地提供存储服务的磁盘,按照存储介质可划分为固态类和机械类,固态类如固态驱动器(Solid State Drive,SSD),机械类如硬盘驱动器(Hard DiskDrive,HDD)。
容器存储接口(container storage interface,CSI),用于定义存储资源调度时的调度规范。
相对于跨主机网络的远程磁盘来说,业务节点上的本地磁盘通常可提供更快的存储速度和更好的存储性能,因此,对业务节点上的本地磁盘进行调度十分有必要。一般地,磁盘介质可影响本地磁盘的使用性能,比如对需频繁进行IO操作(如频繁访问etcd、mysql等数据库)的应用来说,选择固态类的本地磁盘作为后端存储更加有利于应用的运行。另外,用户可能还需要根据应用自身的需求定制不同大小的磁盘。由此可见,在调度本地磁盘时需要考虑的因素是比较多的。
为了能够比较好地调度业务节点中的本地磁盘,本申请实施例中,预先对本地磁盘所能服务的应用进行规划,并可设置待调度Pod对本地磁盘的磁盘需求,后续,在为待调度Pod分配本地磁盘时,可基于待调度Pod的磁盘需求和各本地磁盘的规划,为待调度Pod选择目标本地磁盘,进而利用目标本地磁盘为待调度Pod提供存储服务,以保证待调度Pod能得到比较好的本地存储服务。
本申请实施例提供的本地磁盘的调度方法可应用于所有需要对本地磁盘进行调度的场景,后续,将以调度方法应用于Kubernetes为例对本申请实施例的方案进行介绍。
图1为本申请实施例提供的一种Kubernetes的架构示意图,包括1个管理节点和3个业务节点:业务节点1、业务节点2和业务节点3,其中,业务节点1有两个本地磁盘:1a和1b,业务节点2有1个本地磁盘:2a,业务节点3有三个本地磁盘:3a、3b和3c;管理节点中有原生调度器和扩展调度器,原生调度器主要用于调度业务节点的CPU、内存、GPU等资源,扩展调度器可与原生调度器同时运行,主要用于调度业务节点的存储资源,即调度各业务节点的本地磁盘。
在介绍了本申请实施例的系统架构后,下面结合具体实施例对本申请实施例的方案进行说明。
本申请实施例的执行主体可以是管理节点中的扩展调度器,图2为本申请实施例提供的一种本地磁盘的调度方法的流程图,包括以下步骤。
在步骤21中,响应于待调度Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,并获取待调度Pod的磁盘需求。
一般地,在启动一个Pod后调度本地磁盘来为Pod提供存储资源,在Pod有了可用的存储资源后可真正进入运行阶段。
其中,调度条件如可调度。考虑到原生调度器在调度CPU、内存、GPU等资源时,可得到可调度的业务节点,因此,可借助于原生调度器来选取可调度的至少一个业务节点。
在步骤22中,基于这至少一个业务节点的本地磁盘信息和待调度Pod的磁盘需求,从这至少一个业务节点挂载的本地磁盘中选取目标本地磁盘。
具体实施时,可按照图3所示的流程从这至少一个业务节点挂载的本地磁盘中选取目标本地磁盘,该流程包括以下步骤。
在步骤221中,基于这至少一个业务节点的本地磁盘信息,从这至少一个业务节点挂载的本地磁盘中选取能满足磁盘需求的候选本地磁盘。
以磁盘需求包括磁盘的应用需求和磁盘硬件需求,每个业务节点的本地磁盘信息包括业务节点中每个本地磁盘的应用范围信息和硬件描述信息为例,其中,磁盘的应用需求用于说明需要本地磁盘能为哪些应用提供存储服务,如本地磁盘需仅为指定应用提供存储服务、本地磁盘需为哪类应用提供存储服务等,磁盘硬件需求用于说明本地磁盘应具备哪些硬件条件,如需要哪种介质类型的本地磁盘、磁盘大小需达到多少等,应用范围信息用于描述本地磁盘可为哪些应用提供存储服务,如仅为指定应用提供存储服务,为某类应用提供存储服务等,硬件描述信息用于描述本地磁盘的硬件情况,如磁盘的介质类型是什么,磁盘的大小是多少等。
后续,在选取候选本地磁盘时,可基于这至少一个业务节点挂载的各本地磁盘的应用范围信息,从这至少一个业务节点的各本地磁盘中选取应用范围能满足磁盘的应用需求的本地磁盘,作为初选本地磁盘,然后,再基于初选本地磁盘的硬件描述信息,从初选本地磁盘中选取磁盘硬件能满足磁盘硬件需求的本地磁盘,作为候选本地磁盘。
考虑到本地磁盘的数量可能比较多,这样,先从这至少一个业务节点的各本地磁盘中选取符合磁盘的应用需求的本地磁盘,再从这些本地磁盘中进一步选取符合磁盘硬件需求的本地磁盘,可避免不必要的计算,提升磁盘选取速度。
另外,本申请实施例中,每个业务节点挂载的本地磁盘的应用范围信息可以通过配置文件配置,这样,便于用户根据实际需求设置本地磁盘的应用范围,灵活性比较好,也利于提升后续磁盘调度的调度效果。
在步骤222中,从候选本地磁盘中选取目标本地磁盘。
在一些实施例中,候选本地磁盘只有一个,此时,可将这唯一的候选本地磁盘作为目标本地磁盘。
在一些实施例中,候选本地磁盘有至少两个且这至少两个候选本地磁盘位于同一个业务节点中,此时,可随机从这至少两个候选本地磁盘中选择目标本地磁盘。
在一些实施例中,候选本地磁盘有至少两个且这至少两个候选本地磁盘位于不同业务节点中,此时,可基于每个候选本地磁盘所在业务节点的CPU、内存、GPU等信息,对业务节点进行打分,进而基于各业务节点的打分选取目标本地磁盘。比如,选取打分最高的业务节点中的候选本地磁盘作为目标本地磁盘。另外,需要说的是,当打分最高的业务节点中候选本地磁盘有不止一个时,可从打分最高的业务节点的候选本地磁盘中随机选择目标本地磁盘。
在步骤23中,存储目标本地磁盘的标识信息,由目标本地磁盘所在的业务节点基于标识信息为待调度Pod提供存储服务。
其中,目标本地磁盘的标识信息用于唯一标识目标本地磁盘。
具体实施时,可将目标本地磁盘的标识信息存储在用户自定义资源(CustomResource Definition,CRD)中,最终持久化存储在管理节点的etcd中。
由于各业务节点会监控etcd中的信息,所以后续目标磁盘所属业务节点在从etcd中监测到待调度Pod对应的目标本地磁盘属于自己后,可在目标本地磁盘上创建目录,并将目录挂载在待调度Pod的容器中,后续,即可利用目标本地磁盘为待调度Pod提供存储服务。
另外,目标本地磁盘所在的业务节点在为待调度Pod提供存储服务后,还可删除目标本地磁盘的标识信息,以节省存储空间。
下面结合具体实施例对本申请实施例的方案进行说明。
本申请实施例中,在调度本地磁盘时主要涉及三个部分:节点磁盘管理、扩展调度器和节点CSI守护进程,其中,节点磁盘管理部署在每个业务节点上,主要用于根据用户输入的磁盘的应用规划信息,调用节点agent进程初始化本地磁盘,并对本地磁盘进行挂载;扩展调度器部署在管理节点上,主要用于根据待调度Pod的磁盘需求如磁盘亲和性、磁盘大小等,在合适的业务节点中选取目标本地磁盘,并将目标本地磁盘的标识信息存储到CRD中,最终在etcd中进行持久化保存;节点CSI守护进程部署在每个业务节点上,主用于在监测到etcd中存储的目标本地磁盘的标识信息时,创建持久化卷(Persistent Volume,PV),在目标本地磁盘上创建目录,将目录挂载到待调度Pod的容器中,最后可更新业务节点的磁盘状态信息如磁盘大小、可用与否的状态等。
下面分别对这三个部分进行详细的概述。
一、节点磁盘管理。
节点磁盘管理的目的是让用户可定制本地磁盘所能服务的应用。一般地,用户只需输入某个本地磁盘的应用规划信息,节点agent进程就可对应用规划信息进行转换,得到本地磁盘的应用范围信息,并将应用范围信息存储在对应业务节点的节点信息中。
例如,对于一个3T的本地SSD磁盘,用户希望这块磁盘只提供给应用A使用,这时候用户只需要输入标签例如应用A:yes,那么,在后面的调度过程中这个本地磁盘就不会被除应用A外的应用使用。这样既可保证磁盘的独占性,也可解决本地目录实际分配与实际占用不匹配的问题。
参见图4,节点磁盘管理的操作流程可包括以下步骤:
在步骤41中,用户在运维相关界面设置业务节点上本地磁盘的应用规划信息。
在步骤42中,业务节点调用节点agent进程创建提前规划的磁盘路径,挂载每个本地磁盘,并根据用户设置的应用规划信息,生成每个本地磁盘的应用范围信息。
在步骤43中,通过Kubernetes客户端获取业务节点的节点信息,将业务节点中本地磁盘的应用范围信息存储到节点信息中,以更新节点磁盘状态。
其中,节点磁盘状态用于记录磁盘的状态信息如磁盘的应用范围发生变化、磁盘的可用大小发生变化等。
二、扩展调度器。
Kubernetes提供了在不改变原生调度器源码的基础上,通过实现相关插件如预选过滤(Filter)插件来开发扩展调度器的方案,且开发出的扩展调度器可与原生调度器同时运行。为了能够使扩展调度器调度本地磁盘,可将本地磁盘的资源抽象成三种:磁盘大小、磁盘介质以及磁盘标签(磁盘所能提供的应用范围的一种表现形式)。
参见图5,扩展调度器的操作流程可包括以下步骤:
在步骤51中,接收待调度Pod对本地磁盘的分配请求。
一般地,在需要为待调度Pod申请本地磁盘时,用户提交给Apiserver的应用类型(即配置本地磁盘的Pod对应的应用类型)以有状态服务即Statefulset呈现,有状态服务指定了调度需要的持久化卷声明(Persistent Volume Claim,PVC)。
在步骤52中,通过原生调度器选取可调度的至少一个业务节点。
在步骤53中,根据待调度Pod关联的PVC,获取待调度Pod的磁盘需求。
其中,待调度Pod的磁盘需求包括磁盘的应用需求和磁盘硬件需求如磁盘大小、磁盘的介质类型。
一般地,待调度Pod关联的PVC的PVC Annotation中包括有以key1:value1形式表达的应用需求,原生PVC中包含有磁盘大小信息,而介质类型可通过原生PVC的StorageClass来指定,在StorageClass中,LOCAL-HDD代表需要HDD磁盘,LOCAL-SSD代表需要SSD磁盘。
在步骤54中,根据可调度的业务节点的本地磁盘信息和待调度Pod的磁盘需求,从可调度的业务节点挂载的本地磁盘中选取目标本地磁盘。
其中,对于可调度的每个业务节点而言,业务节点的本地磁盘信息中存储有业务节点挂载的每个本地磁盘的应用范围信息和硬件描述信息。
考虑到磁盘数量可能较多,可先基于各本地磁盘的应用范围信息,从各本地磁盘中选取应用范围可满足磁盘的应用需求的本地磁盘,再基于选取出的这些本地磁盘的硬件描述信息,进一步选取磁盘硬件能满足磁盘硬件需求的本地磁盘(即候选本地磁盘),这样,可以减少不必要的计算、提升磁盘选取速度。
一般地,通过上述选取过程可得到多个候选本地磁盘,为了得到比较合适的本地磁盘,还可基于每个候选本地磁盘所在的业务节点的业务处理能力,从这多个候选本地磁盘中选取目标本地磁盘。
在步骤55中,将目标本地磁盘的标识信息存储在CRD中,最终在etcd中进行持久化存储。
三、节点CSI守护进程。
实际应用中,扩展调度器只负责选取合适业务节点上的合适本地磁盘,目录的创建和挂载由节点CSI守护进程实现。
参见图6,CSI守护进程的流程包括以下步骤:
在步骤61中,监控所在业务节点上的PVC创建指令。
在步骤62中,从CRD中读取调度阶段存储的目标本地磁盘的标识信息,基于标识信息确定需要创建目录的目标本地磁盘。
在步骤63中,在目标本地磁盘上创建目录,更新节点磁盘状态,并创建PV。
其中,更新节点磁盘状态如更新磁盘的可用大小等。
在步骤64中,判断PV是否创建成功,若否,则进入步骤65,若是,则进入步骤66。
在步骤65中,回滚节点磁盘分配数据。
在步骤66中,向扩展调度器返回PV创建成功的信息。
另外,在成功创建PV后,还可删除etcd中存储的目标本地磁盘的标识信息,以节省存储空间。
本申请实施例提供了一种本地磁盘的服务绑定策略,可指定某个本地磁盘与待调度Pod对应的应用进行绑定,避免存储资源的分配与创建不一致的情况。
基于相同的技术构思,本申请实施例还提供一种本地磁盘的调度装置,本地磁盘的调度装置解决问题的原理与上述本地磁盘的调度方法相似,因此本地磁盘的调度装置的实施可参见本地磁盘的调度方法的实施,重复之处不再赘述。
图7为本申请实施例提供的一种本地磁盘的调度装置的结构示意图,包括获取模块701、选取模块702、存储模块703。
获取模块701,用于响应于待调度容器组Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,获取所述待调度Pod的磁盘需求;
选取模块702,用于基于所述至少一个业务节点的本地磁盘信息和所述磁盘需求,从所述至少一个业务节点挂载的本地磁盘中选取目标本地磁盘;
存储模块703,用于存储所述目标本地磁盘的标识信息,由所述目标本地磁盘所在的业务节点基于所述标识信息为所述待调度Pod提供存储服务。
在一些实施例中,所述选取模块702具体用于:
基于所述至少一个业务节点的本地磁盘信息,从所述至少一个业务节点挂载的本地磁盘中选取能满足所述磁盘需求的候选本地磁盘;
从所述候选本地磁盘中选取所述目标本地磁盘。
在一些实施例中,所述磁盘需求包括磁盘的应用需求和磁盘硬件需求,每个业务节点的本地磁盘信息包括所述业务节点挂载的每个本地磁盘的应用范围信息和硬件描述信息,所述选取模块702具体用于:
基于所述至少一个业务节点挂载的各本地磁盘的应用范围信息,从各本地磁盘中选取应用范围能满足所述应用需求的作为初选本地磁盘;
基于所述初选本地磁盘的硬件描述信息,从所述初选本地磁盘中选取磁盘硬件能满足所述磁盘硬件需求的作为所述候选本地磁盘。
在一些实施例中,每个业务节点挂载的本地磁盘的应用范围信息是通过配置文件预先配置的。
在一些实施例中,所述目标本地磁盘所在的业务节点在为所述待调度Pod提供存储服务后,删除所述目标本地磁盘的标识信息。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,本申请各实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在介绍了本申请示例性实施方式的对比学习方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
下面参照图8来描述根据本申请的这种实施方式实现的电子设备130。图8显示的电子设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器132,上述指令可由处理器131执行以完成上述对比学习方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,本申请的电子设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本申请提供的任一示例性方法的步骤。
在示例性实施例中,还提供一种计算机程序产品,当计算机程序产品被电子设备执行时,电子设备能够实现本申请提供的任一示例性方法。
并且,计算机程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、RAM、ROM、可擦式可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、闪存、光纤、光盘只读存储器(Compact Disk Read Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施例中用于本地磁盘的调度的程序产品可以采用CD-ROM并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络如局域网(Local AreaNetwork,LAN)或广域网(Wide Area Network,WAN)连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种本地磁盘的调度方法,其特征在于,包括:
响应于待调度容器组Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,获取所述待调度Pod的磁盘需求;
基于所述至少一个业务节点的本地磁盘信息和所述磁盘需求,从所述至少一个业务节点挂载的本地磁盘中选取目标本地磁盘;
存储所述目标本地磁盘的标识信息,由所述目标本地磁盘所在的业务节点基于所述标识信息为所述待调度Pod提供存储服务。
2.如权利要求1所述的方法,其特征在于,基于所述至少一个业务节点的本地磁盘信息和所述磁盘需求,从所述至少一个业务节点挂载的本地磁盘中选取目标本地磁盘,包括:
基于所述至少一个业务节点的本地磁盘信息,从所述至少一个业务节点挂载的本地磁盘中选取能满足所述磁盘需求的候选本地磁盘;
从所述候选本地磁盘中选取所述目标本地磁盘。
3.如权利要求2所述的方法,其特征在于,所述磁盘需求包括磁盘的应用需求和磁盘硬件需求,每个业务节点的本地磁盘信息包括所述业务节点挂载的每个本地磁盘的应用范围信息和硬件描述信息,以及
基于所述磁盘需求和所述至少一个业务节点的本地磁盘信息,从所述至少一个业务节点挂载的本地磁盘中选取候选本地磁盘,包括:
基于所述至少一个业务节点挂载的各本地磁盘的应用范围信息,从各本地磁盘中选取应用范围能满足所述应用需求的作为初选本地磁盘;
基于所述初选本地磁盘的硬件描述信息,从所述初选本地磁盘中选取磁盘硬件能满足所述磁盘硬件需求的作为所述候选本地磁盘。
4.如权利要求3所述的方法,其特征在于,每个业务节点挂载的本地磁盘的应用范围信息是通过配置文件预先配置的。
5.如权利要求1所述的方法,其特征在于,所述目标本地磁盘所在的业务节点在为所述待调度Pod提供存储服务后,删除所述目标本地磁盘的标识信息。
6.一种本地磁盘的调度装置,其特征在于,包括:
获取模块,用于响应于待调度容器组Pod对本地磁盘的分配请求,选取符合调度条件的至少一个业务节点,获取所述待调度Pod的磁盘需求;
选取模块,用于基于所述至少一个业务节点的本地磁盘信息和所述磁盘需求,从所述至少一个业务节点挂载的本地磁盘中选取目标本地磁盘;
存储模块,用于存储所述目标本地磁盘的标识信息,由所述目标本地磁盘所在的业务节点基于所述标识信息为所述待调度Pod提供存储服务。
7.如权利要求6所述的装置,其特征在于,所述选取模块具体用于:
基于所述至少一个业务节点的本地磁盘信息,从所述至少一个业务节点挂载的本地磁盘中选取能满足所述磁盘需求的候选本地磁盘;
从所述候选本地磁盘中选取所述目标本地磁盘。
8.如权利要求7所述的装置,其特征在于,所述磁盘需求包括磁盘的应用需求和磁盘硬件需求,每个业务节点的本地磁盘信息包括所述业务节点挂载的每个本地磁盘的应用范围信息和硬件描述信息,所述选取模块具体用于:
基于所述至少一个业务节点挂载的各本地磁盘的应用范围信息,从各本地磁盘中选取应用范围能满足所述应用需求的作为初选本地磁盘;
基于所述初选本地磁盘的硬件描述信息,从所述初选本地磁盘中选取磁盘硬件能满足所述磁盘硬件需求的作为所述候选本地磁盘。
9.如权利要求8所述的装置,其特征在于,每个业务节点挂载的本地磁盘的应用范围信息是通过配置文件预先配置的。
10.如权利要求6所述的装置,其特征在于,所述目标本地磁盘所在的业务节点在为所述待调度Pod提供存储服务后,删除所述目标本地磁盘的标识信息。
11.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-5任一所述的方法。
12.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行如权利要求1-5任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210086577.3A CN114490062A (zh) | 2022-01-25 | 2022-01-25 | 一种本地磁盘的调度方法、装置、电子设备及存储介质 |
PCT/CN2022/142676 WO2023142843A1 (en) | 2022-01-25 | 2022-12-28 | Resource management systems and methods thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210086577.3A CN114490062A (zh) | 2022-01-25 | 2022-01-25 | 一种本地磁盘的调度方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490062A true CN114490062A (zh) | 2022-05-13 |
Family
ID=81475022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210086577.3A Pending CN114490062A (zh) | 2022-01-25 | 2022-01-25 | 一种本地磁盘的调度方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114490062A (zh) |
WO (1) | WO2023142843A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816272A (zh) * | 2022-06-23 | 2022-07-29 | 江苏博云科技股份有限公司 | Kubernetes环境下的磁盘管理系统 |
WO2023142843A1 (en) * | 2022-01-25 | 2023-08-03 | Zhejiang Dahua Technology Co., Ltd. | Resource management systems and methods thereof |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968424B (zh) * | 2019-09-12 | 2023-04-07 | 广东浪潮大数据研究有限公司 | 一种基于K8s的资源调度方法、装置和存储介质 |
CN112948066A (zh) * | 2019-12-10 | 2021-06-11 | 中国科学院深圳先进技术研究院 | 一种基于异构资源的Spark任务调度方法 |
CN112231108A (zh) * | 2020-11-02 | 2021-01-15 | 网易(杭州)网络有限公司 | 任务处理方法、装置、计算机可读存储介质及服务器 |
CN113672391B (zh) * | 2021-08-23 | 2023-11-28 | 烽火通信科技股份有限公司 | 一种基于Kubernetes的并行计算任务调度方法与系统 |
CN114490062A (zh) * | 2022-01-25 | 2022-05-13 | 浙江大华技术股份有限公司 | 一种本地磁盘的调度方法、装置、电子设备及存储介质 |
-
2022
- 2022-01-25 CN CN202210086577.3A patent/CN114490062A/zh active Pending
- 2022-12-28 WO PCT/CN2022/142676 patent/WO2023142843A1/en unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023142843A1 (en) * | 2022-01-25 | 2023-08-03 | Zhejiang Dahua Technology Co., Ltd. | Resource management systems and methods thereof |
CN114816272A (zh) * | 2022-06-23 | 2022-07-29 | 江苏博云科技股份有限公司 | Kubernetes环境下的磁盘管理系统 |
CN114816272B (zh) * | 2022-06-23 | 2022-09-06 | 江苏博云科技股份有限公司 | Kubernetes环境下的磁盘管理系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023142843A1 (en) | 2023-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9852035B2 (en) | High availability dynamic restart priority calculator | |
US9529613B2 (en) | Methods and apparatus to reclaim resources in virtual computing environments | |
US20180302335A1 (en) | Orchestrating computing resources between different computing environments | |
CN114490062A (zh) | 一种本地磁盘的调度方法、装置、电子设备及存储介质 | |
US10025630B2 (en) | Operating programs on a computer cluster | |
CN111984269A (zh) | 提供应用构建服务的方法及应用构建平台 | |
CN109857723B (zh) | 基于可扩容数据库集群的动态数据迁移方法及相关设备 | |
CN111984270A (zh) | 应用部署方法和系统 | |
US20220357974A1 (en) | Container creation in a computing system | |
CN114489954A (zh) | 基于虚拟化平台的租户创建方法、租户访问方法及设备 | |
CN104951855A (zh) | 用于促进对资源的管理的装置和方法 | |
US11057263B2 (en) | Methods and subsystems that efficiently distribute VM images in distributed computing systems | |
CN113760499A (zh) | 调度计算单元的方法、装置、计算设备及介质 | |
WO2023056793A1 (en) | Optimizing a just-in-time compilation process | |
CN114816665B (zh) | 混合编排系统及超融合架构下虚拟机容器资源混合编排方法 | |
CN114510297B (zh) | 卫星数据重处理方法、装置和电子设备 | |
JP2021513137A (ja) | 階層型ストレージ管理システムにおけるデータ・マイグレーション | |
CN115469807A (zh) | 磁盘功能配置方法、装置、设备及存储介质 | |
CN111352664A (zh) | 分布式机器学习任务启动方法、系统、设备及存储介质 | |
US11868805B2 (en) | Scheduling workloads on partitioned resources of a host system in a container-orchestration system | |
CN116601607A (zh) | 通过动态任务迁移跨集群进行边缘时间共享 | |
CN113301087A (zh) | 资源调度方法、装置、计算设备和介质 | |
CN112152988A (zh) | 用于异步nbmp请求处理的方法、系统以及计算机设备和介质 | |
US11953972B2 (en) | Selective privileged container augmentation | |
CN115604101B (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 |