云环境下统一资源调度方法及系统与流程

文档序号:11216048阅读:649来源:国知局
云环境下统一资源调度方法及系统与流程

本申请涉及云计算技术领域,尤其涉及一种云环境下统一资源调度方法及系统。



背景技术:

云计算(cloudcomputing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。按照服务方式,云计算包括基础设施即服务(iaas)、平台即服务(paas)和软件即服务(saas)。其中,saas提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问。按照部署方式,云计算包括公有云、私有云和混合云。

当主机系统部署的应用程序越来越多,如何管理每一个主机系统以及如何降低平台的复杂性则变得非常重要。编排(orchestration)在it管理范畴中,指的是以用户需求为目的,将各种服务或要素进行科学的安排和组织,使各个组成部分平衡协调,生成能够满足用户要求的服务。编排包括资源调度、集群管理及提供额外主机等含义。在云环境下,服务并不是一成不变的,而是要动态调整的。资源调度是指在特定的资源环境下,根据一定的资源使用规则,在不同的资源使用者之间进行资源调整的过程。集群管理是控制一组主机的过程,包括引入新的主机或者移除原有主机、获取主机和容器的当前状态,以及开启或停止处理过程。资源调度与集群管理密不可分,这是因为调度器必须访问集群中的主机才能实现对服务的调度。调度的首要任务是选择主机。如果管理者决定在集群中运行一个服务或容器,调度器就用来确定选择哪个主机。管理者可以根据需求提供选择条件,但是最终还是由调度器确定选择哪个主机。

现有技术中的资源调度方案一般都是针对公有云设计的,例如公有 云黑盒调度机制。然而,随着私有云以及混合云的需求,有必要提供在私有云和混合云环境下都适合的资源调度方案。



技术实现要素:

本申请解决的技术问题之一是提供一种云环境下统一资源调度方法及系统,可适应私有云及混合云的部署环境。

根据本申请一方面的一个实施例,提供了一种云环境下统一资源调度方法,包括:

接收用户提交的资源分配请求,并解析所述资源分配请求得到资源类型信息和资源描述信息;

判断资源类型信息中是否包括私有云类型;

若是,首先通过所述资源描述信息在多台私有云服务器中筛选出所有符合资源要求的私有服务器,然后,按照各个所述符合资源要求的私有服务器的资源历史使用信息,对各个私有服务器进行打分,选取分值最高的私有服务器进行资源分配;

否则,在公有资源池中按照公有资源分配算法进行资源分配。

优选的,所述通过所述资源描述信息在多台私有云服务器中筛选出所有符合资源要求的私有服务器,包括:

从所述资源描述信息中得到资源规格信息、资源限制条件信息及资源标签信息;

获取各私有云服务器的硬件配置信息;

判断私有云服务器的硬件配置信息是否满足所述资源限制条件,并判断私有云服务器是否具备满足所述资源规格的硬件资源,若二者都为是,再进一步确定所述私有云服务器是否具有与所述资源标签对应的标签,若是,将该私有云服务器确定为符合资源要求的服务器。

优选的,对私有服务器进行打分,包括:

设定基础分;获得各资源使用率;确定分值为基准分减去各资源使用率及各资源权重的乘积;其中,预设各资源权重。

优选的,所述分值等于基础分减去cpu利用率与第一权重乘积并减 去内存利用率与第二权重的乘积,其中,预先设置cpu利用率对应的第一权重、内存利用率对应的第二权重。

优选的,还包括:

判断所述私有服务器上是否有待分配资源依赖的微服务,若有,则确定奖励分,并更新所述分值为原分值加上所述奖励分。

优选的,还包括:

对所述符合资源要求的私有服务器进行等级划分;

在资源分配时选取分值最高且等级最低的私有服务器进行。

优选的,所述对所述符合资源要求的私有服务器进行等级划分,包括:

计算运行在所述私有服务器上的各类型微服务的数量,其中,所述服务类型包括生产级、批处理级和尽量满足级;

确定私有服务器的等级为批处理级微服务数量与第三权重的乘积加上尽量满足级微服务数量与第四权重的乘积,其中,预先设置批处理级微服务对应的第三权重、尽量满足级微服务对应的第四权重,且第三权重大于第四权重。

优选的,还包括:

若通过所述资源描述信息在私有云服务器中未筛选出符合资源要求的服务器,则在公有资源池中进行资源分配。

根据本申请另一方面的一个实施例,提供了一种云环境下统一资源调度系统,所述系统包括调度器,所述调度器包括请求处理模块、云类型选择模块、私有云调度模块和公有云调度模块,其中,

所述请求处理模块,用于接收用户提交的资源分配请求,并解析所述资源分配请求得到资源类型信息和资源描述信息;

所述云类型选择模块,用于判断资源类型信息中是否包括私有云类型,若包括私有云类型,则启动私有云调度模块继续调度,否则启动公有云调度模块进行调度;

所述私有云调度模块,通过所述所述请求处理模块得到的资源描述信息在多台私有云服务器中筛选出所有符合资源要求的私有服务器,并按 照各个所述符合资源要求的私有服务器的资源历史使用信息,对各个私有服务器进行打分,选取分值最高的私有服务器进行资源分配;

所述公有云调度模块,用于在公有资源池中按照公有资源分配算法进行资源分配。

优选的,所述所述私有云调度模块具体用于,从所述资源描述信息中得到资源规格信息、资源限制条件信息及资源标签信息;获取各私有云服务器的硬件配置信息;以及,判断私有云服务器的硬件配置信息是否满足所述资源限制条件,并判断私有云服务器是否具备满足所述资源规格的硬件资源,若二者都为是,再进一步确定所述私有云服务器是否具有与所述资源标签对应的标签,若是,将该私有云服务器确定为符合资源要求的服务器。

优选的,所述私有云调度模块用于,设定基础分;获得各资源使用率;以及,确定分值为基准分减去各资源使用率及各资源权重的乘积;其中,预设各资源权重。

优选的,所述私有云调度模块用于,确定所述分值等于基础分减去cpu利用率与第一权重乘积并减去内存利用率与第二权重的乘积,其中,预先设置cpu利用率对应的第一权重、内存利用率对应的第二权重。

优选的,所述私有云调度模块还用于,判断所述私有服务器上是否有待分配资源依赖的微服务,若有,则确定奖励分,并更新所述分值为原分值加上所述奖励分。

优选的,所述私有云调度模块还用于,对所述符合资源要求的私有服务器进行等级划分,以及,在资源分配时选取分值最高且等级最低的私有服务器进行。

优选的,所述私有云调度模块具体用于,计算运行在所述私有服务器上的各类型微服务的数量,其中,所述服务类型包括生产级、批处理级和尽量满足级;以及,确定私有服务器的等级为批处理级微服务数量与第三权重的乘积加上尽量满足级微服务数量与第四权重的乘积;其中,预先设置批处理级微服务对应的第三权重、尽量满足级微服务对应的第 四权重,且第三权重大于第四权重。

优选的,所述云类型选择模块还用于,若通过所述私有云调度模块未筛选出符合资源要求的服务器的情况下,启动所述公有云调度模块在公有资源池中进行资源分配。

通过本发明实施例的方案,至少带来以下技术效果:

由于私有云中可引入容器代替虚拟机(当然虚拟机也适用),每个容器化应用都会共享相同的操作系统(单个主机操作系统)。相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统,这意味相比于虚拟机,单个操作系统能够承载更多的容器,因此,可提高资源使用率及集群速率,从而可大大降低私有数据中心的成本。

本发明方案可应用到公有云和私有云的混合云环境下,特别是通过私有云下的资源分配算法,选择最合适的服务器进行资源分配,在私有云不满足资源分配的情况下,可将公有云作为一种有效的补充。

本发明方案具有高度融合性,可以将其他调度和编排算法植入该系统中,例如,可支持fair、drf等算法。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请一个实施例的云环境下统一资源调度方法流程图。

图2是根据本申请一个实施例的云环境下统一资源调度系统架构示意图。

图3是图2系统中调度器的逻辑示意图。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围 是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

具体实施方式

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、pda等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。

需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。

后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

本发明实施例应用于云环境,提供一种调度及编排方案,以支持公有云和私有云的环境。通过该方案,大部分准备及维护工作都可由统一调度系统自动完成,从而为客户节省开销。

本发明实施例提供一种调度及编排系统,该系统可应用在集装化(containerization)环境和虚拟化(virtualization)环境。

作为一种部署应用程序的全新方式,容器(container)技术在短时间 内获得了广泛关注,但是这种技术同样存在某些限制,并且和虚拟机(virtulmachine)存在本质上的不同。容器和虚拟机之间的主要区别在于虚拟化层的位置和操作系统资源的使用方式。虚拟机依赖于hypervisor,其通常被安装在“裸金属”系统硬件之上,这导致hypervisor在某些方面被认为是一种操作系统。一旦hypervisor安装完成,就可以从系统可用计算资源当中分配虚拟机实例了,每台虚拟机都能够获得唯一的操作系统和负载(应用程序)。通常,第一台虚拟机都将会被用来运行系统管理程序,比如microsoftsystemcenter。而之后的虚拟机可能包含其他企业负载,比如数据库、erp、crm、邮件服务器、媒体服务器、web服务器或者其他业务应用。虚拟机之间是完全隔离的——没有任何一台虚拟机知道(或者依赖)相同系统当中的另外一台虚拟机的存在——恶意软件、应用程序崩溃和其他问题只能影响一台虚拟机。虚拟机从一个虚拟系统被移动到另外一个当中,而不用考虑系统硬件和操作系统等因素。而容器环境的工作方式则有所不同。对于容器环境来说,需要首先安装主机操作系统,之后将容器层(比如lxc或libcontainer)安装在主机操作系统(通常是linux变种)之上。在安装完容器层之后,就可以从系统可用计算资源当中分配容器实例了,并且企业应用可以被部署在容器当中。但是,每个容器化应用都会共享相同的操作系统(单个主机操作系统)。相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统-实例规模更小、创建和迁移速度也更快。这意味相比于虚拟机,单个操作系统能够承载更多的容器。云提供商十分热衷于容器技术,因为在相同的硬件设备当中,可以部署数量更多的容器实例。然而,单个操作系统有可能引起影响所有相关实例的单点事故。比如,恶意软件或者主机操作系统崩溃可能禁用或者影响所有容器。此外,容器易于迁移,但是只能被迁移到具有兼容操作系统内核的其他服务器当中,这样会无形中减少迁移选择。从实际应用的角度来说,容器和虚拟机可以在同一个数据中心当中共存,因此这两种技术被认为是互补的——为现代应用程序架构师和数据中心管理员添加了可用工具集,通过不同的方式 为应用负载提供支持。

本发明实施例中,调度器负责将容器或虚拟机加载到相关主机上,并负责启动、停止及管理运行过程。调度及编排系统类似于整个云环境的心脏或指挥中心。

参见图1,是根据本申请一个实施例的云环境下统一资源调度方法流程图。

s101:接收用户提交的资源分配请求,并解析资源分配请求得到资源类型信息和资源描述信息;

s102:判断资源类型信息中是否包括私有云类型,若是,执行s103,否则,执行s104;

s103:如果是私有云,则首先通过资源描述信息在多台私有云服务器中筛选出所有符合资源要求的私有服务器,然后,按照各个符合资源要求的私有服务器的资源历史使用信息,对各个服务器进行打分,选取分值最高的私有服务器进行资源分配;

s104:如果是公有云或混合云,则在公有资源池中按照公有资源分配算法进行资源分配。

在步骤s101中,通过解析资源分配请求可以得到资源类型信息和资源描述信息。资源类型信息标记是在私有云、公有云还是混合云中进行资源分配,对于私有云,采取本发明实施例提出的分配算法进行服务器选择,对于公有云和混合云情况,在公有资源池中进行资源分配。资源描述信息包括资源规格信息(资源要求,如cpu、内存要求)、资源限制条件信息(如限制disk为ssd)及资源标签信息等,其中,资源标签信息标记资源优先级(例如highmem或normal),在服务器选择时须选择具有与该资源标签对应标签的服务器。

在步骤s102中,按照资源类型信息,确定是在私有云进行资源分配(步骤s103),还是在公有云中进行资源分配(步骤s103)。

在步骤s103中,对于私有服务器的选择分为两个层次,首先筛选出符合资源要求的所有私有服务器,其次在符合要求的所有私有服务器进行打分, 最终确定分值最高的私有服务器进行资源分配。

其中,在第一层次中,可通过如下步骤实现找到符合资源要求的所有私有服务器:

(1.1)从资源描述信息中得到资源规格信息、资源限制条件信息及资源标签信息;

(1.2)获取各私有云服务器的硬件配置信息;

(1.3)逐个判断各私有云服务器的硬件配置信息是否满足资源限制条件,并判断私有云服务器是否具备满足资源规格的硬件资源,若二者都为是,再进一步确定私有云服务器是否具有与所述资源标签对应的标签,若是,将该私有云服务器确定为符合资源要求的服务器;

(1.4)集合所有符合资源要求的私有服务器,得到符合资源要求的所有私有服务器。

在第二层次中,可通过如下方式确定分值:

(2.1)设定基础分;获得各资源使用率;确定分值为基准分减去各资源使用率及各资源权重的乘积;其中,预设各资源权重;

例如,所述分值等于基础分减去cpu利用率与第一权重乘积并减去内存利用率与第二权重的乘积,其中,预先设置cpu利用率对应的第一权重、内存利用率对应的第二权重。

(2.2)判断私有服务器上是否有待分配资源依赖的微服务,若有,则确定奖励分,并更新分值为原分值加上奖励分。

在第二层次中,优选的,还可以对符合资源要求的私有服务器进行等级划分;在资源分配时选取分值最高且等级最低的私有服务器进行。具体的,计算运行在私有服务器上的各类型微服务的数量,其中,所述服务类型包括生产级、批处理级和尽量满足级;确定私有服务器的等级为批处理级微服务数量与第三权重的乘积加上尽量满足级微服务数量与第四权重的乘积,其中,预先设置批处理级微服务对应的第三权重、尽量满足级微服务对应的第四权重,且第三权重大于第四权重。

通过上述两个层次的方式,可以选择出最适合的私有服务器进行资 源分配。

如果在没有选取出符合资源要求的私有服务器,则可以在公有资源池中进行资源分配。

在步骤s104中,对于公有云或混合云的情况,在公有资源池中按照公有资源分配算法进行资源分配。公有云由于有自带的调度机制,所以不需要系统再特别设计,直接利用公有云类似黑盒里的调度机制来实现。对于混合云的情况,直接按照公有云的调度方法部署在公有云上,以节约私有云资源。

参见图2,为本发明实施例提供的云环境下统一资源调度系统架构示意图。该系统包括中心管理服务器10、提交装置20、分布式存储装置30、一个或多个私有云执行服务器40、云整合平台50及发现服务装置60。

下面对系统各部分进行如下介绍。

中心管理服务器10是整个调度和编排系统的核心,它至少包括调度器101和收集器102。调度器101负责管理不同优先权的任务队列、按照本发明的调度算法进行资源映射,从而确定最优主机,并将任务分配给私有云执行服务器40或者云整合平台50。收集器102用于从cmdb(configurationmanagementdatabase配置管理数据库)或直接从主机自身收集主机的元数据,以及从监控系统或直接从主机收集关于主机的如cpu、内存使用率等信息;另外,收集器102也负责任务的运行状态。

提交装置20向用户提供接口,用户可通过提交装置提交资源分配请求,请求在公有云或私有云部署某一个服务或应用程序。

分布式存储装置30可用于存储包括如任务执行日志、运行日志、软件包、容器部署描述文件、公有云部署描述文件等在内的所有共享资源或文件。分布式存储装置30是共享存储器,提供读、写及更新所需文件的统一接口。

私有云执行服务器40负责从调度器接收启动守护进程(startdaemon)命令并将相关信号发送给相关任务进程。私有云执行服务器40控制容器或虚拟机的开始/重启/停止的行为。

云整合平台50用于将服务或应用程序部署在多个公有云平台(如aws、azure)。云整合平台50具有不同公有云的适应性。

发现服务装置60,在一个服务或应用程序成功部署之后,用于登记相关连接信息。该服务或应用程序的信息一旦登记,其他应用程序可向发现服务装置60请求连接该服务或应用程序。

下面重点对调度及资源映射过程重点介绍。

如果任务可被部署到公有云,则认为任务不受限制,此情况下按照现有公有云的资源分配方式,由云整合平台50负责在公有云中准备硬件资源、软件资源来完成任务。

如果任务被部署到私有云,用户提交的任务碚存储在分布式存储装置30中,并添加到等待队列,然后,调度器101对任务队列进行异步扫描。调度器101以轮询方式按照优先级从高到低的顺序对队列进行扫描,以保证请求不会被阻止。一旦任务被扫描到,调度及资源映射逻辑被启动,从而选择一个最适合的节点(服务器)来执行该任务。

对于部署到私有云中的任务,调度过程包括如下步骤:

1、粗选(过滤)

检查各节点是否具有足够的资源或者是否满足特殊的条件,如是否满足ssd硬盘类型等,最后生成一个满足任务的条件的所有节点的列表。

2、基于标签调度

所有节点被标记上标签,例如,高端(highmem)和正常(normal)等标签。用户提交的任务请求中可以携带任务的标签,调度器将按照标签匹配到具有相应标签的节点的队列中。

3、打分

按照打分规则对各个节点进行打分,最终选择出分值最高的节点进行任务部署。

打分规则主要考虑了几个因素1)如果需要部署的服务依赖于其他的微服务,而所依赖的微服务正好在待选服务器上或和待选服务器同一个机架上,会加分;2)如果该服务器的cpu和内存使用率比较低,会加 分。例如,给服务器一个基准分(例如60分),score=基准分-cpu利用率*第一权重-内存利用率*第二权重+奖励分(如果待选服务器上有依赖的微服务);所以最终会选择score值最高的服务器。其中,预先设定各项目对应的权重,例如,cpu利用率对应有第一权重,内存利用率对应第二权重,等。

下面列出一个任务(资源分配请求)的具体例子。

上述例子中,设定了三种资源类型(type),这三种类型的资源优先级依次从高到低是:生产级(productive)、批处理级(batch)、尽量满足级(try-best)。

在优选的方式中,在上述步骤“3、打分”中,除了依据对各服务器打分的分值之外,还依据服务器的等级(level)进行综合选取。

所谓的服务器等级即是根据该服务器中正运行的微服务的类型确定的,因为多个微服务可能运行在同一台服务器上,所以需要避免产生抢占资源的情况,因此结合待选服务器上运行的微服务状况综合考虑最合 适的服务器。计算level=第三权重*batch类微服务数量+第四权重*try-best类微服务数量(抢占的规律是productive类的微服务不能被抢占,batch类优先级略低,try-best优先级最低,优先级高的可以抢占优先级低的资源)。所以在这种优选方式下,最终会综合计算后的score值和level值选择score值最高、level值最低的服务器。其中,预先设置batch类微服务对应第三权重,try-best类微服务对应第四权重,且由于batch类微服务的优先级高于try-best类微服务的优先级,因此第三权重大于第四权重。

参加图3,是图2系统中调度器的优选方式的逻辑流程。

s301:接收资源分配请求;

s302:判断资源分配请求中携带的云类型是私有云、公有云还是混合云,如果是私有云,执行s303,如果是公有云或混合云,则执行s322;

s303:从收集器中获取所有私有服务器列表;

s304:按照顺序从私有服务器列表中遍历服务器,得到服务器的配置信息;

s305:判断是否为最后一个服务器,若是,转到s310,否则,执行s306;

s306:判断限制条件(如ssddisk)是否满足,若满足,执行s307,否则,返回s304进行下一个服务器的判断;

s307:判断是否有足够的硬件资源(如cpu、mem、disk),如果有,执行s308,否则,返回s304进行下一个服务器的判断;

s308:判断是否存在与资源分配请求中相应的标签(例如highmem或normal),若存在,执行s309,否则,也返回s304进行下一个服务器的判断;

s309:将该服务器加入到候选名单中(即确定该服务器为符合资源要求的服务器),然后,返回s304进行下一个服务器的判断;

可见,通过重复执行上述步骤s304-s309,即可筛选出符合标签要求及资源要求的所有服务器。

s310:通过上述步骤确定的所有服务器构成一个私有资源池;

s311:判断是否有一个以上服务器,若是,执行s312,否则,则没有满足资源要求的服务器,因此转到公有云进行资源分配,即执行步骤s322;

s312:从候选名单中选取一个服务器;

s313:是否为最后一个服务器,若是,执行步骤s314进行最终的私有服务器选择;

s314:设定分值为基础分;

s315:计算可能运行的微服务的数量(例如:batch类微服务:2个;try-best类微服务:3个);

s316:确定等级:level=第三权重*batch类微服务数量+第四权重*try-best类微服务数量;

s317:得到平均资源使用率;

s318:计算得分:score=基准分-cpu利用率*第一权重-内存利用率*第二权重;

s319:判断该服务器上是否有资源依赖的微服务,若有,执行s320,否则,返回s313;

s320:确定奖励分,更新得分:score=基准分-cpu利用率*第一权重-内存利用率*第二权重+奖励分;

s321:选取得分最高、等级最低的服务器进行资源分配;

在上述步骤s310-s321中,对之前确定的符合要求的各个服务器进行打分及等级划分,最终选择分值最高、等级最低的服务器进行资源分配。

s322:对于公有云或混合云的情况,在公有资源池中按照公有资源分配算法进行资源分配。

公有云由于有自带的调度机制,所以不需要系统再特别设计,直接利用公有云类似黑盒里的调度机制来实现。对于混合云的情况,直接按照公有云的调度方法部署在公有云上,以节约私有云资源。

通过本发明实施例的方案,至少带来以下技术效果:

由于私有云中可引入容器代替虚拟机(当然虚拟机也适用),每个容器化应用都会共享相同的操作系统(单个主机操作系统)。相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统,这意味相比于虚拟机,单个操作系统能够承载更多的容器,因此,可提高资源使用率及集群速率,从而可大大降低私有数据中心的成本。

本发明方案可应用到公有云和私有云的混合云环境下,特别是通过私有云下的资源分配算法,选择最合适的服务器进行资源分配,在私有云不满足资源分配的情况下,可将公有云作为一种有效的补充。

本发明方案具有高度融合性,可以将其他调度和编排算法植入该系统中,例如,可支持fair、drf等算法。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1