CN108170508A - 批量创建虚拟机的方法、装置、设备及其存储介质 - Google Patents
批量创建虚拟机的方法、装置、设备及其存储介质 Download PDFInfo
- Publication number
- CN108170508A CN108170508A CN201711326838.XA CN201711326838A CN108170508A CN 108170508 A CN108170508 A CN 108170508A CN 201711326838 A CN201711326838 A CN 201711326838A CN 108170508 A CN108170508 A CN 108170508A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- parameter
- host
- target virtual
- robot arm
- 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
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/45562—Creating, 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)
- Stored Programmes (AREA)
Abstract
本申请公开了批量创建虚拟机的方法、装置、设备及其存储介质。该方法包括:选择源虚拟机以创建虚拟机组,该虚拟机组包括多个待创建的目标虚拟机;判断源虚拟机是否满足批量创建的初始条件;如果满足初始条件,则确定自定义配置参数以配置虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数;根据第二部分配置参数生成种子文件;根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建所述目标虚拟机。本申请实施例提供的技术方案,省去远程管理工具配置带来的诸多问题,并保证自定义配置参数在配置过程中不会发生改变,提高了批量创建虚拟机的效率,并大大提高了虚拟机在应用领域的扩展性。
Description
技术领域
本申请一般涉及计算机技术领域,具体涉及虚拟计算机技术领域,尤其涉及批量创建虚拟机的方法、装置、设备及其存储介质。
背景技术
随着云数据中心的发展,虚拟计算机技术也得到了快速的发展,通过虚拟计算机技术可以将一台计算机虚拟为多台逻辑计算机,每个逻辑计算机运行各自的操作系统,并且应用程序也可以在相互独立的空间内运行而互不影响,从而提高计算机的工作效率。
现有技术中,批量创建虚拟机(英文全称:Virtual Machine,英文简称:VM)时,对于虚拟机的自定义配置信息,可以通过ansible工具或其他远程管理工具下发给待创建的虚拟机。但是这些工具不能保证下发的自定义配置信息完整地下发,也可能存在这些工具不支持某些自定义配置信息,例如虚拟机上安装的应用程序。再者,利用这些工具发送自定义配置信息,需要准备复杂的自定义配置清单,这个过程可能会花费大量的时间,导致批量创建虚拟机时创建效率较低。
现有技术中,将虚拟机作为镜像模板通过克隆方式实现多台虚拟机的创建,但是这种方式在开机过程中容易产生IP地址冲突等问题。
因此,亟待提出批量创建虚拟机的方法来解决上述问题。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种批量创建虚拟机的方案。
第一方面,本申请实施例提供了一种批量创建虚拟机的方法,该方法包括:
选择源虚拟机以创建虚拟机组,虚拟机组包括多个待创建的目标虚拟机;
判断源虚拟机是否满足批量创建的初始条件;
如果满足初始条件,则确定自定义配置参数以配置虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数;
根据第二部分配置参数生成种子文件;
根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机。
第二方面,本申请实施例提供了一种批量创建虚拟机的装置,该装置包括:
选择单元,用于选择源虚拟机以创建虚拟机组,虚拟机组包括多个待创建的目标虚拟机;
第一判断单元,用于判断源虚拟机是否满足批量创建的初始条件;
参数确定单元,用于如果满足初始条件,则确定自定义配置参数以配置虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数;
种子生成单元,用于根据第二部分配置参数生成种子文件;
并行创建单元,用于根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机。
第三方面,本申请实施例提供了一种设备,其包括处理器、存储装置,
其中,存储装置,用于存储一个或多个程序;
当前述一个或多个程序被所述处理器执行,使得该处理器实现本申请实施例提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,前述计算机程序被处理器执行时,实现如本申请实施例提供的方法
本申请实施例提供的批量创建虚拟机的方案,首先,选择源虚拟机以创建虚拟机组,并对该源虚拟机是否能够用于批量创建进行判断,然后,确定自定义配置参数以配置多台目标虚拟机,通过将自定义配置划分成不同的部分,针对不同的部分采用不同的处理方式,如源虚拟机提供的配置参数部分,虚拟机磁盘文件通过种子文件的方式实现多台目标虚拟机的共享,从而克服现有技术中需要工具传送个性化配置参数,导致参数传输不完整的问题,又如第三方平台分配的配置参数,通过集中配置资源,使得多台目标虚拟机在配置过程中避免资源冲突,提升批量创建的效率。按照本申请实施例的技术方案,省去远程管理工具配置带来的诸多问题,并保证自定义配置参数在配置过程中不会发生改变,大大提高了虚拟机在应用领域的扩展性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了本申请实施例提供的批量创建虚拟机方法的流程示意图;
图2示出了本申请又一实施例提供的批量创建虚拟机方法的流程示意图;
图3示出了本申请实施例208的流程示意图;
图4示出了本申请实施例提供的批量创建虚拟机装置的结构示意图;
图5示出了本申请又一实施例提供的批量创建虚拟机装置的结构示意图;
图6示出了本申请实施例并行创建单元507的结构示意图;
图7示出了适于用来实现本申请实施例的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,图1示出了本申请实施例提供的批量创建虚拟机方法的流程示意图。
如图1所示,该方法100包括:
101,选择源虚拟机以创建虚拟机组,所述虚拟机组包括多个待创建的目标虚拟机。
本申请实施例,在批量创建任务开始时,选择用于批量创建的源虚拟机,根据该源虚拟机批量创建多个目标虚拟机,该多个目标虚拟机组成虚拟机组。可以通过监控平台发送选择指令给指定的虚拟机,发起批量任务创建,也可以通过监控平台发送创建指令,该创建指令包括指定的虚拟机的配置信息,还可以采用其他等同的方式触发执行批量创建任务。
102,判断源虚拟机是否满足批量创建的初始条件。
在确定源虚拟机之后,对于该源虚拟机是否可以用于批量创建进行判断,即判断是否满足批量创建的初始条件,该初始条件包括源虚拟机的参数信息是否完整;源虚拟机的操作系统是不是Linux系统;源虚拟机是否处于关机状态,也可以仅仅判断源虚拟机的操作系统和关机状态。
103,如果满足所述初始条件,则确定自定义配置参数以配置虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数。
在判断满足批量创建的初始条件的情况下,确定用于配置虚拟机组所需的自定义配置参数。本申请实施例中,自定义配置参数可以包括源虚拟机中的虚拟机磁盘文件,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等,还包括虚拟机的名称、IP地址、虚拟机所在的主机,主机名等等。这些自定义参数都属于源虚拟机的个性化的配置参数。
本申请实施例中,通过确定用于配置虚拟机组所需的自定义配置参数文件,可以将目标虚拟机的名称、IP地址、目标虚拟机所在的主机,主机名等,称为第一部分配置参数。第一部分配置参数可以是虚拟机组的基础配置参数表,基础配置参数表至少包括:待创建的目标虚拟机的数量、IP地址、名称、待创建的目标虚拟机对应的主机和主机名称。第一部分配置参数也可以通过其他方式限定,不限于基础配置参数表的形式。第一部分配置参数可以根据第三方平台发送,或者预先创建于数据库中,不限于这两种方式,其他提供参数的方式也可以适用本申请实施例中。
本申请实施例中,将源虚拟机中虚拟机磁盘文件成为第二部分配置参数,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等。第二部分配置参数可以从源虚拟机的虚拟机磁盘文件中得到。
104,根据第二部分配置参数生成种子文件。
本申请实施例,通过将第二部分配置参数生成种子文件来实现目标虚拟机共享第二部分配置参数,从而克服现有技术中需要工具传送个性化配置参数,导致参数传输不完整的问题。
根据第二部分配置参数生成种子文件,可选地,在源虚拟机所在主机上,将源虚拟机的虚拟机磁盘文件复制到指定路径的存储池中,生成种子文件。利用其它点对点传输工具得到虚拟机磁盘文件,并通过点对点传输的方式实现多台目标虚拟机共享种子文件的方式,都可以适用本申请实施例中。
105,根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机。
本申请实施例,通过资源分配,预先给每个待创建的目标虚拟机分配目标虚拟机的名称,IP地址,目标虚拟机所在的主机,主机名称。在获取分配资源后,在相应的主机上并行地创建多个目标虚拟机,通过这种并行创建虚拟机的方法,提高了创建虚拟机的效率,也解决了现有技术中需要远程管理工具配置个性化参数的诸多问题,并且避免了出现配置冲突问题。
请参考图2,图2示出了本申请又一实施例提供的批量创建虚拟机方法的流程示意图。
如图2所示,该方法200包括:
201,选择源虚拟机以创建虚拟机组,所述虚拟机组包括多个待创建的目标虚拟机。
本申请实施例,在批量创建任务开始时,选择用于批量创建的源虚拟机,根据该源虚拟机批量创建多个目标虚拟机,该多个目标虚拟机组成虚拟机组。可以通过监控平台发送选择指令给指定的虚拟机,发起批量任务创建,也可以通过监控平台发送创建指令,该创建指令包括指定的虚拟机的信息,还可以采用其他等同的方式触发执行批量创建任务。
202,判断源虚拟机是否满足批量创建的初始条件。
在确定源虚拟机之后,需要对该源虚拟机是否可以用于批量创建进行判断,即判断是否满足批量创建的初始条件,该初始条件包括源虚拟机的参数信息是否完整;源虚拟机的操作系统是不是Linux系统;源虚拟机是否处于关机状态,也可以仅仅判断源虚拟机的操作系统和关机状态。
203,如果满足初始条件,修改源虚拟机的指示标识为第一指示值,并锁定源虚拟机的部分操作权限。
本申请实施例中,在判断源虚拟机满足批量创建的初始条件之后,可以通过修改源虚拟机的指示标识为第一指示值,并锁定源虚拟机的部分操作权限,来保证源虚拟机在批量创建过程中提供的配置参数信息不会发生改变。其中,第一指示值,可以理解为用于指示该源虚拟机处于“被克隆中”的标识。锁定源虚拟机的部分操作权限,可以理解为对源虚拟机执行包括锁定开机、锁定迁移、锁定更改配置等操作。
通过锁定操作权限的方式,可以保证源虚拟机被复制的信息在批量创建过程中是一致的,从而提高创建的正确率。
204,确定自定义配置参数以配置虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数,其中,第二部分配置参数为源虚拟机的虚拟机磁盘文件。
在判断满足批量创建的初始条件的情况下,对源虚拟机进行锁定操作后,确定用于配置虚拟机组所需的自定义配置参数。本申请实施例中,自定义配置参数包括虚拟机中的虚拟磁盘文件,该虚拟磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等,还包括虚拟机的名称、IP地址、虚拟机所在的主机,主机名等等。这些自定义参数属于源虚拟机的个性化配置参数。
本申请实施例中,通过确定用于配置虚拟机组所需的自定义配置参数文件,可以将目标虚拟机的名称、IP地址、目标虚拟机所在的主机,主机名等,称为第一部分配置参数。第一部分配置参数可以是虚拟机组的基础配置参数表,基础配置参数表至少包括:待创建的目标虚拟机的数量、IP地址、名称、待创建的目标虚拟机对应的主机和主机名称。第一部分配置参数也可以通过其他方式限定,不限于基础配置参数表的形式。第一部分配置参数可以根据第三方平台发送,或者预先创建于数据库中,不限于这两种方式,其他提供参数的方式也可以适用本申请实施例中。
本申请实施例中,将源虚拟机中虚拟机磁盘文件成为第二部分配置参数,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等。第二部分配置参数可以从源虚拟机的虚拟机磁盘文件中得到。
可选地,确定自定义配置参数以配置所述虚拟机组,可以包括:确定第三方平台提供的配置参数为第一部分配置参数;
确定源虚拟机的虚拟机磁盘文件为第二部分配置参数。
根据于资源需求量增加,一般批量创建目标虚拟机,需要将一台主机上运行的虚拟机的镜像文件转化为虚拟机镜像模板,其中,虚拟机镜像模板为操作系统和应用程序组合的系统镜像。其主要是通过拷贝该虚拟机镜像模板达到创建的目的。但是,创建后的目标虚拟机的操作系统、环境数据等均与该虚拟机镜像模板一模一样。其中,环境数据包括虚拟机的安全标识符(英文全称:Security Identifiers,英文简称:SID)、虚拟机名称、网络协议(英文全称:Internet Protocol,英文简称:IP)地址、管理员密码、工作域等,根据于新创建的目标虚拟机与虚拟机镜像模板的设置相同,在批量部署虚拟机后,会导致虚拟机管理出现问题,故需要对每台新部署的虚拟机的环境数据进行修改。
本申请实施例,为克服上述缺陷,将用于创建目标虚拟机的自定义配置信息划分为两部分,第一部分配置参数可以理解为环境数据,第二部分配置参数可以理解为源虚拟机的操作系统和应用程序组合的内容。
第一部分配置参数可以根据第三方平台统一发送,第三方平台可以是现有的大数据业务数据中心,也可以是具体的业务平台,例如监控平台,使得目标虚拟机的环境数据在资源分配的前提下规避了资源冲突的问题。例如,监控平台发送包含目标虚拟机的名称、IP地址、目标虚拟机所在的主机,主机名等配置参数。
第二部分配置参数可以直接从源虚拟机中确定,例如源虚拟机中的虚拟机磁盘文件,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等配置参数。
205,根据第二部分配置参数生成种子文件,包括将虚拟机磁盘文件复制到该源虚拟机所在的主机的指定路径的存储池,生成种子文件。
本申请实施例,根据第二部分配置参数生成种子文件,可以将源虚拟机的虚拟磁盘文件复制到源虚拟机所在的主机上的指定路径的存储池,生成种子文件。
源虚拟机与物理虚拟机相同,在磁盘文件中存储了系统文件,安装的应用程序的配置参数等。因此,将源虚拟机的虚拟磁盘文件复制到源虚拟机所在的主机上的指定路径的存储池,根据该虚拟磁盘文件生成种子文件。例如,该指定路径的文件夹为存储池,该存储池为预先建立的用于克隆的存储池。例如,指定路径可以是/app/clone。
可选地,采用BT传输第二部分配置参数,则需要将该虚拟磁盘文件复制到指定路径的/app/clone,生成该虚拟磁盘文件对应的BT种子文件。
在完成生成种子文件之后,刷新该指定路径的存储池。
本申请实施例,通过将第二部分配置参数生成种子文件来实现多台目标虚拟机共享第二部分配置参数,从而克服现有技术中需要工具传送个性化配置参数,导致参数传输不完整的问题。
206,根据第一部分配置参数,通知与虚拟机组的每个目标虚拟机一一对应的主机,来访问源虚拟机所在的主机以获取种子文件。
本申请实施例,在根据第二部分配置参数生成种子文件之后,可选地,根据第一部分配置参数,通知与虚拟机组的每个目标虚拟机一一对应的主机,来访问源虚拟机所在的主机以获取所述种子文件。在经过资源分配后,第三方平台可以分配用于创建目标虚拟机所需的资源。例如,可以确定第三方平台分配的资源信息作为第一部分配置参数,该配置参数包含为每台待创建的目标虚拟机分配的资源,如目标虚拟机的名称,IP地址,目标虚拟机所在的主机,主机名称等。
为了实现BT传输源虚拟机的镜像文件,根据第一部分配置参数可以得到虚拟机所在的主机的信息,然后,通知这些主机来访问源虚拟机以获取BT种子文件。为了保证目标虚拟机所在的主机与源虚拟机所在的主机之间成功建立连接的几率,可选地,经过检查源虚拟机所在的主机的TCP端口是否可以使用,然后,在可以使用的情况下,选择HTTP服务来获取BT种子文件。可选地,通知目标虚拟机所在的主机通过wget方式来访问该TCP端口以获取BT种子文件。
可选地,206可以包括:
判断源虚拟机所在主机的TCP端口是否能正常使用;
如果能正常使用,则开启该主机的HTTP服务;
通知与虚拟机组的每个目标虚拟机一一对应的主机,通过wget方式来访问该TCP端口以获取种子文件。
本申请实施例,可以利用BT传输虚拟磁盘文件来保证镜像文件的传输速度不受创建目标虚拟机的数量的影响,从而快速地完成批量创建,提升了批量创建的效率。
207,修改源虚拟机的指示标识为第二指示值,并解锁源虚拟机的部分操作权限。
在完成BT种子文件的传输之后,该方法还包括:修改源虚拟机的指示标识为第二指示值,并解锁源虚拟机的部分操作权限。
其中,第二指示值可以理解为用于指示该源虚拟机处于“关机中”的标识。解锁该源虚拟机的部分操作权限,可以理解为解除源虚拟机之前被锁定的权限,例如开机、迁移、更改配置等操作。通过解锁操作,使得源虚拟机在完成模板生成之后,可以直接开机,恢复正常工作状态,以提供工作效率。
可选地,203和207也可以表示为:在满足初始条件之后,且在确定自定义配置参数以配置所述虚拟机组之前,修改源虚拟机的指示标识为第一指示值,并锁定源虚拟机的部分操作权限;以及
在根据第一部分配置参数,通知与虚拟机组的每个目标虚拟机一一对应的主机,来访问源虚拟机所在的主机以获取种子文件之后,且在根据第一部分配置参数和所述种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机之前,修改源虚拟机的指示标识为第二指示值,并解锁部分操作权限。
208,根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机。
本申请实施例,通过资源分配,预先为每个待创建的目标虚拟机分配虚拟机名称,IP地址,目标虚拟机所在的主机,主机名称。在获取这些已经分配的资源之后,在相应的主机上可以同时并行地执行创建目标虚拟机。通过这种并行创建虚拟机的方法,提高了批量创建目标虚拟机的效率,也解决了现有技术中需要远程管理工具配置个性化参数的诸多问题,且避免出现配置冲突问题。
为了更清楚地描述并行创建目标虚拟机的过程,如图3所示,208可以进一步包括:
301,调用与虚拟机组的每个目标虚拟机一一对应的线程;
302,该线程独立地在与虚拟机组的每个目标虚拟机一一对应的主机上配置第二部分配置参数,然后继续配置第一部分配置参数和公用参数以创建目标虚拟机。
其中,每一个线程独立地实现目标虚拟机的配置,在每台目标虚拟机所在主机获取BT种子文件后,触发它的线程开始获取BT种子文件对应的第二部分配置参数的镜像文件,进而将第二部分配置参数的镜像文件存储到每台目标虚拟机对应的主机上相应的存储空间。例如,创建用于存储镜像文件的存储池和文件夹。然后,线程调用libvirt接口将镜像文件复制到该存储池和文件夹,并修改该镜像文件的名称。最后,线程控制生成目标虚拟机的XML配置文件。XML配置文件包括:源虚拟机的硬件配置参数等。例如包括CPU性能参数,内存大小参数,网卡配置参数等等硬件配置的相关参数。
在完成第二部分配置参数复制之后,继续由线程单独地配置第一部分配置参数,从而完成目标虚拟机的创建。例如,线程控制开启目标虚拟机,判断目标虚拟机是不是已经进入操作系统,如果进入,则对目标虚拟机进行预处理,预处理可以理解为将目标虚拟机中的环境参数的相关设置恢复成默认值,例如,IP地址等等。在预处理之后,开始配置第一部分配置参数,也可以称为注入第一部分配置参数,即将第一部分配置参数信息,相应地填写到目标虚拟机中对应参数的位置,这里的第一部分配置参数可以理解为目标虚拟机在网络中唯一归属的网络参数和公用网络参数,即第一步部分配置参数包括第一部分和第二部分。其中,第一部分为唯一归属的网络参数,例如IP地址,虚拟机的名称等。在完成这些配置后,继续配置虚拟机的其他网络配置参数,即第二部分为公用网络参数,例如掩码地址,网关,DNS服务器地址等,这些配置参数属于同一网段多台虚拟机共有的参数,可以定义称为公用网络参数,即公用网络参数至少包括掩码地址,网关,DNS服务器地址等,其他等同的参数也可包含在内。
在这些配置都完成之后,重启目标虚拟机,再次判断配置完参数后的目标虚拟机是否进入操作系统,如果进入,继续配置应用配置参数。应用配置参数是指将目标虚拟机应用到具体的场景,需要配置的相关参数,例如将目标虚拟机配置应用配置参数后,作为客户端应用于监控平台,例如需要配置客户端的相关信息配置、远程监控配置参数等等。
完成上述配置过程,则完成创建目标虚拟机。
本申请实施例,通过并行创建多个目标虚拟机,可以快速扩展应用,并保证创建的目标虚拟机不会产生资源冲突,且无需借助远程管理工具进行管理,提升了创建目标虚拟机的效率。
可选地,302还可以包括:
3021,通知与虚拟机组的每个目标虚拟机一一对应的主机,使得该主机开启传输应用,并根据种子文件获取第二部分配置参数的镜像文件;
3022,在与虚拟机组的每个虚拟机一一对应的主机上,创建用于存储镜像文件的存储池和文件夹;
3023,调用libvirt接口将镜像文件复制到该存储池的该文件夹内,并按照第一部分配置参数重新命名镜像文件;
3024,生成目标虚拟机的XML配置文件。
3025,开启目标虚拟机。
3026,判断目标虚拟机是否已经进入操作系统。
3027,如果已经进入操作系统,则对目标虚拟机进行预处理。
3028,配置目标虚拟机的第一部分配置参数的第一部分。
3029,配置目标虚拟机的第一部分配置参数的第二部分。
3030,重新启动目标虚拟机,然后返回3026。
3031,如果已经进入操作系统,则配置目标虚拟机的应用配置参数。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。
请参考图4,图4示出了本申请实施例提供的批量创建虚拟机装置的结构示意图。
如图4所示,该装置400包括:
选择单元401,用于选择源虚拟机以创建虚拟机组,所述虚拟机组包括多个待创建的目标虚拟机。
本申请实施例,在批量创建任务开始时,选择用于批量创建的源虚拟机,根据该源虚拟机批量创建多个目标虚拟机,该多个目标虚拟机组成虚拟机组。可以通过监控平台发送选择指令给指定的虚拟机,发起批量任务创建,也可以通过监控平台发送创建指令,该创建指令包括指定的虚拟机的信息,还可以采用其他等同的方式触发执行批量创建任务。
第一判断单元402,用于判断源虚拟机是否满足批量创建的初始条件。
在确定源虚拟机之后,需要对该源虚拟机是否可以用于批量创建进行判断,即判断是否满足批量创建的初始条件,该初始条件包括源虚拟机的参数信息是否完整;源虚拟机的操作系统是不是Linux系统;源虚拟机是否处于关机状态,也可以仅仅判断源虚拟机的操作系统和关机状态。
参数确定单元403,用于如果满足所述初始条件,则确定自定义配置参数以配置所述虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数。
在判断满足批量创建的初始条件的情况下,确定用于配置虚拟机组所需的自定义配置参数。本申请实施例中,自定义配置参数可以包括源虚拟机中的虚拟机磁盘文件,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等,还包括虚拟机的名称、IP地址、虚拟机所在的主机,主机名等等。这些自定义参数都属于源虚拟机的个性化的配置参数。
本申请实施例中,通过确定用于配置虚拟机组所需的自定义配置参数文件,可以将目标虚拟机的名称、IP地址、目标虚拟机所在的主机,主机名等,称为第一部分配置参数。第一部分配置参数可以是虚拟机组的基础配置参数表,基础配置参数表至少包括:待创建的目标虚拟机的数量、IP地址、名称、待创建的目标虚拟机对应的主机和主机名称。第一部分配置参数也可以通过其他方式限定,不限于基础配置参数表的形式。第一部分配置参数可以根据第三方平台发送,或者预先创建于数据库中,不限于这两种方式,其他提供参数的方式也可以适用本申请实施例中。
本申请实施例中,将源虚拟机中虚拟机磁盘文件成为第二部分配置参数,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等。第二部分配置参数可以从源虚拟机的虚拟机磁盘文件中得到。
种子生成单元404,用于根据第二部分配置参数生成种子文件。
本申请实施例,通过将第二部分配置参数生成种子文件来实现目标虚拟机共享第二部分配置参数,从而克服现有技术中需要工具传送个性化配置参数,导致参数传输不完整的问题。
根据第二部分配置参数生成种子文件,可选地,在源虚拟机所在主机上,将源虚拟机的虚拟机磁盘文件复制到指定路径的存储池中,生成种子文件。利用其它点对点传输工具得到虚拟机磁盘文件,并通过点对点传输的方式实现多台目标虚拟机共享种子文件的方式,都可以适用本申请实施例中。
并行创建单元405,用于根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机。
本申请实施例,通过资源分配,预先给每个待创建的目标虚拟机分配目标虚拟机的名称,IP地址,目标虚拟机所在的主机,主机名称。在获取分配资源后,在相应的主机上并行地创建多个目标虚拟机,通过这种并行创建虚拟机的方法,提高了创建虚拟机的效率,也解决了现有技术中需要远程管理工具配置个性化参数的诸多问题,并且避免了出现配置冲突问题。
请参考图5,图5示出了本申请又一实施例提供的批量创建虚拟机装置的结构示意图。
如图5所示,该方法500包括:
选择单元501,用于选择源虚拟机以创建虚拟机组,所述虚拟机组包括多个待创建的目标虚拟机。
本申请实施例,在批量创建任务开始时,选择用于批量创建的源虚拟机,根据该源虚拟机批量创建多个目标虚拟机,该多个目标虚拟机组成虚拟机组。可以通过监控平台发送选择指令给指定的虚拟机,发起批量任务创建,也可以通过监控平台发送创建指令,该创建指令包括指定的虚拟机的信息,还可以采用其他等同的方式触发执行批量创建任务。
第一判断单元502,用于判断源虚拟机是否满足批量创建的初始条件。
在确定源虚拟机之后,需要对该源虚拟机是否可以用于批量创建进行判断,即判断是否满足批量创建的初始条件,该初始条件包括源虚拟机的参数信息是否完整;源虚拟机的操作系统是不是Linux系统;源虚拟机是否处于关机状态,也可以仅仅判断源虚拟机的操作系统和关机状态。
权限修改单元503,用于在满足初始条件之后,且在确定自定义配置参数以配置所述虚拟机组之前,修改源虚拟机的指示标识为第一指示值,并锁定所述源虚拟机的部分操作权限;以及
在根据第一部分配置参数,通知与虚拟机组的每个目标虚拟机一一对应的主机,来访问源虚拟机所在的主机以获取种子文件之后,且在根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机之前,修改源虚拟机的指示标识为第二指示值,并解锁部分操作权限。
本申请实施例中,在判断源虚拟机满足批量创建的初始条件之后,可以通过修改源虚拟机的指示标识为第一指示值,并锁定源虚拟机的部分操作权限来保证源虚拟机在批量创建过程中作为配置参数的信息不会发生改变。其中,第一指示值,可以理解为用于指示该源虚拟机处于“被克隆中”的标识,锁定该源虚拟机的部分操作权限,可以理解为对源虚拟机执行包括锁定开机、迁移、更改配置等操作。
通过锁定操作权限的方式保证源虚拟机被复制的信息在批量创建过程中是一致的,从而提高创建的正确率。
在完成BT种子文件的传输之后,权限修改单元503还用于修改源虚拟机的指示标识为第二指示值,并解锁源虚拟机的部分操作权限。
其中,第二指示值可以理解为用于指示该源虚拟机处于“关机中”的标识。解锁该源虚拟机的部分操作权限,可以理解为解除源虚拟机之前被锁定的权限,例如开机、迁移、更改配置等操作。通过解锁操作,使得源虚拟机在完成模板生成之后,可以直接开机,恢复正常工作状态。
参数确定单元504,用于确定自定义配置参数以配置所述虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数,其中,源虚拟机的虚拟机磁盘文件作为第二部分配置参数。
在判断满足批量创建的初始条件的情况下,对源虚拟机进行锁定操作后,确定用于配置虚拟机组所需的自定义配置参数。本申请实施例中,自定义配置参数包括虚拟机中的虚拟磁盘文件,该虚拟磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等,还包括虚拟机的名称、IP地址、虚拟机所在的主机,主机名等等。这些自定义参数属于源虚拟机的个性化配置参数。
本申请实施例中,通过确定用于配置虚拟机组所需的自定义配置参数文件,可以将目标虚拟机的名称、IP地址、目标虚拟机所在的主机,主机名等,称为第一部分配置参数。第一部分配置参数可以是虚拟机组的基础配置参数表,基础配置参数表至少包括:待创建的目标虚拟机的数量、IP地址、名称、待创建的目标虚拟机对应的主机和主机名称。第一部分配置参数也可以通过其他方式限定,不限于基础配置参数表的形式。第一部分配置参数可以根据第三方平台发送,或者预先创建于数据库中,不限于这两种方式,其他提供参数的方式也可以适用本申请实施例中。
本申请实施例中,将源虚拟机中虚拟机磁盘文件成为第二部分配置参数,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等。第二部分配置参数可以从源虚拟机的虚拟机磁盘文件中得到。
可选地,参数确定单元504,可以包括:
第一确定子单元,用于确定第三方平台提供的配置参数为第一部分配置参数;
第二确定子单元,用于确定源虚拟机的虚拟机磁盘文件为第二部分配置参数。
根据于资源需求量增加,一般批量创建目标虚拟机,需要将一台主机上运行的虚拟机的镜像文件转化为虚拟机镜像模板,其中,虚拟机镜像模板为操作系统和应用程序组合的系统镜像。其主要是通过拷贝该虚拟机镜像模板达到创建的目的。但是,创建后的目标虚拟机的操作系统、环境数据等均与该虚拟机镜像模板一模一样。其中,环境数据包括虚拟机的安全标识符(英文全称:Security Identifiers,英文简称:SID)、虚拟机名称、网络协议(英文全称:Internet Protocol,英文简称:IP)地址、管理员密码、工作域等,根据于新创建的目标虚拟机与虚拟机镜像模板的设置相同,在批量部署虚拟机后,会导致虚拟机管理出现问题,故需要对每台新部署的虚拟机的环境数据进行修改。
本申请实施例,为克服上述缺陷,将用于创建目标虚拟机的自定义配置信息划分为两部分,第一部分配置参数可以理解为环境数据,第二部分配置参数可以理解为源虚拟机的操作系统和应用程序组合的内容。
第一部分配置参数可以根据第三方平台统一发送,第三方平台可以是现有的大数据业务数据中心,也可以是具体的业务平台,例如监控平台,使得目标虚拟机的环境数据在资源分配的前提下规避了资源冲突的问题。例如,监控平台发送包含目标虚拟机的名称、IP地址、目标虚拟机所在的主机,主机名等配置参数。
第二部分配置参数可以直接从源虚拟机中确定,例如源虚拟机中的虚拟机磁盘文件,该虚拟机磁盘文件包括虚拟机上安装的应用程序,以及应用程序的参数配置,以及操作系统的参数配置等配置参数。
种子生成单元505,包括用于将虚拟机磁盘文件复制到该源虚拟机所在的主机的指定路径的存储池,生成种子文件。
本申请实施例,根据第二部分配置参数生成种子文件,可以将源虚拟机的虚拟磁盘文件复制到源虚拟机所在的主机的指定路径的存储池,生成种子文件。
源虚拟机与物理虚拟机相同,在磁盘文件中存储了系统文件,安装的应用程序的配置参数等。因此,将源虚拟机的虚拟磁盘文件复制到源虚拟机所在的主机上的指定路径的存储池,根据该虚拟磁盘文件生成种子文件。例如,该指定路径的文件夹为存储池,该存储池为预先建立的用于克隆的存储池。例如,指定路径可以是/app/clone。
可选地,采用BT传输第二部分配置参数,则需要将该虚拟磁盘文件复制到指定路径的/app/clone,生成该虚拟磁盘文件对应的BT种子文件。
在完成生成种子文件之后,刷新该指定路径的存储池。
本申请实施例,通过将第二部分配置参数生成种子文件来实现多台目标虚拟机共享第二部分配置参数,从而克服现有技术中需要工具传送个性化配置参数,导致参数传输不完整的问题。
访问通知单元506,用于根据第一部分配置参数,通知与虚拟机组的每个目标虚拟机一一对应的主机,来访问源虚拟机所在的主机以获取种子文件。
本申请实施例,在种子生成单元之后,可选地,访问通知单元506,用于根据第一部分配置参数,通知与虚拟机组的每个目标虚拟机一一对应的主机,来访问源虚拟机所在的主机以获取所述种子文件。在经过资源分配后,第三方平台可以分配用于创建目标虚拟机所需的资源。例如,可以确定第三方平台分配的资源信息作为第一部分配置参数,该配置参数包含为每台待创建的目标虚拟机分配的资源,如目标虚拟机的名称,IP地址,目标虚拟机所在的主机,主机名称等。
为了实现BT传输源虚拟机的镜像文件,根据第一部分配置参数可以得到虚拟机所在的主机的信息,然后,通知这些主机来访问源虚拟机以获取BT种子文件。为了保证目标虚拟机所在的主机与源虚拟机所在的主机之间成功建立连接的几率,可选地,经过检查源虚拟机所在的主机的TCP端口是否可以使用,然后,在可以使用的情况下,选择HTTP服务来获取BT种子文件。可选地,通知目标虚拟机所在的主机通过wget方式来访问该TCP端口以获取BT种子文件。
可选地,访问通知单元506还包括:
端口判断子单元5061,判断源虚拟机所在主机的TCP端口是否能正常使用。
开启服务子单元5062,用于如果能正常使用,则开启该主机的HTTP服务。
访问子单元5063,通知与虚拟机组的每个目标虚拟机一一对应的主机,通过wget方式来访问该TCP端口以获取种子文件。
本申请实施例,可以利用BT传输虚拟磁盘文件来保证镜像文件的传输速度不受创建目标虚拟机的数量的影响,从而快速地完成批量创建,提升了批量创建的效率。
并行创建单元507,用于根据第一部分配置参数和种子文件,在与虚拟机组的每个目标虚拟机一一对应的主机上并行地创建目标虚拟机。
本申请实施例,通过资源分配,预先为每个待创建的目标虚拟机分配虚拟机名称,IP地址,目标虚拟机所在的主机,主机名称。在获取这些已经分配的资源之后,在相应的主机上可以同时并行地执行创建目标虚拟机。通过这种并行创建虚拟机的方法,提高了批量创建目标虚拟机的效率,也解决了现有技术中需要远程管理工具配置个性化参数的诸多问题,且避免出现配置冲突问题。
为了更清楚地描述并行创建目标虚拟机的过程,如图6所示,并行创建单元507,可以进一步包括:
调用子单元601,用于调用与虚拟机组的每个目标虚拟机一一对应的线程子单元;
线程子单元602,用于独立地在与虚拟机组的每个目标虚拟机一一对应的主机上配置第二部分配置参数,然后继续配置第一部分配置参数,以创建所述虚拟机。
本申请实施例,在多个目标虚拟机对应的主机上配置参数,可以通过并行的多个线程同时执行,从而提高创建虚拟机的效率。
其中每一个线程独立地实现目标虚拟机的配置,在每个目标虚拟机所在主机获取BT种子文件后,触发它的线程开始获取BT种子文件对应的第二部分配置参数的镜像文件,进而将第二部分配置参数的镜像文件存储到每个虚拟机对应的主机的相应的存储空间,例如创建的用于存储镜像文件的存储池和文件夹。然后,线程调用libvirt接口将镜像文件复制到该存储池和文件夹,并修改该镜像文件的名称。最后,线程控制生成目标虚拟机的XML配置文件。XML配置文件包括:源虚拟机的硬件配置参数等。例如包括CPU性能参数,内存大小参数,网卡配置参数等等硬件配置的相关参数。
在完成第二部分配置参数复制之后,继续由线程单独地配置第一部分配置参数,从而完成目标虚拟机的创建。例如,线程控制开启目标虚拟机,判断目标虚拟机是不是已经进入操作系统,如果进入,则对目标虚拟机进行预处理,预处理可以理解为将目标虚拟机中的环境参数的相关设置恢复成默认值,例如,IP地址等等。在预处理之后,开始配置第一部分配置参数,也可以称为注入第一部分配置参数,即将第一部分配置参数信息,相应地填写到目标虚拟机中对应参数的位置,这里的第一部分配置参数可以理解为目标虚拟机在网络中唯一归属的网络参数和公用网络参数,即第一步部分配置参数包括第一部分和第二部分。其中,第一部分为唯一归属的网络参数,例如IP地址,虚拟机的名称等。在完成这些配置后,继续配置虚拟机的其他网络配置参数,即第二部分为公用网络参数,例如掩码地址,网关,DNS服务器地址等,这些配置参数属于同一网段多台虚拟机共有的参数,可以定义称为公用网络参数,即公用网络参数至少包括掩码地址,网关,DNS服务器地址等,其他等同的参数也可包含在内。
在这些配置都完成之后,重启目标虚拟机,再次判断配置完参数后的目标虚拟机是否进入操作系统,如果进入,继续配置应用配置参数。应用配置参数是指将目标虚拟机应用到具体的场景,需要配置的相关参数,例如将目标虚拟机配置应用配置参数后,作为客户端应用于监控平台,例如需要配置客户端的相关信息配置、远程监控配置参数等等。
完成上述配置过程,则完成创建目标虚拟机。
本申请实施例,通过并行创建多个目标虚拟机,可以快速扩展应用,并保证创建的目标虚拟机不会产生资源冲突,且无需借助远程管理工具进行管理,提升了创建目标虚拟机的效率。
可选地,线程子单元602还可以包括:
传输通知子单元6021,用于通知与虚拟机组的每个目标虚拟机一一对应的主机,使得该主机开启传输应用,并根据种子文件获取第二部分配置参数的镜像文件。
存储创建子单元6022,用于在与虚拟机组的每个虚拟机一一对应的主机上,创建用于存储镜像文件的存储池和文件夹。
文件名修改子单元6023,用于调用libvirt接口将镜像文件复制到该存储池的该文件夹内,并按照第一部分配置参数重新命名镜像文件。
配置文件生成子单元6024,用于生成目标虚拟机的XML配置文件。
开机子单元6025,用于开启目标虚拟机。
操作系统判断子单元6026,用于判断目标虚拟机是否已经进入操作系统。
预处理子单元6027,用于如果已经进入操作系统,则对目标虚拟机进行预处理。
第一配置子单元6028,用于配置目标虚拟机的第一部分配置参数的第一部分。
第二配置子单元6029,用于配置目标虚拟机的第一部分配置参数的第二部分。
重启子单元6030,用于重新启动目标虚拟机,之后进入操作系统判断子单元6026。
第三配置子单元6031,用于如果已经进入操作系统,则配置目标虚拟机的应用配置参数。
应当理解,装置400或500中记载的诸单元或模块与参考图1或2描述的方法中的各个步骤相对应。根据此,上文针对方法描述的操作和特征同样适用于装置400或500及其中包含的单元。装置400或500可以预先实现在电子设备的浏览器或其他安全应用中,也可以通过下载等方式而加载到电子设备的浏览器或其安全应用中。装置400或500中的相应单元可以与电子设备中的单元相互配合以实现本申请实施例的方案。
下面参考图7,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统700的结构示意图。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经根据诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考图X描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行图1或2的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括选择单元、第一判断单元以及参数获取单元、种子生成单元、并行创建单元。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,种子生成单元还可以被描述为“用于根据所述第二部分配置参数生成种子文件的单元”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的批量创建虚拟机的方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,根据上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (21)
1.一种批量创建虚拟机的方法,其特征在于,该方法包括:
选择源虚拟机以创建虚拟机组,所述虚拟机组包括多个待创建的目标虚拟机;
判断所述源虚拟机是否满足批量创建的初始条件;
如果满足所述初始条件,则确定自定义配置参数以配置所述虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数;
根据所述第二部分配置参数生成种子文件;
根据所述第一部分配置参数和所述种子文件,在与所述虚拟机组的每个目标虚拟机一一对应的主机上并行地创建所述目标虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述确定自定义配置参数以配置所述虚拟机组,包括:
确定第三方平台提供的配置参数为所述第一部分配置参数;
确定所述源虚拟机的虚拟机磁盘文件为所述第二部分配置参数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二部分配置参数生成种子文件,还包括:
将所述虚拟机磁盘文件复制到该源虚拟机所在的主机的指定路径的存储池,生成种子文件。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述第二部分配置参数生成种子文件之后,该方法还包括:
根据所述第一部分配置参数,通知与所述虚拟机组的每个目标虚拟机一一对应的主机,来访问所述源虚拟机所在的主机以获取所述种子文件。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述第一部分配置参数和所述种子文件,在与所述虚拟机组的每个虚拟机一一对应的主机上并行地创建所述目标虚拟机,包括:
调用与所述虚拟机组的每个目标虚拟机一一对应的线程;
所述线程独立地在与所述虚拟机组的每个目标虚拟机一一对应的主机上配置所述第二部分配置参数,然后继续配置所述第一部分配置参数以创建所述目标虚拟机。
6.根据权利要求5所述的方法,其特征在于,所述线程独立地在与所述虚拟机组的每个目标虚拟机一一对应的主机上配置所述第二部分配置参数,包括:
通知与所述虚拟机组的每个目标虚拟机一一对应的主机,使得该主机开启传输应用,并根据所述种子文件获取所述第二部分配置参数的镜像文件;
在与所述虚拟机组的每个目标虚拟机一一对应的主机上,创建用于存储所述镜像文件的存储池和文件夹;
调用libvirt接口将所述镜像文件复制到该存储池的该文件夹内,并按照所述第一部分配置参数重新命名所述镜像文件;
生成所述目标虚拟机的XML配置文件。
7.根据权利要求6所述的方法,其特征在于,所述继续配置所述第一部分配置参数以创建所述目标虚拟机,还包括:
开启所述目标虚拟机;
判断所述目标虚拟机是否已经进入操作系统;
如果已经进入操作系统,则对所述目标虚拟机进行预处理;
配置所述目标虚拟机的所述第一部分配置参数的第一部分;
配置所述目标虚拟机的所述第一部分配置参数的第二部分;
重新启动所述目标虚拟机;
在重新启动所述目标虚拟机之后,返回所述判断所述目标虚拟机是否已经进入操作系统的步骤,得到判断结果为已进入所述操作系统时,配置所述目标虚拟机的应用配置参数。
8.根据权利要求4-7任一项所述的方法,其特征在于,所述根据所述第一部分配置参数,通知与所述虚拟机组的每个目标虚拟机一一对应的主机,来访问所述源虚拟机所在的主机以获取所述种子文件,包括:
判断所述源虚拟机所在主机的TCP端口是否能正常使用;
如果能正常使用,则开启该主机的HTTP服务;
通知与所述虚拟机组的每个目标虚拟机一一对应的主机,通过wget方式来访问该TCP端口以获取所述种子文件。
9.根据权利要求8所述的方法,其特征在于,该方法还包括:
在所述满足所述初始条件之后,且在所述确定自定义配置参数以配置所述虚拟机组之前,修改所述源虚拟机的指示标识为第一指示值,并锁定所述源虚拟机的部分操作权限;以及
在所述根据所述第一部分配置参数,通知与所述虚拟机组的每个目标虚拟机一一对应的主机,来访问所述源虚拟机所在的主机以获取所述种子文件之后,且在所述根据所述第一部分配置参数和所述种子文件,在与所述虚拟机组的每个目标虚拟机一一对应的主机上并行地创建所述目标虚拟机之前,修改所述源虚拟机的指示标识为第二指示值,并解锁所述部分操作权限。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述第一部分配置参数是所述虚拟机组的基础配置参数表,所述基础配置参数表至少包括:待创建的目标虚拟机的数量、IP地址、名称、待创建的目标虚拟机对应的主机和主机名称。
11.一种批量创建虚拟机的装置,其特征在于,该装置包括:
选择单元,用于选择源虚拟机以创建虚拟机组,所述虚拟机组包括多个待创建的目标虚拟机;
第一判断单元,用于判断所述源虚拟机是否满足批量创建的初始条件;
参数确定单元,用于如果满足所述初始条件,则确定自定义配置参数以配置所述虚拟机组,该自定义配置参数包括第一部分配置参数和第二部分配置参数;
种子生成单元,用于根据所述第二部分配置参数生成种子文件;
并行创建单元,用于根据所述第一部分配置参数和所述种子文件,在与所述虚拟机组的每个目标虚拟机一一对应的主机上并行地创建所述目标虚拟机。
12.根据权利要求11所述的装置,其特征在于,所述参数确定单元,包括:
第一确定子单元,用于确定第三方平台提供的配置参数为所述第一部分配置参数;
第二确定子单元,用于确定所述源虚拟机的虚拟机磁盘文件为所述第二部分配置参数。
13.根据权利要求12所述的装置,其特征在于,所述种子生成单元,还包括:
用于将所述虚拟机磁盘文件复制到该源虚拟机所在的主机的指定路径的存储池,生成种子文件。
14.根据权利要求11-13任一项所述的装置,其特征在于,所述种子生成单元之后,该装置还包括:
访问通知单元,用于根据所述第一部分配置参数,通知与所述虚拟机组的每个目标虚拟机一一对应的主机,来访问所述源虚拟机所在的主机以获取所述种子文件。
15.根据权利要求11-14任一项所述的装置,其特征在于,所述并行创建单元,包括:
调用子单元,用于调用与所述虚拟机组的每个目标虚拟机一一对应的线程子单元;
所述线程子单元,用于独立地在与所述虚拟机组的每个目标虚拟机一一对应的主机上配置所述第二部分配置参数,然后继续配置所述第一部分配置参数和公用参数以创建所述目标虚拟机。
16.根据权利要求15所述的装置,其特征在于,所述线程子单元还包括:
传输通知子单元,用于通知与所述虚拟机组的每个目标虚拟机一一对应的主机,使得该主机开启传输应用,并根据所述种子文件获取所述第二部分配置参数的镜像文件;
存储创建子单元,用于在与所述虚拟机组的每个目标虚拟机一一对应的主机上,创建用于存储所述镜像文件的存储池和文件夹;
文件名修改子单元,用于调用libvirt接口将所述镜像文件复制到该存储池的该文件夹内,并按照所述第一部分配置参数重新命名所述镜像文件;
配置文件生成子单元,用于生成所述目标虚拟机的XML配置文件。
17.根据权利要求16所述的装置,其特征在于,在配置文件生成子单元之后,所述线程子单元还包括:
开机子单元,用于开启所述目标虚拟机;
操作系统判断子单元,用于判断所述目标虚拟机是否已经进入操作系统;
预处理子单元,用于如果已经进入所述操作系统,则对所述目标虚拟机进行预处理;
第一配置子单元,用于配置所述目标虚拟机的所述第一部分配置参数的第一部分;
第二配置子单元,用于配置所述目标虚拟机的所述第一部分配置参数的第二部分;
重启子单元,用于重新启动所述目标虚拟机;
第三配置子单元,在所述重启子单元之后,返回所述操作系统判断子单元,得到判断结果为已进入所述操作系统时,用于配置所述目标虚拟机的应用配置参数。
18.根据权利要求14-17任一项所述的装置,其特征在于,所述访问通知单元,包括:
端口判断子单元,用于判断所述源虚拟机所在主机的TCP端口是否能正常使用;
开启服务子单元,用于如果能正常使用,则开启该主机的HTTP服务;
访问子单元,用于通知与所述虚拟机组的每个目标虚拟机一一对应的主机,通过wget方式来访问该TCP端口以获取所述种子文件。
19.根据权利要求18所述的装置,其特征在于,该装置还包括:
权限修改单元,用于在所述满足所述初始条件之后,且在所述确定自定义配置参数以配置所述虚拟机组之前,修改所述源虚拟机的指示标识为第一指示值,并锁定所述源虚拟机的部分操作权限;以及
在所述根据所述第一部分配置参数,通知与所述虚拟机组的每个目标虚拟机一一对应的主机来访问所述源虚拟机所在的主机以获取所述种子文件之后,且在所述根据所述第一部分配置参数和所述种子文件,在与所述虚拟机组的每个目标虚拟机一一对应的主机上并行地创建所述目标虚拟机之前,修改所述源虚拟机的指示标识为第二指示值,并解锁所述部分操作权限。
20.一种设备,包括处理器、存储装置;其特征在于:
所述存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述处理器执行,使得所述处理器实现如权利要求1-10中任一项所述的方法。
21.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711326838.XA CN108170508A (zh) | 2017-12-12 | 2017-12-12 | 批量创建虚拟机的方法、装置、设备及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711326838.XA CN108170508A (zh) | 2017-12-12 | 2017-12-12 | 批量创建虚拟机的方法、装置、设备及其存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108170508A true CN108170508A (zh) | 2018-06-15 |
Family
ID=62525778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711326838.XA Pending CN108170508A (zh) | 2017-12-12 | 2017-12-12 | 批量创建虚拟机的方法、装置、设备及其存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170508A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933405A (zh) * | 2019-01-09 | 2019-06-25 | 平安科技(深圳)有限公司 | 虚拟机创建方法及装置、电子设备、存储介质 |
CN110502316A (zh) * | 2019-08-26 | 2019-11-26 | 杭州安恒信息技术股份有限公司 | 一种基于kvm平台的测试机配置方法、系统及相关装置 |
CN110554906A (zh) * | 2019-09-10 | 2019-12-10 | 中国工商银行股份有限公司 | 虚拟机配置管理方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101695077A (zh) * | 2009-09-30 | 2010-04-14 | 曙光信息产业(北京)有限公司 | 一种虚拟机的操作系统部署方法、系统及设备 |
CN101937360A (zh) * | 2010-09-01 | 2011-01-05 | 浪潮(北京)电子信息产业有限公司 | 一种创建虚拟机的方法和装置 |
CN102110009A (zh) * | 2009-12-28 | 2011-06-29 | 中国移动通信集团公司 | 一种在虚拟化平台中部署应用的方法及虚拟平台管理器 |
US8065676B1 (en) * | 2007-04-24 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Automated provisioning of virtual machines for a virtual machine buffer pool and production pool |
CN103713941A (zh) * | 2013-12-20 | 2014-04-09 | 汉柏科技有限公司 | 基于qcow2格式的虚拟机镜像克隆方法及系统 |
CN103856343A (zh) * | 2012-12-05 | 2014-06-11 | 北京华胜天成科技股份有限公司 | 配置虚拟机网络信息的方法及系统 |
CN105808323A (zh) * | 2016-04-05 | 2016-07-27 | 浪潮电子信息产业股份有限公司 | 一种虚拟机创建方法及系统 |
CN105975329A (zh) * | 2016-04-29 | 2016-09-28 | 北京奇虎科技有限公司 | 一种虚拟机的创建方法和装置 |
CN106020937A (zh) * | 2016-07-07 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 一种创建虚拟机的方法、装置及系统 |
CN107819802A (zh) * | 2016-09-13 | 2018-03-20 | 华为软件技术有限公司 | 一种在节点集群中的镜像获取方法、节点设备及服务器 |
-
2017
- 2017-12-12 CN CN201711326838.XA patent/CN108170508A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065676B1 (en) * | 2007-04-24 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Automated provisioning of virtual machines for a virtual machine buffer pool and production pool |
CN101695077A (zh) * | 2009-09-30 | 2010-04-14 | 曙光信息产业(北京)有限公司 | 一种虚拟机的操作系统部署方法、系统及设备 |
CN102110009A (zh) * | 2009-12-28 | 2011-06-29 | 中国移动通信集团公司 | 一种在虚拟化平台中部署应用的方法及虚拟平台管理器 |
CN101937360A (zh) * | 2010-09-01 | 2011-01-05 | 浪潮(北京)电子信息产业有限公司 | 一种创建虚拟机的方法和装置 |
CN103856343A (zh) * | 2012-12-05 | 2014-06-11 | 北京华胜天成科技股份有限公司 | 配置虚拟机网络信息的方法及系统 |
CN103713941A (zh) * | 2013-12-20 | 2014-04-09 | 汉柏科技有限公司 | 基于qcow2格式的虚拟机镜像克隆方法及系统 |
CN105808323A (zh) * | 2016-04-05 | 2016-07-27 | 浪潮电子信息产业股份有限公司 | 一种虚拟机创建方法及系统 |
CN105975329A (zh) * | 2016-04-29 | 2016-09-28 | 北京奇虎科技有限公司 | 一种虚拟机的创建方法和装置 |
CN106020937A (zh) * | 2016-07-07 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 一种创建虚拟机的方法、装置及系统 |
CN107819802A (zh) * | 2016-09-13 | 2018-03-20 | 华为软件技术有限公司 | 一种在节点集群中的镜像获取方法、节点设备及服务器 |
Non-Patent Citations (1)
Title |
---|
万宏凤: "基于OpenStack的云端自动化部署机制研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933405A (zh) * | 2019-01-09 | 2019-06-25 | 平安科技(深圳)有限公司 | 虚拟机创建方法及装置、电子设备、存储介质 |
CN110502316A (zh) * | 2019-08-26 | 2019-11-26 | 杭州安恒信息技术股份有限公司 | 一种基于kvm平台的测试机配置方法、系统及相关装置 |
CN110554906A (zh) * | 2019-09-10 | 2019-12-10 | 中国工商银行股份有限公司 | 虚拟机配置管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11089115B2 (en) | Discovery of cloud-based infrastructure and resources | |
CN108536519B (zh) | 自动搭建Kubernetes主节点的方法及终端设备 | |
US10931599B2 (en) | Automated failure recovery of subsystems in a management system | |
CN109194506B (zh) | 区块链网络部署方法、平台及计算机存储介质 | |
US10749943B1 (en) | Discovery and mapping of cloud-based resources | |
US8762986B2 (en) | Advanced packaging and deployment of virtual appliances | |
CN112214330A (zh) | 集群中主节点的部署方法、装置及计算机可读存储介质 | |
US8495352B2 (en) | System and method for instantiation of distributed applications from disk snapshots | |
US8442958B2 (en) | Server change management | |
EP3639134B1 (en) | Detecting and managing recurring patterns in device and service configuration data | |
US10970107B2 (en) | Discovery of hyper-converged infrastructure | |
US10924344B2 (en) | Discovery and mapping of cloud-based resource modifications | |
KR20080027230A (ko) | 서버 팜에서의 솔루션 배치 | |
WO2013122815A1 (en) | Coordination of processes in cloud computing environments | |
CN110352401A (zh) | 具有按需代码执行能力的本地装置协调器 | |
CN105589731B (zh) | 一种虚拟机迁移方法和装置 | |
CN108170508A (zh) | 批量创建虚拟机的方法、装置、设备及其存储介质 | |
EP3230865B1 (en) | Recovery execution system using programatic generation of actionable workflows | |
CN116263694A (zh) | 仓库集群的部署方法、装置以及计算设备 | |
CN115248692A (zh) | 一种支持多种深度学习框架模型云端部署的装置及方法 | |
US20130073824A1 (en) | Copying segments of a virtual resource definition | |
CN109218378B (zh) | 一种基于云平台的小型物流管理平台设计方法 | |
US11595493B2 (en) | System and method for namespace masking in an integration flow | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
CN115480910A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180615 |