一种基于SR_IOV的虚拟化实现方法与流程

文档序号:12469687阅读:916来源:国知局
一种基于SR_IOV的虚拟化实现方法与流程

本发明涉及虚拟化技术领域,特别是涉及一种基于SR_IOV的虚拟化实现方法。



背景技术:

随着云计算的广泛应用,虚拟化技术在I/O性能方面的变革正变得越来越突出,SR-IOV and Sharing Specification(Single Root I/O Virtualization,单根I/O虚拟化)技术可以将一个物理设备分配给多个虚拟机,提高了对物理资源的利用率,每个SR-IOV设备都有一个物理功能PF,PF可以通过寄存器创建VF,一旦在PF中启用了SR-IOV,就可以通过PF的总线、设备和功能编号访问各个VF的PCI配置空间。每一个VF都有自己独立的配置空间和完整的基址寄存器,Hypervisor通过将VF实际使用的配置空间映射到客户机可以看到的配置空间。浪潮云海OS·服务器虚拟化系统InCloud Sphere是面向IT云化设计和开发的虚拟化平台,具备领先的安全性和稳定性,是云数据中心的虚拟化基石,通过虚拟化技术整合计算、存储和网络等物理资源,对虚拟资源、硬件资源、用户资源进行集中管理,但是目前的InCloud Sphere系统无法实现SR-IOV技术,InCloud Sphere系统中虚拟机对于I/O的使用性能不高。



技术实现要素:

本发明的目的是提供一种基于SR_IOV的虚拟化实现方法,以实现提高虚拟机对于I/O的使用性能。

为解决上述技术问题,本发明提供一种基于SR_IOV的虚拟化实现方法,应用于虚拟化系统IncloudSphere,包括:

在基本输入输出系统BIOS中开启IOMMU功能或者VT-D功能,并在所述BIOS中开启单根输入输出虚拟化SR_IOV功能;

修改内核启动项,在内核中开启IOMMU功能;

为物理网卡分配虚拟功能VF;

将所述VF分配给虚拟机使用。

优选的,在所述BIOS中开启IOMMU功能或者VT-D功能,包括:

对于支持SR_IOV的AMD处理器,在基本输入输出系统BIOS中开启IOMMU功能;对于支持SR_IOV的Intel处理器,在基本输入输出系统BIOS中开启VT-D功能。

优选的,所述修改内核启动项,在内核中开启IOMMU功能,包括:

在/etc/default/grub文件中的以GRUB_CMDLINE_LINUX为开始的行中,对于支持SR_IOV的Intel处理器写入命令intel_iommu=on,对于支持SR_IOV的AMD处理器写入命令iommu=1。

优选的,所述为物理网卡分配虚拟功能VF,包括:

配置物理网卡ethi的SR_IOV功能,加载网卡的物理功能PF的驱动,配置/sys/class/net/ethi/device/sriov_numfs文件,写入虚拟功能VF的数量,写入后,卸载PF的驱动。

优选的,当VF中mac地址全为0时,使用ip link set命令指定mac地址。

优选的,所述将所述VF分配给虚拟机使用之后,还包括:

利用virsh create vmuuid.conf命令开启虚拟机。

优选的,所述IncloudSphere用于负责底层物理资源的虚拟融合、按需分配和高效管理。

本发明所提供的一种基于SR_IOV的虚拟化实现方法,应用于虚拟化系统IncloudSphere,在基本输入输出系统BIOS中开启IOMMU功能或者VT-D功能,并在所述BIOS中开启单根输入输出虚拟化SR_IOV功能;修改内核启动项,在内核中开启IOMMU功能;为物理网卡分配虚拟功能VF;将所述VF分配给虚拟机使用。可见,该方法在IncloudSphere系统中进行了SR_IOV技术的实现,通过SR_IOV技术使得虚拟机可以直接使用物理网卡,并且多个虚拟机通过分配VF来共享物理资源,如此使得多个虚拟机可以共享网卡的物理功能,即使得多个虚拟机能够共享同一个物理网卡资源,提高了虚拟机的网卡使用性能,同时提高虚拟机对于I/O的使用性能。

附图说明

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

图1为本发明所提供的一种基于SR_IOV的虚拟化实现方法流程图;

图2为支持SR_IOV的Intel处理器在BIOS中开启VT-D的显示图;

图3为支持SR_IOV的Intel处理器在BIOS中开启SR_IOV的显示图。

具体实施方式

本发明的核心是提供一种基于SR_IOV的虚拟化实现方法,以实现提高虚拟机对于I/O的使用性能。

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

请参考图1,图1为本发明所提供的一种基于SR_IOV的虚拟化实现方法流程图,该方法应用于虚拟化系统IncloudSphere,该方法包括:

S11:在基本输入输出系统BIOS中开启IOMMU功能或者VT-D功能,并在BIOS中开启单根输入输出虚拟化SR_IOV功能;

S12:修改内核启动项,在内核中开启IOMMU功能;

S13:为物理网卡分配虚拟功能VF;

S14:将VF分配给虚拟机使用。

可见,该方法在IncloudSphere系统中进行了SR_IOV技术的实现,通过SR_IOV技术使得虚拟机可以直接使用物理网卡,并且多个虚拟机通过分配VF来共享物理资源,如此使得多个虚拟机可以共享网卡的物理功能,即使得多个虚拟机能够共享同一个物理网卡资源,提高了虚拟机的网卡使用性能,同时提高虚拟机对于I/O的使用性能。

基于上述方法,具体的,在BIOS中开启IOMMU功能或者VT-D功能的过程具体为:对于支持SR_IOV的AMD处理器,在基本输入输出系统BIOS中开启IOMMU功能;对于支持SR_IOV的Intel处理器,在基本输入输出系统BIOS中开启VT-D功能。

其中,步骤S12的过程具体为:在/etc/default/grub文件中的以GRUB_CMDLINE_LINUX为开始的行中,对于支持SR_IOV的Intel处理器写入命令intel_iommu=on,对于支持SR_IOV的AMD处理器写入命令iommu=1。

其中,步骤S13的过程具体为:配置物理网卡ethi的SR_IOV功能,加载网卡的物理功能PF的驱动,配置/sys/class/net/ethi/device/sriov_numfs文件,写入虚拟功能VF的数量,写入后,卸载PF的驱动。

进一步的,当VF中mac地址全为0时,使用ip link set命令指定mac地址。

进一步的,将VF分配给虚拟机使用之后,利用virsh createvmuuid.conf命令开启虚拟机。

其中,IncloudSphere用于负责底层物理资源的虚拟融合、按需分配和高效管理。详细的,IncloudSphere负责完成底层物理资源的虚拟融合、按需分配与高效管理,可以显著提高资源交付的敏捷性和灵活性,提升资源的使用效率,为上层业务提供不间断地资源保障与可伸缩的资源供给。

对于物理功能PF,PF是一个带有SR_IOV功能的PCI-e设备,可以在宿主机中对VF进行管理和配置。

对于虚拟功能VF,VF可以实现轻量级的PCI-e功能,VF通过PF的配置,可以直接分配给虚拟机使用,一个或者多个VF可以分配给单个虚拟机使用。

本方法在于通过SR_IOV技术,使得虚拟机可以直接使用物理网卡,并且多个虚拟机通过分配VF来共享物理资源,基于IncloudSphere系统进行了SR_IOV技术的实现,使得多个虚拟机能够共享同一个物理网卡资源,提高了虚拟机的网卡使用性能。本方法可以将单个物理网卡虚拟成多个VF,并将VF分配给虚拟机,使得虚拟机可以直接使用物理网卡功能,提高IncloudSphere中虚拟机对于I/O的使用性能。

对于IncloudSphere系统,基于KVM的IncloudSphere虚拟化系统,可以将一个或者多个VF分配给一个客户机,客户机通过自身的VF驱动程序直接操作使用VF而不需要KVM的参与,这样使得虚拟机可以共享物理设备,并在没有CPU和Hypervisor的软件开销的情况下执行I/O,提高了虚拟机对I/O的使用性能,并且还可减少虚拟交换机的端口数量。

本发明基于IncloudSphere系统进行SR_IOV技术的实现,具体过程为:在Bios中开启VT-D/IOMMU和SR_IOV功能;修改内核启动项,在内核开启iommu功能;为物理网卡分配VF;将VF提供给虚拟机使用。在IncloudSphere系统中实现了SR_IOV技术,使得多个虚拟机可以共享网卡的物理功能,本发明还可支持物理网卡的混合使用功能:将物理网卡分配给虚拟交换机并且开启SR_IOV功能,本发明对于可以使用SR_IOV功能的Intel处理器和AMD处理器的网卡提供了很好的支持。

基于本方法,具体实施过程中,包括以下步骤:

第一步,在BIOS开启IOMMU(AMD处理器)或者VT-D(Intel处理器),参考图2,支持SR_IOV的Intel处理器在BIOS中开启VT-D,并且使能SR_IOV功能,参考图3,支持SR_IOV的Intel处理器在BIOS中开启SR_IOV。

第二步,在内核中开启IOMMU,具体操作为在/etc/default/grub文件中的以GRUB_CMDLINE_LINUX为开始的行,对于支持SR_IOV的Intel处理器写入intel_iommu=on,对于支持SR_IOV的AMD处理器写入iommu=1。

第三步,配置物理网卡ethi的SR_IOV功能,加载网卡的PF驱动,配置/sys/class/net/ethi/device/sriov_numfs文件,写入VF的数量,写入后,卸载VF驱动。对于VF中mac地址全为0的情况,可以使用ip link set命令手动指定mac地址,还可以通过升级内核或者VF驱动的方法,解决这种问题。

第四步,将VF分配给虚拟机使用,以Intel 82576型网卡为例,使用lspci|grep 82576命令列出刚刚添加的7个VF,查看Intel 82576型网卡新添加的VF的指令如下:

03:00.0 Ethernet controller:Intel Corporation 82576Gigabit Network Connection(rev 01)

03:00.1 Ethernet controller:Intel Corporation 82576Gigabit Network Connection(rev 01)

08:00.0 Ethernet controller:Intel Corporation 82576Gigabit Network Connection(rev 01)

08:00.1 Ethernet controller:Intel Corporation 82576Gigabit Network Connection(rev 01)

09:10.0 Ethernet controller:Intel Corporation 82576Virtual Function(rev 01)

09:10.2 Ethernet controller:Intel Corporation 82576Virtual Function(rev 01)

09:10.4 Ethernet controller:Intel Corporation 82576Virtual Function(rev 01)

09:10.6 Ethernet controller:Intel Corporation 82576Virtual Function(rev 01)

09:11.0 Ethernet controller:Intel Corporation 82576Virtual Function(rev 01)

09:11.2 Ethernet controller:Intel Corporation 82576Virtual Function(rev 01)

09:11.4 Ethernet controller:Intel Corporation 82576Virtual Function(rev 01)

然后使用virsh nodedev-dumpxml查看VF pci_0000_09_10_2中的bus,slot and function参数,并配置虚拟机的conf配置文件vmuuid.conf,配置虚拟机开机前的conf配置文件的指令如下:

mac地址如果没有分配,那么开启虚拟机的时候自动分配,使用virsh create vmuuid.conf开启虚拟机,使用virsh edit vmname可以查看虚拟机开机后的xml配置文件,开机后,虚拟机默认开启igbvf驱动,在虚拟机看到为虚拟机分配的vf。查看虚拟机开机后的xml配置文件的指令如下:

综上,本发明所提供的一种基于SR_IOV的虚拟化实现方法,应用于虚拟化系统IncloudSphere,在基本输入输出系统BIOS中开启IOMMU功能或者VT-D功能,并在BIOS中开启单根输入输出虚拟化SR_IOV功能;修改内核启动项,在内核中开启IOMMU功能;为物理网卡分配虚拟功能VF;将VF分配给虚拟机使用。可见,该方法在IncloudSphere系统中进行了SR_IOV技术的实现,通过SR_IOV技术使得虚拟机可以直接使用物理网卡,并且多个虚拟机通过分配VF来共享物理资源,如此使得多个虚拟机可以共享网卡的物理功能,即使得多个虚拟机能够共享同一个物理网卡资源,提高了虚拟机的网卡使用性能,同时提高虚拟机对于I/O的使用性能。

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

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