CN111045789B - 一种虚拟机开机方法、装置及电子设备和存储介质 - Google Patents
一种虚拟机开机方法、装置及电子设备和存储介质 Download PDFInfo
- Publication number
- CN111045789B CN111045789B CN201911283776.8A CN201911283776A CN111045789B CN 111045789 B CN111045789 B CN 111045789B CN 201911283776 A CN201911283776 A CN 201911283776A CN 111045789 B CN111045789 B CN 111045789B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- starting
- host
- request
- scheduling service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000013515 script Methods 0.000 claims abstract description 17
- 239000003999 initiator Substances 0.000 claims description 21
- 238000001914 filtration Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008570 general process Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012216 screening Methods 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/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/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种虚拟机开机方法、装置及一种电子设备和计算机可读存储介质,该方法包括:接收到针对虚拟机的开机请求之后,利用虚拟机调度服务依次为每个虚拟机选择目标运行主机;利用虚拟机调度服务将开机请求转发至目标运行主机,以使目标运行主机执行虚拟机开机操作。本申请在接收到虚拟机的开机请求后,将利用虚拟机调度服务为每个虚拟机选择目标运行主机,以便目标运行主机执行开机操作,不再通过调用脚本的方式执行开机任务,由此避免加载功能模块的过程,减少了时间消耗,有效提升了用户体验。本申请利用虚拟机调度服务对虚拟机的开机调度进行统一的管理,依次为每个虚拟机选择目标运行主机,能够避免并行选择导致的负载失衡问题。
Description
技术领域
本申请涉及虚拟机技术领域,更具体地说,涉及一种虚拟机开机方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
VM(Virtual Machine,虚拟机)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机在开机阶段通常通过调用脚本的方式来执行开机任务,然而,调用脚本时每个脚本在启动时都需要加载系统模块和自定义模块,导致消耗过长的时间,造成虚拟机开机缓慢。
发明内容
本申请的目的在于提供一种虚拟机开机方法、装置及一种电子设备和一种计算机可读存储介质,减少了开机时间消耗,有效提升了用户体验。
为实现上述目的,本申请提供了一种虚拟机开机方法,包括:
接收到针对虚拟机的开机请求之后,利用虚拟机调度服务依次为每个虚拟机选择目标运行主机;
利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作。
可选的,所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机,包括:
利用所述虚拟机调度服务并发地获取虚拟机调度所依赖的目标数据;所述目标数据包括每个运行主机的硬件资源信息,以及每个虚拟机的开机所需内存、所使用的调度策略、所使用的备份策略和所在的故障域;
利用所述虚拟机调度服务根据所述目标数据依次为每个虚拟机选择所述目标运行主机。
可选的,所述利用所述虚拟机调度服务根据所述目标数据依次为每个虚拟机选择所述目标运行主机,包括:
获取预设主机过滤条件;
对所有运行主机进行遍历,根据所述目标数据确定所述预设主机过滤条件针对所述每个运行主机的过滤结果,统计得到所述每个运行主机对应的可选分值;
将所有所述可选分值中分值最高的运行主机确定为所述目标运行主机。
可选的,所述利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作之后,还包括:
在预设时间段之后,从qcow2镜像中将成功开机的虚拟机中虚拟磁盘所存储的元数据加载至内存。
可选的,所述利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作之后,还包括:
利用所述虚拟机调度服务启动预设进程;
利用所述预设进程执行原始开机回调脚本对应的功能操作。
可选的,所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机之前,还包括:
对所述开机请求进行权限验证;
若所述开机请求通过验证,则将所述开机请求转发至所述虚拟机调度服务,以启动所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机的步骤。
可选的,将所述开机请求转发至所述虚拟机调度服务之后,还包括:
向所述开机请求的发起方返回所述开机请求对应的标识信息,以提示所述发起方所述开机请求发送成功;
接收所述发起方在获取到所述标识信息后通过轮询方式发送的用于获取虚拟网络控制台链接的获取请求;
根据所述获取请求获取所述目标运行主机返回的虚拟网络控制台端口,直至获取成功后将所述虚拟网络控制台端口对应的虚拟网络控制台链接转发至所述发起方。
可选的,所述轮询方式为根据预设时间间隔、每个时间间隔发送预设数量的所述获取请求的方式;多个所述预设时间间隔组成的数列为基于斐波那契数列确定的数列。
为实现上述目的,本申请提供了一种虚拟机开机装置,包括:
主机选择模块,用于接收到针对虚拟机的开机请求之后,利用虚拟机调度服务为每个虚拟机选择目标运行主机;
请求转发模块,用于利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种虚拟机开机方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种虚拟机开机方法的步骤。
通过以上方案可知,本申请提供的一种虚拟机开机方法,包括:接收到针对虚拟机的开机请求之后,利用虚拟机调度服务依次为每个虚拟机选择目标运行主机;利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作。由上可知,本申请在接收到虚拟机的开机请求后,将利用虚拟机调度服务为每个虚拟机选择目标运行主机,以便目标运行主机执行开机操作,不再通过调用脚本的方式执行开机任务,由此避免加载功能模块的过程,减少了时间消耗,有效提升了用户体验。另外,本申请利用虚拟机调度服务对虚拟机的开机调度进行统一的管理,依次为每个虚拟机选择目标运行主机,能够避免并行选择导致的负载失衡问题。
本申请还公开了一种虚拟机开机装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种虚拟机开机方法的流程图;
图2为本申请实施例公开的虚拟机调度服务的总体处理流程图;
图3为本申请实施例公开的虚拟机调度服务的调度处理流程图;
图4为本申请实施例公开的另一种虚拟机开机方法的流程图;
图5为本申请实施例公开的另一种虚拟机开机方法中针对步骤S202的细化流程图;
图6为本申请实施例公开的又一种虚拟机开机方法的流程图;
图7为本申请实施例公开的一种具体的虚拟机开机方法的流程图;
图8为本申请实施例公开的一种虚拟机开机装置的结构图;
图9为本申请实施例公开的一种电子设备的结构图;
图10为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在传统技术中,虚拟机在开机阶段通常通过调用脚本的方式来执行开机任务,然而,调用脚本时每个脚本在启动时都需要加载系统模块和自定义模块,导致消耗过长的时间,造成虚拟机开机缓慢。
因此,本申请实施例公开了一种虚拟机开机方法,减少了开机时间消耗,有效提升了用户体验。
参见图1所示,本申请实施例公开的一种虚拟机开机方法包括:
S101:接收到针对虚拟机的开机请求之后,利用虚拟机调度服务依次为每个虚拟机选择目标运行主机;
本申请实施例中,可以预先提供虚拟机调度服务,所有的虚拟机开机请求都将发送到这个调度服务进行统一的调度管理。具体地,可以利用主控制器接收前端发起的针对虚拟机的开机请求,并将上述开机请求转发至虚拟机调度服务,以便虚拟机调度服务为虚拟机选择合适的目标运行主机。其中,上述开机请求可以为批量开机请求,在虚拟机调度服务接收到开机请求之后,可以依次为每个虚拟机串行选择目标运行主机。
在具体实施中,上述开机请求可以具体为RPC(Remote Procedure Call,远程过程调用)请求。RPC请求是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。在OSI(Open SystemInterconnection,开放式系统互联)网络通信模型中,RPC跨越了传输层和应用层,使得开发包括网络分布式多程序在内的应用程序更加容易。
图2为本申请实施例公开的虚拟机调度服务的总体处理流程图。如图2所示,虚拟机调度服务在接收到针对虚拟机的开机请求之后,可以将开机请求对应的虚拟机保存到等待处理的队列中,并将该队列中已存在的虚拟机移除到调度队列,为其打印正在开机的操作日志。若该虚拟机对应的调度任务已经开始执行,则结束当前调度任务,不再重复为该虚拟机进行调度。若该虚拟机对应的调度任务未开始执行,则启动协程以开始执行调度任务。图3为本申请实施例公开的虚拟机调度服务的调度处理流程图。参见图3所示,虚拟机调度服务从调度队列中取出第一个虚拟机,并为其选择运行主机。若成功选择到运行主机,则将开机请求发送到该主机执行具体的开机操作;若未成功选择到运行主机,则打印开机失败操作日志。依次对调度队列中的每个虚拟机进行遍历选择主机,直至调度队列为空。
S102:利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作。
在虚拟机调度服务依次为每个虚拟机选择目标运行主机之后,可以将利用虚拟机调度服务将开机请求转发至目标运行主机,以便目标运行主机执行虚拟机开机请求,实现虚拟机开机。
传统的虚拟机开机过程中,通常是在虚拟机开机时通过同步阻塞方式预加载虚拟机所有虚拟磁盘的元数据,这种方式下可能会由于长时间加载元数据导致虚拟网络控制台一直处于黑屏状态,影响用户体验。为了解决该问题,本申请实施例提供一种优选的实施方式,在虚拟机调度服务将开机请求转发至目标运行主机由目标运行主机执行开机操作之后,在预设时间段之后再从qcow2镜像中将成功开机的虚拟机中虚拟磁盘所存储的元数据加载至内存,从而避免加载数据和虚拟机开机同步进行导致的控制台黑屏问题,且后续查询索引表和引用表等元数据时,可以直接从内存进行加载,无需加载qcow2镜像,优化虚拟磁盘IO性能。
在虚拟机开机时,存在一些与虚拟机开机无关但是需要在开机之后尽快执行的操作,例如启动CDP(Customer Data Platform,客户数据平台)、启动串口等。传统虚拟机开机时,通过利用虚拟机进程中的回调脚本执行上述操作。本申请实施例中,将在目标运行主机执行虚拟机开机操作之后,利用虚拟机调度服务启动预设进程,由预设进程执行原始开机回调脚本对应的功能操作,以减少虚拟机开机阶段的任务,进一步减少开机时间消耗。
需要说明的是,在批量虚拟机开机时,将对所有虚拟机进行串行调度,对于一些与每个虚拟机自身无关的信息,如交换机信息、集群的主机信息和存储信息等可以直接将其保存在虚拟机调度服务的内存中,从而在调度下一个虚拟机时无需对这些信息进行重复获取,减少网络传输过程消耗的时间。
另外,本申请实施例还可将一些不常变的公共基础信息,例如集群的主机信息和存储信息等记录在Redis缓存中,可供多个模块调用,能够使各个功能模块更方便的读取公共基础信息,无需实时获取,减少时间消耗。其中,Redis缓存可替换为其他任意存储介质,例如Memcached、FastDB等。
通过以上方案可知,本申请提供的一种虚拟机开机方法,包括:接收到针对虚拟机的开机请求之后,利用虚拟机调度服务依次为每个虚拟机选择目标运行主机;利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作。由上可知,本申请在接收到虚拟机的开机请求后,将利用虚拟机调度服务为每个虚拟机选择目标运行主机,以便目标运行主机执行开机操作,不再通过调用脚本的方式执行开机任务,由此避免加载功能模块的过程,减少了时间消耗,有效提升了用户体验。另外,本申请利用虚拟机调度服务对虚拟机的开机调度进行统一的管理,依次为每个虚拟机选择目标运行主机,能够避免并行选择导致的负载失衡问题。
本申请实施例公开了另一种虚拟机开机方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图4所示,具体的:
S201:接收到针对虚拟机的开机请求之后,利用所述虚拟机调度服务并发地获取虚拟机调度所依赖的目标数据;所述目标数据包括每个运行主机的硬件资源信息,以及每个虚拟机的开机所需内存、所使用的调度策略、所使用的备份策略和所在的故障域;
本申请实施例中,在控制器接收到针对虚拟机的开机请求并转发至虚拟机调度服务之后,将由虚拟机调度服务并发地获取虚拟机调度所依赖的目标数据。通过并发获取的方式有效缩短了数据获取时间。
具体地,上述目标数据可以包括但不限于每个运行主机的硬件资源信息,如CPU、内存、网卡等信息;以及每个虚拟机的开机所需内存、所使用的调度策略、所使用的备份策略和所在的故障域等信息。
S202:利用所述虚拟机调度服务根据所述目标数据依次为每个虚拟机选择目标运行主机;
本步骤中,虚拟机调度服务可以根据前述步骤获取得到的目标数据依次为每个虚拟机选择目标运行主机。具体地,参见图5所示,针对上述步骤S202的细化流程可以包括:
S2021:获取预设主机过滤条件;
可以理解的是,本申请实施例可以根据影响运行主机选择的因素预先设置主机过滤条件,例如调度策略约束、网络是否可通、能否访问虚拟机内存、主机剩余内存是否满足虚拟机开机所需内存、故障域是否匹配等。
在具体实施中,本申请实施例可以提供针对预设主机过滤条件进行更新的接口,用户可以利用该接口对预设主机过滤条件进行修改、删除或增加,若后续版本新增主机过滤条件时,直接通过该接口进行添加即可,可扩展性强。
S2022:对所有运行主机进行遍历,根据目标数据确定所述预设主机过滤条件针对每个运行主机的过滤结果,统计得到所述每个运行主机对应的可选分值;
通过对所有运行主机进行遍历,分别读取每个运行主机对应的目标数据,进而基于预设主机过滤条件对每个运行主机进行过滤,得到每个过滤条件对应的过滤结果,并对所有过滤结果统计,最终得到每个运行主机对应的可选分值。
S2023:将所有所述可选分值中分值最高的运行主机确定为目标运行主机。
在确定所有运行主机的所有可选分值之后,可从中选取分值最高的运行主机,并将其确定为目标运行主机。
可以理解的是,本申请实施例确定目标运行主机的过程可以包括为过滤步骤和筛选步骤,即首先根据每个运行主机的硬件资源条件从所有运行主机中过滤出可用的主机,每个主机拥有其对应的分值,在此过程中,若运行主机不可用,可以对该主机进行标记,并记录该主机不可用的原因。进一步地,从所有可用主机中筛选出分值最高的主机得到目标运行主机。
S203:利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作。
在虚拟机开机过程中,在前端页面发起开机请求之后,需要从后台获取虚拟网络控制台链接,从而在前端页面展示虚拟机控制台。传统技术中,通常是等到开机任务完全结束后,前端页面再获取虚拟网络控制台链接。事实上虚拟网络控制台链接并不需要在虚拟机完全开机结束后才能建立,只需虚拟机内部虚拟网络控制台服务端启动完成即可,因此这种传统获取方式存在无意义的延时。
针对该问题,在上述任一实施例的基础上,参见图6所示,本申请实施例提供一种优选实施方式,能够在针对虚拟机的开机请求下发成功后,就不断获取虚拟网络控制台链接,直到获取成功,从而避免无意义的延时,进一步减少开机时间。具体地:
S301:接收到针对虚拟机的开机请求之后,对所述开机请求进行权限验证;
本步骤中,可利用控制器对开机请求进行权限验证,仅允许对权限验证通过的开机请求进行响应执行,以保证系统的安全性。
S302:若所述开机请求通过验证,则将所述开机请求转发至虚拟机调度服务,以启动所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机的步骤;
可以理解的是,若开机请求的权限验证通过,则表征允许对该开机请求进行响应,可以将开机请求转发至虚拟机调度服务进行后续处理,为每个虚拟机选择最佳的目标运行主机。
S303:向所述开机请求的发起方返回所述开机请求对应的标识信息,以提示所述发起方所述开机请求发送成功;
在将开机请求转发至虚拟机调度服务之后,可向开机请求的发起方返回开机请求对应的标识信息,如开机任务ID等,用户在接收到该标识信息之后,即可获知自身发起的开机请求已发送成功。
S304:接收所述发起方在获取到所述标识信息后通过轮询方式发送的用于获取虚拟网络控制台链接的获取请求;
当发起方接收到表征请求发送成功的提示信息之后,将通过轮询的方式向控制器发送用于获取虚拟网络控制台链接的获取请求。传统方式中,开机任务完全结束后前端页面获取虚拟网络控制台链接时,通过每三秒一次的方式发送获取虚拟网络控制台链接的请求。作为一种优选实施方式,本申请实施例采用预设时间间隔、每个时间间隔发送预设数量的获取请求的方式来获取虚拟网络控制台的链接,例如每个时间间隔发送三次获取请求。其中,多个时间间隔组成的数列可以为基于斐波那契数列确定的数列,例如,可以具体将斐波那契数列除以二得到的数列作为预设时间间隔组成的数列,该数列为“0.5s/1s/1.5s/2.5s/4s...”,从而避免轮询间隔时间过久,延误虚拟网络控制台的展示,同时能够减小后台服务器的压力。
S305:根据所述获取请求获取所述目标运行主机返回的虚拟网络控制台端口,直至获取成功后将所述虚拟网络控制台端口对应的虚拟网络控制台链接转发至所述发起方。
在本步骤中,控制器可以根据获取请求通过API(application programminginterface,应用程序编程接口)不断地获取目标运行主机返回的虚拟网络控制台端口,直至获取成功,并在获取成功之后将虚拟网络控制台端口对应的虚拟网络控制台链接转发至开机请求的发起方,以便发起方根据该虚拟网络控制台链接在前端页面对虚拟网络控制台进行展示。
下面对本申请实施例提供的一种具体的虚拟机开机方法进行介绍,参见图7所示,当前端页面向主控发起针对虚拟机的开机请求之后,主控可根据发起方的权限或序列号等进行验证检查,当请求验证通过后将该开机请求转发至虚拟机调度服务,并向前端页面返回对应的任务ID。虚拟机调度服务将获取运行主机列表,获取虚拟机信息,通过遍历运行主机列表为每个虚拟机选择合适的运行主机,进而将开机请求对应转发至选定的运行主机上,以便运行主机构造开机指令,拉起虚拟机进程,执行虚拟机开机操作。前端页面在获取到任务ID之后,将通过轮询的方式不断获取VNC(Virtual Network Console,虚拟网络控制台)的链接信息,直到获取成功显示虚拟机控制台。
可以理解的是,传统开机方案在开机过程中执行了多个脚本,包括选择运行主机、执行虚拟机开机、获取虚拟网络控制台链接,每个脚本在调用时都需要加载系统模块和自定义的模块,导致消耗时间较长。本申请实施例不再使用脚本调用的方式,通过网络请求转发的方式调用服务,消耗的时间可以忽略不计,减少了时间的消耗,能够较快的响应用户的开机请求。
下面对本申请实施例提供的一种虚拟机开机装置进行介绍,下文描述的一种虚拟机开机装置与上文描述的一种虚拟机开机方法可以相互参照。
参见图8所示,本申请实施例提供的一种虚拟机开机装置包括:
主机选择模块401,用于接收到针对虚拟机的开机请求之后,利用虚拟机调度服务为每个虚拟机选择目标运行主机;
请求转发模块402,用于利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作。
关于上述模块401和402的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
本申请还提供了一种电子设备,参见图9所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例公开的虚拟机开机方法的步骤。
在上述实施例的基础上,作为优选实施方式,参见图10所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图10仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图10示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例公开的虚拟机开机方法的步骤。
本申请在接收到虚拟机的开机请求后,将利用虚拟机调度服务为每个虚拟机选择目标运行主机,以便目标运行主机执行开机操作,不再通过调用脚本的方式执行开机任务,由此避免加载功能模块的过程,减少了时间消耗,有效提升了用户体验。另外,本申请利用虚拟机调度服务对虚拟机的开机调度进行统一的管理,依次为每个虚拟机选择目标运行主机,能够避免并行选择导致的负载失衡问题。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种虚拟机开机方法,其特征在于,包括:
接收到针对虚拟机的开机请求之后,利用虚拟机调度服务依次为每个虚拟机选择目标运行主机;
利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作;
其中,所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机之前,还包括:
对所述开机请求进行权限验证;
若所述开机请求通过验证,则将所述开机请求转发至所述虚拟机调度服务,以启动所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机的步骤;
向所述开机请求的发起方返回所述开机请求对应的标识信息,以提示所述发起方所述开机请求发送成功;
接收所述发起方在获取到所述标识信息后通过轮询方式发送的用于获取虚拟网络控制台链接的获取请求;
根据所述获取请求获取所述目标运行主机返回的虚拟网络控制台端口,直至获取成功后将所述虚拟网络控制台端口对应的虚拟网络控制台链接转发至所述发起方。
2.根据权利要求1所述的虚拟机开机方法,其特征在于,所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机,包括:
利用所述虚拟机调度服务并发地获取虚拟机调度所依赖的目标数据;所述目标数据包括每个运行主机的硬件资源信息,以及每个虚拟机的开机所需内存、所使用的调度策略、所使用的备份策略和所在的故障域;
利用所述虚拟机调度服务根据所述目标数据依次为每个虚拟机选择所述目标运行主机。
3.根据权利要求2所述的虚拟机开机方法,其特征在于,所述利用所述虚拟机调度服务根据所述目标数据依次为每个虚拟机选择所述目标运行主机,包括:
获取预设主机过滤条件;
对所有运行主机进行遍历,根据所述目标数据确定所述预设主机过滤条件针对所述每个运行主机的过滤结果,统计得到所述每个运行主机对应的可选分值;
将所有所述可选分值中分值最高的运行主机确定为所述目标运行主机。
4.根据权利要求1所述的虚拟机开机方法,其特征在于,所述利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作之后,还包括:
在预设时间段之后,从qcow2镜像中将成功开机的虚拟机中虚拟磁盘所存储的元数据加载至内存。
5.根据权利要求1所述的虚拟机开机方法,其特征在于,所述利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作之后,还包括:
利用所述虚拟机调度服务启动预设进程;
利用所述预设进程执行原始开机回调脚本对应的功能操作。
6.根据权利要求1所述的虚拟机开机方法,其特征在于,所述轮询方式为根据预设时间间隔、每个时间间隔发送预设数量的所述获取请求的方式;多个所述预设时间间隔组成的数列为基于斐波那契数列确定的数列。
7.一种虚拟机开机装置,其特征在于,包括:
主机选择模块,用于接收到针对虚拟机的开机请求之后,利用虚拟机调度服务依次为每个虚拟机选择目标运行主机;
请求转发模块,用于利用所述虚拟机调度服务将所述开机请求转发至所述目标运行主机,以使所述目标运行主机执行虚拟机开机操作;
其中,所述虚拟机开机装置,还包括:
权限验证模块,用于对所述开机请求进行权限验证;
开机请求转发模块,用于若所述开机请求通过验证,则将所述开机请求转发至所述虚拟机调度服务,以启动所述利用虚拟机调度服务依次为每个虚拟机选择目标运行主机的步骤;
标识信息返回模块,用于向所述开机请求的发起方返回所述开机请求对应的标识信息,以提示所述发起方所述开机请求发送成功;
获取请求模块,用于接收所述发起方在获取到所述标识信息后通过轮询方式发送的用于获取虚拟网络控制台链接的获取请求;
虚拟网络控制台链接转发模块,用于根据所述获取请求获取所述目标运行主机返回的虚拟网络控制台端口,直至获取成功后将所述虚拟网络控制台端口对应的虚拟网络控制台链接转发至所述发起方。
8.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述虚拟机开机方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述虚拟机开机方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911283776.8A CN111045789B (zh) | 2019-12-13 | 2019-12-13 | 一种虚拟机开机方法、装置及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911283776.8A CN111045789B (zh) | 2019-12-13 | 2019-12-13 | 一种虚拟机开机方法、装置及电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111045789A CN111045789A (zh) | 2020-04-21 |
CN111045789B true CN111045789B (zh) | 2024-04-09 |
Family
ID=70236219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911283776.8A Active CN111045789B (zh) | 2019-12-13 | 2019-12-13 | 一种虚拟机开机方法、装置及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045789B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857957B (zh) * | 2020-07-22 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种虚拟机系统的管理方法、系统及装置 |
CN112511368A (zh) * | 2020-10-16 | 2021-03-16 | 深圳市科漫达智能管理科技有限公司 | 一种服务心跳监控方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008002A (zh) * | 2014-06-17 | 2014-08-27 | 电子科技大学 | 云平台环境下虚拟机部署的目标主机选择方法 |
CN107453888A (zh) * | 2016-05-31 | 2017-12-08 | 深圳市深信服电子科技有限公司 | 高可用性的虚拟机集群的管理方法及装置 |
US10404579B1 (en) * | 2015-12-07 | 2019-09-03 | Amazon Technologies, Inc. | Virtual machine instance migration using a hypervisor |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10146567B2 (en) * | 2014-11-20 | 2018-12-04 | Red Hat Israel, Ltd. | Optimizing virtual machine allocation to cluster hosts |
-
2019
- 2019-12-13 CN CN201911283776.8A patent/CN111045789B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008002A (zh) * | 2014-06-17 | 2014-08-27 | 电子科技大学 | 云平台环境下虚拟机部署的目标主机选择方法 |
US10404579B1 (en) * | 2015-12-07 | 2019-09-03 | Amazon Technologies, Inc. | Virtual machine instance migration using a hypervisor |
CN107453888A (zh) * | 2016-05-31 | 2017-12-08 | 深圳市深信服电子科技有限公司 | 高可用性的虚拟机集群的管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111045789A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10198343B2 (en) | Method for debugging a computer program | |
US10514930B2 (en) | Setting a startup parameter and controlling startup of a mainboard | |
CN106293880B (zh) | 在Windows系统上运行Android应用程序的方法及装置 | |
CN109542744B (zh) | 检测终端开机异常问题的方法、装置、存储介质及终端 | |
US8745619B2 (en) | Computer system and recording medium | |
CN101650660B (zh) | 从中央存储装置引导计算机系统 | |
CN110134446B (zh) | 启动pcie设备扫描的方法 | |
US8730490B2 (en) | Printer driver, information processing apparatus, and computer program product | |
CN111045789B (zh) | 一种虚拟机开机方法、装置及电子设备和存储介质 | |
WO2017193964A1 (zh) | 一种组件升级方法、装置和系统 | |
US20240160474A1 (en) | Multi-core processor task scheduling method, and device and storage medium | |
US11966751B2 (en) | Device and booting method of the device | |
US11671379B1 (en) | System and method for subscription management using dynamically composed management entities | |
CN108563472B (zh) | 基于多开应用的服务插件加载方法及装置 | |
US11321109B2 (en) | Container engine for selecting driver based on container metadata | |
US8464273B2 (en) | Information processing apparatus, information processing method, and computer-readable program | |
CN116932144A (zh) | 一种车机虚拟机控制方法及系统 | |
US20150271029A1 (en) | Activation management system and activation management method | |
JP4063573B2 (ja) | デバイスドライバの組み込み・実行方式、組み込み・実行方法、及びプログラム | |
CN109634721B (zh) | 一种虚拟机与主机的启动通信方法及相关装置 | |
US9270742B2 (en) | Computer system and control method of computer system | |
US8949857B2 (en) | Value provider subscriptions for sparsely populated data objects | |
CN111752682A (zh) | 一种网络端口资源管理方法、装置及电子设备和存储介质 | |
CN112035133A (zh) | 一种主页升级方法及终端 | |
CN116149802B (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 |