掌桥专利:专业的专利平台
掌桥专利
首页

云计算集群调度方法、电子设备和存储介质

文献发布时间:2023-06-19 19:28:50


云计算集群调度方法、电子设备和存储介质

技术领域

本申请涉及云平台管理技术领域,具体涉及云计算集群调度方法、电子设备和存储介质。

背景技术

随着云计算技术的发展,对于大规模云计算集群的调度系统提出了更高的要求。一方面需要更高的集群资源利用率。云平台通常利用虚拟化技术虚拟化硬件资源,以实现不同任务的混合部署,以提高资源利用率。但规模更大时,就需要设计一个更适合的资源调度系统。

集群系统是一种由互相连接的计算机组成的并行或分布式系统。对于集群系统来说,最重要的是根据需求对系统中的计算、存储、网络资源进行管理、调度和分配。

本段以一个具体的案例说明云计算集群的调度,开发者(也即云计算集群用户)申请云主机和云存储等就涉及向云计算集群提交资源请求,云计算集群除了向开发者分配云计算资源访问通道、主机、存储空间、网络地址等,还需要在集群内部自动化选择具体的宿主机和存储位置。在另一些集群中,还需要自动化下载image到目标云主机中。通过以上的自动化步骤可以实现为开发者部署/初始化服务器等一些列自动化过程。以上都需要云计算集群对主机资源、存储资源和网络化资源进行有效管理和分配,以实现对集群资源的最大化利用,而这些过程都是需要集群自动化管理调度实现的。

现有技术中,随着云计算集群中能提供的云计算越来越丰富,用户可以通过组合不同的资源进行不同的云产品的开发,随着技术的不断推进,用户对云计算集群资源的需求的变化也会越来越快,而现有的资源调度方式是基于云计算集群原生的调度策略定义如何调度资源,这已经无法满足用户日益变化、日益增长和日益丰富的资源调度需求。

发明内容

上述发明内容相关记载仅是本申请技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本申请的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本申请的上述目的及其它目的、特征和优点能够更易于理解,以下结合本申请的具体实施方式及附图进行说明。

第一方面,本发明提供一种云计算集群调度方法,包括步骤:

解析获得资源调度需求描述;

根据调度需求描述生成调度器插件和插件配置文件;

通过向云计算集群声明所述插件配置文件将插件注册到调度器;

调度器用该插件为该调度请求实现资源调度。

第二方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序用于执行前述第一方面所述的云计算集群调度方法的步骤。

第三方面,本发明还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行前述第一方面所述的云计算集群调度方法的步骤。

通过本发明的云计算集群调度方法、计算机可读存储介质和电子设备,用户可以自定义调度策略或者扩展调度策略,这就使得用户可以自主安排调度策略,以使云计算集群的调度能以最快的速度满足用户日益变化、日益增长和日益丰富的资源调度需求。

附图说明

附图仅用于示出本申请具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本申请的限制。

在说明书附图中:

图1为本申请的云计算集群调度方法的流程示意图;

图2为本申请的云计算集群调度系统的结构示意图;

图3为本申请中调度器的结构示意图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为详细说明本申请可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本申请中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。

除非另有定义,本文所使用的技术术语的含义与本申请所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本申请。

在本申请的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如A和/或B,表示:存在A,存在B,以及同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。

在本申请中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。

在没有更多限制的情况下,在本申请中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的开放式表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。

与《审查指南》中的理解相同,在本申请中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本申请实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。

第一方面,在本方法的一个实施例中,包括允许用户的调度请求包含用户自定义资源调度策略信息,并根据用户自定义的资源调度策略筛选和决策调度。参看图1所示的云计算集群调度方法的流程示意图,具体的可以包括步骤:

S1、解析获得资源调度需求描述;

S2、根据调度需求描述生成调度器插件和插件配置文件;

S3、通过向云计算集群声明所述插件配置文件将插件注册到调度器;

S4、调度器用该插件为该调度请求实现资源调度。

资源调度需求描述可以通过解析调度请求获得。资源调度需求描述中内容可以包括拓扑约束描述、命名空间描述、网络状态描述等。通过本文的方法用户可以自定义调度策略或者扩展调度策略,使用户可以自主安排调度策略,以使云计算集群的调度能最快的速度满足用户日益变化日益增长的日益丰富的资源调度需求。

调度插件的作用是调用调度器的过滤筛选过程的接口,完成用户自定义调度逻辑。筛选过程的接口是调度器中为该插件的扩展的。具体的说插件可以声明QueueSort接口、Pre-filter接口、Filter接口、Post-filter接口、PreScore接口、Score接口、NormalizeScoring接口、Reserve接口、Permit接口、Pre-bind接口、Bind接口和Unreserve接口中的至少一个接口的实现方式。在插件注册后,调度器在执行调度请求的过滤筛选过程中,调用插件声明的具体接口实现方式,从而实现用户自定义资源调度策略的目的,从而使云计算集群的资源调度能更加灵活的适应用户的部署和性能方面的要求。

本文提供一种资源调度系统(如图2所示),调度系统包括,部署于中心机房的平台适配器(platform adapter)、调度器(scheduler)以及部署IDC机房的分布式状态机(schedulable state machine)和实例(instance),平台适配器管理调度器,分布式状态机管理对应的实例。在一个实施例中,云计算集群中具有多台服务器设备,服务器可能是部署于异地的,例如分别位于中心机房和IDC机房内,一般,中心机房和IDC机房不在同一地理区划。中心机房的服务器中部署有分布式的至少一个调度器,中心机房可以有多个,可分别都部署有调度器,且多个中心机房也可以分别在不同的地理区划,多个IDC机房也在不同的地理区划。调度器可以是分别位于2个中心机房,或调度器中至少2个调度器位于同一中心机房;调度器之间相互独立工作,在选择调度资源时不依赖于其他调度器的决策,每个调度器都保存有云计算集群系统的全量资源对象的数据。并在资源对象状态发生变化时,分布式状态机将资源对象的状态同步到调度器中存储,如图3所述调度器的获取模块(fetch)用户从分布式状态机将资源对象的状态同步到调度器中,并通过加载模块(reload)加载到筛选模块(filter)模块访问的资源状态数据库中。

在一个实施例中,分布式状态机位于IDC机房中,对于每个分布式状态机,均维护有该机房中属于该云计算集群的所有宿主机节点。不同的分布式状态机相互独立;在本文实体(分布式状态机或调度器)之间相互独立,指的是同类实体之间可以并发执行。分布式状态机管理着包括但不限于各宿主机节点的状态以及管理着为用户分配的虚拟化资源(用户使用中的资源对象)的状态等。

在一个实施例中,如图3所示,调度请求队列(sheduler request)中存储着调度请求的队列,调度器的筛选模块(filter)从调度请求队列中获得调度请求(本领域技术人员应明白,图中只画出了一个调度器获取调度请求的情形,但此时多个调度器从队列中获取调度请求的步骤在本发明的方案中可以是高并发),筛选模块根据调度请求筛选资源对象获得备选结果集,打分模块(score)给备选结果集打分,并通过绑定模块(bind)绑定得分最优的备选结果,并将验证条件发送给分布式状态机,由分布式状态机验证判断结果。例如在一个实施例中,调度流程包括,调度器接收调度请求,根据调度请求过滤资源对象获得备选结果集。云计算集群中的资源对象包括Node(宿主机)、Pod(一种虚拟化资源对象)、Service(服务)、RC(replication controller,复制控制器)等。在一些实施例中,备选结果集是指由符合预选策略的宿主机构成的集合。符合预选策略的宿主机,在一些实施例中是指满足部署调度请求对应的虚拟化硬件资源的条件(例如CPU、内存、存储条件)的宿主机。在一些实施例中,过滤筛选的过程包括对每个宿主机及其所具有的资源条件打分,从而筛选出符合条件的备选结果集。例如,根据调度器请求预期中包括的CPU、GPU、内存、存储卷volume、标签lables、主机名hostname、命名空间namespace、镜像下载速度和数据传输速度中的至少一个参数,筛选资源对象获得筛选结果集。在一些实施例中,筛选可以分为预选和优选的步骤,即先根据预筛选获得资源对象的集合,再对上一步中的资源对象打分(score),以筛选最优的符合资源调度请求的资源对象。

不同的打分方式可以选出不同的最优资源对象。在一些实施例中筛选条件包括端口值、宿主机资源数量(CPU、存储等)、volume(存储卷)、lables值、hostname(主机名)、namespace、镜像下载速度、数据传输速度等。如果多个宿主机的分数并列第一,可以随机选择一个宿主机节点进行调度。

在一些实施例中,根据宿主机已运行的虚拟化硬件资源和待申请的虚拟化硬件资源评估宿主机的得分,例如若宿主机剩余的资源可满足待申请的虚拟化硬件资源,则下一步,否则得分为0。在下一步计算中,得分与已运行的虚拟化硬件资源负相关,因此可以尽量分散资源请求,均衡宿主机的负载。

调度器根据备选结果集和验证条件发送分布式状态机,分布式状态机判断根据筛选结果集和验证条件进行判定,在一些实施例中,云计算集群中的资源都有一个metadata.ResourceVersion字段,该字段在调度成功后更新。当调度器需要在宿主机中申请虚拟化硬件资源时,通常会尝试调度合适的资源对象,并认为是调度成功的。由于调度器之间相互独立,可能存在多个调度器同时尝试调度该资源对象,而实际是哪个调度器成功调度了该资源对象是不确定的,调度器通过调度时修改该字段,并将修改后的该字段值作为验证条件发送至分布式状态机进行比较判定,如果资源对象metadata.ResourceVersion字段与验证条件一致则对应的调度器调度成功,如果不同,则调度失败。调度失败后则根据资源对象的得分尝试下一顺位分值的资源对象,遍历筛选结果集中所有资源对象对应的分布式状态机分别获得的判定,直至遍历过程中判定一致或已遍历所有的资源对象对应的分布式状态机。在一些实施例中,调度成功后这在宿主机中创建相应的虚拟化硬件资源并将其分配给用户。在另一些实施例中,调度可以是对资源对象的增删改查。

相比于其他云计算集群系统中在调度时直接先获得操作资源对象的锁,并在获得操作该资源对象的锁后再调度资源对象,以防止其他调度器调度资源对象。这类方法由于加锁和解锁操作需要消耗额外资源,特别是在调用请求密集时,容易导致操作失败或抱死。另一些云计算集群系统通过唯一中心节点(比如master节点)操作调度资源,导致调度能力受限于master节点的处理能力而无法扩大云计算集群规模和保证调度效率。本文中的方法通过乐观的方式,避免了在尝试获取调度资源失败后不断重试获得锁或不断尝试获得该资源对象这些浪费CPU资源的方案,同时使用双中心中分别部署调度器的方式,调度器可以分别独立实现调度,从而提高了调度器调度的效率和解决调度请求大量并发和竞争带来的云计算集群调度失败的问题。特别是为了使用户更便利的访问云计算集群,通常中心机房分布在不同的地理区划,多个IDC机房也在不同的地理区划,这样的云计算集群布局方式有利于减少云计算集群中提供具体处理的服务器和用户的空间距离,减少用户访问云计算集群的延时,但这也给调度提出了更高的要求,由于本申请的发明人面临着由于调度的决策在中心机房、调度的资源对象在IDC机房,若调度失败重试或大量调度竞争则会导致用户从发起调度到获得调度结果过长,容易导致调度的管理效率低,用户体验差的问题,而本方案通过可以通过就近的中心机房为用户处理调度,同时使用乐观的方式避免了常用的锁或者对单个资源对象不断重试的处理方式,提高调度效率。

另外,由于本文中的云计算集群系统采用多个中心机房的架构,当一处中心机房因意外而停止工作时,整个系统可以依靠另一处中心机房而维持云计算集群系统的功能;同时多个中心机房可以并发处理调度请求,提高了云计算集群系统横向扩展的能力,提高了云计算集群可扩展规模。

在本发明的一个实施例中,可以将分布式状态机部署于中心机房,中央机房状态机通过部署在各个机房Link总线服务通信。各分布式状态机可根据实际物理网络的远近,选择具体部署到哪个中央机房。这样部署使得调度器同分布式状态机之间的通信变成内网通信。若多调度器之间调度了同一资源而发生从冲突或竞争时,重试的成本将变低。

在本发明的一个实施例中,压缩云计算集群中资源对象的数据,因此待调度的资源元数据在调度器内存中可压缩优化,减少内存占用,从而减少调度器的筛选和调度效率,从而达到支持百万量级以上的容器资源规模的效果。压缩的方式可以是使用短字符表示资源对象的数据,或者为资源对象的数据表示制定短编码。

在本方法的一个实施例中,还包括使用快照快速实现调度器重启,具体包括:配置创建快照的资源对象,通过csi-snapshottor controller(csi快照控制器)监控配置的修改并通过gRPC(云计算集群提供的接口)调用到csi-plugin(csi插件),csi-plugin通过OpenAPI(云计算集群提供的接口)来具体实现存储快照的动作。在调度器重启时,通过快照快速恢复数据,具体的包括:当云计算集群调度器重启时,需要恢复资源对象的状态,可以通过关联的快照ID获得的快照数据恢复到新创建的存储,并将新创建的存储用于构建用户服务器环境。

本领域技术人员可知,云计算集群中的资源对象包括Node、Pod、Service、RC等。本文仅以云计算集群是如何筛选出符合条件的Node来运行Pod为例,试图说明云计算集群的调度过程,但本领域技术人员在了解云计算集群相关知识之后,也可以将在其他情景下的资源调度上。

如图4所示,本申请实施例提供的一种电子设备,包括:处理器40、存储介质41和总线42,所述存储介质41存储有所述处理器40可执行的机器可读指令,当电子设备运行时,所述处理器40与所述存储介质41之间通过总线42通信,所述处理器40执行所述机器可读指令,以执行如上述云计算集群调度方法的步骤。

对应于上述云计算集群调度方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述云计算集群调度方法的步骤。

本文中引用了一些技术术语,为避免歧义,以下对其含义予以解释说明:

volume(存储卷)是被定义在Pod上的,属于计算资源的一部分,而实际上,网络存储是相对独立于计算资源而存在的一种实体资源。比如在使用虚拟机的情况下,我们通常会先定义一个网络存储,然后从中划出一个“网盘”并挂接到虚拟机上。

namespace(命名空间)是云计算集群系统中的另一个非常重要的概念,namespace在很多情况下用于实现多租户的资源隔离。namespace通过将云计算集群内部的资源对象“分配”到不同的namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个云计算集群的资源的同时还能被分别管理。

label(标签)是云计算集群中的另外一个核心概念。一个label是一个key与value的键值对,其中key与value由用户自己指定。label可以被附加到各种资源对象上,一个资源对象可以定义任意数量的label,同一个label也可以被添加到任意数量的资源对象上。label通常在资源对象定义时确定,也可以在对象创建后动态添加或者删除。

Service(服务)定义了一个服务的访问入口地址,前端的应用(Pod)通过这个入口地址访问其背后的一组由Pod副本组成的云计算集群实例, Service与其后端Pod副本组成的云计算集群之间则是通过Label Selector来实现无缝对接的。

Replication Controller(简称RC)的作用实际上是保证Service的服务能力和服务质量始终符合预期标准。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后需要说明的是,尽管在本申请的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本申请的专利保护范围。凡是基于本申请的实质理念,利用本申请说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本申请的专利保护范围之内。

相关技术
  • 资源调度方法、系统及电子设备和存储介质
  • 电影拍摄场景的调度方法、装置、电子设备和存储介质
  • 一种任务调度方法、装置、电子设备及存储介质
  • 云计算集群资源调度方法、介质、装置和计算设备
  • 存储方法、存储系统、电子设备及存储介质
  • 云计算任务调度方法、装置、电子设备及存储介质
  • 车云计算算力调度方法、装置、电子设备及存储介质
技术分类

06120115927250