CN109582433A - 一种资源调度方法、装置、云计算系统及存储介质 - Google Patents
一种资源调度方法、装置、云计算系统及存储介质 Download PDFInfo
- Publication number
- CN109582433A CN109582433A CN201710911639.9A CN201710911639A CN109582433A CN 109582433 A CN109582433 A CN 109582433A CN 201710911639 A CN201710911639 A CN 201710911639A CN 109582433 A CN109582433 A CN 109582433A
- Authority
- CN
- China
- Prior art keywords
- host
- information
- resource
- virtual machine
- resource 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.)
- Granted
Links
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
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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/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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种资源调度方法、装置、云计算系统及存储介质,本发明实施例通过获取待创建的虚拟机的虚拟机信息,获取公共资源信息,然后,根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,资源信息私有副本包括预设宿主机对应的宿主机信息;最后,根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机,从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。该方案中在进行资源调度之前,资源信息私有副本可以被及时更新,保证了资源信息私有副本与公共资源信息的同步性,使得资源调度结果较优,并且,进行资源调度时不需要等待,提高了资源调度的效率。
Description
技术领域
本发明涉及云技术领域,具体涉及一种资源调度方法、装置、云计算系统及存储介质。
背景技术
云计算系统通常包括调度器及宿主机等,其中,调度器可以通过虚拟机软件,在一台宿主机上创建出一台或者多台虚拟机。云计算系统中有大量的宿主机,在创建虚拟机时,选择在哪台宿主机上创建虚拟机的过程称为资源调度,进行资源调度的组件称为调度器。
现有技术方案中,调度器在进行资源调度时,当宿主机规模和资源调度请求增大到一定程度时,调度器处理单次资源调度请求的时间会显著增加,同时后续请求会一直排队,等待被处理。例如,采用两级调度架构,先由中心资源管理器通过资源邀约向调度器提供宿主机资源,调度器在资源邀约的范围内选择宿主机,完成资源调度过程。并且,在该调度器完成资源调度后,中心资源管理器才会通过资源邀约向另一个调度器提供宿主机资源。例如,在云计算系统的整个数据中心内包括宿主机A、宿主机B、宿主机C、宿主机D及宿主机E等,中心资源管理器通过资源邀约向调度器1提供宿主机A和宿主机B,此时,调度器1只能在宿主机A和宿主机B中选择其中一个宿主机。在调度器1完成资源调度后,中心资源管理器才会通过资源邀约向调度器2提供宿主机资源。
现有技术中存在以下问题:一方面,调度器只能在资源邀约范围内选择宿主机,这样做减小了可选择的宿主机的规模,从而无法保证资源调度结果是较优的;另一方面,中心资源管理器先为一个调度器提供宿主机资源,在该调度器完成资源调度后,中心资源管理器再为另一个调度器提供宿主机资源,使得调度器在进行资源调度时需要等待,从而导致资源调度的延迟性高和吞吐率低。
发明内容
本发明实施例提供一种资源调度方法、装置、云计算系统及存储介质,可以实现资源调度结果较优及提高资源调度的效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种资源调度方法,包括:
获取待创建的虚拟机对应的虚拟机信息;
获取公共资源信息,所述公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;
根据所述公共资源信息及所述虚拟机信息,更新预置的资源信息私有副本,所述资源信息私有副本包括预设宿主机对应的宿主机信息;
根据所述资源信息私有副本,获取满足所述虚拟机信息的至少一台候选宿主机;
从所述至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
一种资源调度装置,包括:
第一获取单元,用于获取待创建的虚拟机对应的虚拟机信息;
第二获取单元,用于获取公共资源信息,所述公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;
更新单元,用于根据所述公共资源信息及所述虚拟机信息,更新预置的资源信息私有副本,所述资源信息私有副本包括预设宿主机对应的宿主机信息;
第三获取单元,用于根据所述资源信息私有副本,获取满足所述虚拟机信息的至少一台候选宿主机;
创建单元,用于从所述至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
一种云计算系统,包括至少一个调度器及至少一台宿主机,该调度器包括上述资源调度装置,该宿主机用于创建至少一个虚拟机。
一种存储介质,该存储介质存储有多条指令,该指令适于处理器进行加载,以执行上述资源调度方法中的步骤。
本发明实施例可通过获取待创建的虚拟机对应的虚拟机信息,以及获取公共资源信息,该公共资源信息包括云计算系统中所有宿主机的对应的宿主机信息;然后,根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,该资源信息私有副本包括预设宿主机对应的宿主机信息;最后,根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机,从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。该方案中在进行资源调度之前,资源信息私有副本可以被及时更新,保证了资源信息私有副本与公共资源信息的同步性,使得资源调度结果较优,并且,进行资源调度时不需要等待,提高了资源调度的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的资源调度系统的场景示意图;
图2是本发明实施例提供的资源调度方法的流程示意图;
图3是本发明实施例提供的资源调度方法的另一流程示意图;
图4是本发明实施例提供的资源调度方法的另一流程示意图;
图5是本发明实施例提供的资源调度方法的另一流程示意图;
图6是本发明实施例提供的资源调度方法中更新资源信息私有副本的流程示意图;
图7是本发明实施例提供的资源调度方法中获取目标宿主机的流程示意图;
图8是本发明实施例提供的资源调度装置的结构示意图;
图9是本发明实施例提供的资源调度装置的另一结构示意图;
图10是本发明实施例提供的资源调度装置的另一结构示意图;
图11是本发明实施例提供的资源调度装置的另一结构示意图;
图12是本发明实施例提供的调度服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明实施例提供一种资源调度方法、装置、云计算系统及存储介质。
请参阅图1,图1为本发明实施例所提供的资源调度系统的场景示意图,该资源调度系统可以是云计算系统,该云计算系统可以包括资源调度装置,该资源调度装置具体可以集成在调度服务器中,该调度服务器可以是云计算系统中的调度器,该调度器可以包括一个或多个,主要用于获取待创建的虚拟机对应的虚拟机信息,获取公共资源信息,公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;然后,根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本;该资源信息私有副本包括预设宿主机对应的宿主机信息;调度器维护的资源信息私有副本可以用于为待创建的虚拟机选择合适的宿主机;最后,根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机;从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机,等等。
此外,该云计算系统还可以包括一个或多个宿主机,主要用于接收调度器发送的创建虚拟机的请求,并根据该请求创建一个或多个虚拟机。
该云计算系统还可以包括接收器,主要用于接收一个或多个终端发送的虚拟机创建请求,该虚拟机创建请求中可以携带有虚拟机信息,然后,将接收到的每个虚拟机创建请求分别封装成消息,并将消息存放至预置的消息队列中,以使得调度器可以从消息队列获取消息,并从消息中提取出待创建的虚拟机信息。需要说明的是,当消息队列中存在多条消息时,多个调度器可以并发获取消息,为待创建的不同虚拟机选择宿主机。
该云计算系统还可以包括资源管理器,主要用于维护公共资源信息,以使得调度器可以从资源管理器中获取公共资源信息。该公共资源信息用于存储和维护云计算系统中所有宿主机对应的宿主机信息。
需要说明的是,图1所示的资源调度系统的场景示意图仅仅是一个示例,本发明实施例描述的资源调度系统以及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着云计算系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
以下分别进行详细说明。
在本实施例中,将从资源调度装置的角度进行描述,该资源调度装置具体可以集成在调度服务器或网关等网络设备中。
一种资源调度方法,包括:获取待创建的虚拟机对应的虚拟机信息;获取公共资源信息,公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,资源信息私有副本包括预设宿主机对应的宿主机信息;根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机;从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
请参阅图2,图2是本发明第一实施例提供的资源调度方法的流程示意图。该文本信息处理方法包括:
在步骤101中,获取待创建的虚拟机对应的虚拟机信息。
例如,资源调度装置可以是从云计算系统中预置的消息队列中,获取待创建的虚拟机对应的虚拟机信息。其中,虚拟机是指通过软件模拟的具有硬件系统功能的,且运行在一个隔离环境中的完整计算机系统。
消息队列对于异步任务,消息队列中的消息会在消息队列中进行流转,云计算系统中的各个组件具有生产者或者消费者的身份,生产者向消息队列中发送消息,消费者从消息队列中接收消息。例如,云计算系统中接收器作为生产者,接收到终端发送的携带有虚拟机信息的虚拟机创建请求后,将虚拟机信息封装为消息,并将消息存储至消息队列中,这些虚拟机信息在消息队列中排队等待资源调度装置进行资源调度;资源调度装置作为消费者,从消息队列中提取虚拟机信息,为虚拟机信息对应的待创建的虚拟机选择宿主机。
虚拟机信息可以包括待创建的虚拟机所需的处理器信息、内存信息和磁盘信息等,以及待创建的虚拟机对固态硬盘、云盘、私有网络、网卡、路由器、网络结构、数据中心、机架、宿主机的机型、宿主机所属资源池、及虚拟机类型等资源需求中的至少一个资源需求。可以理解的是,虚拟机信息的类型可以根据实际需要进行灵活设置,具体内容在此处不作限定。
在步骤102中,获取公共资源信息。
其中,公共资源信息为云计算系统存储和维护整个数据中心的资源数据,该公共资源信息包括云计算系统中所有宿主机对应的宿主机信息,可以理解的是,该公共资源信息可以由资源管理器维护,也可以由云计算系统中的其他设备维护,然后,由资源调度装置从维护公共资源信息的设备中获取。例如,若该公共资源信息由云计算系统中的资源管理器进行维护,则此时资源调度装置可以向资源管理器获取公共资源信息。为了描述方便,在本发明实施例中,将均以资源管理器维护公共资源信息为例进行说明。
需要说明的是,公共资源信息在云计算系统中全局唯一,其维护形式可以是一张逻辑数据表,例如,数据表中的每一行代表每台宿主机,数据表中的每一列代表宿主机包含的不同类型资源,该不同类型资源可以包括宿主机的网络之间互连的协议(InternetProtocol,IP)地址、可用中央处理器(Central Processing Unit,CPU)、可用内存和可用磁盘等。在维护的过程中,可以对公共资源信息进行添加、读取、更新或者删除等操作,这些操作对应数据中心宿主机资源的上线、变更或下线等过程。
其中,宿主机是指用于安装虚拟机软件的物理计算机,一台宿主机上可以通过虚拟机软件创建一台或者多台虚拟机。
可选地,宿主机信息可以包括宿主机标识、IP地址、机型、操作系统名称、内核版本、CPU型号、虚拟化方式、逻辑区编号、互联网数据中心编号、宿主机状态、是否支持云盘、是否支持固态硬盘(Solid State Drives,SSD)、网络版本、CPU节点资源配额、可用内存资源和可用磁盘资源等,具体内容在此处不作限定。
需要说明的是,宿主机在进入云计算系统时,需要经过宿主机导入流程,进行必要的初始化,宿主机会向资源管理器上报其宿主机信息,资源管理器可以将宿主机信息存储在公共资源信息中。宿主机也可以向资源调度装置上报其宿主机信息,资源调度装置可以将宿主机信息存储在预置的资源信息私有副本中;或者是,资源调度装置实时或间隔预设时间向资源管理器发送信息获取请求,接收资源管理器基于信息获取请求反馈的公共资源信息,并根据公共资源信息更新资源信息私有副本;或者是,当存在公共资源信息更新时,资源管理器主动向资源调度装置发送已更新的宿主机信息。
在步骤103中,根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本;
资源调度装置自身维护的一份资源信息私有副本,其维护形式是公共资源信息在资源调度装置内存中的缓存。其中,资源信息私有副本包括预设宿主机对应的宿主机信息,该预设宿主机可以是云计算系统中所有宿主机中的部分或全部宿主机。为了使得资源调度结果较优,资源调度装置在进行资源调度之前,需要对资源信息私有副本与公共资源信息进行同步,可以获取公共资源信息,根据公共资源信息更新资源信息私有副本,以保证资源信息私有副本与公共资源信息之间的一致性。
为了减少更新时间,可以根据公共资源信息及虚拟机信息,更新资源信息私有副本。在某些实施方式中,根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本的步骤包括:从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息,将目标宿主机信息增加至预置的资源信息私有副本中。
可选地,从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息,将目标宿主机信息增加至预置的资源信息私有副本中的步骤包括:
(1)当为首次更新资源信息私有副本时,从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息;
(2)将目标宿主机信息拷贝至资源信息私有副本;
(3)获取当前时间戳,将当前时间戳设定为全量更新时间戳及增量更新时间戳;
(4)将全量更新时间戳及增量更新时间戳存储至资源信息私有副本。
具体地,首先,资源调度装置判断是否为首次更新资源信息私有副本,例如,可以判断资源信息私有副本中是否为空,若为空,则确定为首次更新资源信息私有副本;若不为空,则确定不是首次更新资源信息私有副本。若是首次更新,则当前的资源信息副本为空,此时需要进行全量更新,即从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息,将目标宿主机信息拷贝至资源信息私有副本中。需要说明的是,也可以是直接将公共资源信息全量拷贝为资源信息私有副本。
在将目标宿主机信息拷贝至资源信息私有副本后,需要记录全量更新时间戳和增量更新时间戳,可选地,资源调度装置获取当前时间戳,将当前时间戳设定为全量更新时间戳及增量更新时间戳,例如,当前时间戳为2017年9月15日上午11:00,此时全量更新时间戳及增量更新时间戳均为2017年9月15日上午11:00。然后,将全量更新时间戳及增量更新时间戳存储至资源信息私有副本,完成此次更新。
可选地,从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息,将目标宿主机信息增加至预置的资源信息私有副本中的步骤包括:
(a)当不是首次更新资源信息私有副本时,获取当前时间戳与上一次全量更新时间戳之间的时间差值;
(b)判断时间差值是否大于预置的全量更新阈值;
(c)当时间差值大于全量更新阈值时,从公共资源信息中筛选出满足虚拟机信息的第一目标宿主机信息;
(d)将第一目标宿主机信息拷贝至资源信息私有副本;
(e)将当前时间戳设定为第一全量更新时间戳及第一增量更新时间戳;
(f)将第一全量更新时间戳及第一增量更新时间戳存储至资源信息私有副本。
具体地,当不是首次更新资源信息私有副本时,资源调度装置获取当前时间戳与上一次全量更新时间戳之间的时间差值,其中,上一次全量更新时间戳为相对于当前时间戳的上一次记录的全量更新时间戳。
然后,判断时间差值是否大于预置的全量更新阈值,该全量更新阈值可以根据实际需要进行灵活设置,具体取值在此处不作限定。例如,为了使得全量更新频度较低,可以将全量更新阈值设置为较大值。
若时间差值大于全量更新阈值,则进行全量更新,即从公共资源信息中筛选出满足虚拟机信息的第一目标宿主机信息,将第一目标宿主机信息拷贝至资源信息私有副本。需要说明的是,也可以是将当前的公共资源信息全量拷贝为资源信息私有副本。
然后,记录第一全量更新时间戳及第一增量更新时间戳,以便对全量更新时间戳及增量更新时间戳进行准确记录。可选地,可以将当前时间戳设定为第一全量更新时间戳及第一增量更新时间戳,例如,当前时间戳为2017年9月16日上午8:00,此时全量更新时间戳及增量更新时间戳均为2017年9月16日上午8:00。然后,将第一全量更新时间戳及第一增量更新时间戳存储至资源信息私有副本,完成此次更新。
进一步地,判断时间差值是否大于预置的全量更新阈值的步骤之后还包括:当时间差值小于或等于全量更新阈值时,获取公共资源信息中存在更新且更新时间戳大于上一次增量更新时间戳的宿主机信息;
从宿主机信息中获取满足虚拟机信息的第二目标宿主机信息;
将第二目标宿主机信息增加至资源信息私有副本;
将当前时间戳设定为第二增量更新时间戳;
将第二增量更新时间戳存储至资源信息私有副本。
由于云计算系统中宿主机的规模较大,例如,宿主机规模在10000量级,而资源调度装置在100量级,如果每次对资源信息私有副本进行更新时,都进行全量更新,即都将公共资源信息全部拷贝为资源信息私有副本,则比较耗时,为了降低更新耗时,可以对资源信息进行增量更新,即将公共资源信息中的部分资源信息增加至资源信息私有副本。
具体地,公共资源信息中宿主机信息在每次更新时,都会记录更新时间戳,以此获得准确的更新时间。资源调度装置获取当前时间戳与上一次全量更新时间戳之间的时间差值后,若时间差值小于或等于全量更新阈值,则获取公共资源信息中存在更新的宿主机信息,并获取各个宿主机信息被更新的更新时间戳,然后,从存在更新的宿主机信息中筛选出更新时间戳,大于上一次增量更新时间戳的宿主机信息。即根据上一次增量更新时间戳到公共资源信息中进行查询,得到所有更新时间戳大于等于上一次增量更新时间戳的宿主机信息。该上一次增量更新时间戳为相对于当前时间戳的上一次的增量更新时间戳。
在得到公共资源信息中存在更新,且更新时间戳大于上一次增量更新时间戳的宿主机信息后,对该宿主机信息进行筛选,从宿主机信息中获取满足虚拟机信息的第二目标宿主机信息,并将第二目标宿主机信息增加至资源信息私有副本中。
然后,记录第二增量更新时间戳,以便对增量更新时间戳进行准确记录,即将当前时间戳设定为第二增量更新时间戳,并将第二增量更新时间戳存储至资源信息私有副本中,完成此次更新。资源信息私有副本实质上是运行在内存中的缓存,在大部分情况下,资源调度装置只需要进行增量更新,更新数据量和耗时都较少。可选地,对于在此次增量更新之前下线的宿主机,也将从资源信息私有副本中删除。
需要说明的是,上述第一目标宿主机信息、第二目标宿主机信息、第一全量更新时间戳、第一增量更新时间戳及第二增量更新时间戳中的“第一”和“第二”仅仅是为了对出现的目标宿主机信息、增量更新时间戳或全量更新时间戳进行区别,并不代表对其重要性的限定。
在步骤104中,根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机。
在更新资源信息私有副本后,资源调度装置以资源信息私有副本为基础,为待创建的虚拟机筛选宿主机,可以是根据虚拟机信息中的资源需求和资源信息私有副本中的宿主机信息,对资源信息私有副本中的宿主机集合进行过滤,保留符合条件的宿主机,剔除不符合条件的宿主机,得到至少一台候选宿主机。
可选地,资源调度装置可以根据虚拟机信息按照依据宿主机信息所构建的串式过滤器,控制每个过滤器对多台宿主机进行相应的过滤,以得到至少一台满足虚拟机信息的候选宿主机。
按照宿主机信息可以构建出一个串式过滤模型,该串式过滤模型包括串接的多个过滤器,每个过滤器负责一项过滤功能,每个过滤器会根据虚拟机信息做出相应的判断,然后执行相应的过滤。例如,串接的第一个过滤器负责根据虚拟机所需的CPU、内存和磁盘资源等资源需求,过滤掉不满足该资源需求的宿主机,仅保留满足该资源需求的宿主机;串接的第二个过滤器负责过滤掉支持或者不支持SSD的宿主机,如果资源需求中要求宿主机支持SSD,则第二个过滤器根据该资源需求过滤掉不支持SSD的宿主机,保留支持SSD的宿主机。
可以理解的是,其他过滤器的功能都可以参阅该过滤器的进行理解,只是其他过滤器负责其他过滤功能。具体过滤模型中各过滤器的功能可以依据待创建的虚拟机的资源需求进行设置,具体内容在此处不作限定。
在步骤105中,从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
在得到至少一台候选宿主机后,资源调度装置可以从至少一台候选宿主机中确定目标宿主机,在选择目标宿主机时,可以是随机选择的,当然,为了选择一台符合度最优的目标宿主机,可以在对多台宿主机进行过滤得到至少一个候选宿主机后,确定每台候选宿主机各维度的优先级值,对至少一台候选宿主机按照优先级的值进行排序。
在某些实施方式中,从至少一台候选宿主机中获取目标宿主机的步骤可以包括:(1)确定至少一台候选宿主机中,每台宿主机各维度的优先级值;
(2)按照各维度的优先级值从高至低的顺序进行排序,生成候选宿主机列表;
(3)根据候选宿主机列表中各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,得到剩余资源,资源需求包含于虚拟机对应的虚拟机信息;
(4)将剩余资源提交至公共资源信息中;
(5)当一个候选宿主机对应的剩余资源提交成功时,将提交成功的候选宿主机设定为目标宿主机。
具体地,首先计算每台宿主机多个维度的优先级值,各维度的优先级可以包括:私有网络优先级(vpcPrio)、并发任务优先级(taskPrio)、历史错误优先级(errorPrio)、反亲和性优先级(affinityPrio)、空闲优先级(freePrio)、镜像缓存优先级(imgPrio)及碎片率优先级(fragmentPrio)等。
其中,对于私有网络优先级值:vpcPrio数值越小优先级越高。可以为每台宿主机确定私有网络优先级值,例如,可以将支持私有网络的宿主机的vpcPrio赋值为0,将不支持私有网络的宿主机的vpcPrio赋值为1;或者,也可以将支持私有网络的宿主机的vpcPrio赋值为1,将不支持私有网络的宿主机的vpcPrio赋值为0,等等,为了描述方便,在本发明实施例中,将均以将支持私有网络的宿主机的vpcPrio赋值为0,将不支持私有网络的宿主机的vpcPrio赋值为1为例进行说明。
私有网络的IP地址不依赖物理网络拓扑,未来更易于迁移。私有网络优先级的作用在于,优先把虚拟机放置到支持私有网络的宿主机上,未来迁移更加便利灵活。
对于并发任务优先级:taskPrio数值越小优先级越高。可以为每台宿主机确定并发任务优先级,判断宿主机上当前任务数量,若任务数量小于预设阈值,则赋值为0,否则赋值为当前任务数量。例如,并发预设阈值默认为3,当然,该预设阈值可以根据实际需要进行灵活配置。
宿主机上的并发任务会同时进行,并发过高,可能导致虚拟机创建缓慢甚至失败。并发任务优先级的作用在于,优先把虚拟机放置到并发任务数量更低的宿主机上,确保虚拟机创建的成功率和实时性。
对于历史错误优先级:errorPrio数值越小优先级越高遍。可以为每台宿主机计算历史错误优先级,判断宿主机最近一段时间(例如默认24小时)的历史错误数量,如果历史错误数量小于阈值,则赋值为0,否则赋值为历史错误数量。例如,错误阈值默认可以为5,错误阈值可以根据实际需要进行灵活配置。
短时间内出现多次错误的宿主机可能已经出现了某种故障,在对其进行处理之前,如果持续将虚拟机放置其上,可能导致虚拟机创建任务失败,降低成功率。历史错误优先级的作用在于,优先把虚拟机放置到没有出现过多错误的宿主机上,提高虚拟机创建的成功率。
对于反亲和性优先级:affinityPrio数值越小优先级越高。可以为每台宿主机计算反亲和性优先级,判断虚拟机用户在该宿主机上已经存在虚拟机数量,如果虚拟机数量小于亲和性阈值,则赋值为0,否则赋值为已有虚拟机数量。例如,亲和性阈值为3,当然,亲和性阈值可以根据实际需要进行灵活配置。
在大规模分布式系统中,完全规避错误是几乎不可能的。如果某位用户的虚拟机集中在一台或者几台宿主机上,当这些宿主机发生故障,其上虚拟机将全部受到影响,严重影响了该用户应用整体的可用性。反亲和性优先级的作用在于,使得同一用户的虚拟机广泛的分布在不同的宿主机上,进行分布式容灾,使单台宿主机故障对应用整体可用性的影响比较有限,进而提高用户应用的稳定性和可用性。
对于空闲优先级:freePrio数值越小优先级越高。例如,可以判断每台宿主机是否完全空闲,如果完全空闲,则赋值为0,否则赋值为1。或者,也可以完全空闲,则赋值为1,否则赋值为0,等等,为了描述方便,在本发明实施例中,将以完全空闲,则赋值为0,否则赋值为1为例进行说明。
空闲优先级的作用在于,保护空闲宿主机,优先把虚拟机放置到非空闲宿主机上,充分利用非空闲宿主机上的资源,提升资源利用率。
镜像缓存优先级:imgPrio数值越小优先级越高。可以遍历候选宿主机列表,判断每台宿主机是否具有虚拟机所需的镜像文件,例如,如果具有镜像文件,则赋值为0,否则赋值为1。
镜像缓存优先级的作用在于,优先将虚拟机放置到已经存储虚拟机镜像的宿主机上,这样在真正生产虚拟机的时候可以免去下载镜像环节,节省生产时间,提升虚拟机生产流程的实时性。
碎片率优先级:fragmentPrio数值越小优先级越高。可以为每台宿主机计算碎片率优先级,根据CPU和内存两个维度的资源计算优先级。默认情况下,碎片率优先级等于CPU碎片率乘以内存碎片率。
碎片率优先级的作用在于,充分利用宿主机的资源,降低资源碎片率,进而提升资源利用率,降低运营成本。
确定每台候选宿主机各维度的优先级值后,根据各维度的优先级值从高至低的顺序,对宿主机进行排序,得到候选宿主机列表,再从候选宿主机列表中确定一台符合度最高的候选宿主机作为目标宿主机。具体的确定过程可以是:
按照各维度的优先级从高到低的顺序,对同一维度的宿主机按照优先级值从大到小的顺序进行排序,针对同一维度的优先级值相同的宿主机,再按照下一维度的优先级值进行排序,以得到按照优先级从高到低排序的候选宿主机列表。
对候选宿主机进行排序后,排序在第一位的候选宿主机是最优的,由于该最优的候选宿主机可能存在其他创建任务,因此不一定能保证创建成功,需要通过模拟扣减资源的方式来确定目标宿主机。
确定目标宿主机的过程中,首先按照排序后的候选宿主机列表中各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,分别得到各候选宿主机对应的剩余资源,完成对宿主机模拟扣减资源,虚拟机的资源需求包含于虚拟机对应的虚拟机信息中。即按照排序后的候选宿主机的降序,从排序在第一位的候选宿主机开始,逐一扣减待创建的虚拟机的资源需求,当在一个候选宿主机上扣减成功时,则将扣减成功的候选宿主机作为目标宿主机。
排序顺序可以是预先设定的,例如,默认排序标准及优先级从高到低的顺序可以是:私有网络优先级(vpcPrio)、并发任务优先级(taskPrio)、历史错误优先级(errorPrio)、反亲和性优先级(affinityPrio)、空闲优先级(freePrio)、镜像缓存优先级(imgPrio)和碎片率优先级(fragmentPrio)。排序标准也可以在默认标准范围内进行选择,顺序可以根据实际需要进行灵活调整配置。
其次,在得到候选宿主机的剩余资源后,将剩余资源提交至公共资源信息中,当一个候选宿主机对应的剩余资源提交成功时,将提交成功的候选宿主机设定为目标宿主机。也可以是,将候选宿主机的剩余资源写入用于维护每台宿主机的剩余资源数据的数据库中;当写入成功时,则写入成功的候选宿主机作为目标宿主机。
在确定目标宿主机后,可以在该目标宿主机上创建虚拟机,可选地,由于创建虚拟机需要消耗目标宿主机的资源,因此,可以对资源信息私有副本中的宿主机信息进行更新,还可以通知云计算系统更新公共资源信息。
当候选宿主机对应的剩余资源提交失败时,说明可能发生了调度冲突,即同时有多个资源调度流程选择了同一台宿主机。此时,判断提交次数是否超过次数阈值,若没有超过,则重新获取该候选宿主机的宿主机信息,并扣减待创建的虚拟机的资源需求,重新得到剩余资源。然后,将重新得到剩余资源重新提交至公共资源信息中;若超过,则从候选宿主机列表中获取下一个候选宿主机进行模拟扣减资源。
需要说明的是,当在第一个宿主机上扣减成功时,可以直接将第一个宿主机确定为目标宿主机,而不需要对第二宿主机进行扣减操作;当在第一个宿主机上扣减不成功时,需要对第二宿主机进行扣减操作,直至在一个宿主机上扣减成功。
进一步地,根据候选宿主机列表各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,得到剩余资源的步骤之前还可以包括:将候选宿主机列表中排序在前的预设数量的候选宿主机重新排序,生成候选宿主机目标列表。
根据候选宿主机列表各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,得到剩余资源的步骤包括:根据候选宿主机目标列表各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,得到剩余资源。
其中,预设数量可以根据实际需要进行灵活设置,对候选宿主机列表中排序在前的预设数量的候选宿主机重新排序可以是随机重新排序,也可以是按照预设规则进行重新排序,具体重新排序方式在此处不作限定。对候选宿主机列表中排序在前的预设数量的候选宿主机重新排序的目的在于,对候选宿主机列表中前k(k为预设数量)个候选宿主机进行随机打散以重新排序,得到候选宿主机目标列表,从而可以防止多个资源调度流程在并发场景下都选择相同的目标宿主机,有效避免调度冲突。
由上可知,本发明实施例可通过获取待创建的虚拟机对应的虚拟机信息,以及获取公共资源信息,该公共资源信息包括云计算系统中所有宿主机的对应的宿主机信息;然后,根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,该资源信息私有副本包括预设宿主机对应的宿主机信息;最后,根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机,从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。该方案中在进行资源调度之前,资源信息私有副本可以被及时更新,保证了资源信息私有副本与公共资源信息的同步性,使得资源调度结果较优,并且,进行资源调度时不需要等待,提高了资源调度的效率。
根据上述实施例所描述的方法,以下将举例作进一步详细说明。
以调度器为例,当虚拟机创建请求有多个时,消息队列中存储每个虚拟机创建请求对应的消息,多个调度器可以并行执行从消息队列的消息中提取出虚拟机创建请求,根据虚拟机创建请求中携带的虚拟机信息,为每个虚拟机创建请求选择合适的宿主机,并在宿主机上创建对应的虚拟机。由于多个调度器并发进行资源调度,因此,可以并行为不同的虚拟机选择宿主机,这样可以提升云计算系统的吞吐量和并发能力,避免调度器成为整个系统的性能瓶颈。
请参阅图3,图3为本发明实施例提供的资源调度方法中,多个调度器并发进行资源调度的流程示意图,假设云计算系统中有3个调度器及3台宿主机,当然,云计算系统中不可能只有3个调度器及3台宿主机,本实施例只是为了便于描述所举的例子,不应理解为是对调度器及宿主机的数量限定,但不管有多少个调度器及多少台宿主机,资源调度的过程都是类似的,都可以按照该示例进行理解。
其中,该方法流程可以包括:
201、终端向云计算系统中的接收器发送携带虚拟机信息的虚拟机创建请求。
随着云计算系统的数据中心规模的不断扩张,宿主机的种类和数量越来越多,资源调度的逻辑愈发复杂,并且随着业务需求的快速增长,在单位时间内需要处理的虚拟机创建请求急速增加,这会导致资源调度的响应延迟进一步增加。为了解决传统资源调度方案在响应延迟高及吞吐率低等问题,本实施例中多个调度器并发进行资源调度。
首先,终端向云计算系统中的接收器发送携带有虚拟机信息的虚拟机创建请求,该终端可以是负责创建虚拟机的用户所使用的终端设备。该虚拟机信息与上述提到的虚拟机信息类似,此处不再赘述。
202、接收器将接收到的虚拟机创建请求封装为消息,并将消息存储至消息队列中。
接收器自身维护有消息队列,接收器在接收到的虚拟机创建请求后,将虚拟机创建请求封装为消息,该消息的格式可以根据实际需要进行灵活设置,例如,key-value或json消息格式等。然后,将消息存储至消息队列中,以便调度器可以从消息队列中取出等待创建的虚拟机对应的虚拟机信息。当接收器在一定时间段内接收到的虚拟机创建请求较多时,消息队列中可以存储多个消息,如图4所示,图4中消息队列中存储消息VM1至消息VMn,其中,n为正整数,且n>1。
203、调度器1获取虚拟机信息1。
204、调度器2获取虚拟机信息2。
205、调度器3获取虚拟机信息3。
需要说明的是,步骤203至步骤205之间的执行顺序可以是,同时执行,也可以是依次执行203至步骤205;还可以是先执行步骤205,再执行步骤203,最后执行步骤204;还可以是先执行步骤204,再执行步骤205,最后执行步骤203;等等,具体步骤的执行顺序在此处不作限定。
调度器作为执行资源调度的组件,为虚拟机选择合适的宿主机。如果把调度器看作一个函数黑盒,其输入可以是宿主机信息和虚拟机信息,其输出可以是虚拟机ID和宿主机ID匹配对,即<VM ID,HOST ID>。
调度器1、调度器2和调度器3之间可以并发进行资源调度,分别向获取对应的虚拟机信息,从而可以提升系统的并发度和吞吐率。
其中,调度器1获取虚拟机信息1的方式可以包括:方式一,调度器1向接收器发送虚拟机信息1获取请求,接收器根据接收到调度器1发送的虚拟机信息1获取请求,向调度器1发送携带虚拟机信息1的消息1,调度器1可以从接收到的消息1中提取出虚拟机信息1;方式二,调度器1直接读取消息队列中存储的消息,从中获取虚拟机信息1。
需要说明的是,调度器2获取虚拟机信息2的方式及调度器3获取虚拟机信息3的方式,与调度器1获取虚拟机信息1的方式类似,在此处不作赘述。
206、调度器1获取公共资源信息。
207、调度器2获取公共资源信息。
208、调度器3获取公共资源信息。
需要说明的是,步骤206至步骤208之间的执行顺序可以是,同时执行,也可以是依次执行206至步骤208;还可以是先执行步骤208,再执行步骤206,最后执行步骤207;等等,具体步骤的执行顺序在此处不作限定。
云计算系统中的资源管理器维护公共资源信息,该公共资源信息包括云计算系统中所有宿主机对应的宿主机信息,宿主机在进入云计算系统时,需要经过宿主机导入流程,进行必要的初始化,宿主机会向资源管理器上报其宿主机信息,资源管理器可以将宿主机信息存储在公共资源信息中,当存在宿主机信息更新时,资源管理器也会及时对公共资源信息进行更新。
其中,调度器1获取公共资源信息的方式可以包括:方式一,调度器1向资源管理器发送公共资源信息获取请求,资源管理器根据接收到调度器1发送的的公共资源信息获取请求,向调度器1发送对应的公共资源信息;方式二,调度器1直接读取存储公共资源信息的数据库,从中获取公共资源信息。
需要说明的是,调度器2获取公共资源信息的方式及调度器3获取公共资源信息的方式,与调度器1获取公共资源信息的方式类似,在此处不作赘述。调度器1、调度器2及调度器3之间可以并发或每间隔预设时间获取公共资源信息。
209、调度器1根据接收到的公共资源信息及虚拟机信息1更新自身维护的资源信息私有副本1。
210、调度器2根据接收到的公共资源信息及虚拟机信息2更新自身维护的资源信息私有副本2。
211、调度器3根据接收到的公共资源信息及虚拟机信息3更新自身维护的资源信息私有副本3。
需要说明的是,步骤209至步骤210之间的执行顺序可以根据实际情况进行灵活设置,具体步骤的执行顺序在此处不作限定。
调度器1自身维护资源信息私有副本1,调度器2自身维护资源信息私有副本2,调度器3自身维护资源信息私有副本3。资源信息私有副本1、资源信息私有副本2及资源信息私有副本3均分别包括预设宿主机对应的宿主机信息,该预设宿主机可以是云计算系统中所有宿主机中的部分或全部宿主机。通过公共资源信息更新资源信息私有副本,保证了资源信息的一致性以及信息的准确性。
进一步地,如图6所示,调度器1根据接收到的公共资源信息及虚拟机信息1更新自身维护的资源信息私有副本1的步骤可以包括:
301、调度器1判断是否为首次更新资源信息私有副本;若是,则依次执行步骤302至步骤304;若否,则执行步骤305。
302、调度器1从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息。
303、调度器1将目标宿主机信息拷贝至资源信息私有副本。
304、调度器1记录全量更新时间戳及增量更新时间戳。
调度器1可以是获取当前时间戳,将当前时间戳设定为全量更新时间戳及增量更新时间戳;将全量更新时间戳及增量更新时间戳存储至资源信息私有副本。
305、调度器1获取当前时间戳与上一次全量更新时间戳之间的时间差值。
306、调度器1判断时间差值是否大于预置的全量更新阈值;若是,则依次执行步骤307至步骤309;若否,则执行步骤310。
307、调度器1从公共资源信息中筛选出满足虚拟机信息的第一目标宿主机信息。
308、调度器1将第一目标宿主机信息拷贝至资源信息私有副本。
309、调度器1记录第一全量更新时间戳及第一增量更新时间戳。
调度器1可以是将当前时间戳设定为第一全量更新时间戳及第一增量更新时间戳;将第一全量更新时间戳及第一增量更新时间戳存储至资源信息私有副本。
310、调度器1获取公共资源信息中存在更新且更新时间戳大于上一次增量更新时间戳的宿主机信息;
311、调度器1从宿主机信息中获取满足虚拟机信息的第二目标宿主机信息;
312、调度器1将第二目标宿主机信息增加至资源信息私有副本;
313、调度器1记录第二增量更新时间戳。
调度器1可以是将当前时间戳设定为第二增量更新时间戳;将第二增量更新时间戳存储至资源信息私有副本。资源信息同步缓存机制中,可以对资源信息私有副本进行增量更新,显著降低了资源信息同步的耗时。
调度器2根据公共资源信息及虚拟机信息2更新资源信息私有副本2,以及调度器3根据公共资源信息及虚拟机信息3更新资源信息私有副本3,这两者更新方式与调度器1的更新方式类似,此处不再赘述。
如图4所示,当调度器的个数不限定时,n(n为大于1的正整数)个调度器可以并发从消息队列的消息中提取出虚拟机信息,并根据公共资源信息分别更新自身维护的资源信息私有副本。
212、调度器1根据资源信息私有副本1确定候选宿主机,并从候选宿主机中确定目标宿主机A。
213、调度器2根据资源信息私有副本2确定候选宿主机,并从候选宿主机中确定目标宿主机B。
214、调度器3根据资源信息私有副本3确定候选宿主机,并从候选宿主机中确定目标宿主机C。
需要说明的是,步骤212至步骤214之间的执行顺序可以根据实际情况进行灵活设置,具体步骤的执行顺序在此处不作限定。
调度器1可以是根据虚拟机信息中的资源需求和资源信息私有副本中的宿主机信息,对资源信息私有副本中的宿主机集合进行过滤,保留符合条件的宿主机,剔除不符合条件的宿主机,得到至少一台候选宿主机。
可选地,调度器1可以构建的串式过滤器,控制每个过滤器对多台宿主机进行相应的过滤,以得到至少一台满足虚拟机信息的候选宿主机。例如,以8台宿主机为例,8台宿主机按照宿主机信息和待创建的虚拟机的虚拟机信息进行过滤,经过过滤器A时,若过滤器A负责过滤掉不满足虚拟机所需的CPU、内存以及磁盘资源等宿主机所能提供的硬件资源需求的宿主机,保留符合资源需求的宿主机,该轮过滤,过滤掉2台宿主机。剩余的6台宿主机再进入过滤器B,若过滤器B根据虚拟机信息负责过滤掉不支持SSD的宿主机,则经过过滤器B过滤后,又过滤掉一台宿主机,还剩余5台宿主机。然后,再依次经过其他过滤器,其他过滤器可以负责过滤掉不支持云盘的宿主机、以及负责过滤掉不支持私有网络的宿主机等,若最后到达过滤器X,过滤器X负责过滤掉不符合虚拟化类型中的一个,例如,如果需要宿主机的虚拟化类型是KVM,则会过滤掉虚拟化类型是Xen的宿主机。过滤结束后得到三个候选宿主机,分别为候选宿主机A、候选宿主机B及候选宿主机C。
进一步地,如图7所示,调度器1在得到至少一台候选宿主机后,可以从至少一台候选宿主机中确定目标宿主机,具体执行步骤可以包括:
401、调度器1确定至少一台候选宿主机中,每台宿主机各维度的优先级值;
每台宿主机各维度的优先级值的计算方式与上述实施例提到的优先级值计算方式类似,此处不再赘述。
例如,当得到3个候选宿主机分别为候选宿主机A、候选宿主机B及候选宿主机C时,可以分别计算候选宿主机A、候选宿主机B及候选宿主机C各维度的优先级值。
402、调度器1按照各维度的优先级值从高至低的顺序进行排序,生成候选宿主机列表;
其中,排序方式与上述实施例提到的排序方式类似,此处不再赘述。
例如,调度器1生成候选宿主机列表1中,各候选宿主机按照的优先级值从高至低的顺序依次排序为候选宿主机A、候选宿主机B及候选宿主机C。
403、调度器1从候选宿主机列表中按照排序后的顺序取出一台宿主机。
例如,调度器1生成候选宿主机列表1中取出候选宿主机A。
404、调度器1根据虚拟机的资源需求计算扣减后该宿主机的剩余资源。
例如,虚拟机的资源需求为8核8G的资源,候选宿主机A的宿主机信息中包括10核10G的资源,创建虚拟机需要扣减8核8G的资源,则扣减后候选宿主机A的剩余资源为2核2G的资源。
405、调度器1将剩余资源提交至公共资源信息中;
406、调度器1判断是否提交成功;若是,则依次执行步骤407及步骤408;若否,则执行步骤409。
407、调度器1确定该宿主机为目标宿主机。
若提交成功,则表示对公共资源信息中剩余资源的值修改成功,当一个候选宿主机对应的剩余资源提交成功时,将提交成功的候选宿主机设定为目标宿主机。
408、调度器1更新资源信息私有副本。
即调度器1更新资源信息私有副本1。
409、调度器1判断提交次数是否超过调度冲突阈值;若否,则执行步骤410;若是,则执行步骤411。
若提交成功,则可能是由于多个调度器并发对同一台宿主机尝试提交造成的,此时只有一个调度器可以提交成功,其余调度器此次提交失败。
该调度冲突阈值可根据实际情况进行灵活设置,可选地,该调度冲突阈值可以设置为3次至8次的范围内,这样可以避免同一台宿主机在短时间内创建多台虚拟机,对宿主机造成过大压力。
410、调度器1重新获取该宿主机的资源数据,并执行步骤404。
由于多个调度器并发工作,提交剩余资源时可能会产生调度冲突,因此调度器可以查询宿主机最新的资源数据,发起新一轮的扣减及剩余资源提交等操作,如果对于同一宿主机调度冲突的次数超过阈值,则选择候选宿主机列表中的下一台宿主机,即次优宿主机,这样调度冲突的代价更低,实现了有效处理调度冲突。
411、调度器1判断是否还有未选用的候选宿主机;若是,则执行步骤403;若否,则执行步骤412。
需要说明的是,调度器1可以对候选宿主机列表中排序在前的预设数量的候选宿主机重新排序,得到候选宿主机目标列表,再根据候选宿主机目标列表中各候选宿主机的顺序取出宿主机,根据虚拟机的资源需求计算扣减后该宿主机的剩余资源,从而可以防止多个调度器在并发进行资源调度的场景下都选择相同的宿主机,有效避免调度冲突。
412、调度器1确定无未选用的宿主机。
调度器2根据资源信息私有副本2确定候选宿主机,并从候选宿主机中确定目标宿主机B,以及调度器3根据资源信息私有副本3确定候选宿主机,并从候选宿主机中确定目标宿主机C,这两者确定方式与调度器1的确定方式类似,此处不再赘述。
219、在确定目标宿主机A后,调度器1向宿主机A发送创建虚拟机1的请求。
220、在确定目标宿主机B后,调度器2向宿主机B发送创建虚拟机2的请求。
221、在确定目标宿主机C后,调度器3向宿主机C发送创建虚拟机3的请求。
222、宿主机A在接收到创建虚拟机1的请求后,创建虚拟机1。
223、宿主机B在接收到创建虚拟机2的请求后,创建虚拟机2。
224、宿主机C在接收到创建虚拟机3的请求后,创建虚拟机3。
以下进行举例说明,如图5所示,假设各个调度器并发进行资源调度,调度器1得到候选宿主机列表1中,各候选宿主机按照的优先级值从高至低的顺序依次为候选宿主机A、候选宿主机B及候选宿主机C;调度器2得到候选宿主机列表2中,各候选宿主机按照的优先级值从高至低的顺序依次为候选宿主机A、候选宿主机C及候选宿主机B;调度器3得到候选宿主机列表3中,各候选宿主机按照的优先级值从高至低的顺序依次为候选宿主机B、候选宿主机A及候选宿主机C。
此时,调度器1从候选宿主机列表1中取出排在第一位的候选宿主机A,根据虚拟机1的资源需求计算扣减后,得到候选宿主机A的剩余资源,并提交至公共资源信息中,提交成功,即可确定候选宿主机A为目标宿主机。调度器1向宿主机A发送创建虚拟机1的请求,宿主机A接收到请求后创建虚拟机1。
调度器2从候选宿主机列表2中取出排在第一位的候选宿主机A,根据虚拟机2的资源需求计算扣减后,得到候选宿主机A的剩余资源,并提交至公共资源信息中,提交失败,并且提交的次数达到阈值,此时需要从候选宿主机列表2中取出排在第二位的候选宿主机C,根据虚拟机2的资源需求计算扣减后,得到候选宿主机C的剩余资源,并提交至公共资源信息中,提交成功,即可确定候选宿主机C为目标宿主机。调度器2向宿主机C发送创建虚拟机2的请求,宿主机C接收到请求后创建虚拟机2。
调度器3从候选宿主机列表3中取出排在第一位的候选宿主机B,根据虚拟机3的资源需求计算扣减后,得到候选宿主机A的剩余资源,并提交至公共资源信息中,提交成功,即可确定候选宿主机B为目标宿主机。调度器3向宿主机B发送创建虚拟机3的请求,宿主机B接收到请求后创建虚拟机3。
需要说明的是,图5中仅仅是一个示例,图5中描述的资源调度场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,例如,图5中还可以包括调度器4,调度器4得到候选宿主机列表4中,各候选宿主机按照的优先级值从高至低的顺序依次为候选宿主机Y、候选宿主机X及候选宿主机D,调度器4从候选宿主机列表4中取出排在第一位的候选宿主机B,根据虚拟机3的资源需求计算扣减后,得到候选宿主机Y的剩余资源,并提交至公共资源信息中,提交成功,即可确定调度器4可以在候选宿主机Y上创建虚拟机4,等等。
由上可知,本实施例中,多个调度器可以并行执行从消息队列的消息中提取出虚拟机创建请求,根据虚拟机创建请求中携带的虚拟机信息,为每个虚拟机创建请求选择合适的目标宿主机,并在目标宿主机上创建对应的虚拟机。通过设置对资源信息的缓存机制,包括设置公共资源信息和资源信息私有副本,实现了多个调度器可以并发进行资源调度,可有效提升资源调度的并发度和吞吐率,降低调度延迟,提升整个系统的可扩展性。
为便于更好的实施本发明实施例提供的资源调度方法,本发明实施例还提供一种基于上述资源调度方法的装置。其中名词的含义与上述资源调度方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图8,图8为本发明实施例提供的资源调度装置的结构示意图,其中该资源调度装置可以包括第一获取单元501、第二获取单元502、更新单元503、第三获取单元504及创建单元505等。
其中,第一获取单元501,用于获取待创建的虚拟机对应的虚拟机信息。
例如,第一获取单元501可以是从云计算系统中预置的消息队列中,获取待创建的虚拟机对应的虚拟机信息。其中,虚拟机是指通过软件模拟的具有硬件系统功能的,且运行在一个隔离环境中的完整计算机系统。
消息队列对于异步任务,消息队列中的消息会在消息队列中进行流转,云计算系统中的各个组件具有生产者或者消费者的身份,生产者向消息队列中发送消息,消费者从消息队列中接收消息。例如,云计算系统中接收器作为生产者,接收到终端发送的携带有虚拟机信息的虚拟机创建请求后,将虚拟机信息封装为消息,并将消息存储至消息队列中,这些虚拟机信息在消息队列中排队等待第一获取单元501进行资源调度;第一获取单元501作为消费者,从消息队列中提取虚拟机信息,为虚拟机信息对应的待创建的虚拟机选择宿主机。
虚拟机信息可以包括待创建的虚拟机所需的处理器信息、内存信息和磁盘信息等,以及待创建的虚拟机对固态硬盘、云盘、私有网络、网卡、路由器、网络结构、数据中心、机架、宿主机的机型、宿主机所属资源池、及虚拟机类型等资源需求中的至少一个资源需求。可以理解的是,虚拟机信息的类型可以根据实际需要进行灵活设置,具体内容在此处不作限定。
第二获取单元502,用于获取公共资源信息。
其中,公共资源信息为云计算系统存储和维护整个数据中心的资源数据,该公共资源信息包括云计算系统中所有宿主机对应的宿主机信息,可以理解的是,该公共资源信息可以由资源管理器维护,也可以由云计算系统中的其他设备维护,然后,由第二获取单元502从维护公共资源信息的设备中获取。例如,若该公共资源信息由云计算系统中的资源管理器进行维护,则此时第二获取单元502可以向资源管理器获取公共资源信息。为了描述方便,在本发明实施例中,将均以资源管理器维护公共资源信息为例进行说明。
需要说明的是,公共资源信息在云计算系统中全局唯一,其维护形式可以是一张逻辑数据表,例如,数据表中的每一行代表每台宿主机,数据表中的每一列代表宿主机包含的不同类型资源,该不同类型资源可以包括宿主机的网络之间互连的协议(InternetProtocol,IP)地址、可用中央处理器(Central Processing Unit,CPU)、可用内存和可用磁盘等。在维护的过程中,可以对公共资源信息进行添加、读取、更新或者删除等操作,这些操作对应数据中心宿主机资源的上线、变更或下线等过程。
其中,宿主机是指用于安装虚拟机软件的物理计算机,一台宿主机上可以通过虚拟机软件创建一台或者多台虚拟机。
可选地,宿主机信息可以包括宿主机标识、IP地址、机型、操作系统名称、内核版本、CPU型号、虚拟化方式、逻辑区编号、互联网数据中心编号、宿主机状态、是否支持云盘、是否支持固态硬盘(Solid State Drives,SSD)、网络版本、CPU节点资源配额、可用内存资源和可用磁盘资源等,具体内容在此处不作限定。
需要说明的是,宿主机在进入云计算系统时,需要经过宿主机导入流程,进行必要的初始化,宿主机会向资源管理器上报其宿主机信息,资源管理器可以将宿主机信息存储在公共资源信息中。宿主机也可以向资源调度装置上报其宿主机信息,资源调度装置可以将宿主机信息存储在预置的资源信息私有副本中;或者是,资源调度装置实时或间隔预设时间向资源管理器发送信息获取请求,接收资源管理器基于信息获取请求反馈的公共资源信息,并根据公共资源信息更新资源信息私有副本;或者是,当存在公共资源信息更新时,资源管理器主动向资源调度装置发送已更新的宿主机信息。
更新单元503,用于根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本。
资源调度装置自身维护的一份资源信息私有副本,其维护形式是公共资源信息在资源调度装置内存中的缓存。其中,资源信息私有副本包括预设宿主机对应的宿主机信息,该预设宿主机可以是云计算系统中所有宿主机中的部分或全部宿主机。为了使得资源调度结果较优,更新单元503在进行资源调度之前,需要对资源信息私有副本与公共资源信息进行同步,可以获取公共资源信息,根据公共资源信息更新资源信息私有副本,以保证资源信息私有副本与公共资源信息之间的一致性。
为了减少更新时间,更新单元503可以根据公共资源信息及虚拟机信息,更新资源信息私有副本。在某些实施方式中,如图9所示,更新单元503包括:更新子单元5031,用于从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息,将目标宿主机信息增加至预置的资源信息私有副本中。
可选地,更新子单元5031具体用于,当为首次更新资源信息私有副本时,从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息;将目标宿主机信息拷贝至资源信息私有副本;获取当前时间戳,将当前时间戳设定为全量更新时间戳及增量更新时间戳;将全量更新时间戳及增量更新时间戳存储至资源信息私有副本。
具体地,首先,更新子单元5031判断是否为首次更新资源信息私有副本,例如,可以判断资源信息私有副本中是否为空,若为空,则确定为首次更新资源信息私有副本;若不为空,则确定不是首次更新资源信息私有副本。若是首次更新,则当前的资源信息副本为空,此时需要进行全量更新,即从公共资源信息中筛选出满足虚拟机信息的目标宿主机信息,将目标宿主机信息拷贝至资源信息私有副本中。需要说明的是,也可以是直接将公共资源信息全量拷贝为资源信息私有副本。
在将目标宿主机信息拷贝至资源信息私有副本后,需要记录全量更新时间戳和增量更新时间戳,可选地,更新子单元5031获取当前时间戳,将当前时间戳设定为全量更新时间戳及增量更新时间戳,例如,当前时间戳为2017年9月15日上午11:00,此时全量更新时间戳及增量更新时间戳均为2017年9月15日上午11:00。然后,将全量更新时间戳及增量更新时间戳存储至资源信息私有副本,完成此次更新。
可选地,更新子单元5031具体用于,当不是首次更新资源信息私有副本时,获取当前时间戳与上一次全量更新时间戳之间的时间差值;判断时间差值是否大于预置的全量更新阈值;当时间差值大于全量更新阈值时,从公共资源信息中筛选出满足虚拟机信息的第一目标宿主机信息;将第一目标宿主机信息拷贝至资源信息私有副本;将当前时间戳设定为第一全量更新时间戳及第一增量更新时间戳;将第一全量更新时间戳及第一增量更新时间戳存储至资源信息私有副本。
具体地,当不是首次更新资源信息私有副本时,更新子单元5031获取当前时间戳与上一次全量更新时间戳之间的时间差值,其中,上一次全量更新时间戳为相对于当前时间戳的上一次记录的全量更新时间戳。
然后,更新子单元5031判断时间差值是否大于预置的全量更新阈值,该全量更新阈值可以根据实际需要进行灵活设置,具体取值在此处不作限定。例如,为了使得全量更新频度较低,可以将全量更新阈值设置为较大值。
若时间差值大于全量更新阈值,则进行全量更新,即从公共资源信息中筛选出满足虚拟机信息的第一目标宿主机信息,将第一目标宿主机信息拷贝至资源信息私有副本。需要说明的是,也可以是将当前的公共资源信息全量拷贝为资源信息私有副本。
然后,更新子单元5031记录第一全量更新时间戳及第一增量更新时间戳,以便对全量更新时间戳及增量更新时间戳进行准确记录。可选地,可以将当前时间戳设定为第一全量更新时间戳及第一增量更新时间戳,例如,当前时间戳为2017年9月16日上午8:00,此时全量更新时间戳及增量更新时间戳均为2017年9月16日上午8:00。然后,将第一全量更新时间戳及第一增量更新时间戳存储至资源信息私有副本,完成此次更新。
进一步地,更新子单元5031还具体用于,当时间差值小于或等于全量更新阈值时,获取公共资源信息中存在更新且更新时间戳大于上一次增量更新时间戳的宿主机信息;从宿主机信息中获取满足虚拟机信息的第二目标宿主机信息;将第二目标宿主机信息增加至资源信息私有副本;将当前时间戳设定为第二增量更新时间戳;将第二增量更新时间戳存储至资源信息私有副本。
由于云计算系统中宿主机的规模较大,例如,宿主机规模在10000量级,而资源调度装置在100量级,如果每次对资源信息私有副本进行更新时,都进行全量更新,即都将公共资源信息全部拷贝为资源信息私有副本,则比较耗时,为了降低更新耗时,可以对资源信息进行增量更新,即将公共资源信息中的部分资源信息增加至资源信息私有副本。
具体地,公共资源信息中宿主机信息在每次更新时,都会记录更新时间戳,以此获得准确的更新时间。更新子单元5031获取当前时间戳与上一次全量更新时间戳之间的时间差值后,若时间差值小于或等于全量更新阈值,则获取公共资源信息中存在更新的宿主机信息,并获取各个宿主机信息被更新的更新时间戳,然后,从存在更新的宿主机信息中筛选出更新时间戳,大于上一次增量更新时间戳的宿主机信息。即根据上一次增量更新时间戳到公共资源信息中进行查询,得到所有更新时间戳大于等于上一次增量更新时间戳的宿主机信息。该上一次增量更新时间戳为相对于当前时间戳的上一次的增量更新时间戳。
在得到公共资源信息中存在更新,且更新时间戳大于上一次增量更新时间戳的宿主机信息后,对该宿主机信息进行筛选,从宿主机信息中获取满足虚拟机信息的第二目标宿主机信息,并将第二目标宿主机信息增加至资源信息私有副本中。
然后,更新子单元5031记录第二增量更新时间戳,以便对增量更新时间戳进行准确记录,即将当前时间戳设定为第二增量更新时间戳,并将第二增量更新时间戳存储至资源信息私有副本中,完成此次更新。资源信息私有副本实质上是运行在内存中的缓存,在大部分情况下,更新子单元5031只需要进行增量更新,更新数据量和耗时都较少。可选地,对于在此次增量更新之前下线的宿主机,也将从资源信息私有副本中删除。
需要说明的是,上述第一目标宿主机信息、第二目标宿主机信息、第一全量更新时间戳、第一增量更新时间戳及第二增量更新时间戳中的“第一”和“第二”仅仅是为了对出现的目标宿主机信息、增量更新时间戳或全量更新时间戳进行区别,并不代表对其重要性的限定。
第三获取单元504,用于根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机。
在更新资源信息私有副本后,第三获取单元504以资源信息私有副本为基础,为待创建的虚拟机筛选宿主机,可以是根据虚拟机信息中的资源需求和资源信息私有副本中的宿主机信息,对资源信息私有副本中的宿主机集合进行过滤,保留符合条件的宿主机,剔除不符合条件的宿主机,得到至少一台候选宿主机。
可选地,第三获取单元504可以根据虚拟机信息按照依据宿主机信息所构建的串式过滤器,控制每个过滤器对多台宿主机进行相应的过滤,以得到至少一台满足虚拟机信息的候选宿主机。
按照宿主机信息可以构建出一个串式过滤模型,该串式过滤模型包括串接的多个过滤器,每个过滤器负责一项过滤功能,每个过滤器会根据虚拟机信息做出相应的判断,然后执行相应的过滤。例如,串接的第一个过滤器负责根据虚拟机所需的CPU、内存和磁盘资源等资源需求,过滤掉不满足该资源需求的宿主机,仅保留满足该资源需求的宿主机;串接的第二个过滤器负责过滤掉支持或者不支持SSD的宿主机,如果资源需求中要求宿主机支持SSD,则第二个过滤器根据该资源需求过滤掉不支持SSD的宿主机,保留支持SSD的宿主机。
可以理解的是,其他过滤器的功能都可以参阅该过滤器的进行理解,只是其他过滤器负责其他过滤功能。具体过滤模型中各过滤器的功能可以依据待创建的虚拟机的资源需求进行设置,具体内容在此处不作限定。
创建单元505,用于从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
在得到至少一台候选宿主机后,创建单元505可以从至少一台候选宿主机中确定目标宿主机,在选择目标宿主机时,可以是随机选择的,当然,为了选择一台符合度最优的目标宿主机,可以在对多台宿主机进行过滤得到至少一个候选宿主机后,确定每台候选宿主机各维度的优先级值,对至少一台候选宿主机按照优先级的值进行排序。
在某些实施方式中,如图10所示,创建单元505包括:
确定子单元5051,用于确定至少一台候选宿主机中,每台宿主机各维度的优先级值;
生成子单元5052,用于按照各维度的优先级值从高至低的顺序进行排序,生成候选宿主机列表;
扣减子单元5053,用于根据候选宿主机列表中各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,得到剩余资源,资源需求包含于虚拟机对应的虚拟机信息;
提交子单元5054,用于将剩余资源提交至公共资源信息中;
创建子单元5055,用于当一个候选宿主机对应的剩余资源提交成功时,将提交成功的候选宿主机设定为目标宿主机,并在目标宿主机上创建虚拟机。
具体地,首先确定子单元5051计算每台宿主机多个维度的优先级值,各维度的优先级可以包括:私有网络优先级(vpcPrio)、并发任务优先级(taskPrio)、历史错误优先级(errorPrio)、反亲和性优先级(affinityPrio)、空闲优先级(freePrio)、镜像缓存优先级(imgPrio)及碎片率优先级(fragmentPrio)等。
其中,对于私有网络优先级值:vpcPrio数值越小优先级越高。可以为每台宿主机确定私有网络优先级值,例如,可以将支持私有网络的宿主机的vpcPrio赋值为0,将不支持私有网络的宿主机的vpcPrio赋值为1;或者,也可以将支持私有网络的宿主机的vpcPrio赋值为1,将不支持私有网络的宿主机的vpcPrio赋值为0,等等,为了描述方便,在本发明实施例中,将均以将支持私有网络的宿主机的vpcPrio赋值为0,将不支持私有网络的宿主机的vpcPrio赋值为1为例进行说明。
私有网络的IP地址不依赖物理网络拓扑,未来更易于迁移。私有网络优先级的作用在于,优先把虚拟机放置到支持私有网络的宿主机上,未来迁移更加便利灵活。
对于并发任务优先级:taskPrio数值越小优先级越高。可以为每台宿主机确定并发任务优先级,判断宿主机上当前任务数量,若任务数量小于预设阈值,则赋值为0,否则赋值为当前任务数量。例如,并发预设阈值默认为3,当然,该预设阈值可以根据实际需要进行灵活配置。
宿主机上的并发任务会同时进行,并发过高,可能导致虚拟机创建缓慢甚至失败。并发任务优先级的作用在于,优先把虚拟机放置到并发任务数量更低的宿主机上,确保虚拟机创建的成功率和实时性。
对于历史错误优先级:errorPrio数值越小优先级越高遍。可以为每台宿主机计算历史错误优先级,判断宿主机最近一段时间(例如默认24小时)的历史错误数量,如果历史错误数量小于阈值,则赋值为0,否则赋值为历史错误数量。例如,错误阈值默认可以为5,错误阈值可以根据实际需要进行灵活配置。
短时间内出现多次错误的宿主机可能已经出现了某种故障,在对其进行处理之前,如果持续将虚拟机放置其上,可能导致虚拟机创建任务失败,降低成功率。历史错误优先级的作用在于,优先把虚拟机放置到没有出现过多错误的宿主机上,提高虚拟机创建的成功率。
对于反亲和性优先级:affinityPrio数值越小优先级越高。可以为每台宿主机计算反亲和性优先级,判断虚拟机用户在该宿主机上已经存在虚拟机数量,如果虚拟机数量小于亲和性阈值,则赋值为0,否则赋值为已有虚拟机数量。例如,亲和性阈值为3,当然,亲和性阈值可以根据实际需要进行灵活配置。
在大规模分布式系统中,完全规避错误是几乎不可能的。如果某位用户的虚拟机集中在一台或者几台宿主机上,当这些宿主机发生故障,其上虚拟机将全部受到影响,严重影响了该用户应用整体的可用性。反亲和性优先级的作用在于,使得同一用户的虚拟机广泛的分布在不同的宿主机上,进行分布式容灾,使单台宿主机故障对应用整体可用性的影响比较有限,进而提高用户应用的稳定性和可用性。
对于空闲优先级:freePrio数值越小优先级越高。例如,可以判断每台宿主机是否完全空闲,如果完全空闲,则赋值为0,否则赋值为1。或者,也可以完全空闲,则赋值为1,否则赋值为0,等等,为了描述方便,在本发明实施例中,将以完全空闲,则赋值为0,否则赋值为1为例进行说明。
空闲优先级的作用在于,保护空闲宿主机,优先把虚拟机放置到非空闲宿主机上,充分利用非空闲宿主机上的资源,提升资源利用率。
镜像缓存优先级:imgPrio数值越小优先级越高。可以遍历候选宿主机列表,判断每台宿主机是否具有虚拟机所需的镜像文件,例如,如果具有镜像文件,则赋值为0,否则赋值为1。
镜像缓存优先级的作用在于,优先将虚拟机放置到已经存储虚拟机镜像的宿主机上,这样在真正生产虚拟机的时候可以免去下载镜像环节,节省生产时间,提升虚拟机生产流程的实时性。
碎片率优先级:fragmentPrio数值越小优先级越高。可以为每台宿主机计算碎片率优先级,根据CPU和内存两个维度的资源计算优先级。默认情况下,碎片率优先级等于CPU碎片率乘以内存碎片率。
碎片率优先级的作用在于,充分利用宿主机的资源,降低资源碎片率,进而提升资源利用率,降低运营成本。
确定子单元5051确定每台候选宿主机各维度的优先级值后,生成子单元5052根据各维度的优先级值从高至低的顺序,对宿主机进行排序,得到候选宿主机列表,由创建子单元5055从候选宿主机列表中确定一台符合度最高的候选宿主机作为目标宿主机。具体的确定过程可以是:
生成子单元5052可以按照各维度的优先级从高到低的顺序,对同一维度的宿主机按照优先级值从大到小的顺序进行排序,针对同一维度的优先级值相同的宿主机,再按照下一维度的优先级值进行排序,以得到按照优先级从高到低排序的候选宿主机列表。
对候选宿主机进行排序后,排序在第一位的候选宿主机是最优的,由于该最优的候选宿主机可能存在其他创建任务,因此不一定能保证创建成功,需要通过模拟扣减资源的方式来确定目标宿主机。
确定目标宿主机的过程中,首先由扣减子单元5053按照排序后的候选宿主机列表中各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,分别得到各候选宿主机对应的剩余资源,完成对宿主机模拟扣减资源,虚拟机的资源需求包含于虚拟机对应的虚拟机信息中。即按照排序后的候选宿主机的降序,从排序在第一位的候选宿主机开始,逐一扣减待创建的虚拟机的资源需求,当在一个候选宿主机上扣减成功时,则将扣减成功的候选宿主机作为目标宿主机。
排序顺序可以是预先设定的,例如,默认排序标准及优先级从高到低的顺序可以是:私有网络优先级(vpcPrio)、并发任务优先级(taskPrio)、历史错误优先级(errorPrio)、反亲和性优先级(affinityPrio)、空闲优先级(freePrio)、镜像缓存优先级(imgPrio)和碎片率优先级(fragmentPrio)。排序标准也可以在默认标准范围内进行选择,顺序可以根据实际需要进行灵活调整配置。
其次,在得到候选宿主机的剩余资源后,提交子单元5054将剩余资源提交至公共资源信息中,当一个候选宿主机对应的剩余资源提交成功时,将提交成功的候选宿主机设定为目标宿主机。也可以是,将候选宿主机的剩余资源写入用于维护每台宿主机的剩余资源数据的数据库中;当写入成功时,则写入成功的候选宿主机作为目标宿主机。
创建子单元5055在确定目标宿主机后,可以在该目标宿主机上创建虚拟机,可选地,由于创建虚拟机需要消耗目标宿主机的资源,因此,可以对资源信息私有副本中的宿主机信息进行更新,还可以通知云计算系统更新公共资源信息。
当候选宿主机对应的剩余资源提交失败时,说明可能发生了调度冲突,即同时有多个资源调度流程选择了同一台宿主机。此时,判断提交次数是否超过次数阈值,若没有超过,则重新获取该候选宿主机的宿主机信息,并扣减待创建的虚拟机的资源需求,重新得到剩余资源。然后,将重新得到剩余资源重新提交至公共资源信息中;若超过,则从候选宿主机列表中获取下一个候选宿主机进行模拟扣减资源。
需要说明的是,当在第一个宿主机上扣减成功时,可以直接将第一个宿主机确定为目标宿主机,而不需要对第二宿主机进行扣减操作;当在第一个宿主机上扣减不成功时,需要对第二宿主机进行扣减操作,直至在一个宿主机上扣减成功。
进一步地,如图11所示,创建单元505还包括:
排序子单元5056,用于,将候选宿主机列表中排序在前的预设数量的候选宿主机重新排序,生成候选宿主机目标列表;
扣减子单元5053具体用于,根据候选宿主机目标列表各候选宿主机的顺序,逐一扣减待创建的虚拟机的资源需求,得到剩余资源。
其中,预设数量可以根据实际需要进行灵活设置,排序子单元5056对候选宿主机列表中排序在前的预设数量的候选宿主机重新排序可以是随机重新排序,也可以是按照预设规则进行重新排序,具体重新排序方式在此处不作限定。对候选宿主机列表中排序在前的预设数量的候选宿主机重新排序的目的在于,对候选宿主机列表中前k(k为预设数量)个候选宿主机进行随机打散以重新排序,得到候选宿主机目标列表,从而可以防止多个资源调度流程在并发场景下都选择相同的目标宿主机,有效避免调度冲突。
由上可知,本发明实施例可通过第一获取单元501获取待创建的虚拟机对应的虚拟机信息,以及第二获取单元502获取公共资源信息,该公共资源信息包括云计算系统中所有宿主机的对应的宿主机信息;然后,由更新单元503根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,该资源信息私有副本包括预设宿主机对应的宿主机信息;最后,由第三获取单元504根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机,再由创建单元505从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。该方案中在进行资源调度之前,资源信息私有副本可以被及时更新,保证了资源信息私有副本与公共资源信息的同步性,使得资源调度结果较优,并且,进行资源调度时不需要等待,提高了资源调度的效率。
相应的,本发明实施例还提供一种云计算系统,可以包括至少一个调度器及至少一台宿主机,该调度器包括本发明实施例所提供的任一种资源调度装置,具体可参见上述资源调度装置对应的实施例,其中,资源调度装置具体可以集成在调度服务器中,例如,可以如下:
调度服务器,用于获取待创建的虚拟机对应的虚拟机信息;获取公共资源信息,公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,资源信息私有副本包括预设宿主机对应的宿主机信息;根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机;从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由于该云计算系统可以包括本发明实施例所提供的任一种资源调度装置,因此,可以实现本发明实施例所提供的任一种云计算系统所能实现的有益效果,详见前面的实施例,在此不再赘述。
本发明实施例还提供一种调度服务器,该调度服务器为本发明实施例中所述的任一调度器,如图12所示,其示出了本发明实施例所涉及的调度服务器的结构示意图,具体来讲:
该调度服务器可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、电源603和输入单元604等部件。本领域技术人员可以理解,图12中示出的调度服务器结构并不构成对调度服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该调度服务器的控制中心,利用各种接口和线路连接整个调度服务器的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行调度服务器的各种功能和处理数据,从而对调度服务器进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据调度服务器的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
调度服务器还包括给各个部件供电的电源603,优选的,电源603可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该调度服务器还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,调度服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,调度服务器中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取待创建的虚拟机对应的虚拟机信息;获取公共资源信息,公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,资源信息私有副本包括预设宿主机对应的宿主机信息;根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机;从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本发明实施例调度服务器可通过获取待创建的虚拟机对应的虚拟机信息,以及获取公共资源信息,该公共资源信息包括云计算系统中所有宿主机的对应的宿主机信息;然后,根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,该资源信息私有副本包括预设宿主机对应的宿主机信息;最后,根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机,从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。该方案中在进行资源调度之前,资源信息私有副本可以被及时更新,保证了资源信息私有副本与公共资源信息的同步性,使得资源调度结果较优,并且,进行资源调度时不需要等待,提高了资源调度的效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种资源调度方法中的步骤。例如,该指令可以执行如下步骤:
获取待创建的虚拟机对应的虚拟机信息;获取公共资源信息,公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;根据公共资源信息及虚拟机信息,更新预置的资源信息私有副本,资源信息私有副本包括预设宿主机对应的宿主机信息;根据资源信息私有副本,获取满足虚拟机信息的至少一台候选宿主机;从至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种资源调度方法中的步骤,因此,可以实现本发明实施例所提供的任一种资源调度方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种资源调度方法、装置、云计算系统及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种资源调度方法,其特征在于,包括:
获取待创建的虚拟机对应的虚拟机信息;
获取公共资源信息,所述公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;
根据所述公共资源信息及所述虚拟机信息,更新预置的资源信息私有副本,所述资源信息私有副本包括预设宿主机对应的宿主机信息;
根据所述资源信息私有副本,获取满足所述虚拟机信息的至少一台候选宿主机;
从所述至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
2.根据权利要求1所述的资源调度方法,其特征在于,所述根据所述公共资源信息及所述虚拟机信息,更新预置的资源信息私有副本的步骤包括:
从所述公共资源信息中筛选出满足所述虚拟机信息的目标宿主机信息,将所述目标宿主机信息增加至预置的资源信息私有副本中。
3.根据权利要求2所述的资源调度方法,其特征在于,所述从所述公共资源信息中筛选出满足所述虚拟机信息的目标宿主机信息,将所述目标宿主机信息增加至预置的资源信息私有副本中的步骤包括:
当为首次更新所述资源信息私有副本时,从所述公共资源信息中筛选出满足所述虚拟机信息的目标宿主机信息;
将所述目标宿主机信息拷贝至所述资源信息私有副本;
获取当前时间戳,将所述当前时间戳设定为全量更新时间戳及增量更新时间戳;
将所述全量更新时间戳及所述增量更新时间戳存储至所述资源信息私有副本。
4.根据权利要求2所述的资源调度方法,其特征在于,所述从所述公共资源信息中筛选出满足所述虚拟机信息的目标宿主机信息,将所述目标宿主机信息增加至预置的资源信息私有副本中的步骤包括:
当不是首次更新所述资源信息私有副本时,获取当前时间戳与上一次全量更新时间戳之间的时间差值;
判断所述时间差值是否大于预置的全量更新阈值;
当所述时间差值大于所述全量更新阈值时,从所述公共资源信息中筛选出满足所述虚拟机信息的第一目标宿主机信息;
将所述第一目标宿主机信息拷贝至所述资源信息私有副本;
将所述当前时间戳设定为第一全量更新时间戳及第一增量更新时间戳;
将所述第一全量更新时间戳及所述第一增量更新时间戳存储至所述资源信息私有副本。
5.根据权利要求4所述的资源调度方法,其特征在于,所述判断所述时间差值是否大于预置的全量更新阈值的步骤之后,所述方法还包括:
当所述时间差值小于或等于所述全量更新阈值时,获取所述公共资源信息中存在更新且更新时间戳大于上一次增量更新时间戳的宿主机信息;
从所述宿主机信息中获取满足所述虚拟机信息的第二目标宿主机信息;
将所述第二目标宿主机信息增加至所述资源信息私有副本;
将所述当前时间戳设定为第二增量更新时间戳;
将所述第二增量更新时间戳存储至所述资源信息私有副本。
6.根据权利要求1至5中任一项所述的资源调度方法,其特征在于,所述从所述至少一台候选宿主机中获取目标宿主机的步骤包括:
确定所述至少一台候选宿主机中,每台宿主机各维度的优先级值;
按照所述各维度的优先级值从高至低的顺序进行排序,生成候选宿主机列表;
根据所述候选宿主机列表中各候选宿主机的顺序,逐一扣减待创建的所述虚拟机的资源需求,得到剩余资源,所述资源需求包含于所述虚拟机对应的虚拟机信息;
将所述剩余资源提交至所述公共资源信息中;
当一个候选宿主机对应的剩余资源提交成功时,将提交成功的所述候选宿主机设定为目标宿主机。
7.根据权利要求6所述的资源调度方法,其特征在于,所述根据所述候选宿主机列表各候选宿主机的顺序,逐一扣减待创建的所述虚拟机的资源需求,得到剩余资源的步骤之前,所述方法还包括:
将所述候选宿主机列表中排序在前的预设数量的候选宿主机重新排序,生成候选宿主机目标列表;
所述根据所述候选宿主机列表各候选宿主机的顺序,逐一扣减待创建的所述虚拟机的资源需求,得到剩余资源的步骤包括:根据所述候选宿主机目标列表各候选宿主机的顺序,逐一扣减待创建的所述虚拟机的资源需求,得到剩余资源。
8.一种资源调度装置,其特征在于,包括:
第一获取单元,用于获取待创建的虚拟机对应的虚拟机信息;
第二获取单元,用于获取公共资源信息,所述公共资源信息包括云计算系统中所有宿主机对应的宿主机信息;
更新单元,用于根据所述公共资源信息及所述虚拟机信息,更新预置的资源信息私有副本,所述资源信息私有副本包括预设宿主机对应的宿主机信息;
第三获取单元,用于根据所述资源信息私有副本,获取满足所述虚拟机信息的至少一台候选宿主机;
创建单元,用于从所述至少一台候选宿主机中获取目标宿主机,并在目标宿主机上创建虚拟机。
9.根据权利要求8所述的资源调度装置,其特征在于,所述更新单元包括:
更新子单元,用于从所述公共资源信息中筛选出满足所述虚拟机信息的目标宿主机信息,将所述目标宿主机信息增加至预置的资源信息私有副本中。
10.根据权利要求9所述的资源调度装置,其特征在于,所述更新子单元具体用于,当为首次更新所述资源信息私有副本时,从所述公共资源信息中筛选出满足所述虚拟机信息的目标宿主机信息;
将所述目标宿主机信息拷贝至所述资源信息私有副本;
获取当前时间戳,将所述当前时间戳设定为全量更新时间戳及增量更新时间戳;
将所述全量更新时间戳及所述增量更新时间戳存储至所述资源信息私有副本。
11.根据权利要求9所述的资源调度装置,其特征在于,所述更新子单元具体用于,当不是首次更新所述资源信息私有副本时,获取当前时间戳与上一次全量更新时间戳之间的时间差值;
判断所述时间差值是否大于预置的全量更新阈值;
当所述时间差值大于所述全量更新阈值时,从所述公共资源信息中筛选出满足所述虚拟机信息的第一目标宿主机信息;
将所述第一目标宿主机信息拷贝至所述资源信息私有副本;
将所述当前时间戳设定为第一全量更新时间戳及第一增量更新时间戳;
将所述第一全量更新时间戳及所述第一增量更新时间戳存储至所述资源信息私有副本。
12.根据权利要求11所述的资源调度装置,其特征在于,所述更新子单元还具体用于,当所述时间差值小于或等于所述全量更新阈值时,获取所述公共资源信息中存在更新且更新时间戳大于上一次增量更新时间戳的宿主机信息;
从所述宿主机信息中获取满足所述虚拟机信息的第二目标宿主机信息;
将所述第二目标宿主机信息增加至所述资源信息私有副本;
将所述当前时间戳设定为第二增量更新时间戳;
将所述第二增量更新时间戳存储至所述资源信息私有副本。
13.根据权利要求8至12中任一项所述的资源调度装置,其特征在于,所述创建单元包括:
确定子单元,用于确定所述至少一台候选宿主机中,每台宿主机各维度的优先级值;
生成子单元,用于按照所述各维度的优先级值从高至低的顺序进行排序,生成候选宿主机列表;
扣减子单元,用于根据所述候选宿主机列表中各候选宿主机的顺序,逐一扣减待创建的所述虚拟机的资源需求,得到剩余资源,所述资源需求包含于所述虚拟机对应的虚拟机信息;
提交子单元,用于将所述剩余资源提交至所述公共资源信息中;
创建子单元,用于当一个候选宿主机对应的剩余资源提交成功时,将提交成功的所述候选宿主机设定为目标宿主机,并在目标宿主机上创建虚拟机。
14.一种云计算系统,其特征在于,包括至少一个调度器及至少一台宿主机,所述调度器包括如权利要求8至13中任一项所述资源调度装置;所述宿主机,用于创建至少一个虚拟机。
15.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的资源调度方法中的步骤。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911639.9A CN109582433B (zh) | 2017-09-29 | 2017-09-29 | 一种资源调度方法、装置、云计算系统及存储介质 |
EP18863245.9A EP3690648B1 (en) | 2017-09-29 | 2018-09-25 | Resource scheduling method, scheduling server, cloud computing system and storage medium |
KR1020207012439A KR102281739B1 (ko) | 2017-09-29 | 2018-09-25 | 리소스 스케줄링 방법, 스케줄링 서버, 클라우드 컴퓨팅 시스템, 및 저장 매체 |
PCT/CN2018/107275 WO2019062699A1 (zh) | 2017-09-29 | 2018-09-25 | 资源调度方法、调度服务器、云计算系统及存储介质 |
JP2020518085A JP6893284B2 (ja) | 2017-09-29 | 2018-09-25 | リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体 |
US16/799,652 US11372688B2 (en) | 2017-09-29 | 2020-02-24 | Resource scheduling method, scheduling server, cloud computing system, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911639.9A CN109582433B (zh) | 2017-09-29 | 2017-09-29 | 一种资源调度方法、装置、云计算系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582433A true CN109582433A (zh) | 2019-04-05 |
CN109582433B CN109582433B (zh) | 2022-02-01 |
Family
ID=65900727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710911639.9A Active CN109582433B (zh) | 2017-09-29 | 2017-09-29 | 一种资源调度方法、装置、云计算系统及存储介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11372688B2 (zh) |
EP (1) | EP3690648B1 (zh) |
JP (1) | JP6893284B2 (zh) |
KR (1) | KR102281739B1 (zh) |
CN (1) | CN109582433B (zh) |
WO (1) | WO2019062699A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459684A (zh) * | 2020-04-24 | 2020-07-28 | 中国人民解放军国防科技大学 | 面向多处理器架构的云计算资源融合调度管理方法、系统及介质 |
CN111562985A (zh) * | 2020-05-09 | 2020-08-21 | 上海商汤智能科技有限公司 | 资源管理方法及装置、电子设备和存储介质 |
CN111666158A (zh) * | 2020-06-23 | 2020-09-15 | 中信银行股份有限公司 | 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备 |
CN112882820A (zh) * | 2019-11-29 | 2021-06-01 | 北京百度网讯科技有限公司 | 用于配置资源的方法及装置 |
CN113760446A (zh) * | 2021-01-22 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 资源调度方法、装置、设备及介质 |
CN113850558A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种工作流程编排方法及装置 |
CN115292024A (zh) * | 2022-10-09 | 2022-11-04 | 苏州市中地行信息技术有限公司 | 一种多目标导向的数据筛选方法与系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522088A (zh) * | 2018-09-30 | 2019-03-26 | 华为技术有限公司 | 一种虚拟机迁移方法及装置 |
CN111399983B (zh) * | 2020-03-18 | 2024-05-14 | 北京达佳互联信息技术有限公司 | 基于容器编排调度服务的调度方法及装置 |
CN111857237B (zh) * | 2020-07-27 | 2023-09-08 | 超越科技股份有限公司 | 一种时钟同步方法、系统、设备以及介质 |
US11726816B2 (en) * | 2020-07-30 | 2023-08-15 | Vmware, Inc. | Scheduling workloads on a common set of resources by multiple schedulers operating independently |
CN112527449B (zh) * | 2020-11-19 | 2024-07-02 | 北京浪潮数据技术有限公司 | 一种集群节点标签创建方法、系统及电子设备和存储介质 |
CN112988377B (zh) * | 2021-01-05 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 用于云服务的资源分配方法、系统和介质 |
CN112948089B (zh) * | 2021-03-22 | 2024-04-05 | 福建随行软件有限公司 | 一种招投标请求的资源分发方法及数据中心 |
CN113961314B (zh) * | 2021-12-16 | 2022-03-04 | 苏州浪潮智能科技有限公司 | 一种容器应用调度方法、装置、电子设备及存储介质 |
CN114338694B (zh) * | 2022-03-04 | 2022-05-31 | 广州鹏捷科技股份有限公司 | 一站式云数据中心服务器调度方法及系统 |
CN116132498A (zh) * | 2022-12-22 | 2023-05-16 | 北京蔚领时代科技有限公司 | 适用于应用更新期间的云渲染调度方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100049930A1 (en) * | 2008-08-25 | 2010-02-25 | Vmware, Inc. | Managing Backups Using Virtual Machines |
CN103002010A (zh) * | 2012-10-29 | 2013-03-27 | 北京奇虎科技有限公司 | 一种基于增量数据的数据更新方法、装置和系统 |
CN105260229A (zh) * | 2015-10-28 | 2016-01-20 | 北京百度网讯科技有限公司 | 拉取虚拟机镜像文件的方法和装置 |
CN106020937A (zh) * | 2016-07-07 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 一种创建虚拟机的方法、装置及系统 |
CN106339254A (zh) * | 2015-07-15 | 2017-01-18 | 中兴通讯股份有限公司 | 一种虚拟机快速启动方法、装置及管理节点 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070271560A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
US20080089338A1 (en) * | 2006-10-13 | 2008-04-17 | Robert Campbell | Methods for remotely creating and managing virtual machines |
US8205208B2 (en) * | 2007-07-24 | 2012-06-19 | Internaitonal Business Machines Corporation | Scheduling grid jobs using dynamic grid scheduling policy |
US7970903B2 (en) * | 2007-08-20 | 2011-06-28 | Hitachi, Ltd. | Storage and server provisioning for virtualized and geographically dispersed data centers |
JP5504651B2 (ja) * | 2009-03-06 | 2014-05-28 | 日本電気株式会社 | 仮想マシンシステム、情報処理装置、リソース管理方法、プログラム及び記録媒体 |
US8650563B2 (en) * | 2010-02-26 | 2014-02-11 | Red Hat Israel, Ltd. | Identification and placement of new virtual machines to reduce memory consumption based on shared images with hosted virtual machines |
US8478878B2 (en) * | 2010-03-11 | 2013-07-02 | International Business Machines Corporation | Placement of virtual machines based on server cost and network cost |
JP5772127B2 (ja) * | 2011-03-25 | 2015-09-02 | 富士通株式会社 | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
US8990824B2 (en) * | 2011-04-28 | 2015-03-24 | Dell Products L.P. | System and method for automated virtual network configuration |
JP2013061700A (ja) * | 2011-09-12 | 2013-04-04 | Sony Corp | 情報処理装置、情報処理方法、記録媒体および情報処理システム |
US9292350B1 (en) * | 2011-12-15 | 2016-03-22 | Symantec Corporation | Management and provisioning of virtual machines |
US20130238785A1 (en) * | 2012-03-06 | 2013-09-12 | Rackspace Us, Inc. | System and Method for Metadata Discovery and Metadata-Aware Scheduling |
US8843935B2 (en) * | 2012-05-03 | 2014-09-23 | Vmware, Inc. | Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine |
US9477529B2 (en) * | 2012-06-20 | 2016-10-25 | International Business Machines Corporation | Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes |
US10387201B2 (en) * | 2012-06-26 | 2019-08-20 | Vmware, Inc. | Storage performance-based virtual machine placement |
US9047129B2 (en) * | 2012-07-23 | 2015-06-02 | Adobe Systems Incorporated | Systems and methods for load balancing of time-based tasks in a distributed computing system |
JP6213053B2 (ja) * | 2012-09-04 | 2017-10-18 | 富士通株式会社 | プログラム、情報処理装置およびスケジュール決定方法 |
US8923320B2 (en) * | 2012-12-10 | 2014-12-30 | Dell Products L.P. | Systems and methods for automating virtual network interface controller configuration during workload provisioning |
US9213646B1 (en) * | 2013-06-20 | 2015-12-15 | Seagate Technology Llc | Cache data value tracking |
EP3087503B1 (en) * | 2013-12-24 | 2020-03-18 | Intel Corporation | Cloud compute scheduling using a heuristic contention model |
US9348709B2 (en) * | 2013-12-27 | 2016-05-24 | Sybase, Inc. | Managing nodes in a distributed computing environment |
CN104793982A (zh) * | 2014-01-20 | 2015-07-22 | 联想(北京)有限公司 | 一种创建虚拟机的方法和设备 |
US20190173770A1 (en) * | 2014-06-04 | 2019-06-06 | Nutanix, Inc. | Method and system for placement of virtual machines using a working set computation |
US9781055B2 (en) * | 2014-08-18 | 2017-10-03 | Cisco Technology, Inc. | Dynamic cascaded clustering for dynamic VNF |
US9699085B2 (en) * | 2014-11-13 | 2017-07-04 | Cisco Technology, Inc. | Periodic advertisements of host capabilities in virtual cloud computing infrastructure |
US10613887B2 (en) * | 2015-10-21 | 2020-04-07 | International Business Machines Corporation | Ordering optimization of host machines in a computing environment based on policies |
US20170235737A1 (en) * | 2016-02-12 | 2017-08-17 | Nutanix, Inc. | Entity database ranking |
CN107479950B (zh) * | 2016-06-08 | 2021-03-05 | 阿里巴巴集团控股有限公司 | 一种虚拟机调度方法、设备及系统 |
BR112019003693A2 (pt) * | 2016-08-25 | 2019-06-04 | Mugo Inc | sistema e método para a reprodução sincronizada de um item de mídia transmitido |
US10296389B2 (en) * | 2016-09-15 | 2019-05-21 | Red Hat, Inc. | Time-bound conditional resource deallocation |
US10241840B2 (en) * | 2016-09-30 | 2019-03-26 | Vmware, Inc. | Resource based virtual computing instance scheduling |
US20180191859A1 (en) * | 2016-12-29 | 2018-07-05 | Ranjan Sharma | Network resource schedulers and scheduling methods for cloud deployment |
US20200026576A1 (en) * | 2017-01-19 | 2020-01-23 | Nutanix, Inc. | Determining a number of nodes required in a networked virtualization system based on increasing node density |
US10296367B2 (en) * | 2017-02-03 | 2019-05-21 | Microsoft Technology Licensing, Llc | Resource management for virtual machines in cloud computing systems |
US10942760B2 (en) * | 2017-02-03 | 2021-03-09 | Microsoft Technology Licensing, Llc | Predictive rightsizing for virtual machines in cloud computing systems |
WO2018162970A1 (en) * | 2017-03-09 | 2018-09-13 | Telefonaktiebolaget Lm Ericsson (Publ) | CONFIGURATION GENERATION FOR VIRTUAL NETWORK FUNCTIONS (VNFs) WITH REQUESTED SERVICE AVAILABILITY |
US10599480B2 (en) * | 2017-05-05 | 2020-03-24 | Red Hat, Inc. | Cascading job scheduling in guests |
US10761869B2 (en) * | 2017-06-26 | 2020-09-01 | Wangsu Science & Technology Co., Ltd. | Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type |
-
2017
- 2017-09-29 CN CN201710911639.9A patent/CN109582433B/zh active Active
-
2018
- 2018-09-25 EP EP18863245.9A patent/EP3690648B1/en active Active
- 2018-09-25 WO PCT/CN2018/107275 patent/WO2019062699A1/zh unknown
- 2018-09-25 JP JP2020518085A patent/JP6893284B2/ja active Active
- 2018-09-25 KR KR1020207012439A patent/KR102281739B1/ko active IP Right Grant
-
2020
- 2020-02-24 US US16/799,652 patent/US11372688B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100049930A1 (en) * | 2008-08-25 | 2010-02-25 | Vmware, Inc. | Managing Backups Using Virtual Machines |
CN103002010A (zh) * | 2012-10-29 | 2013-03-27 | 北京奇虎科技有限公司 | 一种基于增量数据的数据更新方法、装置和系统 |
CN106339254A (zh) * | 2015-07-15 | 2017-01-18 | 中兴通讯股份有限公司 | 一种虚拟机快速启动方法、装置及管理节点 |
CN105260229A (zh) * | 2015-10-28 | 2016-01-20 | 北京百度网讯科技有限公司 | 拉取虚拟机镜像文件的方法和装置 |
CN106020937A (zh) * | 2016-07-07 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 一种创建虚拟机的方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
温少君 等: "一种云平台中优化的虚拟机部署机制", 《计算机工程》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882820A (zh) * | 2019-11-29 | 2021-06-01 | 北京百度网讯科技有限公司 | 用于配置资源的方法及装置 |
CN111459684A (zh) * | 2020-04-24 | 2020-07-28 | 中国人民解放军国防科技大学 | 面向多处理器架构的云计算资源融合调度管理方法、系统及介质 |
CN111562985A (zh) * | 2020-05-09 | 2020-08-21 | 上海商汤智能科技有限公司 | 资源管理方法及装置、电子设备和存储介质 |
CN111562985B (zh) * | 2020-05-09 | 2024-03-22 | 上海商汤智能科技有限公司 | 资源管理方法及装置、电子设备和存储介质 |
CN111666158A (zh) * | 2020-06-23 | 2020-09-15 | 中信银行股份有限公司 | 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备 |
CN113850558A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种工作流程编排方法及装置 |
CN113760446A (zh) * | 2021-01-22 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 资源调度方法、装置、设备及介质 |
CN115292024A (zh) * | 2022-10-09 | 2022-11-04 | 苏州市中地行信息技术有限公司 | 一种多目标导向的数据筛选方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6893284B2 (ja) | 2021-06-23 |
JP2020535559A (ja) | 2020-12-03 |
EP3690648A4 (en) | 2020-12-09 |
US11372688B2 (en) | 2022-06-28 |
KR102281739B1 (ko) | 2021-07-27 |
EP3690648A1 (en) | 2020-08-05 |
CN109582433B (zh) | 2022-02-01 |
EP3690648B1 (en) | 2023-08-02 |
WO2019062699A1 (zh) | 2019-04-04 |
US20200192724A1 (en) | 2020-06-18 |
KR20200061393A (ko) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582433A (zh) | 一种资源调度方法、装置、云计算系统及存储介质 | |
Kim et al. | Nsml: Meet the mlaas platform with a real-world case study | |
CN104461744B (zh) | 一种资源分配方法及装置 | |
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
US11172022B2 (en) | Migrating cloud resources | |
CN108614726A (zh) | 虚拟机创建方法及装置 | |
CN110325968A (zh) | 分布式计算系统中的系统升级管理 | |
EP2690553A1 (en) | Migration management apparatus, migration management method, and migration management program | |
CN107430528A (zh) | 机会性资源迁移以优化资源放置 | |
JP5352890B2 (ja) | 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体 | |
CN107370796A (zh) | 一种基于Hyper TF的智能学习系统 | |
CN108021449A (zh) | 一种协程实现方法、终端设备及存储介质 | |
CN106066812A (zh) | 基于应用的历史信息管理资源 | |
CN112395269B (zh) | MySQL高可用组的搭建方法及装置 | |
WO2020215752A1 (zh) | 图计算方法及装置 | |
JP2011192049A (ja) | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム | |
CN107528871A (zh) | 存储系统中的数据分析 | |
WO2009111141A1 (en) | Computer-implemented method for planning a manufacturing process | |
CN112748997A (zh) | 一种工作流的调度方法及系统 | |
JP2011081579A (ja) | Itシステム仮想化における仮想リソースのシステム運用管理方法およびシステム | |
JP6244496B2 (ja) | サーバストレージシステムの管理システム及び管理方法 | |
EP4109261A2 (en) | Access processing method, device, storage medium and program product | |
CN115964176A (zh) | 云计算集群调度方法、电子设备和存储介质 | |
CN109558214B (zh) | 异构环境下宿主机资源管理方法、装置和存储介质 | |
CN113760446A (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 |