CN113553190B - 计算集群系统、调度方法、设备及存储介质 - Google Patents
计算集群系统、调度方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113553190B CN113553190B CN202111093990.4A CN202111093990A CN113553190B CN 113553190 B CN113553190 B CN 113553190B CN 202111093990 A CN202111093990 A CN 202111093990A CN 113553190 B CN113553190 B CN 113553190B
- Authority
- CN
- China
- Prior art keywords
- application
- physical machine
- allocated
- state
- physical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000010276 construction Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
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/5061—Partitioning or combining of resources
-
- 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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种计算集群系统、调度方法、设备及存储介质。在本申请实施例中,提供一种计算集群系统,可同时支持依赖不同运行环境的两类应用,对两类应用进行统一资源调度,为用户提供物理运行环境和虚拟化运行环境融合一体的计算资源。具体地,通过为物理机设置不同分配状态,用来区分物理机被分配给哪类应用,并且还可以根据物理机的分配状态和两类应用的资源需求信息对已分配给某类应用的物理机进行再分配,同时更新物理机的分配状态,实现对物理机资源的合理调度,而无需针对两类应用分别建设计算集群,降低了计算集群的建设成本,提高了资源利用率。
Description
技术领域
本申请涉及异构计算技术领域,尤其涉及一种计算集群系统、调度方法、设备及存储介质。
背景技术
目前,高性能计算(High Performance Computing,HPC)应用的运行环境主要是物理机,HPC应用偏向于使用以高度可扩展的集群管理工具和作业调度系统(Simple LinuxUtility for Resource Management,SLURM)为代表的物理机调度系统进行资源调度。人工智能(Artificial Intelligence,AI)应用的运行环境主要是容器,AI应用偏向于使用以(Kubernetes,K8s)为代表的容器调度系统进行资源调度。这就需要针对不同类型的应用分别进行计算集群建设,导致计算集群建设分散,资源利用不充分,计算集群运维成本高等一系列问题。
发明内容
本申请的多个方面提供一种计算集群系统、调度方法、设备及存储介质,用以降低了计算集群的建设成本,提高了资源利用率。
本申请实施例提供一种计算集群系统,包括:调度控制系统以及可被调度的至少两台物理机,物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对物理机进行虚拟化处理可得到虚拟化运行环境;调度控制系统,用于监测至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;若存在,则将第一空闲物理机分配给目标类应用,并将其分配状态更改为已分配给目标类应用。
本申请实施例还提供一种调度方法,包括:监测至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对物理机进行虚拟化处理可得到虚拟化运行环境;若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;若存在,则将第一空闲物理机分配给目标类应用,并将其分配状态更改为已分配给目标类应用。
本申请实施例还提供一种调度控制系统,包括:存储器和处理器;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以用于:监测至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对物理机进行虚拟化处理可得到虚拟化运行环境;若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;若存在,则将第一空闲物理机分配给目标类应用,并将其分配状态更改为已分配给目标类应用。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本申请实施例提供的调度方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器实现本申请实施例提供的调度方法中的步骤。
在本申请实施例中,提供一种计算集群系统,可同时支持依赖不同运行环境的两类应用,对两类应用进行统一资源调度,为用户提供物理运行环境和虚拟化运行环境融合一体的计算资源。具体地,通过为物理机设置不同分配状态,用来区分物理机被分配给哪类应用,并且还可以根据物理机的分配状态和两类应用的资源需求信息对已分配给某类应用的物理机进行再分配,同时更新物理机的分配状态,实现对物理机资源的合理调度,而无需针对两类应用分别建设计算集群,降低了计算集群的建设成本,提高了资源利用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请示例性实施例提供的一种计算集群系统的结构示意图;
图2为本申请示例性实施例提供的一种计算集群系统中部署两类应用的示意图;
图3为本申请示例性实施例提供的一种调度控制系统的内部结构图;
图4为本申请示例性实施例提供的一种调度方法的流程示意图;
图5为本申请示例性实施例提供的一种调度控制系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有技术中计算集群建设分散,资源利用不充分,计算集群运维成本高等一系列问题,在本申请实施例中,提供一种计算集群系统,可同时支持依赖不同运行环境的两类应用,对两类应用进行统一资源调度,为用户提供物理运行环境和虚拟化运行环境融合一体的计算资源。具体地,通过为物理机设置不同分配状态,用来区分物理机被分配给哪类应用,并且还可以根据物理机的分配状态和两类应用的资源需求信息对已分配给某类应用的物理机进行再分配,同时更新物理机的分配状态,实现对物理机资源的合理调度,而无需针对两类应用分别建设计算集群,降低了计算集群的建设成本,提高了资源利用率。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请示例性实施例提供的一种计算集群系统的结构示意图。如图1所示,该计算集群系统100包括:调度控制系统101以及至少两台物理机102。
在本实施例中,物理机102支持运行两种不同类型的应用,两种类型的应用依赖不同的运行环境。为了便于描述和区分,将依赖物理运行环境的一类应用称为第一类应用,将依赖虚拟化运行环境的应用,称为第二类应用。其中,物理运行环境是一种不采用任何虚拟化技术,直接由物理机的操作系统基于真实硬件资源(如CPU、内存或存储等)提供的运行环境,还可以称为物理环境,在物理机102是服务器的情况下,物理运行环境还可以称为物理服务器环境,在启动第一类应用时,第一类应用运行于物理机102提供的物理运行环境中。虚拟化运行环境是一种在物理机硬件资源之上进行虚拟化处理得到的运行环境,例如,虚拟化运行环境可以是运行态的虚拟机或容器等。需要说明的是,在本实施例中,无论物理机上是否运行有第一类应用,物理机上均可部署虚拟化组件,虚拟化组件用于对物理机进行虚拟化处理,以便在第二类应用被部署时为第二类应用提供其所依赖的虚拟化运行环境。可选地,虚拟化组件可以对物理机进行虚拟化处理得到虚拟机或容器,虚拟机或容器可以预先被部署在物理机上,虚拟机或容器用于承载第二类应用,在第二类应用被部署之前,虚拟机或容器处于未启动状态或未运行状态。以在至少两台物理机上预先部署有容器为例,这些容器用于承载第二类应用;在物理机被分配给第二类应用的情况下,在容器中部署第二类应用并启动容器,第二类应用所需的虚拟化运行环境由运行态的容器提供;相应地,在物理机被分配给第一类应用的情况下,这些容器将不被使用和启动,而是在物理机的物理资源上直接部署第一类应用并运行,第一类应用所需的物理运行环境由物理机的操作系统直接提供。
其中,第一类应用可以是任何依赖物理运行环境的应用,如图2所示,第一类应用可以是HPC应用,HPC应用是一类涉及科学问题的大规模计算以及海量数据处理的应用,其中,HPC应用涉及的科学问题的技术领域可以包含但不限于:海洋气象、材料力学、生命科学、工程力学、宇宙天文或核能物理等应用。由于HPC应用的规模较大,HPC应用对处理器、内存带宽、运算方式、系统I/O、存储等方面的要求都十分高,因此,HPC应用更依赖物理运行环境。需要说明的是,HPC应用的运行还依赖一些用于科学计算的工具,例如,数学核心函数库(Math Kernel Library,MKL)、快速傅里叶变换(Fast Fourier Transform,FFT)、基本线性代数例程(Basic Linear Algebra Subprograms,BLAS)或线性代数包(Linear AlgebraPackage,LAPACK)等。这就需要在物理机上同时部署这些用于科学计算的库函数。
其中,第二类应用可以是任何依赖虚拟化运行环境的应用,例如各种AI应用。如图2所示,AI应用的技术领域包括但不限于:自然语言处理、语音识别、模式识别、图像识别、计算机视觉或数据挖掘等;其中,这些AI应用依赖于神经网络模型,其中实现神经网络模型可以采用但不限于列举的几种工具:Pytorch、Tensorflow、Keras或Caffe等。其中,PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。Keras 是一个用 Python 编写的高级神经网络 API,是基于 Python 实现的深度学习库。Tensorflow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现。Caffe,全称Convolutional Architecture forFast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。
在本实施例中,如图2所示,物理机的硬件资源包括:存储资源、计算资源以及网络资源等。其中,存储资源包括但不限于:内存或硬盘;计算资源包括但不限于:CPU或GPU;网络资源包括但不限于:网卡、WiFi模块等可提供带宽和通信连接的硬件模块。另外,网络资源除了包括这些硬件模块之外,还涉及一些软件协议,例如,远程直接内存访问(RDMA overConverged Ethernet,RoCE)、无线带宽(InfiniBand)或传输控制协议(TransmissionControl Protocol,TCP)等。物理机上的这些硬件资源,或者可以直接启动物理运行环境为第一类应用提供资源服务,或者在经过虚拟化处理得到虚拟化运行环境之后为第二类应用提供资源服务。需要说明的是,在同一时刻,同一台物理机只能为一类应用提供资源服务,即在同一时刻只能有一类应用运行在物理机上,也就是说,第一类应用和第二类应用可以在不同时段使用物理机提供的计算、存储和网络等资源。这就涉及对物理机资源的合理调度问题,如果调度不合理就会造成物理机资源使用冲突等现象。
在本实施例的计算集群系统100中,设置调度控制系统101,调度控制系统101一方面负责接收计算集群系统的作业任务,另一方面负责对至少两台物理机102进行资源调度,即为这些作业任务分配运行所需的物理机资源。调度控制系统101可以按照作业任务的资源需求,从至少两台物理机102中挑选出满足资源需求的物理机,将作业任务分配到该物理机,由该满足资源需求的物理机完成作业任务。其中,作业任务包括:部署或运行哪类应用以及该类应用的资源需求信息。其中,根据作业任务所需部署或运行的应用类型的不同,应用的资源需求信息也会有所不同。例如,作业任务所需部署或运行的是第一类应用,则应用的资源需求信息是对物理资源的需求信息。其中,对物理资源的需求信息可以是对硬件资源的需求信息,进一步还可以包括对软件资源的需求信息,例如,对数学核心函数库或线性代数包的需求信息。又例如,作业任务所需部署或运行的是第二类应用,则应用的资源需求信息是对虚拟资源的需求信息。虚拟资源的需求信息可以包括虚拟资源的资源规格,虚拟的资源规格可以反映到硬件资源上,例如,小型(samll)虚拟机对应CPU核数为1、内存为1.7GB,硬盘为250GB;大型(large)虚拟机对应CPU核数为4、内存为7GB,硬盘为1000GB。进一步,虚拟资源的需求信息还可以包括对软件资源的需求信息,例如,对神经网络模型的需求信息。
可选地,调度控制系统101可以对外提供作业任务提交入口,该作业任务提交入口可以是web页面、应用页面或命令窗等。用户可以通过该作业任务提交入口向调度控制系统101提交应用部署请求,应用部署请求包括部署哪类应用以及部署该类应用所需的资源量,调度控制系统101可根据应用部署请求中的资源量,确定待部署应用的资源需求信息。其中,待部署应用可以是第一类应用,也可以是第二类应用。
进一步可选地,考虑到本实施例提供的计算集群系统100可以面向众多用户服务,那么在实际应用中可能发生多个用户在同一时段针对同一类应用向计算集群系统100发起应用部署请求的情况。需要说明的是,多个用户可以针对同一应用向计算集群系统100发起应用部署请求,也可以针对属于同一类应用的多个不同应用分别向计算集群系统100发起应用部署请求。例如,若多个用户同时针对第一类应用分别发起应用部署请求,则调度控制系统101可接收到针对第一类应用的多个应用部署请求,根据多个应用部署请求中的资源量,确定第一类应用的资源需求信息。或者,若多个用户同时针对第二类应用分别发起应用部署请求,则调度控制系统101可接收到针对第二类应用的多个应用部署请求,根据多个应用部署请求中的资源量,确定第二类应用的资源需求信息。
进一步可选地,无论是针对第一类应用接收到多个应用部署请求还是针对第二类应用接收到多个应用部署请求,在根据多个应用部署请求中的资源量确定第一类应用或第二类应用的资源需求信息的实施方式包括但不限于下述几种:可以将多个应用部署请求中的资源量进行加和,得到资源量之和,将该资源量之和作为第一或第二类应用的资源需求信息;或者,可以将多个应用部署请求中的最大资源量作为第一或第二类应用的资源需求信息。
在本实施例中,为了满足针对两类应用对至少两台物理机进行融合调度,为每台物理机维护有分配状态,该分配状态表示物理机在当前时刻是否被分配出去以及在被分配出去的情况下被分配给了哪类应用。在本实施例中,每台物理机的分配状态包括以下两种状态:已分配给任一类应用的已分配状态和待分配状态。其中,待分配状态表示物理机当前未被分配给任何一类应用;已分配状态表示物理机当前已被分配给某类应用,或者是被分配给第一类应用或者是被分配给第二类应用。需要说明的是,在同一时间,同一台物理机只能被分配给第一类应用和第二类应用中某一类应用。进一步,根据物理机的工作状态,还可以将处于已分配状态下的物理机划分为空闲和非空闲两个状态。例如,已经被分配给第一类应用的物理机在没有工作任务的情况下,会处于空闲状态;反之,在具有工作任务的情况下,就会处于运行状态,即非空闲状态。对于处于已分配且非空闲状态的物理机,为了保证当前工作任务的正常执行,原则上调度控制系统101不应对该物理机进行再分配处理;对于处于已分配且空闲状态的物理机,为了提高物理机的资源利用率,保证另一类应用具有足够的资源,原则上调度控制系统101可以对该物理机进行再分配处理。其中,在对物理机进行再分配的情况下,物理机的分配状态会同步更新。在本实施例中,处于待分配状态的物理机可默认视为处于空闲状态。
具体地,调度控制系统101除了获取两类应用的资源需求信息之外,还可以监测至少两台物理机的分配状态,并从中确定当前处于待分配状态的物理机的资源信息。其中,调度控制系统101可以按照设定的时间间隔定期扫描至少两台物理机的分配状态,或者也可以在获取到第一或第二类应用的资源需求信息的情况下,扫描至少两台物理机的分配状态,以实现对至少两台物理机的分配状态的监测,或者也可以实时监测至少两台物理机的分配状态。
进一步,在对至少两台物理机进行资源调度过程中,调度控制系统101可根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定两类应用中是否出现资源需求得不到满足的目标类应用,该目标类应用或者是第一类应用或者是第二类应用,在图1中以目标类应用是第一类应用为例进行图示,但并不限于此;若确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在空闲物理机,为了便于区分和描述,将该已分配给另一类应用的空闲物理机称为第一空闲物理机;若已分配给另一类应用的物理机中存在第一空闲物理机,则将第一空闲物理机分配给目标类应用,并将该第一空闲物理机的分配状态由已分配给另一类应用更改为已分配给目标类应用。其中,第一空闲物理机可能是一台或多台。
在本申请实施例中,针对依赖不同运行环境的两类应用对计算集群系统中的至少两台物理机进行统一资源调度,使得可以为用户提供物理运行环境和虚拟化运行环境融合一体的计算资源。具体地,通过为物理机设置不同分配状态,用来区分物理机被分配给哪类应用,并且还可以根据物理机的分配状态和两类应用的资源需求信息对已分配给某类应用的物理机进行再分配,同时更新物理机的分配状态,实现对物理机资源的合理调度,而无需针对两类应用分别建设计算集群,降低了计算集群的建设成本,提高了资源利用率。
在一可选实施例中,根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定两类应用中是否出现资源需求得不到满足的目标类应用,在实现上可以采用但不限于下面几种情况。
情况A1:对任一类应用而言,若已分配给该类应用的物理机不存在剩余可用资源,无法满足该类应用的资源需求,且处于待分配状态的物理机的资源信息也无法满足该类应用的资源需求,则该类应用属于本申请实施例所说的资源需求得不到满足的目标类应用。这种情况下,识别已分配给另一类应用的物理机中是否存在第一空闲物理机,若存在,则可以对第一空闲物理机进行资源再分配处理,以便于将第一空闲物理机重新分配给目标类应用。
情况A2:对任一类应用而言,若已分配给该类应用的物理机均处于非空闲状态(无论这些物理机是否具有剩余可用资源),直接判断处于待分配状态的物理机的资源信息是否可以满足目标类应用的资源需求,若处于待分配状态的物理机的资源信息无法满足目标类应用的资源需求,则该类应用属于本申请实施例所说的资源需求得不到满足的目标类应用。这种情况下,识别已分配给另一类应用的物理机中是否存在第一空闲物理机,若存在,则对第一空闲物理机进行资源再分配处理,以便于将第一空闲物理机重新分配给目标类应用。
可选地,在上述情况A1和A2中,调度控制系统101在将第一空闲物理机分配给目标类应用时,具体用于:根据目标类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定目标类应用的资源差额;在已分配给另一类应用的空闲物理机(即第一空闲物理机)为至少两台的情况下,从至少两台第一空闲物理机中,选择满足资源差额的至少一台目标物理机,将至少一台目标物理机分配给目标类应用。这里的资源差额是指目标类应用所需资源量与当前处于待分配状态的物理机所能提供的资源量之差。
情况A3:对任一类应用而言,若已分配给该类应用的物理机存在剩余可用资源,但该剩余可用资源无法满足目标类应用的资源需求,且该剩余可用资源与处于待分配状态的物理机的资源信息之和也无法满足目标类应用的资源需求,则该类应用属于本申请实施例所说的资源需求得不到满足的目标类应用。这种情况下,识别已分配给另一类应用的物理机中是否存在第一空闲物理机,若存在,则对第一空闲物理机进行资源再分配处理,以便于将第一空闲物理机重新分配给目标类应用。
可选地,调度控制系统101在将第一空闲物理机分配给目标类应用时,具体用于:根据目标类应用的资源需求信息、已分配给第一类应用的物理机存在的剩余可用资源信息以及当前处于待分配状态的物理机的资源信息,确定目标类应用的资源差额;在已分配给另一类应用的空闲物理机(即第一空闲物理机)为至少两台的情况下,从至少两台第一空闲物理机中,选择满足资源差额的至少一台目标物理机,将至少一台目标物理机分配给目标类应用。这里的资源差额是指目标类应用所需资源量与资源量之和的差值,资源量之和是指已分配给第一类应用的物理机存在的剩余可用资源量和当前处于待分配状态的物理机所能的加和。
进一步可选地,在上述各种情况下,根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定两类应用中是否出现资源需求得不到满足的目标类应用时,还可能出现两类应用的资源需求均能得到满足的情况。对于两类应用的资源需求均能得到满足的情况,其中,任一类应用的资源需求得到满足的情况可能存在以下三种情形,在下面三种情形中以第一类应用的资源需求可以得到满足为例进行说明。
情形B1:在出现新的应用部署请求时,已分配给第一类应用的物理机中存在足够的剩余可用资源,可以满足该应用部署请求的需求。在该情形B1中,可以从已分配给第一类应用的物理机中选择处于空闲状态的一台或几台物理机,并将新的应用部署请求对应的待部署应用部署在所选择的处于空闲状态的一台或几台物理机上。
情形B2:在出现新的应用部署请求时,处于待分配状态的物理机所提供的资源量可以满足该应用部署请求的需求。在该情形B2中,可以从处于待分配状态的物理机中选择一台或几台物理机,并将新的应用部署请求对应的待部署应用部署在所选择的一台或几台物理机上。
情形B3:在出现新的应用部署请求时,已分配给第一类应用的物理机可提供的剩余可用资源单独无法满足该应用部署请求的需求,但联合处于待分配状态的物理机可提供的资源可满足该应用部署请求的需求。在这种情况下,可以从已分配给第一类应用的物理机中处于空闲状态的物理机和当前处于待分配状态的物理机中选择一台或多台物理机,并将新的应用部署请求对应的待部署应用部署在所选择的一台或几台物理机上。
在上述实施例中,并不对各类应用所需的资源形态进行限定,相应地,资源形态不同,资源量的表示方式也会有所不同。在一可选实施例中,第一类应用所需的资源形态为物理机,则物理机的数量是资源量的一种具体实现方式;相应地,第二类应用所需的资源形态可以是容器或虚拟机,则容器或虚拟机的数量可以是资源量的另一种具体实现方式;其中,在容器或虚拟机的资源规格确定的情况下,每台物理机可虚拟出的容器或虚拟机的数量是确定的,故容器或虚拟机的数量可转换为物理机的数量。
在一可选实施例中,若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中不存在第一空闲物理机,说明计算集群系统100当前处于整体资源不足的状态,则可以从共享资源池中申请新的物理机,以对计算集群系统进行扩容;或者,在两类应用的资源需求同时得到不到满足的情况下,说明计算集群系统100当前处于整体资源不足的状态,则可以从共享资源池中申请新的物理机,以对计算集群系统进行扩容。当然,调度控制系统101还可以从系统维度监测整个计算集群系统100的资源使用情况,并在监测到整个计算集群系统100在一段时间内出现资源过剩的情况下,将系统中处于待分配状态的物理机或处于已分配且空闲状态的物理机释放至共享资源池中,以实现资源共享,提高资源整体利用率。
在一可选实施例中,调度控制系统101还可以监测待分配状态的物理机数量,在当前处于待分配状态的物理机的数量小于设定阈值时,识别所有处于已分配状态的物理机中是否存在第二空闲物理机,第二空闲物理机是已分配给第一类应用的空闲物理机或已分配给第二类应用的空闲物理机,第二空闲物理机可能是零台、一台或多台;若存在,则将第二空闲物理机的分配状态更改为待分配状态,以增加当前处于待分配状态的物理机数量;若不存在,则可以从共享资源池中申请新的物理机,以对计算集群系统进行扩容。
在本申请上述或下述实施例中,并不对调度控制系统101的实现方式进行限定。在一可选实施例中,调度控制系统101可以实现为一个可以同时针对两类应用进行资源调度的融合型资源调度系统。进一步可选地,在第一类应用是HPC应用,第二类应用是AI应用的情况下,该融合型资源调度系统可以是一种同时兼顾SLURM调度系统的调度功能和K8s调度系统的调度功能的调度系统,在图2中以此为例进行图示。或者,在另一可选实施例中,如图3所示,调度控制系统101的另一种实现方式可以包括:调度控制器101a、第一调度器101b和第二调度器101c。
在本实施例中,并不对调度控制器101a、第一调度器101b和第二调度器101c的部署方式进行限定。调度控制器101a、第一调度器101b和第二调度器101c可以部署在同一物理机上,也可以部署在不同的物理机上,例如,调度控制器101a部署在一台物理机上,第一调度器101b和第二调度器101c部署在另一台物理机上。对于调度控制器101a、第一调度器101b和第二调度器101c中的每一个,可以独立部署在一台物理机上,也可以分布式的部署在至少两台物理机上。
在本实施例中,第一调度器101b用于针对第一类应用进行资源调度,该资源调度过程包括但不限于:为第一类应用申请物理机资源,对已分配给第一类应用的物理机进行分配状态的更新,以实现对已分配给第一类应用的物理机进行状态管理和再分配处理,除此之外,第一调度器101b还可以接收用户对第一类应用的资源需求信息,如图3中的步骤①所示;第二调度器101c用于针对第二类应用进行资源调度,该资源调度过程包括但不限于:为第二类应用申请物理机资源,并在该物理机资源上部署第二类应用所依赖的虚拟化运行环境;针对已分配给第二类应用的物理机进行分配状态的更新,以实现对已分配给第二类应用的物理机进行状态管理和再分配处理;除此之外,第二调度器101c还可以接收用户对第二类应用的资源需求信息。调度控制器101a用于监测至少两台物理机的分配状态,并将当前处于待分配状态的物理机的资源信息和监测到的分配状态提供给第一调度器101b和第二调度器101c。
在本实施例中,第一调度器101b用于在根据第一类应用的资源需求和当前处于待分配状态的物理机的资源信息确定第一类应用的资源需求得不到满足的情况下,通过调度控制器101a向第二调度器101c发送资源请求,如图3中的步骤②;第二调度器101c识别已分配到的物理机中的空闲物理机并更改其分配状态为待分配状态,如图3中的步骤③;调度控制器101a监测空闲物理机的分配状态,并将空闲物理机的分配状态提供给第一调度器101b,如图3中的步骤④;第一调度器101b在接收到调度控制器101a发送的空闲物理机的分配状态的情况下,将空闲物理机的分配状态更改为已分配给第一类应用,如图3中的步骤⑤;在空闲物理机上创建物理运行环境中,在所创建的物理运行环境中运行第一类应用(如HPC应用),如图3中的步骤⑥。
在本实施例中,第二调度器101c,用于在根据第二类应用的资源需求和当前处于待分配状态的物理机的资源信息确定第二类应用的资源需求得不到满足的情况下,通过调度控制器101a向第一调度器101b发送资源请求,以供第一调度器101b识别已分配到的物理机中的第一空闲物理机并更改其分配状态为待分配状态;调度控制器101a将第一空闲物理机的分配状态提供给第二调度器101c;第二调度器101c在接收到调度控制器101a发送的第一空闲物理机的分配状态的情况下,将第一空闲物理机的分配状态更改为已分配给第二类应用,并在第一空闲物理机上创建虚拟运行环境中,在所创建的虚拟运行环境中运行第二类应用。上述第二调度器101c为第二类应用进行资源调度的过程并未在图3中示出。
场景化实施例
下面以调度控制器101a是依托于容器的调度微服务,调度微服务在后台执行,第一调度器101b是容器调度系统K8s,第二调度器101c是物理机调度系统SLURM为例,对计算集群系统的调度过程进行说明。
在本实施例中,第一类应用实现为AI应用,第二类应用实现为HPC应用,K8s调度系统可以对AI计算集群进行资源调度,AI计算集群中包括已分配给AI应用的物理机。K8s调度系统可以向用户提供作业任务提交入口,用户通过该作业任务提交入口向K8s调度系统提交AI应用部署请求,根据该AI应用部署请求可以确定该AI应用的资源需求信息,例如对容器规格、数量的需求信息。SLURM调度系统可以对HPC计算集群进行资源调度,HPC计算集群中包括已分配给HPC应用的物理机。SLURM调度系统可以向用户提供作业任务提交入口,用户通过该作业任务提交入口向SLURM调度系统提交HPC应用部署请求,根据该HPC应用部署请求可以确定该HPC应用的资源需求信息,例如,对物理机规格或数量的需求信息。
在本实施例中,调度微服务按规定时间间隔扫描计算集群系统中物理机的分配状态,并将处于待分配状态的物理机的资源信息提供给K8s调度系统和SLURM调度系统。其中,物理机的分配状态主要有两种:一种是已分配状态,用状态标识ScheduledForSlurm来表示物理机已分配给SLURM调度系统或用状态标识ScheduledForK8S来表示物理机已分配给K8s;另一种是待分配状态,用回收等待分配标识ReclaimForSchedule来标识物理机的待分配状态。
若K8s调度系统根据AI应用的资源需求和待分配状态的物理机的资源信息,确定AI应用资源需求得不到满足,例如当前带有ScheduledForK8S标识和ReclaimForSchedule标识的物理机无法创建出AI应用所需的容器数量,则通过调度微服务向SLURM调度系统发送节点请求(即资源请求)。SLURM调度系统在收到K8s调度系统的节点请求后,可以查看已分配给HPC应用的物理机中是否存在空闲物理机,若已分配给HPC应用的物理机中存在空闲物理机,则将设定数量的空闲物理机的分配状态设置为ReclaimForSchedule,即将已分配给HPC应用的空闲物理机的分配状态修改为待分配状态。其中,设定数量可以根据K8s调度系统发送的节点请求来确定,节点请求中携带有对空闲物理机的数量需求,即前述设定数量,该设定数量可以根据AI应用所需容器规格与数量结合物理机的资源规格进行确定;可选地,若SLURM调度系统的空闲物理机的数量大于或等于该设定数量,则SLURM调度系统修改设定数量的空闲物理机的分配状态,若SLURM调度系统的空闲物理机的数量小于该设定数量,则修改所有空闲物理机的分配状态,并通过调度微服务通知K8s调度系统从共享资源池中申请新的物理机,以对计算集群系统进行扩容,或者SLURM调度系统直接从共享资源池中申请新的物理机,以对计算集群系统进行扩容。
在本实施例中,K8s调度系统通过调度微服务发送的计算集群系统中物理机的分配状态,若发现有物理机处于待分配状态,则将该物理机的分配状态修改为ScheduledForK8S,同时该物理机归K8s调度系统调度。
对于SLURM调度系统根据HPC应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定HPC应用资源需求得不到满足的情况下,SLURM调度系统向K8s调度系统请求物理机的过程,可参见前述K8s调度系统向SLURM调度系统请求物理机的过程,在此不再赘述。在本申请中,对于处于待分配状态的物理机,采用同一标识(ReclaimForSchedule)来标记,K8s调度系统和SLURM调度系统均可识别,对于已分配给SLURM或者已分配给K8s的物理机,采用ScheduledForSlurm或ScheduledForK8S来标识物理机的分配状态。K8s调度系统和SLURM调度系统利用物理机的分配状态对计算集群系统中的物理机进行资源调度,可避免资源使用冲突的产生,实现计算资源的准确调度。
本申请结合了HPC应用使用场景与AI应用的使用场景,解决了现阶段针对不同应用场景必须单独建设集群的行业问题,并为使用多种类型应用的工作人员提供了极大的便利。本申请主要通过以下技术方案来实现:首先融合了物理机调度系统和容器调度系统,实现了对HPC计算集群与AI计算集群的统一调度管理,为用户提供了融合一体的计算资源,将原本必须分开使用的两个不同的集群设备进行合并,使用统一的存储及网络系统;通过间歇性扫描获取集群物理机的分配状态,根据物理机当前的分配状态对物理机节点资源与容器节点资源进行再分配,同时更新物理机的分配状态。然后通过自定义节点状态来标识节点是否处于待分配状态,实现计算资源的准确调度。
图4为本申请示例性实施例提供的一种调度方法的流程示意图;该方法可应用于前述实施例中的调度控制系统,如图4所示,该方法包括:
401、监测至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对物理机进行虚拟化处理可得到虚拟化运行环境;
402、若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;
403、若存在,则将第一空闲物理机分配给目标类应用,并将其分配状态更改为已分配给目标类应用。
在一可选实施例中,在第一空闲物理机为至少两台的情况下,将第一空闲物理机分配给目标类应用,包括:根据目标类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定目标类应用的资源差额;从至少两台第一空闲物理机中,选择满足资源差额的至少一台目标物理机,将至少一台目标物理机分配给目标类应用。
在一可选实施例中,本申请实施例提供的方法,还包括:接收多个用户针对目标类应用分别发起的多个应用部署请求,应用部署请求包括部署应用所需的资源量;根据多个应用部署请求中的资源量,确定目标类应用的资源需求信息。
在一可选实施例中,本申请实施例提供的方法,还包括:在当前处于待分配状态的物理机的数量小于设定阈值时,识别所有处于已分配状态的物理机中是否存在第二空闲物理机;若存在,则将第二空闲物理机的分配状态更改为待分配状态,以增加当前处于待分配状态的物理机数量。
在一可选实施例中,本申请实施例提供的方法,还包括:在两类应用的资源需求同时得到不到满足的情况下,从共享资源池中申请新的物理机,以对计算集群系统进行扩容;或者在识别已分配给另一类应用的物理机中不存在第一空闲物理机的情况下,从共享资源池中申请新的物理机,以对计算集群系统进行扩容。
在一可选实施例中,调度控制系统包括:调度控制器、第一调度器和第二调度器;第一调度器,用于针对第一类应用进行资源调度;第二调度器,用于针对第二类应用进行资源调度;调度控制器用于对第一调度器和第二调度器进行资源调度控制。
可选地,上述步骤401-403描述的调度过程具体包括:调度控制器监测至少两台物理机的分配状态,并将当前处于待分配状态的物理机的资源信息及其分配状态提供给第一调度器和第二调度器;
第一调度器在根据第一类应用的资源需求和资源信息确定第一类应用的资源需求得不到满足的情况下,通过调度控制器向第二调度器发送资源请求,以供第二调度器识别已分配到的物理机中存在的第一空闲物理机并更改其分配状态为待分配状态;以及在接收到调度控制器发送的第一空闲物理机的分配状态的情况下,将第一空闲物理机的分配状态更改为已分配给第一类应用,并在第一空闲物理机上创建物理运行环境,在所创建的物理运行环境中运行第一类应用;
相应地,第二调度器在根据第二类应用的资源需求和资源信息确定第二类应用的资源需求得不到满足的情况下,通过调度控制器向第一调度器发送资源请求,以供第一调度器识别已分配到的物理机中存在的第一空闲物理机并更改其分配状态为待分配状态;以及在接收到调度控制器发送的第一空闲物理机的分配状态的情况下,将第一空闲物理机的分配状态更改为已分配给第二类应用,并在第一空闲物理机上创建虚拟运行环境中,在所创建的虚拟运行环境中运行第二类应用。
在本申请一可选实施例中,在至少两台物理机上预先部署有容器,这些容器用于承载第二类应用;在物理机被分配给第二类应用的情况下,在容器中部署第二类应用并启动容器,第二类应用所需的虚拟化运行环境由运行态的容器提供;相应地,在物理机被分配给第一类应用的情况下,这些容器将不被使用和启动,而是在物理机的物理资源上直接部署第一类应用并运行,第一类应用所需的物理运行环境由物理机的操作系统直接提供。
本申请实施例提供的调度方法,通过为物理机设置不同分配状态,用来区分物理机被分配给哪类应用,并且还可以根据物理机的分配状态和两类应用的资源需求信息对已分配给某类应用的物理机进行再分配,同时更新物理机的分配状态,实现对物理机资源的合理调度,而无需针对两类应用分别建设计算集群,降低了计算集群的建设成本,提高了资源利用率。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤403的执行主体可以为设备A;又比如,步骤401和402的执行主体可以为设备A,步骤403的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5为本申请示例性实施例提供的一种调度控制系统的结构示意图。该系统可以采用分布部署在计算集群系统中的至少两台物理机上,当然,也可以集中部署在计算集群系统中的一台物理机上。如图5所示,该设备包括:存储器54和处理器55。
存储器54,用于存储计算机程序,并可被配置为存储其它各种数据以支持在调度控制设备上的操作。这些数据的示例包括用于在调度控制设备上操作的任何应用程序或方法的指令。
存储器54可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器55,与存储器54耦合,用于执行存储器54中的计算机程序,以用于:监测至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对物理机进行虚拟化处理可得到虚拟化运行环境;若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;若存在,则将第一空闲物理机分配给目标类应用,并将其分配状态更改为已分配给目标类应用。
在一可选实施例中,在第一空闲物理机为至少两台的情况下,处理器55在将第一空闲物理机分配给目标类应用时,具体用于:根据目标类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定目标类应用的资源差额;从至少两台第一空闲物理机中,选择满足资源差额的至少一台目标物理机,将至少一台目标物理机分配给目标类应用。
在一可选实施例中,处理器55还用于:接收多个用户针对目标类应用分别发起的多个应用部署请求,应用部署请求包括部署应用所需的资源量;根据多个应用部署请求中的资源量,确定目标类应用的资源需求信息。
在一可选实施例中,处理器55还用于:在当前处于待分配状态的物理机的数量小于设定阈值时,识别所有处于已分配状态的物理机中是否存在第二空闲物理机;若存在,则将第二空闲物理机的分配状态更改为待分配状态,以增加当前处于待分配状态的物理机数量。
在一可选实施例中,处理器55还用于:在两类应用的资源需求同时得到不到满足的情况下,从共享资源池中申请新的物理机,以对计算集群系统进行扩容;或者在识别已分配给另一类应用的物理机中不存在第一空闲物理机的情况下,从共享资源池中申请新的物理机,以对计算集群系统进行扩容。
在一可选实施例中,调度控制系统还包括:第一调度器和第二调度器;第一调度器,用于针对第一类应用进行资源调度;第二调度器,用于针对第二类应用进行资源调度;所述处理器55用于对第一调度器和第二调度器进行资源调度控制。
可选地,所述处理器55用于监测至少两台物理机的分配状态,并将当前处于待分配状态的物理机的资源信息及其分配状态提供给第一调度器和第二调度器;第一或第二调度器,用于在根据第一或第二类应用的资源需求和资源信息确定第一或第二类应用的资源需求得不到满足的情况下,通过所述处理器55向另一调度器发送资源请求,以供另一调度器识别已分配到的物理机中的第一空闲物理机并更改其分配状态为待分配状态;以及在接收到所述处理器55发送的第一空闲物理机的分配状态的情况下,将第一空闲物理机的分配状态更改为已分配给第一或第二类应用,并在第一空闲物理机上创建物理运行环境或虚拟运行环境中,在所创建的物理运行环境或虚拟运行环境中运行第一或第二类应用。
在本申请一可选实施例中,在至少两台物理机上预先部署有容器,这些容器用于承载第二类应用;在物理机被分配给第二类应用的情况下,在容器中部署第二类应用并启动容器,第二类应用所需的虚拟化运行环境由运行态的容器提供;相应地,在物理机被分配给第一类应用的情况下,这些容器将不被使用和启动,而是在物理机的物理资源上直接部署第一类应用并运行,第一类应用所需的物理运行环境由物理机的操作系统直接提供。
本申请实施例提供的调度控制系统,通过为物理机设置不同分配状态,用来区分物理机被分配给哪类应用,并且还可以根据物理机的分配状态和两类应用的资源需求信息对已分配给某类应用的物理机进行再分配,同时更新物理机的分配状态,实现对物理机资源的合理调度,而无需针对两类应用分别建设计算集群,降低了计算集群的建设成本,提高了资源利用率。
进一步,如图5所示,该调度控制系统还包括:通信组件56、显示器57、电源组件58、音频组件59等其它组件。图5中仅示意性给出部分组件,并不意味着调度控制设备只包括图5所示组件。需要说明的是,图5中虚线框内的组件为可选组件,而非必选组件,具体可视调度控制设备的产品形态而定。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器能够实现图4所示的方法。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器实现图4所示的方法。
上述图5中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图5中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图5中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图5中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种计算集群系统,其特征在于,包括:调度控制系统以及能被调度的至少两台物理机,所述物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对所述物理机进行虚拟化处理能得到所述虚拟化运行环境;所述虚拟化运行环境是预先部署在所述物理机上的虚拟机或容器,在所述物理机未分配给所述第二类应用的情况下,所述虚拟机和所述容器处于未启动状态或未运行状态,在所述物理机被分配给所述第二类应用的情况下,所述虚拟机或所述容器处于启动状态或运行状态;
所述调度控制系统,用于监测所述至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;若存在,则将所述第一空闲物理机分配给所述目标类应用,并将其分配状态更改为已分配给所述目标类应用。
2.根据权利要求1所述的系统,其特征在于,在所述第一空闲物理机为至少两台的情况下,所述调度控制系统在将所述第一空闲物理机分配给所述目标类应用时,具体用于:
根据所述目标类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定所述目标类应用的资源差额;
从至少两台第一空闲物理机中,选择满足所述资源差额的至少一台目标物理机,将所述至少一台目标物理机分配给所述目标类应用。
3.根据权利要求1所述的系统,其特征在于,所述调度控制系统还用于:
在当前处于待分配状态的物理机的数量小于设定阈值时,识别所有处于已分配状态的物理机中是否存在第二空闲物理机;若存在,则将所述第二空闲物理机的分配状态更改为待分配状态,以增加当前处于待分配状态的物理机数量。
4.根据权利要求1所述的系统,其特征在于,所述调度控制系统还用于:
在两类应用的资源需求同时得不到满足的情况下,从共享资源池中申请新的物理机,以对所述计算集群系统进行扩容;
或者
在识别到已分配给另一类应用的物理机中不存在第一空闲物理机的情况下,从共享资源池中申请新的物理机,以对所述计算集群系统进行扩容。
5.根据权利要求1-4任一项所述的系统,其特征在于,所述调度控制系统包括:调度控制器、第一调度器和第二调度器;
所述第一调度器,用于针对第一类应用进行资源调度;所述第二调度器,用于针对第二类应用进行资源调度;所述调度控制器用于对所述第一调度器和第二调度器进行资源调度控制。
6.根据权利要求5所述的系统,其特征在于,所述调度控制器,用于监测所述至少两台物理机的分配状态,并将当前处于待分配状态的物理机的资源信息及其分配状态提供给所述第一调度器和所述第二调度器;
所述第一或第二调度器,用于在根据所述第一或第二类应用的资源需求和所述资源信息确定所述第一或第二类应用的资源需求得不到满足的情况下,通过所述调度控制器向另一调度器发送资源请求,以供另一调度器识别已分配到的物理机中的第一空闲物理机并更改其分配状态为待分配状态;以及
在接收到所述调度控制器发送的第一空闲物理机的分配状态的情况下,将所述第一空闲物理机的分配状态更改为已分配给第一或第二类应用,并在所述第一空闲物理机上创建物理运行环境或虚拟运行环境中,在所创建的物理运行环境或虚拟运行环境中运行第一或第二类应用。
7.根据权利要求1-4任一项所述的系统,其特征在于,在所述至少两台物理机上预先部署有容器,所述容器用于承载第二类应用,所述虚拟化运行环境为运行态的容器。
8.一种调度方法,其特征在于,包括:
监测至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;所述物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对所述物理机进行虚拟化处理能得到所述虚拟化运行环境;所述虚拟化运行环境是预先部署在所述物理机上的虚拟机或容器,在所述物理机未分配给所述第二类应用的情况下,所述虚拟机和所述容器处于未启动状态或未运行状态,在所述物理机被分配给所述第二类应用的情况下,所述虚拟机或所述容器处于启动状态或运行状态;
若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;
若存在,则将所述第一空闲物理机分配给所述目标类应用,并将其分配状态更改为已分配给所述目标类应用。
9.根据权利要求8所述的方法,其特征在于,在所述第一空闲物理机为至少两台的情况下,将所述第一空闲物理机分配给所述目标类应用,包括:
根据所述目标类应用的资源需求信息和当前处于待分配状态的物理机的资源信息,确定所述目标类应用的资源差额;
从至少两台第一空闲物理机中,选择满足所述资源差额的至少一台目标物理机,将所述至少一台目标物理机分配给所述目标类应用。
10.根据权利要求9所述的方法,其特征在于,还包括:
接收多个用户针对所述目标类应用分别发起的多个应用部署请求,所述应用部署请求包括部署应用所需的资源量;
根据所述多个应用部署请求中的资源量,确定所述目标类应用的资源需求信息。
11.根据权利要求8所述的方法,其特征在于,还包括:
在当前处于待分配状态的物理机的数量小于设定阈值时,识别所有处于已分配状态的物理机中是否存在第二空闲物理机;若存在,则将所述第二空闲物理机的分配状态更改为待分配状态,以增加当前处于待分配状态的物理机数量。
12.根据权利要求8所述的方法,其特征在于,还包括:
在两类应用的资源需求同时得不到满足的情况下,从共享资源池中申请新的物理机,以对计算集群系统进行扩容;
或者
在识别已分配给另一类应用的物理机中不存在第一空闲物理机的情况下,从共享资源池中申请新的物理机,以对所述计算集群系统进行扩容。
13.一种调度控制系统,其特征在于,包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:监测至少两台物理机的分配状态,每台物理机的分配状态为已分配给任一类应用的已分配状态或待分配状态;所述物理机用于运行依赖物理运行环境的第一类应用或用于运行依赖虚拟化运行环境的第二类应用,其中,对所述物理机进行虚拟化处理能得到所述虚拟化运行环境;所述虚拟化运行环境是预先部署在所述物理机上的虚拟机或容器,在所述物理机未分配给所述第二类应用的情况下,所述虚拟机和所述容器处于未启动状态或未运行状态,在所述物理机被分配给所述第二类应用的情况下,所述虚拟机或所述容器处于启动状态或运行状态;若根据两类应用的资源需求信息和当前处于待分配状态的物理机的资源信息确定两类应用中出现资源需求得不到满足的目标类应用,则识别已分配给另一类应用的物理机中是否存在第一空闲物理机;若存在,则将所述第一空闲物理机分配给所述目标类应用,并将其分配状态更改为已分配给所述目标类应用。
14.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求8-12任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093990.4A CN113553190B (zh) | 2021-09-17 | 2021-09-17 | 计算集群系统、调度方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093990.4A CN113553190B (zh) | 2021-09-17 | 2021-09-17 | 计算集群系统、调度方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113553190A CN113553190A (zh) | 2021-10-26 |
CN113553190B true CN113553190B (zh) | 2022-02-15 |
Family
ID=78134652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111093990.4A Active CN113553190B (zh) | 2021-09-17 | 2021-09-17 | 计算集群系统、调度方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553190B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172903B (zh) * | 2021-11-18 | 2023-07-14 | 苏州浪潮智能科技有限公司 | slurm调度系统的节点扩容方法、装置、设备和介质 |
CN115242632A (zh) * | 2022-08-03 | 2022-10-25 | 北京有竹居网络技术有限公司 | 物理资源处理方法、装置、设备、介质及产品 |
CN115827179B (zh) * | 2022-09-15 | 2023-08-18 | 江西锋铄新能源科技有限公司 | 一种物理机设备的算力调度方法、装置、设备及存储介质 |
CN117573373B (zh) * | 2024-01-15 | 2024-03-26 | 中诚华隆计算机技术有限公司 | 一种基于云计算的cpu虚拟化调度方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825494A (zh) * | 2019-11-01 | 2020-02-21 | 北京京东尚科信息技术有限公司 | 物理机调度方法及装置、计算机可存储介质 |
US11102282B2 (en) * | 2019-02-15 | 2021-08-24 | International Business Machines Corporation | Method for managing and allocating resources in a clustered computing environment |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023742B (zh) * | 2016-10-31 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 一种应用的扩容方法、装置和系统 |
CN110532086B (zh) * | 2018-05-23 | 2022-11-15 | 阿里巴巴集团控股有限公司 | 资源复用方法、设备、系统及存储介质 |
-
2021
- 2021-09-17 CN CN202111093990.4A patent/CN113553190B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11102282B2 (en) * | 2019-02-15 | 2021-08-24 | International Business Machines Corporation | Method for managing and allocating resources in a clustered computing environment |
CN110825494A (zh) * | 2019-11-01 | 2020-02-21 | 北京京东尚科信息技术有限公司 | 物理机调度方法及装置、计算机可存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113553190A (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553190B (zh) | 计算集群系统、调度方法、设备及存储介质 | |
KR102300984B1 (ko) | 작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련 | |
US9946563B2 (en) | Batch scheduler management of virtual machines | |
US9686141B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
CN109791504B (zh) | 针对应用容器的动态资源配置 | |
US10108458B2 (en) | System and method for scheduling jobs in distributed datacenters | |
CN109416647B (zh) | 用于闭环控制系统的调度任务和管理计算资源分配的系统和方法 | |
KR101733117B1 (ko) | 멀티코어 시스템의 태스크 분배 방법 및 장치 | |
CN113454614A (zh) | 用于分布式计算中的资源划分的系统和方法 | |
CN104838359A (zh) | 等待时间敏感的软件中断和线程调度 | |
CN113037538A (zh) | 分布式资源管理中低时延节点本地调度的系统和方法 | |
US11409576B2 (en) | Dynamic distribution of a workload processing pipeline on a computing infrastructure | |
CN101424941B (zh) | 一种控制实现方法和系统 | |
US20230136661A1 (en) | Task scheduling for machine-learning workloads | |
KR20190028210A (ko) | 컨테이너 기반 인공지능 어플리케이션을 배포하는 클라우드 서비스 방법과 시스템 | |
CN108170417B (zh) | 一种在mesos集群中集成高性能的作业调度框架的方法和装置 | |
US10360070B2 (en) | Application-level dispatcher control of application-level pseudo threads and operating system threads | |
US20210232438A1 (en) | Serverless lifecycle management dispatcher | |
CN116724294A (zh) | 一种任务分配方法及装置 | |
CN108833532A (zh) | 基于物联网的服务处理方法、装置和系统 | |
CN113301076B (zh) | 流量控制方法、分布式系统、设备及存储介质 | |
CN113225269A (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
TWI845409B (zh) | 優化圖形處理單元利用率的方法和系統 | |
KR102305122B1 (ko) | 클라우드 기반 함수 실행 서비스를 제공하는 시스템 및 이의 자원 할당 방법 | |
CN116151137B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |