一种虚拟机的网络访问方法、装置、设备及存储介质与流程

文档序号:13808218阅读:167来源:国知局
一种虚拟机的网络访问方法、装置、设备及存储介质与流程

本发明涉及计算机网络访问技术领域,特别是涉及一种虚拟机的网络访问方法、装置、设备及存储介质。



背景技术:

在如今的it架构中,单个服务器硬件平台上运行多个虚拟机的能力实现了成本、系统管理和灵活性等方面的优势。对于每一个虚拟机而言,如何提高虚拟机的性能,特别是如何提高虚拟机的网络访问的性能,成为研究与改进的方向之一。

以kvm(kernel-basedvirtualmachine系统虚拟化模块)虚拟机为例进行说明。kvm虚拟机网络分为三种,一种是支持虚拟机上网,但不支持互访的默认方式,即nat方式;另一种是macvtap方式,基于主机设备的实际情况并且支持互访;还有一种是bridge方式,使用虚拟机成为网络中具有独立ip的主机。以上三种方式均是基于物理网卡,带宽没有任何提升,甚至存在降低的情况。例如,宿主机中有三个物理网卡,1号kvm虚拟机是该宿主机中的一个虚拟机,1号kvm虚拟机只能使用其中的一个物理网卡进行网络访问,另外两个物理网卡可能由其他虚拟机或者其他模块进行控制并使用,1号kvm虚拟机无法对这两个物理网卡进行操作,1号kvm虚拟机进行网络访问时的带宽也就取决于其使用的物理网卡的带宽。

综上所述,如何有效地提高虚拟机进行网络访问时的带宽,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种虚拟机的网络访问方法、装置、设备及计算机可读存储介质,使得单个虚拟机可以基于多个网卡的聚合链路进行网络访问,增加了业务带宽,提高了虚拟机的网络访问的性能。

为解决上述技术问题,本发明提供如下技术方案:

一种虚拟机的网络访问方法,该方法包括:

根据接收到的编译指令设置宿主机以使所述宿主机支持passthrough的直接分配的方式;

根据接收到的添加指令将所述宿主机中的至少两个网卡按照所述直接分配的方式添加至单个虚拟机中;

将添加至所述虚拟机中的所述网卡绑定形成聚合链路;

基于所述聚合链路,完成所述虚拟机与所述虚拟机的通讯对象之间的网络访问。

优选的,所述将添加至所述虚拟机中的所述网卡绑定形成聚合链路,包括:

按照mode=6的网卡绑定方式将添加至所述虚拟机中的所述网卡绑定形成聚合链路。

优选的,所述网卡为pci网卡。

优选的,所述基于所述聚合链路,对所述虚拟机进行网络访问,包括:

基于所述聚合链路的经配置后确定的ip地址,完成所述虚拟机与所述虚拟机的通讯对象之间的网络访问。

一种虚拟机的网络访问装置,该装置包括:

配置模块,用于根据接收到的编译指令设置宿主机以使所述宿主机支持passthrough的直接分配的方式;

网卡添加模块,用于根据接收到的添加指令将所述宿主机中的至少两个网卡按照所述直接分配的方式添加至单个虚拟机中;

网卡绑定模块,用于将添加至所述虚拟机中的所述网卡绑定形成聚合链路;

网络访问模块,用于基于所述聚合链路,完成所述虚拟机与所述虚拟机的通讯对象之间的网络访问。

优选的,所述网卡绑定模块,具体用于:

按照mode=6的网卡绑定方式将添加至所述虚拟机中的所述网卡绑定形成聚合链路。

优选的,所述网卡为pci网卡。

优选的,所述网络访问模块,具体用于:

基于所述聚合链路的经配置后确定的ip地址,完成所述虚拟机与所述虚拟机的通讯对象之间的网络访问。

一种虚拟机的网络访问设备,该设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现:根据接收到的编译指令设置宿主机以使所述宿主机支持passthrough的直接分配的方式;根据接收到的添加指令将所述宿主机中的至少两个网卡按照所述直接分配的方式添加至单个虚拟机中;将添加至所述虚拟机中的所述网卡绑定形成聚合链路;基于所述聚合链路,完成所述虚拟机与所述虚拟机的通讯对象之间的网络访问。

一种计算机可读存储介质,所述计算机可读存储介质上存储有虚拟机网络访问程序,所述虚拟机网络访问程序被处理器执行时实现上述虚拟机的网络访问方法的步骤。

应用本发明实施例所提供的技术方案:根据接收到的编译指令设置宿主机以使宿主机支持passthrough的直接分配的方式;根据接收到的添加指令将宿主机中的至少两个网卡按照直接分配的方式添加至单个虚拟机中;将添加至虚拟机中的网卡绑定形成聚合链路;基于聚合链路,完成虚拟机与虚拟机的通讯对象之间的网络访问。

根据编译指令将虚拟机所在的宿主机进行设置,使得该宿主机支持直接分配的方式,将多个网卡按照直接分配的方式添加至单个虚拟机中,使得该虚拟机可以直接对多个网卡进行操作,之后在虚拟机中将多个网卡绑定形成聚合链路,使得虚拟机可以基于该聚合链路,完成与通讯对象之间的网络访问。相较于现有技术中的虚拟机的网络访问的方式,本发明的方案中的单个虚拟机可以基于多个网卡的聚合链路进行网络访问,增加了业务带宽,提高了虚拟机的网络访问的性能。

附图说明

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

图1为本发明中一种虚拟机的网络访问方法的实施流程图;

图2为本发明中一种虚拟机的网络访问装置的结构示意图;

图3为本发明中一种虚拟机的网络访问设备的结构示意图。

具体实施方式

本发明的核心是提供一种虚拟机的网络访问方法,使得单个虚拟机可以基于多个网卡的聚合链路进行网络访问,增加了业务带宽,提高了虚拟机的网络访问的性能。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,为本发明所提供的一种虚拟机的网络访问方法的实施流程图,该方法包括以下步骤:

s101:根据接收到的编译指令设置宿主机以使宿主机支持passthrough的直接分配的方式。

本申请中所述的passthough的分配方式是指在虚拟化平台下,将物理设备直接分配给某个物理机使用,为了便于描述,本申请中将passthrough这种分配方式称之为直接分配的方式。宿主机即含有虚拟机的物理机。

宿主机接收编译指令对自身进行设置以使得自身支持passthrough的直接分配的方式。需要指出的是,宿主机所在的硬件平台不同,操作系统不同,可以有不同的编译指令。

以intercpu硬件平台,linux操作系统为例进行步骤s101的说明。根据编译指令首先对文件进行修改,修改/etc/default/grub。

将grub_cmdline_linux_default="quiet"修改为:

grub_cmdline_linux_default="quietintel_iommu=on"。

之后可以在命令行输入update-grub用以重新生成grub的启动菜单配置文件,重启设备。在命令行中输入dmesg|grep-edmar-eiommu,确认有信息返回时,根据编译指令,修改config_vfio=m,config_vfio_pci=m,config_vfio_iommu_type1=m。最后编译linux内核,将编译出的vfio.ko、vfio_iommu_type1.ko和vfio_pci.ko依次加载到系统上。

根据接收到的编译指令设置宿主机以使宿主机支持passthrough的直接分配的方式之后,可以进行步骤s102的操作。

s102:根据接收到的添加指令将宿主机中的至少两个网卡按照直接分配的方式添加至单个虚拟机中。

由于通过步骤s101中的操作使得宿主机支持passthrough的分配方式,即直接分配的方式,则宿主机可以根据接收到的添加指令将该宿主机中的至少两个网卡按照直接分配的方式添加至单个虚拟机中。当然,根据网卡种类的不同,虚拟机的不同,可以有不同的添加指令。例如,在本发明的一种具体实施方式中,当网卡为pci网卡,虚拟机为kvm虚拟机时,可以根据接收到的virsh指令将宿主机中的至少两个pci网卡按照直接分配的方式添加至单个kvm虚拟机中。

将两个或者两个以上的网卡按照直接分配的方式添加至单个虚拟机中之后,可以进行步骤s103的操作。

s103:将添加至虚拟机中的网卡绑定形成聚合链路。

将至少两个网卡按照passthrough的方式添加至单个虚拟机中之后,将这些网卡绑定形成聚合链路。

在本发明的一种具体实施方式中,步骤s103包括:按照mode=6的网卡绑定方式将添加至虚拟机中的网卡绑定形成聚合链路。

以添加至虚拟机中的两个网卡为例进行说明,可以分别将两个网卡命名为eth1和eth2,并按照mode=6的绑定方式进行网卡的绑定。首先,可以进入/etc/sysconfig/network-scripts/目录,修改ifcfg_eth1,具体的参数修改可以如下:device=eth1;type=ethernet;bootproto=none;onboot=yes;master=bond0。ifcfg_eth2的参数修改可以参照ifcfg_eth1的参数修改。在修改完ifcfg_eth1以及ifcfg_eth2之后,可以创建ifcfg_bond0,参数可以如下:device=bond0;type=ethernet;onboot=yes;bootproto=none;ipaddr=192.168.28.102;netmask=255.255.255.0;当然,ip地址以及掩码均可以根据实际情况进行设定和调整。gateway=192.168.28.254;网关可以为宿主机自己网路的网关。userctl=no。在创建ifcfg_bond0之后,可以修改/etc/modprobe.conf,追加aliasbond0bonding;optionsbond0miimon=100mode=6。之后可以修改/etc/rc.local追加ifenslavebond0eth1eth2。最后重启虚拟机,即完成步骤s103的操作。

在将添加至虚拟机中的网卡绑定形成聚合链路之后,可以进行步骤s104的操作。

s104:基于聚合链路,完成虚拟机与虚拟机的通讯对象之间的网络访问。

聚合链路的带宽由至少两个网卡构成,基于该聚合链路,虚拟机可以与其通讯对象之间进行网络访问。相当于虚拟机可以直接操作多个网卡,使得虚拟机与其通讯对象之间进行网络访问时的带宽得到增加。

在本发明的一种具体实施方式中,在将网卡绑定形成聚合链路时,可以配置虚拟机的ip地址,以利用该ip地址,通过聚合链路,完成与虚拟机之间的网络访问。例如上述按照mode=6的网卡绑定方式形成聚合链路的实施例中,在创建ifcfg_bond0时,配置得到的ip地址为192.168.28.102,可以基于该ip地址,完成虚拟机与虚拟机的通讯对象之间的网络访问。

应用本发明实施例所提供的技术方案:根据接收到的编译指令设置宿主机以使宿主机支持passthrough的直接分配的方式;根据接收到的添加指令将宿主机中的至少两个网卡按照直接分配的方式添加至单个虚拟机中;将添加至虚拟机中的网卡绑定形成聚合链路;基于聚合链路,完成虚拟机与虚拟机的通讯对象之间的网络访问。

根据编译指令将虚拟机所在的宿主机进行设置,使得该宿主机支持直接分配的方式,将多个网卡按照直接分配的方式添加至单个虚拟机中,使得该虚拟机可以直接对多个网卡进行操作,之后在虚拟机中将多个网卡绑定形成聚合链路,使得虚拟机可以基于该聚合链路,完成与通讯对象之间的网络访问。相较于现有技术中的虚拟机的网络访问的方式,本发明的方案中的单个虚拟机可以基于多个网卡的聚合链路进行网络访问,增加了业务带宽,提高了虚拟机的网络访问的性能。

相应于上面的方法实施例,本发明实施例还提供了一种虚拟机的网络访问装置,下文描述的虚拟机的网络访问装置与上文描述的虚拟机的网络访问方法可相互对应参照。

参见图2所示,为本发明中一种虚拟机的网络访问装置的结构示意图,该装置包括以下模块:

配置模块201,用于根据接收到的编译指令设置宿主机以使宿主机支持passthrough的直接分配的方式;

网卡添加模块202,用于根据接收到的添加指令将宿主机中的至少两个网卡按照直接分配的方式添加至单个虚拟机中;

网卡绑定模块203,用于将添加至虚拟机中的网卡绑定形成聚合链路;

网络访问模块204,用于基于聚合链路,完成虚拟机与虚拟机的通讯对象之间的网络访问。

应用本发明实施例所提供的装置:根据接收到的编译指令设置宿主机以使宿主机支持passthrough的直接分配的方式;根据接收到的添加指令将宿主机中的至少两个网卡按照直接分配的方式添加至单个虚拟机中;将添加至虚拟机中的网卡绑定形成聚合链路;基于聚合链路,完成虚拟机与虚拟机的通讯对象之间的网络访问。

根据编译指令将虚拟机所在的宿主机进行设置,使得该宿主机支持直接分配的方式,将多个网卡按照直接分配的方式添加至单个虚拟机中,使得该虚拟机可以直接对多个网卡进行操作,之后在虚拟机中将多个网卡绑定形成聚合链路,使得虚拟机可以基于该聚合链路,完成与通讯对象之间的网络访问。相较于现有技术中的虚拟机的网络访问的方式,本发明的方案中的单个虚拟机可以基于多个网卡的聚合链路进行网络访问,增加了业务带宽,提高了虚拟机的网络访问的性能。

在本发明的一种具体实施方式中,网卡绑定模块203,具体用于:

按照mode=6的网卡绑定方式将添加至虚拟机中的网卡绑定形成聚合链路。

在本发明的一种具体实施方式中,网卡为pci网卡。

在本发明的一种具体实施方式中,网络访问模块204,具体用于:

基于聚合链路的经配置后确定的ip地址,完成虚拟机与虚拟机的通讯对象之间的网络访问。

相应于上面的方法及装置实施例,本发明实施例还提供了一种虚拟机的网络访问设备,下文描述的虚拟机的网络访问设备与上文描述的虚拟机的网络访问方法及装置可相互对应参照。

参见图3所示,为本发明中一种虚拟机的网络访问设备的结构示意图,该设备包括:

存储器301,用于存储计算机程序;

处理器302,用于执行计算机程序以实现:根据接收到的编译指令设置宿主机以使宿主机支持passthrough的直接分配的方式;根据接收到的添加指令将宿主机中的至少两个网卡按照直接分配的方式添加至单个虚拟机中;将添加至虚拟机中的网卡绑定形成聚合链路;基于聚合链路,完成虚拟机与虚拟机的通讯对象之间的网络访问。

相应于上面的方法、装置及设备实施例,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有虚拟机网络访问程序,该虚拟机网络访问程序被处理器执行时实现上述虚拟机的网络访问方法的步骤。计算机可读存储介质与上文描述的虚拟机的网络访问方法、装置及设备可相互对应参照。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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