CN113051026A - 一种虚拟机创建方法、装置及存储介质 - Google Patents

一种虚拟机创建方法、装置及存储介质 Download PDF

Info

Publication number
CN113051026A
CN113051026A CN201911376450.XA CN201911376450A CN113051026A CN 113051026 A CN113051026 A CN 113051026A CN 201911376450 A CN201911376450 A CN 201911376450A CN 113051026 A CN113051026 A CN 113051026A
Authority
CN
China
Prior art keywords
component
request message
system volume
virtual machine
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.)
Granted
Application number
CN201911376450.XA
Other languages
English (en)
Other versions
CN113051026B (zh
Inventor
焦鹏举
郭雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201911376450.XA priority Critical patent/CN113051026B/zh
Publication of CN113051026A publication Critical patent/CN113051026A/zh
Application granted granted Critical
Publication of CN113051026B publication Critical patent/CN113051026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种虚拟机创建方法、装置及存储介质,所述方法包括:接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点;调用所述目标计算节点基于所述系统卷创建虚拟机。本申请实施例中将与计算节点无直接关联关系的系统卷创建步骤,提前至确定计算节点步骤之前执行,将串行请求计算、网络、存储资源的方式,变为并行请求存储资源和计算、网络的方式,从而在根源上解决了虚拟机的创建流程耗时较长的问题。

Description

一种虚拟机创建方法、装置及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种虚拟机创建方法、装置及存储介质。
背景技术
随着科技的发展,使用虚拟机的人越来越多。要为有需要的人提供虚拟机,创建虚拟机就成了一个必要的过程。而创建虚拟机涉及存储、计算、网络等方方面,过程复杂、步骤繁多。现有的虚拟机创建方案主要通过云平台(如OpenStack)实现虚拟机的一键创建,具体方法为:在云平台中确定用于创建所述待创建虚拟机的计算节点,并调用计算节点顺序发起网络、存储和计算资源的请求,且一个步骤要等待上一个步骤执行完后才能请求执行,造成不必要的耗时,从而使得虚拟机的创建流程耗时较长。
发明内容
有鉴于此,本申请实施例为解决现有技术中存在的至少一个问题而提供一种虚拟机创建方法、装置及存储介质。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种虚拟机创建方法,所述方法包括:
接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;
向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点;
调用所述目标计算节点基于所述系统卷创建虚拟机。
在一种可选的实施方式中,所述向scheduler组件发送主机创建请求消息之后,所述方法还包括:
接收所述scheduler组件发送的目标计算节点的节点信息;
基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
在一种可选的实施方式中,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,包括:
所述系统卷创建请求消息用于触发所述cinder组件执行以下操作:
从glance组件获取创建系统卷所需的镜像信息;
基于所述镜像信息将镜像文件下载至临时目录;
创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
在一种可选的实施方式中,所述系统卷创建请求消息还用于触发所述cinder组件执行以下操作:
在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系。
在一种可选的实施方式中,所述方法还包括:
向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成;
接收所述cinder组件发送的系统卷的创建结果。
在一种可选的实施方式中,所述目标计算节点包括compute组件;
所述目标计算节点基于所述系统卷创建虚拟机,包括:
所述compute组件从neutron组件获取创建虚拟机所需的网络信息;
所述compute组件基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
在一种可选的实施方式中,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点,包括:
所述主机创建请求消息用于触发所述scheduler组件执行以下操作:
从计算节点集合中筛选出满足过滤条件的多个候选计算节点;
计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
第二方面,本申请实施例提供一种虚拟机创建装置,所述装置包括:
创建模块,用于接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;
所述创建模块,还用于向调用模块发送主机创建请求消息,所述主机创建请求消息用于触发所述调用模块选择目标计算节点;
所述调用模块,用于调用所述目标计算节点基于所述系统卷创建虚拟机。
在一种可选的实施方式中,所述创建模块,还用于接收所述调用模块发送的目标计算节点的节点信息;
基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
在一种可选的实施方式中,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,包括:
所述系统卷创建请求消息用于触发所述cinder组件执行以下操作:
从glance组件获取创建系统卷所需的镜像信息;
基于所述镜像信息将镜像文件下载至临时目录;
创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
在一种可选的实施方式中,所述系统卷创建请求消息还用于触发所述cinder组件执行以下操作:
在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系。
在一种可选的实施方式中,所述装置还包括:
计算模块,用于向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成;
接收所述cinder组件发送的系统卷的创建结果。
在一种可选的实施方式中,所述目标计算节点包括计算模块;
所述目标计算节点基于所述系统卷创建虚拟机,包括:
所述计算模块从neutron组件获取创建虚拟机所需的网络信息;
所述计算模块基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
在一种可选的实施方式中,所述主机创建请求消息用于触发所述调用模块选择目标计算节点,包括:
从计算节点集合中筛选出满足过滤条件的多个候选计算节点;
计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
第三方面,本申请实施例提供虚拟机创建装置,所述虚拟机创建装置包括:
网络接口,用于实现组件之间的连接通信;
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现第一方面所述的虚拟机创建方法。
第四方面,本申请实施例提供一种存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被至少一个处理器执行时,实现第一方面所述的虚拟机创建方法。
本申请实施例提供了一种虚拟机创建方法、装置及存储介质,所述方法包括:接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点;调用所述目标计算节点基于所述系统卷创建虚拟机。本申请实施例中将与计算节点无直接关联关系的系统卷创建步骤,提前至确定计算节点步骤之前执行,将串行请求计算、网络、存储资源的方式,变为并行请求存储资源和计算、网络的方式,从而在根源上解决了虚拟机的创建流程耗时较长的问题。
附图说明
图1为通过OpenStack平台创建虚拟机的方法的流程示意图;
图2为本申请实施例提供的一种虚拟机创建方法的流程示意图一;
图3为本申请实施例提供的一种虚拟机创建方法的流程示意图二;
图4为本申请实施例提供的一种虚拟机创建方法的流程示意图三;
图5为本申请实施例提供的一种虚拟机创建装置的结构示意图;
图6为本申请实施例提供的一种虚拟机创建装置的具体硬件结构。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。
图1为通过OpenStack平台创建虚拟机的方法的流程示意图,如图1所示,现有的OpenStack平台在实现虚拟机创建逻辑时,需要经过以下步骤:
步骤101:客户端发送认证请求消息至keystone组件。
步骤102:keystone组件通过认证请求消息,并生成auth-token信息返回至客户端。
步骤103:客户端通过RESTful API向api组件发送虚拟机创建请求消息。
步骤104:api组件检测创建虚拟机参数的合法性,并向conductor组件发送所述虚拟机创建请求消息。
步骤105:conductor组件为即将创建的虚拟机初始化数据库记录,并请求scheduler组件选择创建虚拟机的目标计算节点。
步骤106:scheduler组件通过过滤器和权重器选择创建虚拟机的目标计算节点,并将目标计算节点的节点信息返还至conductor组件。
步骤107:conductor组件向compute组件发送虚拟机创建请求消息。
步骤108:compute组件通过HTTP请求neutron组件获取创建虚拟机所需的网络信息。
步骤109:neutron组件创建网络并将结果返还至compute组件。
步骤110:compute组件通过HTTP请求cinder组件获取创建虚拟机所需的系统卷。
步骤111:cinder组件通过HTTP请求glance组件获取创建系统卷所需的镜像信息。
步骤112:glance组件返回镜像信息给cinder组件。
步骤113:cinder组件下载镜像至临时目录,创建空卷并进行数据拷贝。
步骤114:compute组件根据所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
步骤115:compute组件将创建虚拟机的相关信息发送至conductor组件,conductor组件同步信息至数据库。
步骤116:compute组件向libvirt组件轮询虚拟机是否已经创建完成,直至虚拟机创建完成。
步骤117:compute组件请求conductor组件同步虚拟机状态至数据库。
由上述步骤可知,在现有虚拟机创建过程中,涉及计算、存储、网络资源的准备流程,这些准备流程均在调度器(scheduler组件)完成调度,即选择到合适的计算节点后,由被选择的计算节点的compute组件按照顺序发起网络、存储及计算资源的请求。上述技术方案的缺点在于:1)计算、存储、网络资源的准备流程必须在选择到合适的计算节点后,由计算节点的compute组件按照顺序发起;2)每一种资源的准备流程必须等待前次请求完成后,才能开始执行。从而使虚拟机的创建流程耗时较长,即便是优化每个资源的准备流程,使单个资源的准备流程耗时尽可能降低,也无法从本质上提升虚拟机创建的效率。
为此,提出了本申请实施例的以下技术方案。
图2为本申请实施例提供的一种虚拟机创建方法的流程示意图一,本申请实施例提供的一种虚拟机创建方法可以应用于多个节点构成的集群系统,如OpenStack云平台,本申请实施例以在OpenStack云平台创建虚拟机为例进行说明。如图2所示,本申请实施例的虚拟机创建方法包括:
步骤201:接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷。
在本申请实施例中,客户端通过表示性状态转移的应用程序接口(Representational State Transfer Application Programming Interface,RESTfulAPI)发送认证请求消息至keystone组件,所述认证请求消息包括用于认证的username(用户名)和password(密码),keystone组件接收到认证请求消息后,根据所述认证请求消息中的username(用户名)和password(密码)进行认证,认证通过后,keystone组件生成auth-token信息返回至客户端,所述auth-token信息包括所述客户端的身份认证令牌和api组件的服务地址,所述客户端接收到所述auth-token信息后,所述客户端根据所述auth-token信息中的api组件的服务地址,通过RESTful API向api组件发送虚拟机创建请求消息,所述虚拟机创建请求消息包括创建虚拟机参数,所述api组件获取所述虚拟机创建请求消息中的创建虚拟机参数,并检测所述创建虚拟机参数的合法性,在所述创建虚拟机参数的合法的情况下,向conductor组件发送所述虚拟机创建请求消息,所述conductor组件接收到所述虚拟机创建请求消息后,为即将创建的虚拟机初始化数据库记录,并向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,所述cinder组件接收到所述系统卷创建请求消息后,向conductor组件返回202状态码。其中,所述202状态码表征已接受请求(但尚未完成)。
步骤202:向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点。
在本申请实施例中,所述conductor组件接收到所述202状态码后,向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点。
步骤203:调用所述目标计算节点基于所述系统卷创建虚拟机。
在本申请实施例中,在所述scheduler组件确定目标计算节点后,所述scheduler组件调用所述目标计算节点基于所述系统卷创建虚拟机。
图3为本申请实施例提供的一种虚拟机创建方法的流程示意图二,本申请实施例提供的一种虚拟机创建方法可以应用于多个节点构成的集群系统,如O penStack云平台,本申请实施例以在OpenStack云平台创建虚拟机为例进行说明。如图3所示,本申请实施例的虚拟机创建方法包括:
步骤301:接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷。
在本申请实施例中,客户端通过RESTful API发送认证请求消息至keystone组件,所述认证请求消息包括用于认证的username(用户名)和password(密码),keystone组件接收到认证请求消息后,根据所述认证请求消息中的username(用户名)和password(密码)进行认证,认证通过后,keystone组件生成auth-token信息返回至客户端,所述auth-token信息包括所述客户端的身份认证令牌和api组件的服务地址,所述客户端接收到所述auth-token信息后,所述客户端根据所述auth-token信息中的api组件的服务地址,通过RESTfulAPI向api组件发送虚拟机创建请求消息,所述虚拟机创建请求消息包括创建虚拟机参数,所述api组件获取所述虚拟机创建请求消息中的创建虚拟机参数,并检测所述创建虚拟机参数的合法性,在所述创建虚拟机参数的合法的情况下,向conductor组件发送所述虚拟机创建请求消息,所述conductor组件接收到所述虚拟机创建请求消息后,为即将创建的虚拟机初始化数据库记录,并向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,所述cinder组件接收到所述系统卷创建请求消息后,向conductor组件返回202状态码。其中,所述202状态码表征已接受请求(但尚未完成)。
在本申请实施例中,所述cinder组件接收到所述系统卷创建请求消息后,在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系,所述cinder组件向glance组件发送镜像请求消息,所述镜像请求消息用于请求所述glance组件发送创建系统卷所需的镜像信息,所述glance组件接收到所述镜像请求消息后,返回所述镜像信息至所述cinder组件,所述cinder组件基于所述镜像信息将镜像文件下载至临时目录,创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
步骤302:向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点。
在本申请实施例中,所述conductor组件接收到所述202状态码后,向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点,所述scheduler组件接收到所述主机创建请求消息后,从计算节点集合中筛选出满足过滤条件的多个候选计算节点;计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
需要说明的是,在OpenStack云平台中连接有多个主机,由于不同的客户端对创建的虚拟机的需求不同,所以需要对OpenStack云平台所管理的主机进行过滤操作。客户端发送的虚拟机创建请求消息中包括具体的过滤条件,以使OpenStack云平台根据所述具体的过滤条件为客户端选择合适的主机。具体的过滤条件可以根据用户的实际需要而进行设定,本申请实施例中不对其进行限定。在实际应用时,所述conductor组件向scheduler组件发送的主机创建请求消息中携带有客户端发送的虚拟机创建请求消息,从而所述scheduler组件可以根据所述主机创建请求消息中携带的虚拟机创建请求消息而获取过滤条件。
还需要说明的是,在计算各个候选计算节点对应的权重值时是使用预先设置的权重公式进行计算的。客户端发送的虚拟机创建请求消息中还包括权重公式,用户可以根据其对创建的虚拟机的实际需求,在客户端设置不同的权重公式,如:需要计算速度快的虚拟机,则权重公式可以为“主机的可用CPU数量多的权重大”。在实际应用时,所述conductor组件向scheduler组件发送的主机创建请求消息中携带有客户端发送的虚拟机创建请求消息,从而所述scheduler组件可以根据所述主机创建请求消息中携带的虚拟机创建请求消息而获取权重公式。
步骤303:接收所述scheduler组件发送的目标计算节点的节点信息;基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
在本申请实施例中,所述scheduler组件确定所述目标计算节点后,将所述目标计算节点的节点信息发送至所述conductor组件,所述conductor组件接收到所述目标计算节点的节点信息后,基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
步骤304:所述目标计算节点包括compute组件;所述compute组件从neutron组件获取创建虚拟机所需的网络信息。
在本申请实施例中,所述目标计算节点包括compute组件,所述conductor组件向所述目标计算节点发送虚拟机创建请求消息具体为所述conductor组件向所述compute组件发送虚拟机创建请求消息,所述compute组件接收到虚拟机创建请求消息后,向neutron组件发送网络创建请求消息,所述网络创建请求消息用于触发所述neutron组件创建虚拟机所需的网络信息,所述neutron组件将创建的网络信息发送至所述compute组件。
步骤305:向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成;接收所述cinder组件发送的系统卷的创建结果。
在本申请实施例中,所述compute组件接收到所述网络信息后,向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成,所述cinder组件接收到所述系统卷查询请求消息后,从所述系统卷查询请求消息中获取所述系统卷查询请求消息携带的虚拟机信息,并根据记录的所述系统卷创建请求消息和虚拟机之间的映射关系,获取与虚拟机对应的系统卷信息,基于所述系统卷信息获取所述系统卷的创建结果,将所述系统卷的创建结果返回至所述compute组件,所述compute组件接收所述cinder组件发送的系统卷的创建结果。所述系统卷的创建结果用于表征所述系统卷是否创建成功。
步骤306:所述compute组件基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
在本申请实施例中,所述compute组件接收到所述系统卷的创建结果后,若所述系统卷的创建结果为系统卷已创建成功,则所述compute组件基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机;若所述系统卷的创建结果为系统卷未创建成功,则所述compute组件定时向所述cinder组件发送系统卷查询请求消息,直到所述系统卷创建成功;若所述系统卷的创建结果为系统卷创建失败,则所述compute组件或所述cinder组件向所述conductor组件发送系统卷创建失败消息,以使所述conductor组件重新发送系统卷创建请求消息至所述cinder组件,重新触发所述cinder组件创建系统卷。
在本申请实施例中,所述compute组件调用libvirt组件创建虚拟机后,所述compute组件将创建虚拟机的相关信息(所述系统卷和所述网络信息)发送至所述conductor组件,所述conductor组件将创建虚拟机的相关信息(所述系统卷和所述网络信息)同步更新至数据库,所述compute组件定时向所述libvirt组件发送虚拟机查询请求消息,直到所述libvirt组件返回所述虚拟机创建成功的消息,所述compute组件接收到所述虚拟机创建成功的消息后,发送虚拟机状态更新请求至所述conductor组件,所述conductor组件基于所述虚拟机状态更新请求将虚拟机的状态同步至数据库。
需要说明的是,本申请实施例中所述cinder组件创建系统卷的流程和所述scheduler组件选择目标计算节点的流程、所述neutron组件创建网络信息的流程是并行的,也就是说,所述cinder组件创建系统卷的流程和所述scheduler组件选择目标计算节点的流程、所述neutron组件创建网络信息的流程之间不会相互干扰和影响,彼此独立。从而在极大程度上提高了创建虚拟机的效率。
还需要说明的是,在本申请实施例中,OpenStack云平台中的控制都是通过Nova模块来实现的。上述conductor组件、scheduler组件、compute组件和API组件均为Nova模块中的组件。
以下结合图4对本申请实施例提供一种虚拟机创建方法进行详细阐述。图4为本申请实施例提供的一种虚拟机创建方法的流程示意图三,如图4所示,本申请实施例的虚拟机创建方法包括:
步骤401:客户端发送认证请求消息至keystone组件。
在本申请实施例中,客户端通过RESTful API发送认证请求消息至keystone组件,所述认证请求消息包括用于认证的username(用户名)和password(密码)。
步骤402:keystone组件通过认证请求消息,并生成auth-token信息返回至客户端。
在本申请实施例中,keystone组件接收到认证请求消息后,根据所述认证请求消息中的username(用户名)和password(密码)进行认证,认证通过后,keystone组件生成auth-token信息返回至客户端,所述auth-token信息包括所述客户端的身份认证令牌和api组件的服务地址。
步骤403:客户端通过RESTful API向api组件发送虚拟机创建请求消息。
在本申请实施例中,所述客户端接收到所述auth-token信息后,所述客户端根据所述auth-token信息中的api组件的服务地址,通过RESTful API向api组件发送虚拟机创建请求消息,所述虚拟机创建请求消息包括创建虚拟机参数。
步骤404:api组件检测创建虚拟机参数的合法性,并向conductor组件发送所述虚拟机创建请求消息。
在本申请实施例中,所述api组件获取所述虚拟机创建请求消息中的创建虚拟机参数,并检测所述创建虚拟机参数的合法性,在所述创建虚拟机参数的合法的情况下,向conductor组件发送所述虚拟机创建请求消息。
步骤405:conductor组件为即将创建的虚拟机初始化数据库记录,并向cinder组件发送系统卷创建请求消息。
在本申请实施例中,所述conductor组件接收到所述虚拟机创建请求消息后,为即将创建的虚拟机初始化数据库记录,并向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷。
步骤406:cinder组件在数据库中进行记录,并触发异步创建系统卷的操作,返回202状态码至conductor组件。
在本申请实施例中,所述cinder组件接收到所述系统卷创建请求消息后,在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系,并触发异步创建系统卷的操作,向conductor组件返回202状态码。所述202状态码表征已接受请求(但尚未完成)。
步骤407:cinder组件通过HTTP请求glance组件获取创建系统卷所需的镜像信息。
在本申请实施例中,所述cinder组件向glance组件发送镜像请求消息,所述镜像请求消息用于请求所述glance组件发送创建系统卷所需的镜像信息。
步骤408:glance组件返回镜像信息给cinder组件,cinder组件下载镜像至临时目录,创建空卷并进行数据拷贝。
在本申请实施例中,所述glance组件接收到所述镜像请求消息后,返回所述镜像信息至所述cinder组件,所述cinder组件基于所述镜像信息将镜像文件下载至临时目录,创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
步骤409:conductor组件请求scheduler组件选择创建虚拟机的目标计算节点。
在本申请实施例中,所述conductor组件接收到所述202状态码后,向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点。
在本申请实施例中,所述scheduler组件接收到所述主机创建请求消息后,从计算节点集合中筛选出满足过滤条件的多个候选计算节点;计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
步骤410:scheduler组件通过过滤器和权重器选择创建虚拟机的目标计算节点,并将目标计算节点的节点信息返还至conductor组件。
在本申请实施例中,所述scheduler组件接收到所述主机创建请求消息后,通过过滤器从计算节点集合中筛选出满足过滤条件的多个候选计算节点;通过权重器计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。需要说明的是,可以通过在所述过滤器中设置过滤条件,将需要的数据分离出来;可以通过在所述权重器中设置权重公式,将需要的数据分离出来。
步骤411:conductor组件向compute组件发送虚拟机创建请求消息。
在本申请实施例中,所述scheduler组件确定所述目标计算节点后,将所述目标计算节点的节点信息发送至所述conductor组件,所述conductor组件接收到所述目标计算节点的节点信息后,基于所述目标计算节点的节点信息向compute组件发送虚拟机创建请求消息。
步骤412:compute组件通过HTTP请求neutron组件获取创建虚拟机所需的网络信息。
在本申请实施例中,所述compute组件接收到虚拟机创建请求消息后,向neutron组件发送网络创建请求消息,所述网络创建请求消息用于触发所述neutron组件创建虚拟机所需的网络信息。
步骤413:neutron组件创建网络并将结果返还至compute组件。
在本申请实施例中,所述neutron组件接收到所述网络创建请求消息后,所述neutron组件创建虚拟机所需的网络信息,并将所述网络信息的创建结果返还至compute组件。
步骤414:compute组件通过HTTP请求,向cinder组件轮询所述系统卷是否已经创建完成。
在本申请实施例中,所述compute组件接收到所述网络信息后,定时向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成。
步骤415:cinder组件返回系统卷的创建结果至compute组件。
在本申请实施例中,所述cinder组件接收到所述系统卷查询请求消息后,从所述系统卷查询请求消息中获取所述系统卷查询请求消息携带的虚拟机信息,并根据记录的所述系统卷创建请求消息和虚拟机之间的映射关系,获取与虚拟机对应的系统卷信息,基于所述系统卷信息获取所述系统卷的创建结果,将所述系统卷的创建结果返回至所述compute组件。
步骤416:compute组件根据所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
在本申请实施例中,所述compute组件接收到所述系统卷的创建结果后,若所述系统卷的创建结果为系统卷已创建成功,则所述compute组件基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机;若所述系统卷的创建结果为系统卷未创建成功,则所述compute组件定时向所述cinder组件发送系统卷查询请求消息,直到所述系统卷创建成功。需要说明的是,若所述系统卷的创建结果为系统卷创建失败,则所述compute组件或所述cinder组件可以向所述conductor组件发送系统卷创建失败消息,以使所述conductor组件重新发送系统卷创建请求消息至所述cinder组件,重新触发所述cinder组件创建系统卷。
步骤417:compute组件将创建虚拟机的相关信息发送至conductor组件,conductor组件同步信息至数据库。
在本申请实施例中,所述compute组件调用libvirt组件创建虚拟机后,所述compute组件将创建虚拟机的相关信息(所述系统卷和所述网络信息)发送至所述conductor组件,所述conductor组件将创建虚拟机的相关信息(所述系统卷和所述网络信息)同步更新至数据库。
步骤418:compute组件向libvirt组件轮询虚拟机是否已经创建完成,直至虚拟机创建完成。
本申请实施例中,所述compute组件定时向所述libvirt组件发送虚拟机查询请求消息,直到所述libvirt组件返回所述虚拟机创建成功的消息。
步骤419:compute组件请求conductor组件同步虚拟机状态至数据库。
本申请实施例中,所述compute组件接收到所述虚拟机创建成功的消息后,发送虚拟机状态更新请求至所述conductor组件,所述conductor组件基于所述虚拟机状态更新请求将虚拟机的状态同步至数据库。
需要说明的是,本申请实施例中步骤407-步骤408(所述cinder组件创建系统卷的流程)和步骤409-步骤413(所述scheduler组件选择目标计算节点的流程和所述neutron组件创建网络信息的流程)是并行的,也就是说,所述cinder组件创建系统卷的流程和所述scheduler组件选择目标计算节点的流程、所述neutron组件创建网络信息的流程之间不会相互干扰和影响,彼此独立。从而在极大程度上提高了创建虚拟机的效率。
还需要说明的是,在本申请实施例中,OpenStack云平台中的控制都是通过Nova模块来实现的。上述conductor组件、scheduler组件、compute组件和api组件均为Nova模块中的组件。
本申请实施例提供了一种虚拟机创建方法、装置及存储介质,所述方法包括:接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点;调用所述目标计算节点基于所述系统卷创建虚拟机。本申请实施例中将与计算节点无直接关联关系的系统卷创建步骤,提前至确定计算节点步骤之前执行,将串行请求计算、网络、存储资源的方式,变为并行请求存储资源和计算、网络的方式,从而在根源上解决了虚拟机的创建流程耗时较长的问题。
基于前述虚拟机创建方法相同的技术构思,本申请实施例提供一种虚拟机创建装置,图5为本申请实施例提供的一种虚拟机创建装置的结构示意图,如图5所示,所述一种虚拟机创建装置500包括:
创建模块501,用于接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;
所述创建模块501,还用于向调用模块发送主机创建请求消息,所述主机创建请求消息用于触发所述调用模块选择目标计算节点;
所述调用模块502,用于调用所述目标计算节点基于所述系统卷创建虚拟机。
在其他实施例中,所述创建模块501,还用于接收所述调用模块发送的目标计算节点的节点信息;
基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
在其他实施例中,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,包括:
所述系统卷创建请求消息用于触发所述cinder组件执行以下操作:
从glance组件获取创建系统卷所需的镜像信息;
基于所述镜像信息将镜像文件下载至临时目录;
创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
在其他实施例中,所述系统卷创建请求消息还用于触发所述cinder组件执行以下操作:
在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系。
在其他实施例中,所述装置还包括:
计算模块503,用于向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成;
接收所述cinder组件发送的系统卷的创建结果。
在其他实施例中,所述目标计算节点包括计算模块503;
所述目标计算节点基于所述系统卷创建虚拟机,包括:
所述计算模块503从neutron组件获取创建虚拟机所需的网络信息;
所述计算模块503基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
在其他实施例中,所述主机创建请求消息用于触发所述调用模块选择目标计算节点,包括:
从计算节点集合中筛选出满足过滤条件的多个候选计算节点;
计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
在本申请实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本申请实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种存储介质,该存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现上述实施例所述的步骤。
参见图6,示出了本申请实施例提供的一种虚拟机创建装置600的具体硬件结构,包括:网络接口601、存储器602和处理器603;各个组件通过总线系统604耦合在一起。可理解,总线系统604用于实现这些组件之间的连接通信。总线系统604除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统604。
其中,所述网络接口601,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器602,用于存储能够在处理器603上运行的计算机程序;
处理器603,用于在运行所述计算机程序时,执行:
接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;
向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点;
调用所述目标计算节点基于所述系统卷创建虚拟机。
所述处理器603还用于运行所述计算机程序时,执行:
接收所述scheduler组件发送的目标计算节点的节点信息;
基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
所述处理器603还用于运行所述计算机程序时,执行:
所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,包括:
所述系统卷创建请求消息用于触发所述cinder组件执行以下操作:
从glance组件获取创建系统卷所需的镜像信息;
基于所述镜像信息将镜像文件下载至临时目录;
创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
所述处理器603还用于运行所述计算机程序时,执行:
所述系统卷创建请求消息还用于触发所述cinder组件执行以下操作:
在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系。
所述处理器603还用于运行所述计算机程序时,执行:
向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成;
接收所述cinder组件发送的系统卷的创建结果。
所述处理器603还用于运行所述计算机程序时,执行:
所述目标计算节点包括compute组件;
所述目标计算节点基于所述系统卷创建虚拟机,包括:
所述compute组件从neutron组件获取创建虚拟机所需的网络信息;
所述compute组件基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
所述处理器603还用于运行所述计算机程序时,执行:
所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点,包括:
所述主机创建请求消息用于触发所述scheduler组件执行以下操作:
从计算节点集合中筛选出满足过滤条件的多个候选计算节点;
计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
可以理解,本申请实施例中的存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Sync Link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的方法的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器603可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器603中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器603可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种虚拟机创建方法,其特征在于,所述方法包括:
接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;
向scheduler组件发送主机创建请求消息,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点;
调用所述目标计算节点基于所述系统卷创建虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述向scheduler组件发送主机创建请求消息之后,所述方法还包括:
接收所述scheduler组件发送的目标计算节点的节点信息;
基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
3.根据权利要求1所述的方法,其特征在于,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,包括:
所述系统卷创建请求消息用于触发所述cinder组件执行以下操作:
从glance组件获取创建系统卷所需的镜像信息;
基于所述镜像信息将镜像文件下载至临时目录;
创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
4.根据权利要求3所述的方法,其特征在于,所述系统卷创建请求消息还用于触发所述cinder组件执行以下操作:
在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成;
接收所述cinder组件发送的系统卷的创建结果。
6.根据权利要求1所述的方法,其特征在于,所述目标计算节点包括compute组件;
所述目标计算节点基于所述系统卷创建虚拟机,包括:
所述compute组件从neutron组件获取创建虚拟机所需的网络信息;
所述compute组件基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
7.根据权利要求1所述的方法,其特征在于,所述主机创建请求消息用于触发所述scheduler组件选择目标计算节点,包括:
所述主机创建请求消息用于触发所述scheduler组件执行以下操作:
从计算节点集合中筛选出满足过滤条件的多个候选计算节点;
计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
8.一种虚拟机创建装置,其特征在于,所述装置包括:
创建模块,用于接收到虚拟机创建请求消息后,向cinder组件发送系统卷创建请求消息,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷;
所述创建模块,还用于向调用模块发送主机创建请求消息,所述主机创建请求消息用于触发所述调用模块选择目标计算节点;
所述调用模块,用于调用所述目标计算节点基于所述系统卷创建虚拟机。
9.根据权利要求8所述的装置,其特征在于,
所述创建模块,还用于接收所述调用模块发送的目标计算节点的节点信息;
基于所述目标计算节点的节点信息向所述目标计算节点发送虚拟机创建请求消息。
10.根据权利要求8所述的装置,其特征在于,所述系统卷创建请求消息用于触发所述cinder组件创建系统卷,包括:
所述系统卷创建请求消息用于触发所述cinder组件执行以下操作:
从glance组件获取创建系统卷所需的镜像信息;
基于所述镜像信息将镜像文件下载至临时目录;
创建空卷,并将所述临时目录中的镜像文件拷贝至所述空卷中,得到所述系统卷。
11.根据权利要求10所述的装置,其特征在于,所述系统卷创建请求消息还用于触发所述cinder组件执行以下操作:
在数据库中记录所述系统卷创建请求消息和虚拟机之间的映射关系。
12.根据权利要求10或11所述的装置,其特征在于,所述装置还包括:
计算模块,用于向所述cinder组件发送系统卷查询请求消息,所述系统卷查询请求消息用于查询所述系统卷是否已经创建完成;
接收所述cinder组件发送的系统卷的创建结果。
13.根据权利要求8所述的装置,其特征在于,所述目标计算节点包括计算模块;
所述目标计算节点基于所述系统卷创建虚拟机,包括:
所述计算模块从neutron组件获取创建虚拟机所需的网络信息;
所述计算模块基于所述系统卷和所述网络信息调用libvirt组件创建虚拟机。
14.根据权利要求8所述的装置,其特征在于,所述主机创建请求消息用于触发所述调用模块选择目标计算节点,包括:
从计算节点集合中筛选出满足过滤条件的多个候选计算节点;
计算各个候选计算节点对应的权重值,将权重值最高的计算节点确定为所述目标计算节点。
15.一种虚拟机创建装置,其特征在于,所述虚拟机创建装置包括:
网络接口,用于实现组件之间的连接通信;
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7中任一项所述的虚拟机创建方法。
16.一种存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被至少一个处理器执行时,实现权利要求1至7中任一项所述的虚拟机创建方法。
CN201911376450.XA 2019-12-27 2019-12-27 一种虚拟机创建方法、装置及存储介质 Active CN113051026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911376450.XA CN113051026B (zh) 2019-12-27 2019-12-27 一种虚拟机创建方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911376450.XA CN113051026B (zh) 2019-12-27 2019-12-27 一种虚拟机创建方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN113051026A true CN113051026A (zh) 2021-06-29
CN113051026B CN113051026B (zh) 2022-12-13

Family

ID=76506460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911376450.XA Active CN113051026B (zh) 2019-12-27 2019-12-27 一种虚拟机创建方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113051026B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113900773A (zh) * 2021-10-25 2022-01-07 北京计算机技术及应用研究所 一种基于国产平台虚拟机和容器的超融合调度方法
CN116405391A (zh) * 2023-04-10 2023-07-07 长扬科技(北京)股份有限公司 基于OpenStack的虚拟机节点筛选方法、系统和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107515773A (zh) * 2016-06-16 2017-12-26 北京易讯通信息技术股份有限公司 一种基于Openstack快速创建虚拟机的方法
CN107783826A (zh) * 2016-08-26 2018-03-09 北京金山云网络技术有限公司 一种虚拟机迁移方法、装置及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107515773A (zh) * 2016-06-16 2017-12-26 北京易讯通信息技术股份有限公司 一种基于Openstack快速创建虚拟机的方法
CN107783826A (zh) * 2016-08-26 2018-03-09 北京金山云网络技术有限公司 一种虚拟机迁移方法、装置及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113900773A (zh) * 2021-10-25 2022-01-07 北京计算机技术及应用研究所 一种基于国产平台虚拟机和容器的超融合调度方法
CN113900773B (zh) * 2021-10-25 2024-04-09 北京计算机技术及应用研究所 一种基于国产平台虚拟机和容器的超融合调度方法
CN116405391A (zh) * 2023-04-10 2023-07-07 长扬科技(北京)股份有限公司 基于OpenStack的虚拟机节点筛选方法、系统和存储介质

Also Published As

Publication number Publication date
CN113051026B (zh) 2022-12-13

Similar Documents

Publication Publication Date Title
JP6549787B2 (ja) ネットワークサービスをデプロイするための方法及び装置
CN106933648B (zh) 用于多租户容器资源管理的方法和系统
JP4736370B2 (ja) ホスティング環境構築方法および計算機システム
WO2019029327A1 (zh) 网络功能服务的发现方法及设备
US20140033279A1 (en) System and method of extending oauth server(s) with third party authentication/authorization
KR20150061611A (ko) 정보표시방법과 장치, 프로그램 및 저장매체
EP3518109A1 (en) Method and apparatus for realizing communication between web page and native application, and electronic device
WO2016155635A1 (zh) 一种数据处理方法和设备
JP6316978B2 (ja) ファウンテンコードを用いる管理情報のブロードキャスト
WO2012058643A2 (en) System and method for on the fly protocol conversion in obtaining policy enforcement information
JP6359652B2 (ja) 情報の伝送方法、装置および機器
CN111404990A (zh) 文件传输方法、装置、客户端及存储介质
CN113051026B (zh) 一种虚拟机创建方法、装置及存储介质
CN111258723B (zh) 分布式系统的事务处理方法、装置、系统、介质及设备
CN112199656B (zh) 业务平台的访问权限获取方法和业务平台的访问控制方法
WO2018129723A1 (zh) 一种签约数据集的管理方法、终端及服务器
WO2018001023A1 (zh) 一种云终端登录虚拟桌面方法及装置
CN111143023A (zh) 一种资源变更的方法及装置、设备、存储介质
CN113961520A (zh) 动态文件挂载方法、系统、计算机设备及可读存储介质
CN113395340A (zh) 一种信息更新方法、装置、设备、系统和可读存储介质
CN111126940B (zh) 业务申请的处理方法、装置、设备及计算机可读存储介质
WO2022116606A1 (zh) 用于车辆的多业务平台的访问方法、系统和电子装置
WO2019201248A1 (zh) 轻量级机器到机器系统中重新引导的方法和装置
CN111385325A (zh) 基于p2p的文件分发系统和方法
WO2018050055A1 (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