一种虚拟机创建方法、装置、电子设备及存储介质与流程



1.本技术涉及计算机技术领域,具体而言,涉及一种虚拟机创建方法、装置、电子设备及存储介质。


背景技术:



2.随着虚拟化技术的不断发展,虚拟机被越来越广泛地应用在各个技术领域,虚拟机是指通过软件模拟的具有完整硬件系统功能的完全隔离的一个独立的计算机系统,在实体计算机中能够完成的工作在虚拟机中都可以实现。在使用openstack或者qemu-kvm搭建虚拟化平台时,创建虚拟机时需要支持一些pci硬件设备(pci硬件设备是指通过pci总线连接的设备)。
3.目前,在利用openstack创建多个支持硬件设备的虚拟机时,每个虚拟机都需要调用写死的硬件支持代码,例如:当创建多个支持usb设备的虚拟机时,针对每个虚拟机都需要在该虚拟机对应的config.py文件中单独设置对应的libvirtconfigguestusb类来进行usb设备的属性定义,导致在创建支持硬件设备的虚拟机时,创建效率低、灵活性差的问题。


技术实现要素:



4.有鉴于此,本技术的目的在于提供一种虚拟机创建方法、装置、电子设备及存储介质,以解决在创建支持硬件设备的虚拟机时,创建效率低、灵活性差的问题。
5.第一方面,本技术实施例提供了一种虚拟机创建方法,包括:
6.获取目标实例对应的多个元数据
7.针对每个元数据,确定该元数据是否为第一类元数据,第一类元数据是定义硬件设备属性的元数据;
8.若该元数据是第一类元数据,对该元数据进行解析获取该元数据中的值,该元数据中的值包括硬件设备添加方法以及硬件设备参数;
9.执行不同第一类元数据对应的多个硬件设备添加方法,将每个第一类元数据对应的硬件设备参数写入到虚拟机的xml定义文件中;
10.根据xml定义文件生成目标实例对应的虚拟机。
11.可选地,确定该元数据是否为第一类元数据,包括:确定该元数据对应的键值对中键的取值是否为设定格式;若键值对中键的取值为设定格式,确定该元数据为第一类元数据。
12.可选地,元数据还包括第二类元数据,第二类元数据是指openstack可直接识别的元数据;获取目标实例对应的多个元数据,包括:确定目标实例中第二类元数据的取值;按照设定格式设置目标实例中第二类元数据的键值对的取值。
13.可选地,确定该元数据对应的键值对中的键是否为设定格式,包括:确定该元数据对应的键值对中键的取值是否以设定字符开头;若键值对中键的取值是以设定字符开头,确定该元数据对应的键值对中的键为设定格式。
14.可选地,执行不同第一类元数据对应的多个硬件设备添加方法,包括:针对每个第一类元数据,确定该第一类元数据对应的硬件设备添加方法;将该第一类元数据对应的硬件设备参数作为该硬件设备添加方法的参数,并执行该硬件设备添加方法。
15.可选地,根据xml定义文件生成目标虚拟机,包括:将xml定义文件发送至libvirt;libvirt根据xml定义文件中的硬件设备参数生成目标虚拟机。
16.可选地,第一类元数据包括音频元数据和/或usb元数据。
17.第二方面,本技术实施例还提供了一种虚拟机创建装置,所述装置包括:
18.元数据确定模块,用于获取目标实例对应的多个元数据;
19.类型确定模块,用于针对每个元数据,确定该元数据是否为第一类元数据,第一类元数据是定义硬件设备属性的元数据;
20.数据解析模块,用于若该元数据是第一类元数据,对该元数据进行解析获取该元数据中的值,该元数据中的值包括硬件设备添加方法以及硬件设备参数;
21.参数写入模块,用于执行不同第一类元数据对应的多个硬件设备添加方法,将每个第一类元数据对应的硬件设备参数写入到虚拟机的xml定义文件中;
22.虚拟机创建模块,用于根据xml定义文件生成目标实例对应的虚拟机。
23.第三方面,本技术实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的虚拟机创建方法的步骤。
24.第四方面,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的虚拟机创建方法的步骤。
25.本技术实施例带来了以下有益效果:
26.本技术实施例提供的一种虚拟机创建方法、装置、电子设备及存储介质,能够针对待创建的虚拟机确定该虚拟机对应的目标示例的多个元数据,不同的元数据可以对应不同的硬件设备,利用元数据中的硬件设备添加方法将多个硬件设备参数写入虚拟机的xml定义文件中,以生成支持硬件设备的虚拟机,与现有技术中的虚拟机创建方法相比,解决了在创建支持硬件设备的虚拟机时,创建效率低、灵活性差的问题。
27.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
28.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
29.图1示出了本技术实施例所提供的虚拟机创建方法的流程图;
30.图2示出了本技术实施例所提供的虚拟机创建装置的结构示意图;
31.图3示出了本技术实施例所提供的电子设备的结构示意图。
具体实施方式
32.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本技术保护的范围。
33.值得注意的是,在本技术提出之前,随着虚拟化技术的不断发展,虚拟机被越来越广泛地应用在各个技术领域,虚拟机是指通过软件模拟的具有完整硬件系统功能的完全隔离的一个独立的计算机系统,在实体计算机中能够完成的工作在虚拟机中都可以实现。在使用openstack或者qemu-kvm搭建虚拟化平台时,创建虚拟机时需要支持一些pci硬件设备(pci硬件设备是指通过pci总线连接的设备)。目前,在利用openstack创建多个支持硬件设备的虚拟机时,每个虚拟机都需要调用写死的硬件支持代码,例如:当创建多个支持usb设备的虚拟机时,针对每个虚拟机都需要在该虚拟机对应的config.py文件中单独设置对应的libvirtconfigguestusb类来进行usb设备的属性定义,导致在创建支持硬件设备的虚拟机时,创建效率低、灵活性差的问题。
34.基于此,本技术实施例提供了一种虚拟机创建方法,以提高在创建支持硬件设备的虚拟机时的创建效率以及灵活性。
35.下面对本技术中涉及到的专业名词进行说明。
36.openstack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。它能够为私有云和公有云提供可扩展的弹性的云计算服务,该项目的目标是提供实施简单、可大规模扩展且标准统一的云计算管理平台。
37.flavor是openstack中的一种特有的概念,也叫实例类型或者类型模板,实例即为虚拟机。实例类型定义了虚拟机所分配的cpu个数,内存大小,磁盘大小等。
38.qemu-kvm是kvm与qemu的结合,kvm负责cpu虚拟化以及内存虚拟化,qemu模拟其它io设备。其中,kvm是一种开源的系统虚拟机模块。
39.请参阅图1,图1为本技术实施例所提供的一种虚拟机创建方法的流程图。如图1所示,本技术实施例提供的虚拟机创建方法,包括:
40.步骤s101,获取目标实例对应的多个元数据。
41.该步骤中,目标实例可指实例类型(flavor)的一个具体实例,目标实例用于创建支持硬件设备的虚拟机。
42.元数据可指实例元数据,元数据是一组键值对,元数据用于定义目标实例的各种属性。
43.示例性的,元数据可以是key=hw:cpu_cores,value=2,用于对虚拟机的cpu的核数进行设置;也可以是key=hw:cpu_threads,value=2,用于对虚拟机的cpu的线程数进行设置。
44.在本技术实施例中,在设置目标实例时,首先确定该目标实例的基础属性,例如:cpu线程数等各种基础属性,同时确定该目标实例对应的虚拟机需要提供哪些硬件支持,这
些硬件支持对应于自定义属性,例如:提供usb、音频设备等硬件支持。确定目标实例的基础属性以及自定义属性后,可在openstack中为这些属性配置对应的元数据。
45.在一可选实施例中,元数据还包括第二类元数据,第二类元数据是指openstack可直接识别的元数据;获取目标实例对应的多个元数据,包括:确定目标实例中第一类元数据的取值;按照设定格式设置目标实例中第二类元数据的键值对的取值。
46.这里,将元数据分为两类,分别是第一类元数据以及第二类元数据。
47.第一类元数据可指定义硬件设备属性的元数据,第一类元数据用于在虚拟机中添加硬件设备支持。其中,硬件设备属性可指待添加的硬件设备的设备属性,第一类元数据是用户自己定义的元数据,能够被硬件设备添加方法识别。
48.以定义音频硬件设备为例,第一类元数据是键值对的形式,其中,元数据的键为:key=tricolor:hw_add_sound。元数据的值包括硬件设备添加方法、硬件设备参数以及硬件设备的标识等,具体参照如下形式:value={"tricolor:hw_add_sound":{"function":"add_device","xml":"《sound,model="ich6"》《alias,name="sound0"》《/sound》"}。
49.在一可选实施例中,第一类元数据包括音频元数据和/或usb元数据。
50.具体的,第一类元数据定义的硬件设备包括但不限于:音频设备、usb设备。
51.第二类元数据可指能够被openstack直接识别的元数据,可在flavor中设置第二类元数据,可以将第二类元数据理解为flavor的附加值。可在第二类元数据中定义虚拟机基础属性的元数据,然后由openstack将第二类元数据设置给虚拟机。其中,基础属性指的是虚拟机的cpu的核数、线程数等对应的属性。
52.以上述示例为例,元数据key=hw:cpu_cores,value=2以及元数据key=hw:cpu_threads,value=2均为第二类元数据。
53.具体的,针对待创建的虚拟机,设置虚拟机cpu的核数、线程数、插槽数等第二类元数据的取值,并按照设定格式设置第一类元数据的键值对。其中,设定格式可以是键值对中键的取值的字符格式,例如:以tricolor:hw作为起始字符,起始字符后为具体硬件设备的名称,以音频硬件设备为例键的取值为tricolor:hw_add_sound,以usb硬件设备为例键的取值为tricolor:hw_add_usb。另外,设定格式也可以是以特定字符作为结尾的其他格式。
54.步骤s102,针对每个元数据,确定该元数据是否为第一类元数据。
55.该步骤中,由于只有第一类元数据中配置了硬件设备参数以及硬件设备添加方法,因此,在为目标实例设置多个元数据后,需要确定每个元数据的类型,如果是第一类元数据则可以获取该元数据对应的键值对中的键和值,根据获取的键和值来创建支持硬件设备的虚拟机。如果是第二类元数据则可以根据第二类元数据对应键值对中的键和值来设置虚拟机的基础属性。
56.在一可选实施例中,确定该元数据是否为第一类元数据,包括:确定该元数据对应的键值对中键的取值是否为设定格式;若键值对中键的取值为设定格式,确定该元数据为第一类元数据。
57.这里,设定格式可指预设的字符格式,设定格式用于判断元数据的类型。
58.示例性的,设定格式可以是字符串以何种字符开头,也可以是字符串以何种字符结尾,还可以是字符串以何种标识符连接。
59.具体的,针对每个元数据,先获取该元数据键值对中的键的取值,即key的取值,以
key=hw:cpu_cores为例,则获取hw:cpu_cores,确定hw:cpu_cores是否符合设定格式,若符合设定格式则确定该元数据为第一类元数据。
60.在一可选实施例中,确定该元数据对应的键值对中的键是否为设定格式,包括:确定该元数据对应的键值对中的键是否以设定字符开头;若键值对中的键是以设定字符开头,确定该元数据对应的键值对中的键为设定格式。
61.以上述示例为例,假设设定字符为“tricolor:hw_”,则判断hw:cpu_cores是否是以tricolor:hw_为开头的字符串,由于hw:cpu_cores不是以hw:cpu_cores为开头的字符串,因此,确定元数据key=hw:cpu_cores,value=2不是第一类元数据。对于键的取值为tricolor:hw_add_sound的元数据,由于该取值是以tricolor:hw_开头的字符串,因此该键对应的元数据为第一类元数据。
62.步骤s103,若该元数据是第一类元数据,对该元数据进行解析获取该元数据中的值。
63.该步骤中,元数据中的值包括硬件设备添加方法以及硬件设备参数。
64.元数据键值对中的值还包括:键的名称、方法标识、写入文件标识、硬件设备参数以及硬件设备标识。
65.以上述示例为例,假设元数据对应的键值对中的值为如下形式:value={"tricolor:hw_add_sound":{"function":"add_device","xml":"《sound,model="ich6"》《alias,name="sound0"》《/sound》"},则该键值对的值中键的名称为tricolor:hw_add_sound,方法标识为function,硬件设备添加方法的方法名称为add_device,写入文件标识为xml、硬件设备参数为sound,model="ich6",硬件设备标识为sound0。
66.在本技术实施例中,由于第一类元数据的值中包括了虚拟机所要支持的硬件设备的参数以及添加方法,因此,需要对第一类元数据进行解析,以获得硬件设备参数以及硬件设备添加方法。
67.步骤s104,执行不同第一类元数据对应的多个硬件设备添加方法,将每个第一类元数据对应的硬件设备参数写入到虚拟机的xml定义文件中。
68.该步骤中,xml定义文件可指虚拟机的定义文件,xml定义文件用于定义虚拟机的属性,例如:内核、磁盘、网卡等。
69.在创建虚拟机时会首先启动xml定义文件,以设置虚拟机属性。
70.在一可选实施例中,执行不同第一类元数据对应的多个硬件设备添加方法,包括:针对每个第一类元数据,确定该第一元数据对应的硬件设备添加方法;将该第一类元数据对应的硬件设备参数作为该硬件设备添加方法的参数,并执行该硬件设备添加方法。
71.在本技术实施例中,可为目标实例设置多个第一类元数据,每个第一类元数据对应一种硬件设备,若设置三个第一类元数据,则创建的目标实例对应的虚拟机可同时支持三种硬件设备。
72.具体的,每个第一类元数据对应一组硬件设备参数以及硬件设备添加方法,解析第一类元数据获取硬件设备添加方法后,将硬件设备参数作为参数代入到硬件设备添加方法中,然后执行该硬件设备添加方法,即能够将该第一类元数据中的硬件设备参数写入到xml定义文件中,当将三个第一类元数据分别对应的硬件设备参数均写入到xml定义文件后,启动xml定义文件即可生成支持上述三种硬件设备的虚拟机。
73.在一可选实施例中,在执行不同第一类元数据对应的多个硬件设备添加方法之前,还包括:将每个第二类元数据对应的取值写入到虚拟机的xml定义文件中。
74.具体的,不但需要将第一元数据中的硬件设备参数写入到xml定义文件中,还需要将第二类元数据中虚拟机基础属性的取值写入到xml定义文件中。
75.步骤s105,根据xml定义文件生成目标实例对应的虚拟机。
76.该步骤中,启动写入硬件设备参数的xml定义文件后,即可生成支持支持多种硬件设备的虚拟机。
77.在一可选实施例中,根据xml定义文件生成目标虚拟机,包括:将xml定义文件发送至libvirt;libvirt根据xml定义文件中的硬件设备参数生成目标虚拟机。
78.这里,libvirt可指用于管理虚拟化平台的开源的api,它是后台程序管理工具,可以管理kvm、xen、vmware esx,qemu和其他虚拟化技术。
79.具体的,openstack的后续流程将会将生成的xml定义文件输出给libvirt,libvirt根据xml定义文件生成kvm虚拟机,该虚拟机已经安装好了目标实例对应的多个元数据中配置的硬件设备,例如:usb、音频卡驱动。
80.下面从代码执行流程的角度对虚拟机创建过程进行说明。具体的,在openstack中/nova/virt/libvirt/driver.py代码是openstack的源码,需要修改driver.py代码中的_get_guest_xml方法,在_get_guest_xml方法中加入获取flavor中的元数据的方法tricolor_hws。
81.下面对_get_guest_xml方法进行简单介绍,在_get_guest_xml方法中会依次执行如下步骤:利用network_info_str方法获取虚拟机网络参数、利用msg方法将虚拟机所有参数通过模板映射成字符串、利用log.debug方法将创建虚拟机所需要的参数打印到日志中、利用_get_guest_config方法获取虚拟机的相关配置信息(包括网络资源、计算资源、存储资源)、利用xml=conf.to_xml方法openstack根据配置信息生成虚拟机的xml定义文件。
82.本技术将tricolor_hws方法放在利用xml方法openstack根据配置信息生成虚拟机的xml=conf.to_xml定义文件之后执行,执行tricolor_hws方法时会获取flavor中的元数据,判断元数据的键值对中的键是否以tricolor:hw_开头,如果是以tricolor:hw_开头则调用自定义代码块tricolor_extra_specs.py中的自定义类tricolordevice,然后执行类tricolordevice中的add_tricolor_extra_specs方法,该方法会解析元数据键值对中的值,假设解析后需要执行的是add_sound_device方法,内容是《sound,model="ich6"》《alias,name="sound0"》《/sound》,则将内容作为add_sound_device方法的参数并执行tricolor_extra_specs.py中的add_sound_device方法,给虚拟机添加usb驱动文件,将《sound,model="ich6"》《alias,name="sound0"》《/sound》写入虚拟机的xml定义文件中。
83.其中,可在/nova/virt/libvirt/tricolor_extra_specs.py中加入自定义类tricolordevice,该类提前定义了多种将硬件设备添加到xml定义文件中的方法,例如:添加usb设备的add_usb_device以及添加音频设备的add_sound_device。
84.需要说明的是,在元数据键值对中可以设置键的取值为tricolor:hw_add_sound、tricolor:hw_add_usb、tricolor:hw_add_channel、tricolor:hw_spice_agent_device,上述每一项都会在tricolor_extra_specs.py对应一个方法,例如:add_sound_device。
85.可见,本技术能够利用openstack中的flavor设置虚拟机的相关属性,如cpu的核
数、线程数、硬件设备参数等。在安装openstack模块时,新增一个python文件,将该python文件放入openstack程序包中,这个python文件中定义了许多硬件设备添加方法,在openstack的flavor模块代码块中调用这个新增的python文件中的方法,并根据预先定义好的元数据属性,将硬件设备参数写入虚拟机的xml定义文件内,根据此xml定义文件所创建的虚拟机即具有相关的pci硬件模拟功能。该方法能够便捷地设置虚拟机的元数据属性,并可以对设置的元数据属性进行复用,用此plavor创建的虚拟机能同时支持多种硬件设备。
86.与现有技术中虚拟机创建方法相比,本技术能够针对待创建的虚拟机确定该虚拟机对应的目标示例的多个元数据,不同的元数据可以对应不同的硬件设备,利用元数据中的硬件设备添加方法将多个硬件设备参数写入虚拟机的xml定义文件中,以生成支持硬件设备的虚拟机,解决了在创建支持硬件设备的虚拟机时,创建效率低、灵活性差的问题。
87.基于同一发明构思,本技术实施例中还提供了与虚拟机创建方法对应的虚拟机创建装置,由于本技术实施例中的装置解决问题的原理与本技术实施例上述虚拟机创建方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
88.请参阅图2,图2为本技术实施例所提供的一种虚拟机创建装置的结构示意图。如图2中所示,所述虚拟机创建装置200包括:
89.元数据确定模块201,用于获取目标实例对应的多个元数据;
90.类型确定模块202,用于针对每个元数据,确定该元数据是否为第一类元数据,第一类元数据是定义硬件设备属性的元数据;
91.数据解析模块203,用于若该元数据是第一类元数据,对该元数据进行解析获取该元数据中的值,该元数据中的值包括硬件设备添加方法以及硬件设备参数;
92.参数写入模块204,用于执行不同第一类元数据对应的多个硬件设备添加方法,将每个第一类元数据对应的硬件设备参数写入到虚拟机的xml定义文件中;
93.虚拟机创建模块205,用于根据xml定义文件生成目标实例对应的虚拟机。
94.请参阅图3,图3为本技术实施例所提供的一种电子设备的结构示意图。如图3中所示,所述电子设备300包括处理器310、存储器320和总线330。
95.所述存储器320存储有所述处理器310可执行的机器可读指令,当电子设备300运行时,所述处理器310与所述存储器320之间通过总线330通信,所述机器可读指令被所述处理器310执行时,可以执行如上述图1所示方法实施例中的虚拟机创建方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
96.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1所示方法实施例中的虚拟机创建方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
97.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
98.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨
论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
99.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
100.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
101.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
102.最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。

技术特征:


1.一种虚拟机创建方法,其特征在于,包括:获取目标实例对应的多个元数据;针对每个元数据,确定该元数据是否为第一类元数据,所述第一类元数据是定义硬件设备属性的元数据;若该元数据是第一类元数据,对该元数据进行解析获取该元数据中的值,该元数据中的值包括硬件设备添加方法以及硬件设备参数;执行不同第一类元数据对应的多个硬件设备添加方法,将每个第一类元数据对应的硬件设备参数写入到虚拟机的xml定义文件中;根据所述xml定义文件生成目标实例对应的虚拟机。2.根据权利要求1所述的方法,其特征在于,所述确定该元数据是否为第一类元数据,包括:确定该元数据对应的键值对中键的取值是否为设定格式;若键值对中键的取值为设定格式,确定该元数据为第一类元数据。3.根据权利要求1所述的方法,其特征在于,所述元数据还包括第二类元数据,所述第二类元数据是指openstack可直接识别的元数据;所述获取目标实例对应的多个元数据,包括:确定所述目标实例中第二类元数据的取值;按照设定格式设置所述目标实例中第一类元数据的键值对的取值。4.根据权利要求2所述的方法,其特征在于,所述确定该元数据对应的键值对中的键是否为设定格式,包括:确定该元数据对应的键值对中键的取值是否以设定字符开头;若键值对中键的取值是以设定字符开头,确定该元数据对应的键值对中键的取值为设定格式。5.根据权利要求1所述的方法,其特征在于,所述执行不同第一类元数据对应的多个硬件设备添加方法,包括:针对每个第一类元数据,确定该第一类元数据对应的硬件设备添加方法;将该第一类元数据对应的硬件设备参数作为该硬件设备添加方法的参数,并执行该硬件设备添加方法。6.根据权利要求1所述的方法,其特征在于,所述根据所述xml定义文件生成目标虚拟机,包括:将xml定义文件发送至libvirt;libvirt根据xml定义文件中的硬件设备参数生成目标虚拟机。7.根据权利要求1所述的方法,其特征在于,所述第一类元数据包括音频元数据和/或usb元数据。8.一种虚拟机创建装置,其特征在于,包括:元数据确定模块,用于获取目标实例对应的多个元数据;类型确定模块,用于针对每个元数据,确定该元数据是否为第一类元数据,所述第一类元数据是定义硬件设备属性的元数据;数据解析模块,用于若该元数据是第一类元数据,对该元数据进行解析获取该元数据
中的值,该元数据中的值包括硬件设备添加方法以及硬件设备参数;参数写入模块,用于执行不同第一类元数据对应的多个硬件设备添加方法,将每个第一类元数据对应的硬件设备参数写入到虚拟机的xml定义文件中;虚拟机创建模块,用于根据所述xml定义文件生成目标实例对应的虚拟机。9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7中任一项所述的虚拟机创建方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7中任一项所述的虚拟机创建方法的步骤。

技术总结


本申请提供了一种虚拟机创建方法、装置、电子设备及存储介质,该方法包括:获取目标实例对应的多个元数据;针对每个元数据,确定该元数据是否为第一类元数据;若该元数据是第一类元数据,对该元数据进行解析获取该元数据中的值,该元数据中的值包括硬件设备添加方法以及硬件设备参数;执行不同第一类元数据对应的多个硬件设备添加方法,将每个第一类元数据对应的硬件设备参数写入到虚拟机的xml定义文件中;根据xml定义文件生成目标实例对应的虚拟机。通过采用上述虚拟机创建方法、装置、电子设备及存储介质,解决了在创建支持硬件设备的虚拟机时,创建效率低以及灵活性差的问题。创建效率低以及灵活性差的问题。创建效率低以及灵活性差的问题。


技术研发人员:

马小虎 莫林成 陈艳虎

受保护的技术使用者:

北京淳中科技股份有限公司

技术研发日:

2022.10.20

技术公布日:

2022/12/9

本文发布于:2024-09-21 17:36:00,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/31738.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   硬件   虚拟机   设备
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议