参考:

在 Windows Server 上為 Hyper-V 虛擬機配置 SR-IOV - HeyAdvice.net

虚拟化中的SR-IOV - 爱码网


Windows

使用PowerShell 在硬件級別確定 Hyper-V 服務器是否支持 SR-IOV:

(get-vmhost).IovSupport
(get-vmhost).IovSupportReasons

如果您的服务器支持该功能,IovSupport 将包含 True. 如果没有,它将是 False. 在这种情况下, IovSupportReasons 显示了不支持 SR-IOV 的原因。 通常,会详细说明原因。 以下是典型的原因:

  • 系統上的芯片組不進行中斷重映射,否則無法支持 SR-IOV。
  • SR-IOV 無法在此計算機上使用,因為處理器不支持二級地址轉換 (SLAT)。 對於 Intel 處理器,此功能可能稱為擴展頁表 (EPT)。 對於 AMD 處理器,此功能可能稱為快速虛擬化索引 (RVI) 或嵌套頁表 (NPT)。
  • SR-IOV 不能在該系統上使用,因為 PCI Express 硬件在任何根端口都不支持訪問控制服務 (ACS)。 有關詳細信息,請聯繫您的系統供應商。
  • 要在此計算機上使用 SR-IOV,必須更新 BIOS,因為它包含描述硬件功能的錯誤信息。 請與您的計算機製造商聯繫以獲取更新。
  • 系統上的芯片組不進行 DMA 重映射,否則無法支持 SR-IOV。
  • SR-IOV 無法在此系統上使用,因為它已配置為禁用 I/O 重新映射硬件。
  • 要在此系統上使用 SR-IOV,必須更新系統 BIOS 以允許 Windows 控制 PCI Express。 請聯繫您的系統製造商以獲取更新。
  • 確保系統具有對 SR-IOV 的芯片組支持,並且在 BIOS 中啟用了 I/O 虛擬化。
  • SR-IOV 無法在此系統上使用,因為它報告沒有 PCI Express 總線。 有關詳細信息,請聯繫您的系統製造商。

完整输出 get-vmswitch | fl *iov* 包含一些有用的信息。 例如:

IovVirtualFunctionCount : 6
IovVirtualFunctionsInUse : 3Copy
这些数字显示有多少 IOV 虚拟设备可用,以及其中有多少被虚拟机使用。

这种就是支持

主板设置没开

windows 虚拟交换机m没配置

Linux

[root@node1 ~]# lspci -nn | grep Eth08:00.0 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)08:00.1 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)[root@node1 ~]# lspci -s 08:00.0 -vvv | grep CapabilitiesCapabilities: [40] Power Management version 3Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+Capabilities: [70] MSI-X: Enable+ Count=10 Masked-Capabilities: [a0] Express (v2) Endpoint, MSI 00Capabilities: [100 v2] Advanced Error ReportingCapabilities: [140 v1] Device Serial Number f8-0f-41-ff-ff-f4-af-6cCapabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)Capabilities: [1a0 v1] Transaction Processing HintsCapabilities: [1c0 v1] Latency Tolerance ReportingCapabilities: [1d0 v1] Access Control Services

打开 SR - IOV

您可能不会拥有所有项目,甚至没有 SR-IOV。 但这并不意味著您的服务器不支持 SR-IOV。 例如,Supermicro 主板在 BIOS 中可能没有 SR-IOV,但默认情况下禁用了 ASPM。 如果启用 ASPM 和虚拟化支持,将自动启用 SR-IOV

Hyper中启用SR-IOV

物理机确认开启了SRIOV功能之后,接下来在操作系统层面操作,首先Hyper-V若要使用SRIOV,有两处需要修改,一个是虚拟交换机,如下图确认在创建虚拟交换机时开启了SRIOV(单根虚拟化),需要注意的是虚拟交换机一旦创建后,SRIOV功能无法在修改,也就是说你要是忘了开启那对不起,麻烦您删了重来

或者在使用 PowerShell 创建虚拟交换机时启用 EnableIOV 选项:

New-VMSwitch -Name “VMNetExt” -NetAdapterName “Ethernet 2” -EnableIov 1

Important. 创建虚拟交换机后无法启用 SR-IOV。 如果您没有立即完成,则必须删除 vswitch 并重新创建。

虚拟交换机启用SRIOV之后,就要在我测试的虚拟机上操作了,在虚拟机的vNIC(虚拟网卡)上开启SRIOV,如下图所示,这里是可以随时开关的 

确认了上面的操作之后,通过powershell可以进一步确认系统是否识别了我的设置,在当前宿主机执行(get-vmhost).iovsupport或iovsupportreasons来查看返回结果,有关powershell中对象的属性可以通过管道符“|gm”来查看

另外如下图所示,通过get-netadaptersriov来查看当前主机上支持sriov的物理网卡有哪些,并且从返回结果来看,我的x520-2网卡最多支持62的vf。

顺带提一句Peripheral Component Interconnect Special Interest Group(外围部件互连专业组),简称PCISIG,这个组织定义了每个设备最多可支持的vf数量为256个 

还有一件很重要的事情。 一块主板可能有多个网络适配器,但 SR-IOV 可能仅受其中一些支持。 此外,如果适配器根据其数据表支持 SR-IOV,并不意味著它在您的主板上工作。

因此,在您配置交换机后,请使用以下命令对其进行检查:

get-vmswitch | select IovSupport, IovSupportReasons, IovEnabled

IovEnabled 选项显示是否启用了 SR-IOV。

您可以使用 PowerShell 显示支持 SR-IOV 的网络适配器列表:

Get-NetAdapterSriov | sort name | ft Name, InterfaceDescription, SriovSupport

在虚拟机管理程序和虚拟交换机级别启用 SR-IOV 后,您可以在虚拟机上启用它(默认情况下禁用)。 你可以找到 Enable SR-IOV 在裡面 Hardware Acceleration 您的虚拟机网络适配器。

或者,您可以通過 PowerShell 為虛擬機的網絡適配器啟用 SR-IOV:

Set-VMNetworkAdapter -VMName mytestvm -VMNetworkAdapterName Network Adapter -IovWeight 100

要禁用 SR-IOV,請將 IovWeight 的值更改為 0。

您可以使用單獨的事件查看器日誌在 Hyper-V 中找到所有 SR-IOV 錯誤和事件:

應用程序和服務日誌 -> Microsoft -> Windows -> Hyper-V-SynthNic -> 管理員。

如果 SR-IOV 工作正常,您將在虛擬機啟動時在事件查看器中看到以下條目:

12597 Network adapter (%NIC_ID%) Connected to virtual network.
12582 Network adapter (%NIC_ID%) started successfully.
12584 Network adapter (%NIC_ID%) allocated a virtual function.
12588 Network adapter (%NIC_ID%) assigned a virtual function.

在正确且成功开启了sriov功能之后,我启动这台测试虚拟机SRIOV_2012,可以看到hyper-v下方显示当前SRIOV是活动状态,但奇怪的是我发现有两个IP。。怎么回事呢?

进入到虚拟机系统里来看设备管理器,发现多了一块网卡,叫做“Intel(R)82599虚拟功能”,其实我这块Intel x520 series网卡是基于Intel 82599控制芯片的,后面的虚拟功能翻译过来就是virtual function,也就是虚出来的一个VF,它以一块虚拟网卡的形式呈现在虚机操作系统里了,因此我刚才看到了两个IP地址

这里可能有个小bug,就是我需要重新配一次IP,这样这台虚拟机才不会出现两个IP地址,如下图目前这个正常的测试IP显示的是(复制)

重新输一遍之后就恢复正常了,也就是说原先的IP地址没有直接映射到我的VF上面,下图显示当前IP已经恢复正常了,只有一个6.6.6.0的IP

同样通过powershell命令“get-netadaptersriovvf”可以看到当前生成的VF信息

查看当前设备是否启用SR-IOV相关推荐

  1. Ubuntu查看usb设备驱动/usb以太网卡设备驱动

    step1: lsusb 查看当前有哪些usb设备.注意:插在usb口上的外接设备一定能通过lsusb显示出来,但是不一定能通过lspci显示出来,即使这个设备的驱动已经安装了. 由于我要查看我的有线 ...

  2. NVME CLI -- nvme 命令查看NVME设备内部状态

    文章目录 NVME 和 AHCI 性能比较 NVME-CLI nvme工具使用 1. 安装 2. 命令综述 3. 基本命令演示 4. NVME 固件设备升级 近期在做一些rocksdb on 新硬件的 ...

  3. linux(ubuntu) 查看系统设备信息 命令

    时间:2012-08-02 00:12 ubuntu查看版本命令 方法一: 在终端中执行下列指令: cat /etc/issue 方法二: 使用 lsb_release 命令也可以查看 Ubuntu ...

  4. linux常用查看硬件设备信息命令

    转载:http://blog.chinaunix.net/uid-26782198-id-3242120.html # uname -a               # 查看内核/操作系统/CPU信息 ...

  5. 转 linux常用查看硬件设备信息命令

    转载自:http://blog.chinaunix.net/uid-26782198-id-3242120.html 系统 # uname -a               # 查看内核/操作系统/C ...

  6. 查看linux是否lvm分区,linux LVM分区查看dm设备

    linux LVM分区查看dm设备 在linux中iostat -d查看磁盘状态时,有的会有如下dm-0,dm-1的条目. Device:            tps    kB_read/s   ...

  7. Linux下,查看USB设备信息

    Linux下,查看USB设备信息 首先需要将usbfs挂载一下,然后才能查看. $ mount -t usbfs none /proc/bus/usb $ cat  /proc/bus/usb/dev ...

  8. linux查看usb设备名称,Linux系统下查看USB设备名及使用USB设备

    1.系统插入USB设备后,从控制台界面有如下提示: 从控制台信息可以看出插入的USB设备名. 从上图可以看出,插入的USB设备为sde4. 但是,如果是CRT工具远程连接过去,可以使用下面的命令来查看 ...

  9. 易语言安卓模拟器adb模块制作查看模拟器设备adb devices

    目前市面上安卓模拟器软件看着种类繁多,但其实只有两大流派:Bluestacks(蓝叠)和Virtualbox. Bluestacks的历史可以追溯到2011年,是最早在PC上实现流畅运行安卓系统的方案 ...

最新文章

  1. 寻找项目中顶级Vue对象 (一)
  2. 阻止表中出现重复项——SQL UNIQUE 约束
  3. 领域驱动设计,盒马技术团队这么做
  4. java中i+=2什么意思_三分钟看懂Java中i++与++i的性能差别以及循环中如何使用
  5. Python面试题大全(三):Web开发(Flask、爬虫)
  6. sublime编辑器无法正常打印中文问题解决
  7. 蓝桥杯 友好数 数论
  8. matlab实验5函数文件,实验五M文件和MATLAB设计技术总结.doc
  9. Python 爬虫 —— 使用 pandas
  10. html table 表格
  11. 直播预告|阿里云容器网络文件系统发布会
  12. 2021考研王道计算机408
  13. z变换与拉普拉斯变换的关系
  14. UCINET(64 bits)使用中 Access violation at address问题
  15. matlab 曲面拟合,matlab曲面拟合
  16. 如何利用OTDR光纤测试仪定位熔接点及诊断排除故障
  17. 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。剑指Offer(32)
  18. 浙大开源lidar_imu_calib源码安装过程
  19. 三十岁,研究生毕业的你,现在收入多少?
  20. 5G·深·体验1:5G到底有多快?

热门文章

  1. Windows 10 神州网信政府版 麦克风、摄像头的使用
  2. 战争与征服服务器维护,战争与征服 8月29日停机维护公告_战争与征服 8月29日更新了什么_玩游戏网...
  3. Eclipse一直提示 Loading descriptor for xxx 的问题
  4. 基于pyqt5开发的图书管理系统UI(带登录页面)
  5. 算法题目--找出第一个出现两次的字符。
  6. 数学建模美赛历年资料(含题目翻译)和优秀论文
  7. jfif怎么改成jpg,jfif转jpg方法
  8. kafka小白教程从入门到精通
  9. Windows下安装MySQL5
  10. ABP WEBAPI 跨域问题