本申请涉及虚拟机技术领域,更具体地说,涉及一种虚拟机的配置方法及装置。
背景技术:
虚拟化技术能够在单一的物理机上同时运行相互隔离的虚拟机,从而实现计算机资源的高效灵活使用,由于该优点虚拟机有着较为广泛的应用,而随着云计算的广泛应用,虚拟机对于网络性能的追求越来越大。
现有技术中虚拟机利用网卡passthrough即网卡直通方式提高对于网路I/O的使用性能,具体的为将物理网卡配置给正在运行的虚拟机,令虚拟机对该物理网卡的I/O交互操作和实际的物理网卡的操作完全一样。但该方式中,在将物理网卡配置给正在运行的虚拟机后,需要重新启动物理机才可以实现网卡直通功能,而重启物理机会造成物理机上虚拟机运行业务的中断,降低了虚拟机的使用性能。
技术实现要素:
有鉴于此,本申请提供一种虚拟机的配置方法及装置,以提高虚拟机的使用性能。
为了实现上述目的,现提出的方案如下:
一种虚拟机的配置方法,包括:
开启BIOS系统中的虚拟化选项;
将虚拟化开启信息写入到虚拟化系统的内核中;
判断虚拟化系统是否支持虚拟化;
若是,获取物理网卡的网卡参数信息;
将网卡直通配置信息写入预设虚拟机的配置文件中,所述网卡直通配置信息包括所述网卡参数信息。
优选地,将虚拟化开启信息写入内核中包括:
确定所述物理机的处理器类型;
当处理器为Intel处理器时,将intel_iommu=on写入内核中;
当处理器为AMD处理器时,将iommu=1写入内核中。
优选地,其特征在于,还包括:
开启所述预设的虚拟机;
判断物理机的硬件是否支持网卡直通;
若否,则输出提示信息。
优选地,还包括:
释放物理网卡;
将物理网卡的状态信息恢复为初始状态。
一种虚拟机的配置装置,所述装置包括:
第一开启模块,用于开启BIOS系统中的虚拟化选项;
第一写入模块,用于将虚拟化开启信息写入到虚拟化系统的内核中;
第一判断模块,用于判断所述虚拟化系统是否支持虚拟化;
获取模块,用于当物理机的硬件支持网卡直通时,获取物理网卡的网卡参数信息;
第二写入模块,用于将网卡直通配置信息写入预设虚拟机的配置文件中,所述网卡直通配置信息包括所述网卡的参数信息。
优选地,所述第一写入模块包括:
确定模块,用于确定物理机的处理器类型;
写入子模块,用于当处理器为Intel处理器时,将intel_iommu=on写入内核中;当处理器为AMD处理器时,将iommu=1写入内核中。
优选地,所述装置还包括:
开启模块,用于开启所述预设的虚拟机;
第二判断模块,用于判断物理机的硬件是否支持网卡直通;
输出模块,用于当判断结果为否时,输出提示信息。
优选地,所述装置还包括:
释放模块,用于释放网络网卡;
恢复模块,用于将物理网卡的状态信息恢复为初始状态。
上述方案中,开启BIOS系统中的虚拟化选项,即首先令硬件支持虚拟化技术;进而进行虚拟化系统的安装,安装过程中,将虚拟化开启信息写入到虚拟化系统的内核中;判断虚拟化系统是否支持虚拟化;若是则获取物理网卡的网卡参数信息;将网卡直通配置信息写入预设虚拟机的配置文件中,所述网卡直通配置信息包括所述网卡参数信息。上述方案中,在虚拟化系统的安装过程中,通过在虚拟化系统内核中写入虚拟化开启信息,开启虚拟化功能,进而对某一虚拟机进行网卡直通配置。可见,在虚拟化系统安装中实现了虚拟机的网卡直通配置,相当于令虚拟机直接拥有网卡直通的功能,即在虚拟机开启后直接能够独占使用物理网卡,不存在需要中断业务的情况,进而提高了虚拟机的使用性能。进一步的,在网络性能要求极高以及网络压力很大的应用场景中,利用上述的方案,提升了虚拟机的网络性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种虚拟机的配置方法基本流程图;
图2为本申请另一实施例公开的一种虚拟机的配置方法基本流程图;
图3为本申请另一实施例公开的恢复物理网卡初始状态的基本流程图;
图4为本申请实施例公开的一种虚拟机的配置装置基本框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种虚拟机的配置方法,如图1所示,该方法包括:
S100、开启BIOS系统中的虚拟化选项;
具体的,处理器开启BIOS系统中的虚拟化选项,即开启AMD处理器的IOMMU功能,开启Intel处理器VT-D的功能,如此即令物理机的硬件支持虚拟化技术,即在物理机上开启虚拟化功能即开启IOMMU。
S110、将虚拟化开启信息写入到虚拟化系统的内核中;
在步骤S100后,安装虚拟化系统,在安装过程中实现对虚拟机的配置;该安装过程,安装程序首先要将虚拟化开启信息写入到虚拟化系统的内核中,即在虚拟化系统的内核中开启IOMMU功能。
具体的,将虚拟化开启信息写入到虚拟化系统的内核中包括:
S1101、确定所述物理机的处理器类型;
具体的,安装程序确定处理器类型的方式为:执行系统命令“cat/proc/cpuinfo|grep"model name"',如果输出信息中有Intel,则处理器类型为Intel,如果输出信息中有AMD,则处理器类型为AMD。
S1102、当处理器为Intel处理器时,将intel_iommu=on写入内核中;当处理器为AMD处理器时,将iommu=1写入内核中。
具体的,在/etc/default/grub文件中的以GRUB_CMDLINE_LINUX为开始的行,对于Intel处理器写入intel_iommu=on,对于AMD处理器写入iommu=1。
S120、判断所述虚拟化系统是否支持虚拟化,若是,则执行步骤S130;若不支持,系统报出“当前系统不支持IOMMU”的信息。
具体的,对于ADM处理器,执行命令“dmesg|grep AMD-Vi”,如果输出信息中包括AMD-Vi,则表示虚拟化系统已经开启IOMMU功能,对于Intel处理器,执行命令“dmesg|grep-e DMAR–e IOMMU”,如果输出信息中包括DMAR和IOMMU,则表示虚拟化系统已经支持了IOMMU功能,可以分配物理网卡给虚拟机独占使用,如果输出信息中没有相关的信息输出,则系统报出“当前系统不支持IOMMU”。
其中,若执行上述命令有相关信息输出,并进行了物理网卡的独占分配,在开启虚拟机的过程中,虚拟化系统报出“please ensure all devices within the iommu_group are bound to their vfio bus driver”,则表明硬件是不支持网卡直通的,系统报出“物理机硬件不支持网卡直通功能”。
S130、获取物理网卡的网卡参数信息;
具体的,以Intel 82576型物理网卡为例,使用命令“ethtool–i物理网卡名称”,获取物理网卡的domain,bus,slot以及function参数,其中,获取到的网卡的总线信息为0000:06:00.1,即domain为十六进制数0,bus号为十六进制数06,slot号为十六进制数00,function号为十六进制数1,进而根据获取的网卡参数信息进行配置。
S140、将网卡直通配置信息写入预设虚拟机的配置文件中,所述网卡直通配置信息包括所述网卡参数信息。
其中,对预设虚拟机的配置文件进行配置,具体的网卡直通配置信息如下:
通过上述实施例,上述方案中,开启BIOS系统中的虚拟化选项,即首先令硬件支持虚拟化技术;进而进行虚拟化系统的安装,安装过程中,将虚拟化开启信息写入到虚拟化系统的内核中;判断虚拟化系统是否支持虚拟化;若是则获取物理网卡的网卡参数信息;将网卡直通配置信息写入预设虚拟机的配置文件中,所述网卡直通配置信息包括所述网卡参数信息。上述方案中,在虚拟化系统的安装过程中,通过在虚拟化系统内核中写入虚拟化开启信息,开启虚拟化功能,进而对某一虚拟机进行网卡直通配置。可见,在虚拟化系统安装中实现了虚拟机的网卡直通配置,相当于令虚拟机直接拥有网卡直通的功能,即在虚拟机开启后直接能够独占使用物理网卡,不存在需要中断业务的情况,进而提高了虚拟机的使用性能。
在本申请另一实施例中提供一种虚拟机的配置方法,如图2所示,包括:
S200、开启BIOS系统中的虚拟化选项;
S210、将虚拟化开启信息写入到虚拟化系统的内核中;
S220、判断虚拟化系统是否支持虚拟化;若是,则执行步骤S230
S230、获取物理网卡的网卡参数信息;
S240、将网卡直通配置信息写入预设虚拟机的配置文件中,所述网卡直通配置信息包括所述网卡参数信息;
S250、开启所述预设的虚拟机;
其中,使用虚拟化命令开启预设的虚拟机。
S260、判断物理机的硬件是否支持网卡直通;
S270、若否,则输出提示信息。
具体的,在开启虚拟机的过程中,判断物理机的硬件是否支持网卡直通,在不支持网卡直通时,输出提示信息。
其中,步骤S200-S240的实施方式与步骤S100-S140的实施方式相同,在此不再进行赘述。
上述实施例中,虚拟机开启后,在虚拟化系统中看不到已经被分配的物理网卡的相关信息,只有预设的虚拟机可以使用该物理网卡,虚拟机内部看到的虚拟网卡的mac地址与物理网卡的mac地址一致。
本申请另一实施例中,对被释放的物理网卡的状态信息进行恢复,如图3所示,包括:
S300、释放物理网卡;
其中,根据实际需要如物理机上的其他虚拟机也有使用物理网卡的需求,这就要解除物理网卡的直通配置,令预设的虚拟机释放网络网卡,而被释放的网卡的状态会变成未激活状态。
S310、将物理网卡的状态信息恢复为初始状态;
具体的,通过命令“ifconfig网卡名称up”来启用激活网卡,恢复网卡的初始状态。
通过上述实施例将物理网卡的状态恢复为初始状态,避免后续能够正确正常使用物理网卡。
本发明实施例还提供一种虚拟机配置的装置,如图4所示,该装置包括:
第一开启模块400,用于开启BIOS系统中的虚拟化选项;
第一写入模块410,用于将虚拟化开启信息写入到虚拟化系统的内核中;
优选地,第一写入模块410包括:
确定模块,用于确定物理机的处理器类型;
写入子模块,用于当处理器为Intel处理器时,将intel_iommu=on写入内核中;当处理器为AMD处理器时,将iommu=1写入内核中
支持判断模块420,用于判断物理机的硬件是否支持网卡直通;
获取模块430,用于当物理机的硬件支持网卡直通时,获取物理网卡的网卡参数信息;
第二写入模块440,用于将网卡直通配置信息写入预设虚拟机的配置文件中,所述网卡直通配置信息包括所述网卡的参数信息。
本申请另一实施例中,所述装置还包括:
第二开启模块500,用于开启所述预设的虚拟机;
第二判断模块510,用于判断物理机硬件是否支持网卡直通功能;
输出模块520,用户当判断结果为否时,输出提示信息。
本申请另一实施例中,所述装置还包括:
释放模块600,用于释放网络网卡;
恢复模块610,用于将物理网卡的状态信息恢复为初始状态。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。