掌桥专利:专业的专利平台
掌桥专利
首页

基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质

文献发布时间:2023-06-19 09:43:16


基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质

技术领域

本发明涉及云技术领域,尤其涉及一种基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质。

背景技术

现有citrix虚拟桌面体系中,可建立托管连接的类型包括Citrix XenServer、VMVare及Amazon等。citrix虚拟桌面体系对应的服务器虚拟化系统通过更快的应用交互、更高的IT资源可用性和利用率,使数据中心变得更加灵活、高效,可以提供关键工作负载(操作系统、应用和配置)所需的先进功能。

CloudStack是一个具有高可用性及扩展性的云计算平台,能够提供云计算的解决方案,同时可以加速高伸缩性的公共云和私有云的部署、管理、配置,以CloudStack作为基础,可以快速方便的通过现存基础架构创建云服务。云服务存在高效率、无限规模及部署速度快等优点,通过组织和协调用户的虚拟化资源构建一个有效的虚拟环境,还可以让用户快速和方便地在现有的架构上建立专属的云服务。

powershell脚本是虚拟桌面创建中必不可少的工具,其主要用于以管理员的角色配置虚拟桌面信息。

在现有的技术中,云桌面的接入需要与CloudStack平台建立连接,并能够实现在citrix虚拟桌面体系中建立、发布虚拟机的基础功能。但由于CloudStack平台与传统VMVare环境的连接存在差异,而powershell脚本执行的指令也存在不同,则在利用云桌面创建虚拟机的过程中,使用复杂冗余的指令,使得创建虚拟机的效率低下。

发明内容

本发明提供了一种基于CloudStack平台的虚拟机创建方法,用于提高在CloudStack平台下创建虚拟机的效率。

本发明第一方面提供了一种基于CloudStack平台的虚拟机创建方法,包括:利用预置编译语言创建目标PowerShell进程池,所述目标PowerShell进程池用于调用指令;调用所述目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据;若所述CloudStack平台中基础信息数据为预置的配置信息数据,则根据所述CloudStack平台中基础信息数据连接所述CloudStack平台与预置的数据库,并根据所述基础信息数据创建虚拟机基础模板;所述获取创建请求,基于所述创建请求以及所述目标PowerShell进程池调用所述虚拟机基础模板以及预置的组件调度数据,创建虚拟机。

可选的,在本发明第一方面的第一种实现方式中,所述利用预置编译语言创建目标PowerShell进程池,所述目标PowerShell进程池用于调用指令包括:利用预置编译语言创建进程池构造函数,得到初始PowerShell进程池,并启动所述初始PowerShell进程池;在所述初始PowerShell进程池中,采用所述预置编译语言创建信号处理管道函数、设置所述初始PowerShell进程池的标准参数、设置所述初始PowerShell进程池的工作目录、返回所述初始PowerShell进程池的环境字符串映射图以及设置所述初始PowerShell进程池的属性参数,得到基础PowerShell进程池;在所述基础PowerShell进程池中,通过所述预置编译语言加载虚拟机插件输入预置的虚拟机参数数据以及调用函数,得到配置PowerShell进程池;将所述配置PowerShell进程池中的所述调用指令的状态转化为就绪状态,得到目标PowerShell进程池,所述目标PowerShell进程池用于调用指令。

可选的,在本发明第一方面的第二种实现方式中,所述调用所述目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据包括:获取CloudStack平台中的基础信息数据;调用所述目标PowerShell进程池中的检测指令以及预置的环境配置参数,通过所述CloudStack平台的开放接口判断所述CloudStack平台中的基础信息数据是否为预置的配置信息数据。

可选的,在本发明第一方面的第三种实现方式中,所述若所述CloudStack平台中基础信息数据为预置的配置信息数据,则根据所述CloudStack平台中基础信息数据连接所述CloudStack平台与预置的数据库,并根据所述基础信息数据创建虚拟机基础模板包括:若所述CloudStack平台中基础信息数据为预置的配置信息数据,则获取预置的数据库的原始连接管理数据,并按照所述CloudStack平台的目标连接管理数据改写调用所述原始连接管理数据;通过所述目标连接管理数据连接所述CloudStack平台与所述预置的数据库;在所述预置的数据库中调用虚拟机初始模板,获取所述基础信息数据,并将所述基础信息数据输入至所述虚拟机初始模板中,创建虚拟机基础模板,所述基础信息数据包括名称配置信息、存储配置信息、网络配置信息和图形配置信息。

可选的,在本发明第一方面的第四种实现方式中,所述获取创建请求,基于所述创建请求以及所述目标PowerShell进程池调用所述虚拟机基础模板以及预置的组件调度数据,创建虚拟机包括:获取创建请求,在所述创建请求中提取虚拟机创建信息;利用预置编译语言调用所述目标PowerShell进程池,创建配置目录,并将所述虚拟机创建信息输入至所述配置目录中,所述配置目录用于记录虚拟机的名称及域账号;将所述配置目录绑定在所述虚拟机基础模板上,得到虚拟机配置模板;获取预置的外部挂载组件中的预置的组件调度数据,采用所述预置编译语言调用所述目标PowerShell进程池,将所述预置的组件调度数据输入至所述虚拟机配置模板中,创建虚拟机。

可选的,在本发明第一方面的第五种实现方式中,在所述获取创建请求,基于所述创建请求以及所述目标PowerShell进程池调用所述虚拟机基础模板以及预置的组件调度数据,创建虚拟机之后,还包括:当CloudStack平台未成功创建虚拟机时,获取回滚请求,根据回滚请求中的定位地址,在预置的后台指令框中实现回滚。

可选的,在本发明第一方面的第六种实现方式中,所述当CloudStack平台未成功创建虚拟机时,获取回滚请求,根据回滚请求中的定位地址,在预置的后台指令框中实现回滚包括:当CloudStack平台未成功创建虚拟机时,获取回滚请求,在回滚请求中提取待回滚的定位地址;将所述定位地址输入至预置的回滚指令中,得到目标指令,在预置的后台指令框中执行所述目标指令,实现所述目标指令的回滚。

本发明第二方面提供了一种基于CloudStack平台的虚拟机创建装置,包括:第一创建模块,用于利用预置编译语言创建目标PowerShell进程池,所述目标PowerShell进程池用于调用指令;检测模块,用于调用所述目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据;连接模块,若所述CloudStack平台中基础信息数据为预置的配置信息数据,则用于根据所述CloudStack平台中基础信息数据连接所述CloudStack平台与预置的数据库,并根据所述基础信息数据创建虚拟机基础模板;第二创建模块,用于获取创建请求,基于所述创建请求以及所述目标PowerShell进程池调用所述虚拟机基础模板以及预置的组件调度数据,创建虚拟机。

可选的,在本发明第二方面的第一种实现方式中,所述第一创建模块具体用于:利用预置编译语言创建进程池构造函数,得到初始PowerShell进程池,并启动所述初始PowerShell进程池;在所述初始PowerShell进程池中,采用所述预置编译语言创建信号处理管道函数、设置所述初始PowerShell进程池的标准参数、设置所述初始PowerShell进程池的工作目录、返回所述初始PowerShell进程池的环境字符串映射图以及设置所述初始PowerShell进程池的属性参数,得到基础PowerShell进程池;在所述基础PowerShell进程池中,通过所述预置编译语言加载虚拟机插件输入预置的虚拟机参数数据以及调用函数,得到配置PowerShell进程池;将所述配置PowerShell进程池中的所述调用指令的状态转化为就绪状态,得到目标PowerShell进程池,所述目标PowerShell进程池用于调用指令。

可选的,在本发明第二方面的第二种实现方式中,所述检测模块具体用于:获取CloudStack平台中的基础信息数据;调用所述目标PowerShell进程池中的检测指令以及预置的环境配置参数,通过所述CloudStack平台的开放接口判断所述CloudStack平台中的基础信息数据是否为预置的配置信息数据。

可选的,在本发明第二方面的第三种实现方式中,所述连接模块具体用于:若所述CloudStack平台中基础信息数据为预置的配置信息数据,则获取预置的数据库的原始连接管理数据,并按照所述CloudStack平台的目标连接管理数据改写调用所述原始连接管理数据;通过所述目标连接管理数据连接所述CloudStack平台与所述预置的数据库;在所述预置的数据库中调用虚拟机初始模板,获取所述基础信息数据,并将所述基础信息数据输入至所述虚拟机初始模板中,创建虚拟机基础模板,所述基础信息数据包括名称配置信息、存储配置信息、网络配置信息和图形配置信息。

可选的,在本发明第二方面的第四种实现方式中,所述第二创建模块具体用于:获取创建请求,在所述创建请求中提取虚拟机创建信息;利用预置编译语言调用所述目标PowerShell进程池,创建配置目录,并将所述虚拟机创建信息输入至所述配置目录中,所述配置目录用于记录虚拟机的名称及域账号;将所述配置目录绑定在所述虚拟机基础模板上,得到虚拟机配置模板;获取预置的外部挂载组件中的预置的组件调度数据,采用所述预置编译语言调用所述目标PowerShell进程池,将所述预置的组件调度数据输入至所述虚拟机配置模板中,创建虚拟机。

可选的,在本发明第二方面的第五种实现方式中,所述基于CloudStack平台的虚拟机创建装置还包括:回滚模块,当CloudStack平台未成功创建虚拟机时,用于获取回滚请求,根据回滚请求中的定位地址,在预置的后台指令框中实现回滚。

可选的,在本发明第二方面的第六种实现方式中,所述回滚模块具体用于:当CloudStack平台未成功创建虚拟机时,获取回滚请求,在回滚请求中提取待回滚的定位地址;将所述定位地址输入至预置的回滚指令中,得到目标指令,在预置的后台指令框中执行所述目标指令,实现所述目标指令的回滚。

本发明第三方面提供了一种基于CloudStack平台的虚拟机创建设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于CloudStack平台的虚拟机创建设备执行上述的基于CloudStack平台的虚拟机创建方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于CloudStack平台的虚拟机创建方法。

本发明提供的技术方案中,利用预置编译语言创建目标PowerShell进程池,所述目标PowerShell进程池用于调用指令;调用所述目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据;若所述CloudStack平台中基础信息数据为预置的配置信息数据,则根据所述CloudStack平台中基础信息数据连接所述CloudStack平台与预置的数据库,并根据所述基础信息数据创建虚拟机基础模板;所述获取创建请求,基于所述创建请求以及所述目标PowerShell进程池调用所述虚拟机基础模板以及预置的组件调度数据,创建虚拟机。本发明实施例中,通过预置编译语言创建目标PowerShell进程池,再调用所述目标PowerShell进程池连接CloudStack平台与预置的数据库,进而创建虚拟机基础模板,最后利用虚拟机基础模板以及预置的组件调度数据创建虚拟机,提高了在CloudStack平台下创建虚拟机的效率。

附图说明

图1为本发明实施例中基于CloudStack平台的虚拟机创建方法的一个实施例示意图;

图2为本发明实施例中基于CloudStack平台的虚拟机创建方法的另一个实施例示意图;

图3为本发明实施例中基于CloudStack平台的虚拟机创建装置的一个实施例示意图;

图4为本发明实施例中基于CloudStack平台的虚拟机创建装置的另一个实施例示意图;

图5为本发明实施例中基于CloudStack平台的虚拟机创建设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质,用于提高在CloudStack平台下创建虚拟机的效率。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于CloudStack平台的虚拟机创建方法的一个实施例包括:

101、利用预置编译语言创建目标PowerShell进程池,目标PowerShell进程池用于调用指令;

可以理解的是,本发明的执行主体可以为基于CloudStack平台的虚拟机创建装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

需要说明的是,PowerShell是一种任务自动化和配置管理框架,进一步理解的是一种命令行指令和脚本环境,使命令行用户和脚本编写者可以利用.NET Framework和.NETCore功能。在PowerShell中,管理任务通常由cmdlets执行,其可以将cmdlet集合至脚本、可执行文件(一般是独立应用程序)中,或通过常规.NET类(或WMI/COM对象)实例化,由PowerShell运行不同存储位置的数据,建立资源管理器或注册表。在本申请中,利用预置编辑语言Java创建由PowerShell进程池,构建调用虚拟机的指令库。

进一步说明的是,进程是操作系统结构的基础,是一个正在执行的程序或计算机中正在运行的程序实例。服务器在处理进程时,可以将进程分配给处理器并由处理器执行,并由单一顺序进行执行显示。而进程池则是资源进程、管理进程组成的技术应用,其中,资源进程预先创建空闲进程,资源进程会将待处理的进程分发到空闲进程来处理,而管理进程负责创建资源进程,把待处理的进程交给空闲资源进程处理或回收已经处理完的资源进程。进程池可以存储提前准备好的程序,待服务器需要调用某个程序时,直接将该程序的状态由就绪状态转化为执行状态,即可实现程序的执行。

102、调用目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据;

可以理解的是,CloudStack是一个开源的具有高可用性及扩展性的云计算平台,同时是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。

这里服务器需要利用预置编辑语言调用PowerShell进程池来检测CloudStack平台是否可用,具体的,服务器会通过Java语言调用PowerShell进程池中的检测程序,将检测程序的状态由就绪转化为执行,以此检测CloudStack平台中各项资源是否为可用状态,也就是基础信息数据与预置的配置信息数据是否相同,其中,服务器检测的资源指标可以为:注册名称、机器域账号、指令存储地址、网络可连接性等。

需要强调的是,为进一步保证上述CloudStack平台中基础信息数据的安全性,上述CloudStack平台中基础信息数据还可以存储于一区块链的节点中。

103、若CloudStack平台中基础信息数据为预置的配置信息数据,则根据CloudStack平台中基础信息数据连接CloudStack平台与预置的数据库,并根据基础信息数据创建虚拟机基础模板;

当服务器检测CloudStack平台中基础信息数据为预置的配置信息数据时,服务器需要连接CloudStack平台与预置的数据库,使得CloudStack平台可以实现从预置的数据库中调用数据的目的。

进一步说明的是,这里预置的数据库指的是动态链接库(dynamic link library,dll),dll数据库是一个包含可由多个程序同时使用的代码和数据的库。在现有利用云桌面创建虚拟机的技术中,dll数据库的连接管理模式为VM Center(一种虚拟机中心的类型)模式,而在本申请中,服务器利用到的是CloudStack模式,因此,服务器需要将dll数据库中的管理和运维数据进行更改,其中,更改为CloudStack连接模式的数据项目为:开关机数据、重启数据、销毁数据等。

在采用CloudStack平台建立虚拟机时,存在大量的公共数据,如每次建立虚拟机的网络配置参数及存储数据地址均是相同的,为了提高创建虚拟机的效率,服务器利用CloudStack平台中的基础信息建立虚拟机基础模板。

104、获取创建请求,基于创建请求以及目标PowerShell进程池调用虚拟机基础模板以及预置的组件调度数据,创建虚拟机。

服务器获取用户输入的创建虚拟机的创建请求,利用创建请求及目标PowerShell进程池调用虚拟机基础模板与预置的组件调度数据,将创建信息填入到虚拟机基础模板中,生成虚拟机。

需要说明的是,这里预置的组件调度数据是挂载在计算机外部的硬盘中的预置参数信息,预置的组件调度数据是为了将创建的虚拟机纳入citrix(桌面虚拟化)组件的调度系统中,且令创建的虚拟机可以在域中正常注册与使用,只有在域中正常注册的虚拟机,才可以正常连接入域控的内网。

本发明实施例中,通过预置编译语言创建目标PowerShell进程池,再调用目标PowerShell进程池连接CloudStack平台与预置的数据库,进而创建虚拟机基础模板,最后利用虚拟机基础模板以及预置的组件调度数据创建虚拟机,提高了在CloudStack平台下创建虚拟机的效率。

请参阅图2,本发明实施例中基于CloudStack平台的虚拟机创建方法的另一个实施例包括:

201、利用预置编译语言创建目标PowerShell进程池,目标PowerShell进程池用于调用指令;

具体的,服务器首先利用预置编译语言创建进程池构造函数,得到初始PowerShell进程池,并启动初始PowerShell进程池;其次服务器在初始PowerShell进程池中,采用预置编译语言创建信号处理管道函数、设置初始PowerShell进程池的标准参数、设置初始PowerShell进程池的工作目录、返回初始PowerShell进程池的环境字符串映射图以及设置初始PowerShell进程池的属性参数,得到基础PowerShell进程池;然后服务器在基础PowerShell进程池中,通过预置编译语言加载虚拟机插件输入预置的虚拟机参数数据以及调用函数,得到配置PowerShell进程池;最后服务器将配置PowerShell进程池中的调用指令的状态转化为就绪状态,得到目标PowerShell进程池,目标PowerShell进程池用于调用指令。

基于java的高可用性和跨平台性,本申请中采用的预置编译语言为Java语言。在现有技术中,Java预置编译语言与PowerShell进行相关操作时主要是通过Java生成ps文件的方式对程序指令进行处理,并以cmd的运行方式运行ps文件,而在云桌面的实际应用中,由于要对创建虚拟机的步骤进行划分,并对程序指令进行持续操作,但因中途每个操作程序指令的步骤结果均存在不确定性,故而利用Java生成ps文件的方法并不适用,因此本申请采用Java搭建PowerShell进程池的方式对程序指令进行处理。

利用预置编译语言Java创建目标PowerShell进程池时,首先服务器创建进程池构造函数,进程池构造函数提供一种启动和管理进程(应用程序)的方法,每个由进程池构造函数生成的进程指令均可管理一种进程属性集,由此,可以得到初始PowerShell进程池,然后启动初始PowerShell进程池,服务器利用预置编译语言Java创建信号处理管道函数、设置初始PowerShell进程池的标准参数、设置初始PowerShell进程池的工作目录、返回初始PowerShell进程池的环境字符串映射图以及设置初始PowerShell进程池的属性参数,得到基础PowerShell进程池,部分创建及设置指令如下所示:

Listcommand()//返回初始PowerShell的操作系统程序和参数。

ProcessBuilder command(Listcommand)//设置初始PowerShell进程池的操作系统程序和参数。

ProcessBuilder command(String...command)//设置初始PowerShell进程池的操作系统程序和参数。

File directory()//返回初始PowerShell进程池的工作目录。

ProcessBuilder directory(File directory)//设置初始PowerShell进程池的工作目录。

Mapenvironment()//返回初始PowerShell进程池环境的字符串映射视图。

ProcessBuilder redirectErrorStream(boolean redirectErrorStream)//设置初始PowerShell进程池的redirectErrorStream属性。

待服务器生成基础PowerShell进程池后,通过预置编译语言Java加载虚拟机插件输入预置的虚拟机参数数据以及调用函数,得到配置PowerShell进程池,这里虚拟机插件指的是citrix插件,该虚拟机插件延长了网络基础结构的使用寿命,同时提高了网络环境的安全性。然后在配置PowerShell进程池中,将调用指令的状态转化为就绪状态,得到目标PowerShell进程池,目标PowerShell进程池用于调用指令。可以理解的是,服务器在处理PowerShell进程池中相关的指令时,服务器从PowerShell进程池中随机选取一条状态为就绪的调用指令,将该调用指令的状态改变为执行,即可完成用于调用指令的目标PowerShell进程池的创建。若服务器请求调用指令时无可用的目标PowerShell进程池中的进程,则服务器等待2秒后重试,同时启动一条新的调用指令添加至PowerShell进程池中。

进一步说明的是,调用指令在进程池中是不断地改变其运行状态的,一般情况下,一个调用指令具有以下三种基本状态:

(1)就绪(Ready)状态

当调用指令已分配到除中央处理器(central processing unit,CPU)以外的所有必要的资源,只要获得处理机便可立即执行,这时调用指令的状态为就绪状态。

(2)执行(Running)状态

当调用指令已分配到CPU,且调用指令正在处理机上执行,此时调用指令的状态称为执行状态。

(3)阻塞(Blocked)状态

在调用指令正在执行的过程中,由于等待某个事件发生而无法执行调用指令时,便放弃CPU而处于阻塞状态,其中,引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。

调用指令在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。调用指令三种状态及其转换如下:

(1)就绪状态转变为执行状态

在调用指令处于就绪状态下,当进程调度程序为其分配处理机之后,该调用指令的状态便由就绪状态转变成执行状态。

(2)执行状态转变为就绪状态

在调用指令处于执行状态下,因处理该进程的处理时段已满足处理机分配给该进程的时间片,由此需要让出处理机,于是调用指令的状态从执行状态转变成就绪状态。

(3)执行状态转变为阻塞状态

正在执行的调用指令因等待某种事件发生而无法继续执行时,调用指令的状态便从执行状态变成阻塞状态。

(4)阻塞状态转变为就绪状态

在调用指令处于阻塞状态下,若其等待的事件已经发生,于是调用指令的状态由阻塞状态转变为就绪状态。

202、调用目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据;

具体的,服务器获取CloudStack平台中的基础信息数据;服务器调用目标PowerShell进程池中的检测指令以及预置的环境配置参数,通过CloudStack平台的开放接口判断CloudStack平台中的基础信息数据是否为预置的配置信息数据。

这里CloudStack平台中的基础信息数据包括注册名称、机器域账号、指令存储地址、网络可连接性、云桌面环境中的存储数据、云桌面的网络环境、系统镜像、虚拟机配置的CPU配置参数等。具体的,服务器会采用预置编译语言Java调用目标PowerShell进程池中的检测指令以及提前设置在目标PowerShell进程池中的预置的环境配置参数,将检测程序的状态由就绪转化为执行,再通过目标CloudStack平台的开放接口检测基础信息数据与预置的配置信息数据之间是否相同。

需要强调的是,为进一步保证上述CloudStack平台中基础信息数据的安全性,上述CloudStack平台中基础信息数据还可以存储于一区块链的节点中。

203、若CloudStack平台中基础信息数据为预置的配置信息数据,则根据CloudStack平台中基础信息数据连接CloudStack平台与预置的数据库,并根据基础信息数据创建虚拟机基础模板;

具体的,若CloudStack平台中基础信息数据为预置的配置信息数据,则服务器获取预置的数据库的原始连接管理数据,并按照CloudStack平台的目标连接管理数据改写调用原始连接管理数据;服务器通过目标连接管理数据连接CloudStack平台与预置的数据库;在预置的数据库中调用虚拟机初始模板,服务器获取基础信息数据,并将基础信息数据输入至虚拟机初始模板中,创建虚拟机基础模板,基础信息数据包括名称配置信息、存储配置信息、网络配置信息和图形配置信息。

服务器在进行CloudStack平台中基础信息数据的检测时,所检测的是基础信息数据中的CloudStack平台的存储地址及网络环境等的可用性,只有CloudStack平台为可使用状态时,也就是说基础信息数据与预置的配置信息数据相同的情况下,服务器才会进行下一步操作,将CloudStack平台与预置的数据库连接起来。

需要说明的是,这里预置的数据库指的是动态链接库dll,dll数据库是一个包含可由多个程序同时使用的代码和数据的库。在现有利用云桌面创建虚拟机的技术中,dll数据库的连接管理模式为VM Center(一种虚拟机中心的类型)模式,而在本申请中,服务器利用到的是CloudStack模式,因此,服务器需要将dll数据库中的管理和运维数据进行更改,其中,更改为CloudStack连接模式的数据项目为:开关机数据、重启数据、销毁数据等。

进一步说明的是,基础信息数据中还存在创建虚拟机的一些基本数据,将这些基础信息数据输入至虚拟机初始模板中,即可生成虚拟机基础模板,之后服务器需要生成虚拟机时,直接调用虚拟机基础模板即可,提高了创建虚拟机的效率。上述基础信息数据中还存在的基本数据如下所示:

(1)名称配置信息:虚拟机的名称(需全局唯一)、虚拟机的内存大小(单位为MB)、VCPU个数及CPU特性等。

(2)存储配置信息:指定存储设备及其属性、位置及属性等。常用的选项为:

device:设备类型,如cdrom、disk或floppy等,默认为disk;

bus:磁盘总线类型,其值可以为ide,scsi,usb、virtio或xen;

perms:访问权限,如rw、ro或sh(共享的可读写),默认为rw;

size:新建磁盘映像的大小,单位为GB;

cache:缓存模型,其值有none,writethrouth(缓存读)及writeback(缓存读写);

format:磁盘映像格式,如raw,qcow2,vmdk等;

sparse:磁盘映像使用稀疏格式,即不立即分配指定大小的空间。

(3)网络配置信息:指定网路接口的网络类型及接口属性,如MAC地址、驱动模式等。常用的选项为:

bridge=BRIDGE:连接至名为“BRIDEFG”的桥设备;

network=NAME:连接至名为“NAME”的网络;

model:GuestOS中看到的网络设备号,如e1000,rtl8139或virtio等;

mac:固定的MAC地址;省略此选项时将使用随机地址,但无论何种方式,对于KVM来说,其前三段必须为52:54:00。

(4)图形配置信息:定义虚拟机显示功能相关的配置,如VNC相关配置。常用的选项为:

TYPE:指定显示类型,可以为vnc,sdl,soice或none,默认问vnc;

port:TYPE为vnc或spice时服务器监听的端口;

listen:TYPE为vnc或spice时服务器所监听的IP地址,默认为127.0.0.1,可以通过修改/etc/libvirt/qemu;

password:TYPE为vnc或spice时,为远程访问监听的服务指定认证密码。

204、获取创建请求,基于创建请求以及目标PowerShell进程池调用虚拟机基础模板以及预置的组件调度数据,创建虚拟机;

具体的,服务器首先获取创建请求,在创建请求中提取虚拟机创建信息;其次服务器利用预置编译语言调用目标PowerShell进程池,创建配置目录,并将虚拟机创建信息输入至配置目录中,配置目录用于记录虚拟机的名称及域账号;然后服务器将配置目录绑定在虚拟机基础模板上,得到虚拟机配置模板;最后服务器获取预置的外部挂载组件中的预置的组件调度数据,采用预置编译语言调用目标PowerShell进程池,将预置的组件调度数据输入至虚拟机配置模板中,创建虚拟机。

服务器获取用户输入的创建虚拟机的创建请求,从创建请求中获取到需要创建虚拟机对应的虚拟机创建信息,这里的虚拟机创建信息包括:虚拟机创建名称、虚拟机域账号等,然后将虚拟机创建信息输入至配置目录中,这里的配置目录是利用Java预置编译语言调用目标PowerShell进程池中的进程指令建立的空的计算机目录,服务器将虚拟机创建信息填入到配置目录中,即完成了配置目录的生成。

需要说明的是,服务器将配置目录绑定在虚拟机基础模板上,即可得到虚拟机配置模板,最后服务器获取预置的外部挂载组件中的预置的组件调度数据,采用预置编译语言调用目标PowerShell进程池,将预置的组件调度数据输入至虚拟机配置模板中,生成虚拟机。这里预置的组件调度数据是挂载在计算机外部的硬盘中的预置参数信息,预置的组件调度数据是为了将创建的虚拟机纳入citrix(桌面虚拟化)组件的调度系统中,且令创建的虚拟机可以在域中正常注册与使用,只有在域中正常注册的虚拟机,才可以正常连接入域控的内网。

205、当CloudStack平台未成功创建虚拟机时,获取回滚请求,根据回滚请求中的定位地址,在预置的后台指令框中实现回滚。

具体的,当CloudStack平台未成功创建虚拟机时,服务器获取回滚请求,在回滚请求中提取待回滚的定位地址;服务器将定位地址输入至预置的回滚指令中,得到目标指令,在预置的后台指令框中执行目标指令,实现目标指令的回滚。

回滚是指当程序指令或数据出错时,将程序指令或数据恢复到数据库中最近一个正确哈希值的行为。在回滚的过程中就要明确具体回滚到哪一个正确的哈希值。一般的,回滚是通过用户输入的回滚请求进行程序指令回滚的,需要说明的是,在回滚请求中存在所需回滚的定位地址(哈希值),服务器通过回滚指令执行回滚操作,回滚指令为:git指令,将定位地址输入至回滚指令中,得到目标指令,然后服务器在预置的后台指令框中执行目标指令,即可完成回滚请求。

举例说明,目标指令为git reset hard commit-id,说明将定位地址commit-id之后的程序指令均删除,即为将程序指令回滚到commit-id的位置。

本发明实施例中,通过预置编译语言创建目标PowerShell进程池,再调用目标PowerShell进程池连接CloudStack平台与预置的数据库,进而创建虚拟机基础模板,最后利用虚拟机基础模板以及预置的组件调度数据创建虚拟机,提高了在CloudStack平台下创建虚拟机的效率。

上面对本发明实施例中基于CloudStack平台的虚拟机创建方法进行了描述,下面对本发明实施例中基于CloudStack平台的虚拟机创建装置进行描述,请参阅图3,本发明实施例中基于CloudStack平台的虚拟机创建装置一个实施例包括:

第一创建模块301,用于利用预置编译语言创建目标PowerShell进程池,所述目标PowerShell进程池用于调用指令;

检测模块302,用于调用所述目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据;

连接模块303,若所述CloudStack平台中基础信息数据为预置的配置信息数据,则用于根据所述CloudStack平台中基础信息数据连接所述CloudStack平台与预置的数据库,并根据所述基础信息数据创建虚拟机基础模板;

第二创建模块304,用于获取创建请求,基于所述创建请求以及所述目标PowerShell进程池调用所述虚拟机基础模板以及预置的组件调度数据,创建虚拟机。

本发明实施例中,通过预置编译语言创建目标PowerShell进程池,再调用所述目标PowerShell进程池连接CloudStack平台与预置的数据库,进而创建虚拟机基础模板,最后利用虚拟机基础模板以及预置的组件调度数据创建虚拟机,提高了在CloudStack平台下创建虚拟机的效率。

请参阅图4,本发明实施例中基于CloudStack平台的虚拟机创建装置的另一个实施例包括:

第一创建模块301,用于利用预置编译语言创建目标PowerShell进程池,所述目标PowerShell进程池用于调用指令;

检测模块302,用于调用所述目标PowerShell进程池检测CloudStack平台中基础信息数据是否为预置的配置信息数据;

连接模块303,若所述CloudStack平台中基础信息数据为预置的配置信息数据,则用于根据所述CloudStack平台中基础信息数据连接所述CloudStack平台与预置的数据库,并根据所述基础信息数据创建虚拟机基础模板;

第二创建模块304,用于获取创建请求,基于所述创建请求以及所述目标PowerShell进程池调用所述虚拟机基础模板以及预置的组件调度数据,创建虚拟机。

可选的,第一创建模块301具体用于:

利用预置编译语言创建进程池构造函数,得到初始PowerShell进程池,并启动所述初始PowerShell进程池;

在所述初始PowerShell进程池中,采用所述预置编译语言创建信号处理管道函数、设置所述初始PowerShell进程池的标准参数、设置所述初始PowerShell进程池的工作目录、返回所述初始PowerShell进程池的环境字符串映射图以及设置所述初始PowerShell进程池的属性参数,得到基础PowerShell进程池;

在所述基础PowerShell进程池中,通过所述预置编译语言加载虚拟机插件输入预置的虚拟机参数数据以及调用函数,得到配置PowerShell进程池;

将所述配置PowerShell进程池中的所述调用指令的状态转化为就绪状态,得到目标PowerShell进程池,所述目标PowerShell进程池用于调用指令。

可选的,检测模块302具体用于:

获取CloudStack平台中的基础信息数据;

调用所述目标PowerShell进程池中的检测指令以及预置的环境配置参数,通过所述CloudStack平台的开放接口判断所述CloudStack平台中的基础信息数据是否为预置的配置信息数据。

可选的,连接模块303具体用于:

若所述CloudStack平台中基础信息数据为预置的配置信息数据,则获取预置的数据库的原始连接管理数据,并按照所述CloudStack平台的目标连接管理数据改写调用所述原始连接管理数据;

通过所述目标连接管理数据连接所述CloudStack平台与所述预置的数据库;

在所述预置的数据库中调用虚拟机初始模板,获取所述基础信息数据,并将所述基础信息数据输入至所述虚拟机初始模板中,创建虚拟机基础模板,所述基础信息数据包括名称配置信息、存储配置信息、网络配置信息和图形配置信息。

可选的,第二创建模块304具体用于:

获取创建请求,在所述创建请求中提取虚拟机创建信息;

利用预置编译语言调用所述目标PowerShell进程池,创建配置目录,并将所述虚拟机创建信息输入至所述配置目录中,所述配置目录用于记录虚拟机的名称及域账号;

将所述配置目录绑定在所述虚拟机基础模板上,得到虚拟机配置模板;

获取预置的外部挂载组件中的预置的组件调度数据,采用所述预置编译语言调用所述目标PowerShell进程池,将所述预置的组件调度数据输入至所述虚拟机配置模板中,创建虚拟机。

可选的,基于CloudStack平台的虚拟机创建装置还包括:

回滚模块305,当CloudStack平台未成功创建虚拟机时,用于获取回滚请求,根据回滚请求中的定位地址,在预置的后台指令框中实现回滚。

可选的,回滚模块305具体用于:

当CloudStack平台未成功创建虚拟机时,获取回滚请求,在回滚请求中提取待回滚的定位地址;

将所述定位地址输入至预置的回滚指令中,得到目标指令,在预置的后台指令框中执行所述目标指令,实现所述目标指令的回滚。

本发明实施例中,通过预置编译语言创建目标PowerShell进程池,再调用所述目标PowerShell进程池连接CloudStack平台与预置的数据库,进而创建虚拟机基础模板,最后利用虚拟机基础模板以及预置的组件调度数据创建虚拟机,提高了在CloudStack平台下创建虚拟机的效率。

上面图3和图4从模块化功能实体的角度对本发明实施例中的基于CloudStack平台的虚拟机创建装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于CloudStack平台的虚拟机创建设备进行详细描述。

图5是本发明实施例提供的一种基于CloudStack平台的虚拟机创建设备的结构示意图,该基于CloudStack平台的虚拟机创建设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于CloudStack平台的虚拟机创建设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在基于CloudStack平台的虚拟机创建设备500上执行存储介质530中的一系列指令操作。

基于CloudStack平台的虚拟机创建设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的基于CloudStack平台的虚拟机创建设备结构并不构成对基于CloudStack平台的虚拟机创建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种基于CloudStack平台的虚拟机创建设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述基于CloudStack平台的虚拟机创建方法的步骤。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于CloudStack平台的虚拟机创建方法的步骤。

进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质
  • 一种云平台中虚拟机创建方法、装置、设备及存储介质
技术分类

06120112275079