CN116501445A - 一种虚机创建调度方法、系统、设备及可读存储介质 - Google Patents
一种虚机创建调度方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116501445A CN116501445A CN202310484102.4A CN202310484102A CN116501445A CN 116501445 A CN116501445 A CN 116501445A CN 202310484102 A CN202310484102 A CN 202310484102A CN 116501445 A CN116501445 A CN 116501445A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- scheduling
- node
- information
- creation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000006870 function Effects 0.000 claims abstract description 56
- 238000012216 screening Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 24
- 238000004140 cleaning Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 238000013508 migration Methods 0.000 claims description 4
- 230000005012 migration Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/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
- 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
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Factory Administration (AREA)
Abstract
本发明公开了一种虚机创建调度方法、系统、设备及介质。该虚机创建调度方法包括:对指定虚机组功能的虚机创建任务生成虚拟机组表及预占表;对未指定虚机组功能的虚机创建任务生成预占表,并获取全部计算节点的资源信息,同时获取每个节点预占表中的已预占资源,并将对应资源信息表中获取的节点资源信息去掉预占表中的资源;筛选符合虚机创建要求的计算节点;开始指定虚机组功能的虚机创建任务,在预占表中对筛选的计算节点的节点名称为索引的行加锁,在虚拟机组表中对虚机组编码为索引的行加锁;开始未指定虚机组功能的虚机创建任务,在预占表中对筛选的计算节点的节点名称为索引的行加锁。本发明解决了调度服务资源竞争导致调度失效的问题。
Description
技术领域
本发明是关于计算机技术领域,特别是关于一种虚机创建调度方法、系统、设备及可读存储介质。
背景技术
随着计算机硬件以及互联网技术的不断发展,服务器越来越倾向于承载多种相互独立的业务,而虚拟机技术正好适应了这种需求。而在现有技术中,调度服务运行在多个控制节点上,如果用户同时在前端界面操作创建不同规格的虚机,那么再通过消息队列转发到调度服务时,调度服务同时去取每个计算节点的资源信息,进行调度和筛选,可能会出现资源竞争情况,从而导致调度失效情况。
因此,针对上述技术问题,有必要提供一种虚机创建调度方法、系统、设备及可读存储介质。
发明内容
本发明的目的在于提供一种虚机创建调度方法、系统、设备及可读存储介质,其能够借助于数据库行级锁中排它锁重构调度逻辑,解决大批量调度场景下的资源被重复占用情况。
为实现上述目的,本发明提供的技术方案如下:
第一方面,本发明提供一种虚机创建调度方法,其包括:
对指定虚机组功能的虚机创建任务生成虚拟机组占表及预表;对未指定虚机组功能的虚机创建任务生成预占表,并获取全部计算节点的资源信息,同时获取每个节点预占表中的已预占资源,并将对应资源信息表中获取的节点资源信息去掉预占表中的资源;
筛选符合虚机创建要求的计算节点;
开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁;开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁。
在一个或多个实施方式中,所述开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁,包括:
第一次调度时,在所述虚拟机组表中记录对应虚机组编码,调度中虚机信息、调度开始时间并对本次调度所在计算节点的所述虚拟机组表中所述虚机组编码所在行添加行级锁;
完成第一次调度后,将虚机编码、虚机节点、虚机调度成功的时间记录到所述调度完成信息并删除所述调度中虚机信息;
再次调度该计算节点时,基于所述计算节点的所述虚拟机组表对应的所述调度中虚机信息执行调度任务。
在一个或多个实施方式中,所述基于所述计算节点的所述虚拟机组表对应的所述调度中虚机信息执行调度任务,包括:
所述计算节点的所述虚拟机组表对应的所述调度中虚机信息为空,则应用所述第一次调度的步骤继续执行调度任务;
所述计算节点的所述虚拟机组表对应的所述调度中虚机信息不为空,则等待上一虚机调度完成后再执行调度任务。
在一个或多个实施方式中,所述开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,包括:
读取节点正在调度的虚机信息并记录到所述预占表的所述节点现在资源信息中;
进行调度操作并选出一主机创建虚机;
判断所述节点现有资源信息的有效性,执行后续调度操作。
在一个或多个实施方式中,所述判断所述节点现有资源信息的有效性,执行后续调度操作,包括:
读取正在调度的虚机信息;
所述读取正在调度的虚机信息中没有前述记录到所述节点现在资源信息中正在调度的虚机信息里没有的虚机信息,则直接使用此节点,继续此虚机后面的创建或迁移流程,并且记录当前调度虚机的信息到预占表中;
所述读取正在调度的虚机信息中有前述记录到所述节点现在资源信息中正在调度的虚机信息里没有的虚机信息,则重新调度。
在一个或多个实施方式中,所述虚机创建调度方法,还包括:
对指定虚机组功能的虚机创建生成亲和超时时间;
对未指定虚机组功能的虚机创建生成未指定亲和超时时间;
清理长时间未完成虚机创建的任务。
在一个或多个实施方式中,所述清理长时间未完成虚机创建的任务,包括:
对指定虚机组功能长时间未完成虚机创建的任务进行处理;
对未指定虚机组功能长时间未完成虚机创建的任务进行处理。
在一个或多个实施方式中,所述对指定虚机组功能长时间未完成虚机创建的任务进行处理,包括:
查询所述调度开始时间及当前时间;
清理两者差值大于所述亲和超时时间的虚机创建任务。
在一个或多个实施方式中,所述对未指定虚机组功能长时间未完成虚机创建的任务进行处理,包括:
查询所述调度完成时间及所述当前时间;
清理两者差值大于所述未亲和超时时间的字段记录的对应虚机创建任务;
查询主机对应的虚机信息以及调度到此节点所有未创建完成的虚机信息;
清理所述调度到此节点所有未创建完成的虚机信息中未记录在主机对应虚机信息的虚机信息。
第二方面,本发明提供一种虚机创建调度系统,其包括:
生成模块,对指定虚机组功能的虚机创建任务生成虚拟机组表及预占表;对未指定虚机组功能的虚机创建任务生成预占表,并获取全部计算节点的资源信息,同时获取每个节点预占表中的已预占资源,并将对应资源信息表中获取的节点资源信息去掉预占表中的资源;
筛选模块,用于筛选符合虚机创建要求的计算节点;
执行模块,用于开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁;开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁。
第三方面,本发明提供一种计算机设备,其包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行所述的虚机创建调度方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行所述的虚机创建调度方法。
与现有技术相比,本发明提供的一种虚机创建调度方法、系统、设备及可读存储介质,借助于数据库行级锁中排它锁重构调度逻辑,在调度时锁定节点资源信息,有效解决了在大批量调度场景下的资源调度产生的资源竞争、资源被重复占用的问题。
附图说明
图1是本发明一实施方式中虚机创建调度方法的应用场景示意图;
图2是本发明一实施方式中虚机创建调度方法的流程示意图;
图3是本发明一实施方式中虚机创建调度系统的结构图;
图4是本发明一实施方式中电子设备的结构框图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其他明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其他元件或其他组成部分。
为了方便理解本申请的技术方案,下面首先对本发明中可能出现的技术术语进行详细解释。
虚机:即虚拟机,指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
行级锁:行级锁是锁定粒度较细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。行级锁分为共享锁和排他锁。其中,所述排他锁即是一个对于多个不同的事务,对同一资源只能有一把锁,也就是同一时间只能有一个在进行操作,其他的需要等待前面的执行完才能执行。
API(Application Programming Interface,应用程序接口):又称为应用编程接口,就是软件系统不同组成部分衔接的约定。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
VCPU:VCPU就是cpu的虚拟化技术,即虚拟处理器。CPU的虚拟化就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
开源:指的是事物规划为可以公开访问的,因此人们可以修改并分享。开源软件的源代码任何人都可以审查、修改和增强。
Openstack:是一个开源的云计算管理平台项目,也是一系列软件开源项目的组合。由美国国家航空航天局和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权。OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
Nova:Openstack中的一个核心项目组件,是NASA开发的虚拟服务器部署和业务计算模块,是一套虚拟化管理程序,可管理网络和存储。
Nova-scheduler:nova项目组件中的一种,负责调度用。
前端:前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步的详细描述。
请参考图1,其所示为本发明提供的虚机创建调度方法应用场景示意图。在图1所示实施场景下,包括前端101,控制节点102以及计算节点103。具体而言,用户在前端101操作创建虚机,创建的请求会一次下放到应用程序端口,并通过消息队列下放到所述控制节点102。在控制节点102上,调度服务会获取每个计算节点103的资源信息,从而进行调度和筛选。
需要说明的是,本发明实施例的虚机创建调度方法可应用于本发明实施例的虚机创建调度系统。该虚机创建调度系统可以配置于终端。终端可以包括但不限于PC(PersonalComputer,个人计算机)、PDA(平板电脑)﹑智能手机、智能可穿戴设备等等。
请参照图2所示为本发明一实施方式中虚机创建调度方法流程示意图。该虚机创建调度方法,具体包括以下步骤:
S201:对指定虚机组功能的虚机创建任务生成虚拟机组表及预占表;对未指定虚机组功能的虚机创建任务生成预占表,并获取全部计算节点的资源信息,同时获取每个节点预占表中的已预占资源,并将对应资源信息表中获取的节点资源信息去掉预占表中的资源;
具体的,所述虚拟机组表包括:预留字段、调度完成信息、调度中虚机信息、调度开始时间、虚机组编码。所述预占表包括:节点名称、未创建完成的虚机对应vcpu信息累加值、所有未创建完成的虚机对应内存信息累加值、所有vgpu累加信息、调度到此节点所有未创建完成的虚机信息。
S202:筛选符合虚机创建要求的计算节点;
S203:开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁;开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁;
需要说明的是,对于指定虚机组功能的虚机创建任务,所述以此节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁,指的是将虚机的cpu、内存等资源信息写入到预占表的数据库中,并且同时写入当前时间作为此虚机调度的时间,也写入虚机其他的信息到预占表中。写入数据库的过程中加入select xxx forupdate的悲观锁。
另一方面,对于未指定虚机组功能的虚机创建任务,所述以此节点的节点名称为索引的行加锁,指的是每次进行虚机调度任务时,不对该节点加锁。在更新数据的时候需要比较程序中的虚机信息与数据库中的虚机信息是否相等,如果相等则进行更新,反之程序重新获取节点虚机信息,再次进行比较,直到两个数值相等才进行数据更新。这即是所谓乐观锁。
一示例性的实施例中,所述开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁,包括:第一次调度时,在所述虚拟机组表中记录对应虚机组编码,调度中虚机信息、调度开始时间并对本次调度所在计算节点的所述虚拟机组表中所述虚机组编码所在行添加行级锁;第一次调度后,将虚机编码、虚机节点、虚机调度成功的时间记录到所述调度完成信息并删除所述调度中虚机信息;再次调度该计算节点时,基于所述计算节点的所述虚拟机组表对应的所述调度中虚机信息执行调度任务。
具体的,所述基于所述计算节点的所述虚拟机组表对应的所述调度中虚机信息执行调度任务,包括:所述计算节点的所述虚拟机组表对应的所述调度中虚机信息为空,则应用所述第一次调度的步骤继续执行调度任务;所述计算节点的所述虚拟机组表对应的所述调度中虚机信息不为空,则等待上一虚机调度完成后再执行调度任务。
例如,在第一个调度来到时,在所述虚拟机组表中记录插入server_group_id、scheduling_instance_uuid、scheduler_time信息并对本次调度所在计算节点的所述虚拟机组表中所述server_group_id所在行添加行级锁,第一个调度完成成功后,删除表中scheduling_instance_uuid字段记录的虚机id和scheduler_time字段,然后记录虚机id,虚机节点,虚机调度成功的时间到instance_host_mapping里;第二个以及后面的调度开始时,从数据库scheduler_server_group中查询对应server-group的scheduling_instance_uuid字段记录的信息是否为空,如果为空说明没有虚机调度,可以继续执行调度任务,如果有则说明有同server-group的虚机在调度,等它选取好节点后再接着执行后续操作。
在另一示例性实施例中,所述开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,包括:读取节点正在调度的虚机信息并记录到所述预占表的所述节点现在资源信息中;进行调度操作并选出一主机创建虚机;判断所述节点现有资源信息的有效性,执行后续调度操作。
具体的,所述判断所述节点现有资源信息的有效性,执行后续调度操作,包括:读取正在调度的虚机信息;所述读取正在调度的虚机信息中没有前述记录到所述节点现在资源信息中正在调度的虚机信息里没有的虚机信息,则直接使用此节点,继续此虚机后面的创建或迁移流程,并且记录当前调度虚机的信息到预占表中;所述读取正在调度的虚机信息中有前述记录到所述节点现在资源信息中正在调度的虚机信息里没有的虚机信息,则重新调度。
例如,当一个请求下发后,使用读取数据库中hypervisor(虚拟机管理程序)信息来读取host_state信息,从“预占表”数据库中读取字段scheduing_instances的虚机信息以及其他的CPU、Memory等信息,并且将host_state对象中的CPU、Memory等资源去掉前面获取的对应预占的资源,然后使用此host_state进行调度操作,经过调度后,会选择出一个host来创建虚机。这时在记录此虚机信息时,预先进行一个判断:再次读取预分配表里scheduing_instances信息,查看是否有前面表里没有的虚机信息。若表里没有多余的正在调度的虚机信息,那么,直接使用此节点,继续此虚机后面的创建或迁移等流程,并且记录当前调度虚机的信息到预占表中。例如cpu、内存等都需要添加上。如果有多余的虚机信息,那么此虚机调度时用的host state信息是过期的,不是最新的,需要重新调度。
需要说明的是,所述虚机创建调度方法还包括:清理长时间未创建的任务,包括:对指定虚机组功能长时间未完成虚机创建的任务进行处理;对未指定虚机组功能长时间未完成虚机创建的任务进行处理。
在一示例性的实施例中,所述对指定虚机组功能长时间未完成虚机创建的任务进行处理,包括:查询所述调度开始时间及当前时间;清理两者差值大于所述亲和超时时间的虚机创建任务。
例如,查询scheduler_time时间,如果scheduler_time+90秒小于now_time,则说明正常,如果大于now_time则说明超过了90秒还没调度成功,我们认为是异常的,应该清理掉。
在另一示例性实施例中,所述对未指定虚机组功能长时间未完成虚机创建的任务进行处理,包括:查询所述调度完成时间及所述当前时间;清理两者差值大于所述未亲和超时时间的字段记录的对应虚机创建任务;查询主机对应的虚机信息以及调度到此节点所有未创建完成的虚机信息;清理所述调度到此节点所有未创建完成的虚机信息中未记录在主机对应虚机信息的虚机信息。
例如,在nova-compute服务中,需要通过所述节点host来查询scheduler_reservation.scheduing_instances里所有虚机,查看now_time与调度完成的时间查是否超过了10分钟(、可配置,scheduler_create_timeout=600),如果超过了则删除此字段记录的对应虚机信息。另外查询host对应的所有虚机和scheduler_reservation.scheduing_instances里记录的所有虚机,如果scheduing_instances里有虚机不在host查到的记录里,则也需要进行清理操作。在上面清理虚机信息时,同时也需要清理对应的vcpu、内存等记录。根据scheduler_server_group_info.instance_host_mapping里的调度时间来判断,如果10分钟还没清理,则进行清理。
综上所述,本发明提供的虚机创建调度方法,通过引入两个数据库表,借用数据库行级锁功能,通过对行数据的锁定,解决了资源调度时的重复占用的问题。避免了如果同时用户在前端界面操作创建不同规格的虚机(同时下方创建的API到nova-api服务),那么再通过消息队列转发到调度服务时,调度服务同时去取每个计算节点的资源信息,从而进行调度和筛选,出现资源竞争,从而导致调度失效的情况。
请参考图3所示,基于与前述虚机创建调度方法相同的发明构思,本发明一实施方式中提供了一种虚机创建调度系统300,其包括生成模块301、筛选模块302、执行模块303。
所述生成模块301,用于对指定虚机组功能的虚机创建任务生成虚拟机组表及预占表;对未指定虚机组功能的虚机创建任务生成预占表,并获取全部计算节点的资源信息,同时获取每个节点预占表中的已预占资源,并将对应资源信息表中获取的节点资源信息去掉预占表中的资源;所述筛选模块302,用于筛选符合虚机创建要求的计算节点;所述执行模块303,开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁;开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁并清理创建失败或者长时间未创建的所述创建任务。
请参照图4所示,本发明实施例还提供了一种电子设备400,该电子设备400包括至少一个处理器401、存储器402(例如非易失性存储器)、内存403和通信接口404,并且至少一个处理器401、存储器402、内存403和通信接口404经由总线405连接在一起。至少一个处理器401用于调用在存储器402中存储或编码的至少一个程序指令,以使得至少一个处理器401执行本说明书的各个实施方式中所描述的虚机创建调度方法的各种操作和功能。
在本说明书的实施例中,电子设备400可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动电子设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴电子设备、消费电子设备等等。
本发明实施例还提供了一种计算机可读介质,该计算机可读介质上承载有计算机执行指令,所述计算机执行指令被处理器执行时,可用于实现本说明书的各个实施例中描述的虚机创建调度方法的各种操作和功能。
本发明中的计算机可读介质可以是计算机可读信号介质或者计算机可读储存介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读储存介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读储存介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用储存介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置、系统、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (12)
1.一种虚机创建调度方法,其特征在于,包括:
对指定虚机组功能的虚机创建任务生成虚拟机组表及预占表;对未指定虚机组功能的虚机创建任务生成预占表,并获取全部计算节点的资源信息,同时获取每个节点预占表中的已预占资源,并将对应资源信息表中获取的节点资源信息去掉预占表中的资源;
筛选符合虚机创建要求的计算节点;
开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁;开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁。
2.如权利要求1所述的虚机创建调度方法,其特征在于,所述开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁,包括:
第一次调度时,在所述虚拟机组表中记录对应虚机组编码,调度中虚机信息、调度开始时间并对本次调度所在计算节点的所述虚拟机组表中所述虚机组编码所在行添加行级锁;
完成第一次调度后,将虚机编码、虚机节点、虚机调度成功的时间记录到所述调度完成信息并删除所述调度中虚机信息;
再次调度该计算节点时,基于所述计算节点的所述虚拟机组表对应的所述调度中虚机信息执行调度任务。
3.如权利要求2所述的虚机创建调度方法,其特征在于,所述基于所述计算节点的所述虚拟机组表对应的所述调度中虚机信息执行调度任务,包括:
所述计算节点的所述虚拟机组表对应的所述调度中虚机信息为空,则应用所述第一次调度的步骤继续执行调度任务;
所述计算节点的所述虚拟机组表对应的所述调度中虚机信息不为空,则等待上一虚机调度完成后再执行调度任务。
4.如权利要求3所述的虚机创建调度方法,其特征在于,所述开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,包括:
读取节点正在调度的虚机信息并记录到所述预占表的所述节点现在资源信息中;
进行调度操作并选出一主机创建虚机;
判断所述节点现有资源信息的有效性,执行后续调度操作。
5.如权利要求4所述的虚机创建调度方法,其特征在于,所述判断所述节点现有资源信息的有效性,执行后续调度操作,包括:
读取正在调度的虚机信息;
所述读取正在调度的虚机信息中没有前述记录到所述节点现在资源信息中正在调度的虚机信息里没有的虚机信息,则直接使用此节点,继续此虚机后面的创建或迁移流程,并且记录当前调度虚机的信息到预占表中;
所述读取正在调度的虚机信息中有前述记录到所述节点现在资源信息中正在调度的虚机信息里没有的虚机信息,则重新调度。
6.如权利要求1所述的虚机创建调度方法,其特征在于,所述虚机创建调度方法,还包括:
对指定虚机组功能的虚机创建生成亲和超时时间;
对未指定虚机组功能的虚机创建生成未指定亲和超时时间;
清理长时间未完成虚机创建的任务。
7.如权利要求6所述的虚机创建调度方法,其特征在于,所述清理长时间未完成虚机创建的任务,包括:
对指定虚机组功能长时间未完成虚机创建的任务进行处理;
对未指定虚机组功能长时间未完成虚机创建的任务进行处理。
8.如权利要求6所述的虚机创建调度方法,其特征在于,所述对指定虚机组功能长时间未完成虚机创建的任务进行处理,包括:
查询所述调度开始时间及当前时间;
清理两者差值大于所述亲和超时时间的虚机创建任务。
9.如权利要求6所述的虚机创建调度方法,其特征在于,所述对未指定虚机组功能长时间未完成虚机创建的任务进行处理,包括:
查询所述调度完成时间及当前时间;
清理两者差值大于未亲和超时时间的字段记录的对应虚机创建任务;
查询主机对应的虚机信息以及调度到此节点所有未创建完成的虚机信息;
清理所述调度到此节点所有未创建完成的虚机信息中未记录在主机对应虚机信息的虚机信息。
10.一种虚机创建调度系统,其特征在于,包括:
生成模块,对指定虚机组功能的虚机创建任务生成虚拟机组表及预占表;对未指定虚机组功能的虚机创建任务生成预占表,并获取全部计算节点的资源信息,同时获取每个节点预占表中的已预占资源,并将对应资源信息表中获取的节点资源信息去掉预占表中的资源;
筛选模块,用于筛选符合虚机创建要求的计算节点;
执行模块,用于开始所述指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁,在所述虚拟机组表中对虚机组编码为索引的行加锁;开始所述未指定虚机组功能的虚机创建任务,在所述预占表中对所述筛选的计算节点的节点名称为索引的行加锁。
11.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-9中任一项所述的虚机创建调度方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-9中任一项所述的虚机创建调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310484102.4A CN116501445A (zh) | 2023-04-27 | 2023-04-27 | 一种虚机创建调度方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310484102.4A CN116501445A (zh) | 2023-04-27 | 2023-04-27 | 一种虚机创建调度方法、系统、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116501445A true CN116501445A (zh) | 2023-07-28 |
Family
ID=87326209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310484102.4A Pending CN116501445A (zh) | 2023-04-27 | 2023-04-27 | 一种虚机创建调度方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501445A (zh) |
-
2023
- 2023-04-27 CN CN202310484102.4A patent/CN116501445A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906415B2 (en) | Transactional orchestration of resource management and system topology in a cloud environment | |
CN111198868B (zh) | 一种智能分库实时数据迁移方法和装置 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN107464151B (zh) | 高并发业务的订单数据处理方法及装置 | |
CN107016029B (zh) | 一种业务数据的处理方法、装置及系统 | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
CN114327861B (zh) | 执行eda任务的方法、装置、系统和存储介质 | |
US9760441B2 (en) | Restoration of consistent regions within a streaming environment | |
CN110673933A (zh) | 基于ZooKeeper的分布式异步队列实现方法、装置、设备及介质 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN112199164A (zh) | 一种保证容器镜像一致性的方法 | |
CN110795331A (zh) | 软件测试的方法和装置 | |
US20160092206A1 (en) | Managing executable files | |
CN117724803A (zh) | 云服务部署方法、装置和平台 | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN117389647A (zh) | 插件生成方法、应用程序开发方法、装置、设备及介质 | |
CN114500549A (zh) | 在公共云中为用户部署k8s托管集群的方法、设备和介质 | |
CN111638939A (zh) | 一种Kubernetes容器平台应用生命周期的管理系统和方法 | |
CN116501445A (zh) | 一种虚机创建调度方法、系统、设备及可读存储介质 | |
CN114721801A (zh) | 批量任务执行时间的动态调度方法及装置 | |
CN114995982A (zh) | 任务处理方法、装置及存储介质 | |
CN114070889A (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN114722261A (zh) | 一种资源的处理方法、装置、电子设备及存储介质 | |
CN113760446A (zh) | 资源调度方法、装置、设备及介质 | |
CN112764729A (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 |