• 查看当前设备是否启用SR-IOV


    参考:

    在 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

    1. [root@node1 ~]# lspci -nn | grep Eth
    2. 08:00.0 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
    3. 08:00.1 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
    4. [root@node1 ~]# lspci -s 08:00.0 -vvv | grep Capabilities
    5. Capabilities: [40] Power Management version 3
    6. Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
    7. Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
    8. Capabilities: [a0] Express (v2) Endpoint, MSI 00
    9. Capabilities: [100 v2] Advanced Error Reporting
    10. Capabilities: [140 v1] Device Serial Number f8-0f-41-ff-ff-f4-af-6c
    11. Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
    12. Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
    13. Capabilities: [1a0 v1] Transaction Processing Hints
    14. Capabilities: [1c0 v1] Latency Tolerance Reporting
    15. Capabilities: [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 工作正常,您將在虛擬機啟動時在事件查看器中看到以下條目:

    1. 12597 Network adapter (%NIC_ID%) Connected to virtual network.
    2. 12582 Network adapter (%NIC_ID%) started successfully.
    3. 12584 Network adapter (%NIC_ID%) allocated a virtual function.
    4. 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信息

     

     

  • 相关阅读:
    Vue 中指令v-bind的补充、v-for的使用,两者的结合使用。
    gitBash中如何使用Linux中的tree命令
    Unity Shader LightMode 标签
    MySQL InnoDB数据存储结构
    HTML5期末大作业:美妆网页主题网站设计——清新的手工肥皂网站展示(4页)HTML+CSS+JavaScript
    flask基础开发知识学习
    多表关联怎么进行操作?_(相关搜索:数据库)
    使用 Python 中的小波变换信号驾驭股票价格的波动
    【MySQL基本查询(下)】
    GO安装以及配置(1)
  • 原文地址:https://blog.csdn.net/vistaup/article/details/126205471