一种向虚拟机配置网卡的方法及装置与流程

文档序号:12491717阅读:341来源:国知局
一种向虚拟机配置网卡的方法及装置与流程

本申请涉及云计算领域,尤其涉及一种向虚拟机配置网卡的方法及装置。



背景技术:

云计算系统通常包括控制设备和大量的宿主机,控制设备可以通过虚拟机软件在一台宿主机上模拟创建出一台或多台虚拟机(Virtual Machine),这些虚拟机就像真正的计算机一样进行工作。

如同真正的计算机一样,虚拟机联网也需要网卡。现有技术中,一个物理网卡只能配置给一台虚拟机,且一台宿主机只能够容纳一个或几个物理网卡,因此导致宿主机中能够联网的虚拟机的个数是有限的,影响云计算系统整体的网络性能。



技术实现要素:

为了解决现有技术中存在的技术问题,本申请提供了一种向虚拟机配置网卡的方法和装置,实现了宿主机中能够联网的虚拟机的个数不受限,从而提高云计算系统整体网络性能的目的。

本申请实施例提供了一种向虚拟机配置网卡的方法,所述方法包括:

根据目标物理网卡虚拟得到虚拟网卡,并生成所述虚拟网卡的接口地址;

根据所述虚拟网卡的接口地址生成所述虚拟网卡的配置文件;

将所述虚拟网卡的配置文件添加到目标虚拟机的配置文件中,实现向所述虚拟机配置所述虚拟网卡。

可选的,所述根据目标物理网卡虚拟得到虚拟网卡包括:

获取所述目标物理网卡的配置文件,并在所述目标物理网卡的配置文件中添加所述虚拟网卡的数量信息;

根据添加后的所述配置文件,生成与所述数量信息对应的所述虚拟网卡。

可选的,所述获取所述目标物理网卡的配置文件包括:

获取所述目标物理网卡的设备标识;

根据所述目标物理网卡的设备标识在所述目标物理网卡的宿主机的目录文件中查找所述目标物理网卡的配置文件。

本申请实施例还提供了一种向虚拟机配置网卡的装置,所述装置包括:虚拟单元、配置文件生成单元和网卡配置单元;

其中,所述虚拟单元,用于根据目标物理网卡虚拟得到虚拟网卡,并生成所述虚拟网卡的接口地址;

所述配置文件生成单元,用于根据所述虚拟网卡的接口地址生成所述虚拟网卡的配置文件;

所述网卡配置单元,用于将所述虚拟网卡的配置文件添加到目标虚拟机的配置文件中,实现向所述虚拟机配置所述虚拟网卡。

可选的,所述虚拟单元包括:配置文件获取单元、添加单元和虚拟子单元;

所述配置文件获取单元,用于获取所述目标物理网卡的配置文件;

所述添加单元,用于在所述目标物理网卡的配置文件中添加所述虚拟网卡的数量信息;

所述虚拟子单元,用于根据添加后的所述配置文件,生成与所述数量信息对应的所述虚拟网卡。

可选的,所述配置文件获取单元包括:设备标识获取单元和查找单元;

其中,所述设备标识获取单元,用于获取所述目标物理网卡的设备标识;

所述查找单元,用于根据所述目标物理网卡的设备标识在所述目标物理网卡的宿主机的目录文件中查找所述目标物理网卡的配置文件。

在本申请中,通过对物理网卡进行虚拟,得到至少一个虚拟网卡,一个虚拟网卡可以配置一个虚拟机,多个虚拟网卡就可以配置多个虚拟机,所以,可以联网的虚拟机的个数与虚拟网卡的个数相关,与物理网卡的个数无关,即不再受到物理网卡个数的限制,大大提高了云计算系统整体的网络性能。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例一提供的一种向虚拟机配置网卡的方法的流程图;

图2为本申请实施例二提供的一种向虚拟机配置网卡的装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一:

参见图1,该图为本申请实施例一提供的一种向虚拟机配置网卡的方法的流程图。

本实施例提供的向虚拟机配置网卡的方法包括如下步骤:

步骤S101:根据目标物理网卡虚拟得到虚拟网卡,并生成所述虚拟网卡的地址。

在本实施例中,所述目标物理网卡是待被虚拟的硬件。当宿主机中有多个物理网卡时,用户可以通过选择的方式确定目标物理网卡。例如,若宿主机为linux系统,则可以通过lspci|grep Ethernet命令列出宿主机中所有的物理网卡供用户选择,以确定目标物理网卡。

虚拟网卡是根据目标物理网卡虚拟出来的网卡。因为网卡又称为网络适配器,所以虚拟网卡也可以称为虚拟网络适配器。虚拟网卡用于模拟网络环境,起到与物理网卡相同的联网功能。

因为一个物理网卡可以虚拟出至少一个虚拟网卡,一个虚拟网卡配置给一个虚拟机,所以,可以联网的虚拟机的个数不再受到物理网卡个数的限制,大大提高了云计算系统整体的网络性能。

在实际应用中,根据目标物理网卡虚拟出虚拟网卡的过程可以如下:

首先,确保宿主机打开了硬件虚拟化功能。如果宿主机的系统为linux系统,可以通过键入“cat/proc/cmdline”命令检查Intel_iommu是否开启,若开启,则进行下一步;若未开启,则在宿主机的配置文件/etc/default/grub中进行编辑,勾选其中的硬件虚拟化功能,然后执行“grub2-mkconfig–o/boot/grub2/grub.cfg”命令重新生成宿主机的配置文件。因为宿主机的配置文件属于系统文件,需要重新生成来达到更新配置文件的目的,在配置文件重新生成之后,重启宿主机使命令生效,即重启后,宿主机就启动了Intel_iommu。

其次,获取所述目标物理网卡的配置文件,并在所述目标物理网卡的配置文件中添加所述虚拟网卡的数量信息。在实际应用中,为了获取所述目标物理网卡的配置文件,可以先获取所述目标物理网卡的设备标识,然后在目录文件中查找与该设备标识对应的配置文件。目标物理网卡的设备标识用于标识目标物理网卡的唯一性,例如网卡的ID号等,本申请不做具体限定。目标物理网卡的标识可以根据其类型有对应的获取途径,若为网卡ID号,则可以通过获取目标物理网卡的PCI(Peripheral Component Interconnect,外围设备互联)总线地址来得到。例如,目标物理网卡的PCI总线地址为:04:00.0,那么目标网卡设备号为:0000:04:00.0。

然后,更改所述目标物理网卡的配置文件,在所述目标物理网卡的配置文件中添加所述虚拟网卡的数量信息。仍然以宿主机的系统为linux系统为例,可以通过运行“echo‘7’>/sys/bus/pci/devices/网卡设备号/sriov_numvfs”在配置文件sriov_numvfs中添加虚拟网卡的数量“7”。

最后,因为宿主机已经开启了网卡虚拟功能,那么就可以根据更改后的目标物理网卡的配置文件,生成与所述数量信息对应的虚拟网卡。例如,若在配置文件sriov_numvfs中添加的虚拟网卡的数量为7,那么就生成7个虚拟网卡。在宿主机生成虚拟网卡的过程中,一般情况下都会自动的生成虚拟网卡的接口地址,这里的接口地址一般指的是虚拟网卡的PCI接口地址。虚拟网卡的PCI接口地址与物理网卡的PCI接口地址不相同,若虚拟网卡有多个,各个虚拟网卡的PCI接口地址也各不相同。

步骤S102:根据所述虚拟网卡的接口地址生成所述虚拟网卡的配置文件。

在生成虚拟网卡的接口地址后,根据虚拟网卡的接口地址生成虚拟网卡的配置文件。

举个例子,假设虚拟网卡的PCI接口地址为04:00.3,那么生成的虚拟网卡的配置文件中包括如下信息:

address domain=’0x0000’bus=’0x04’slot=’0x00’function=’0x3’。

当然,为了能实现联网的功能,虚拟网卡的配置文件中除了包括其接口地址,还可以包括一些默认的信息,例如:设备的模式、类型等。

下面是一个虚拟网卡的配置文件的例子:

步骤S103:将所述虚拟网卡的配置文件添加到目标虚拟机的配置文件中,实现向所述虚拟机配置所述虚拟网卡。

在所述虚拟网卡的配置文件形成之后,将虚拟网卡的配置文件添加到目标虚拟机的配置文件中,这样,目标虚拟机的配置文件就包含了虚拟网卡配置文件中的内容,实现了向目标虚拟机分配虚拟网卡的目的。此外,若宿主机为linux系统,可以通过调用libvirt提供的attachDevice接口,将虚拟网卡的配置文件传送给目标虚拟机,以便进行添加操作。添加之后,在虚拟机网卡列表中就可以看到新分配的网卡。

在本实施例中,通过对物理网卡进行虚拟,得到至少一个虚拟网卡,一个虚拟网卡可以配置一个虚拟机,多个虚拟网卡就可以配置多个虚拟机,所以,可以联网的虚拟机的个数与虚拟网卡的个数相关,与物理网卡的个数无关,即不再受到物理网卡个数的限制,大大提高了云计算系统整体的网络性能。

基于以上实施例提供的一种向虚拟机配置网卡的方法,本申请实施例还提供了一种向虚拟机配置网卡的装置,下面结合附图来详细说明其工作原理。

实施例二

参见图2,该图为本申请实施例二提供的一种向虚拟机配置网卡的装置实施例一的结构框图。

本实施例提供的向虚拟机配置网卡的装置包括:

虚拟单元101、配置文件生成单元102和网卡配置单元103;

其中,所述虚拟单元101,用于根据目标物理网卡虚拟得到虚拟网卡,并生成所述虚拟网卡的接口地址;

所述配置文件生成单元102,用于根据所述虚拟网卡的接口地址生成所述虚拟网卡的配置文件;

所述网卡配置单元103,用于将所述虚拟网卡的配置文件添加到目标虚拟机的配置文件中,实现向所述虚拟机配置所述虚拟网卡。

在本实施例中,所述目标物理网卡是待被虚拟的硬件。当宿主机中有多个物理网卡时,用户可以通过选择的方式确定目标物理网卡。例如,若宿主机为linux系统,则可以通过lspci|grep Ethernet命令列出宿主机中所有的物理网卡供用户选择,以确定目标物理网卡。

虚拟网卡是根据目标物理网卡虚拟出来的网卡。因为网卡又称为网络适配器,所以虚拟网卡也可以称为虚拟网络适配器。虚拟网卡用于模拟网络环境,起到与物理网卡相同的联网功能。

因为一个物理网卡可以虚拟出至少一个虚拟网卡,一个虚拟网卡配置给一个虚拟机,所以,可以联网的虚拟机的个数不再受到物理网卡个数的限制,大大提高了云计算系统整体的网络性能。

可选的,所述虚拟单元101包括:配置文件获取单元、添加单元和虚拟子单元;

所述配置文件获取单元,用于获取所述目标物理网卡的配置文件;

所述添加单元,用于在所述目标物理网卡的配置文件中添加所述虚拟网卡的数量信息;

所述虚拟子单元,用于根据添加后的所述配置文件,生成与所述数量信息对应的所述虚拟网卡。

在实际应用中,首先,确保宿主机打开了硬件虚拟化功能。如果宿主机的系统为linux系统,可以通过键入“cat/proc/cmdline”命令检查Intel_iommu是否开启,若开启,则进行下一步;若未开启,则在宿主机的配置文件/etc/default/grub中进行编辑,勾选其中的硬件虚拟化功能,然后执行“grub2-mkconfig–o/boot/grub2/grub.cfg”命令重新生成宿主机的配置文件。因为宿主机的配置文件属于系统文件,需要重新生成来达到更新配置文件的目的,在配置文件重新生成之后,重启宿主机使命令生效,即重启后,宿主机就启动了Intel_iommu。

为了获取所述目标物理网卡的配置文件,可选的,所述配置文件获取单元包括:设备标识获取单元和查找单元;

其中,所述设备标识获取单元,用于获取所述目标物理网卡的设备标识;

所述查找单元,用于根据所述目标物理网卡的设备标识在所述目标物理网卡的宿主机的目录文件中查找所述目标物理网卡的配置文件。

也就是说,可以首先获取所述目标物理网卡的设备标识,然后在目录文件中查找与该设备标识对应的配置文件。目标物理网卡的设备标识用于标识目标物理网卡的唯一性,例如网卡的ID号等,本申请不做具体限定。目标物理网卡的标识可以根据其类型有对应的获取途径,若为网卡ID号,则可以通过获取目标物理网卡的PCI(Peripheral Component Interconnect,外围设备互联)总线地址来得到。例如,目标物理网卡的PCI总线地址为:04:00.0,那么目标网卡设备号为:0000:04:00.0。

仍然以宿主机的系统为linux系统为例,可以通过运行“echo‘7’>/sys/bus/pci/devices/网卡设备号/sriov_numvfs”在配置文件sriov_numvfs中添加虚拟网卡的数量“7”。

最后,因为宿主机已经开启了网卡虚拟功能,那么就可以根据更改后的目标物理网卡的配置文件,生成与所述数量信息对应的虚拟网卡。例如,若在配置文件sriov_numvfs中添加的虚拟网卡的数量为7,那么就生成7个虚拟网卡。在宿主机生成虚拟网卡的过程中,一般情况下都会自动的生成虚拟网卡的接口地址,这里的接口地址一般指的是虚拟网卡的PCI接口地址。虚拟网卡的PCI接口地址与物理网卡的PCI接口地址不相同,若虚拟网卡有多个,各个虚拟网卡的PCI接口地址也各不相同。

在生成虚拟网卡的接口地址后,所述配置文件生成单元102根据虚拟网卡的接口地址生成虚拟网卡的配置文件。

举个例子,假设虚拟网卡的PCI接口地址为04:00.3,那么生成的虚拟网卡的配置文件中包括如下信息:

address domain=’0x0000’bus=’0x04’slot=’0x00’function=’0x3’。

当然,为了能实现联网的功能,虚拟网卡的配置文件中除了包括其接口地址,还可以包括一些默认的信息,例如:设备的模式、类型等。

下面是一个虚拟网卡的配置文件的例子:

在所述虚拟网卡的配置文件形成之后,将虚拟网卡的配置文件添加到目标虚拟机的配置文件中,这样,目标虚拟机的配置文件就包含了虚拟网卡配置文件中的内容,实现了向目标虚拟机分配虚拟网卡的目的。此外,若宿主机为linux系统,可以通过调用libvirt提供的attachDevice接口,将虚拟网卡的配置文件传送给目标虚拟机,以便进行添加操作。添加之后,在虚拟机网卡列表中就可以看到新分配的网卡。

当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。

需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1