iWARP(互联网广域 RDMA 协议)

远程直接内存访问,或 RDMA,允许计算机访问另一台计算机的内存而无需两台计算机操作系统数据缓冲区的交互,从而提高网络速度和吞吐量。互联网广域 RDMA 协议 (iWARP) 是用于跨互联网协议网络实施 RDMA 的协议。

Microsoft* Windows* 提供两种形式的 RDMA:网络直接 (ND) 和网络直接内核 (NDK)。ND 允许用户模式应用程序使用 iWARP 功能。NDK 允许内核模式 Windows 组件(如文件管理器)使用 iWARP 功能。NDK 功能包含在英特尔基础网络驱动程序内。ND 功能是在英特尔驱动程序和网络软件安装过程中可用的一个单独的选项。如果您计划在您正在开发的应用程序中使用 iWARP 功能,则您在安装驱动程序时将需要安装用户模式网络直接 (ND) 功能。(请参阅下面的安装说明。)

注意:

  • 尽管 NDK 功能包含在基础驱动程序内,但是如果您想要跨子网允许 NDK RDMA 功能,则您在安装基础驱动程序的时候需要从 iWARP 配置选项屏幕上选择“启用跨 IP 子网的 iWARP 路由”(请参阅下面的安装说明)。
  • 为了在连接到虚拟机交换器的虚拟适配器上启用 RDMA 功能,*SRIO(单根 I/O 虚拟化)和 *VMQ(虚拟机队列)的高级属性必须在每个端口驱动程序上启用。使用适配器属性对话框的高级选项卡或以下 Windows PowerShell 命令来设置这些选项。
    Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV
    -RegistryValue 1

    Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ
    -RegistryValue 1

要求

英特尔® 以太网用户模式 iWARP 提供程序在 Linux* 操作系统和 Microsoft* Windows Server* 2012 R2 或更新版本中受支持。对于 Windows 上的安装,必须安装 Microsoft* HPC 或英特尔® MPI 库。

安装用户模式网络直接 (ND) iWARP 功能

注:要在 Windows Server 2016 纳米服务器上安装英特尔® 以太网用户模式 iWARP 提供程序,请参阅下面的“在纳米服务器上安装”。

网络直接内核 (NDK) 功能均包含在英特尔基础驱动程序内。按照以下步骤安装用户模式网络直接 (ND) iWARP 功能。

  1. 从安装介质运行 Autorun.exe 以启动安装程序,然后选择”安装驱动程序和软件”,并接受许可协议。
  2. 在安装选项屏幕上,选择“英特尔® 以太网用户模式 iWARP 提供程序”。
  3. 在 iWARP 配置选项屏幕上,选择“启用跨 IP 子网的 iWARP 路由”(如果需要)。请注意,在基础驱动程序安装过程中,即使未选择用户模式 iWARP,此选项仍会显示,因为此选项也适用于网络直接内核功能。
  4. 如果 Windows 防火墙已安装,并处于活动状态,则选择“在 Windows 防火墙中创建一条英特尔® 以太网 iWARP 端口映射服务规则”,并选择要对其应用该规则的网络。如果 Windows Firewall 被禁用,或者您使用的是第三方防火墙,您将需要手动添加此规则。
  5. 继续安装驱动程序和软件。

在 Nano Server 上安装

按照以下步骤在 Microsoft Windows Server 2016 Nano Server 上安装英特尔® 以太网用户模式 iWARP 提供程序。

  1. 创建一个目录,以从该目录安装 iWARP 文件。例如:C:\Nano\iwarp。
  2. 将以下文件复制到新目录:
  3. 运行 DISM 命令将 iWARP 文件注入 Nano Server 映像,将您在步骤 1 中创建的目录用作 AddDriver 路径参数。例如:“DISM .../Add-Driver C:\Nano\iwarp”
  4. 为 UDP 端口 3935 创建一个防火墙入站规则。
  5. 如果需要,使用下面的 Windows PowerShell 命令启用跨 IP 子网的 iWARP 路由。

配置 iWARP 来宾支持(NDK 模式 3)

NDK 模式 3 允许内核模式 Windows 组件在 Hyper-V 来宾分区中使用 iWARP 功能。要在英特尔以太网设备上启用 NDK 模式 3,请执行以下操作:

  1. 在系统的 BIOS 或 UEFI 中启用 SR-IOV。
  2. 在设备上启用 SR-IOV 高级选项。
  3. 使用在交换机上启用的 SR-IOV 配置设备。对同一设备上的所有函数执行此步骤:
    New-VMSwitch -Name <switch_name> -NetAdapterName <device_name>
    -EnableIov $true
  4. 通过设置“RdmaMaxVfsEnabled”高级选项来配置设备上的 RDMA 虚函数 (VF) 的数目。所有物理函数都必须设置为相同的值。该值是在整个设备中同一时间内具有 RDMA 能力的 VF 的最大数目。启用更多的 VF 将限制来自物理函数 (PF) 和其他 VF 的 RDMA 资源。
    Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <Value: 0 – 32>
  5. 禁用主机上的所有 PF 适配器并重新予以启用。这在当注册表关键字 “RdmaMaxVfsEnabled” 被更改、或创建或销毁 VMSwitch 时是必需的。
    Get-NetAdapterRdma | Disable-NetAdapter
    Get-NetAdapterRdma | Enable-NetAdapter
  6. 为需要 RDMA VF 支持的 VM 创建 VM 网络适器。
    Add-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -SwitchName <switch_name>
  7. 如果计划在来宾分区上使用 Microsoft Windows 10 Creators Update (RS2) 或更高版本,则在主机上输入以下命令来设置 VM 网络适配器上的 RDMA 重量:
    Set-VMNetworkAdapterRdma -VMName <vm_name> -VMNetworkAdapterName <device_name> -RdmaWeight 100
  8. 在 VM 网络适配器上设置 SR-IOV 权重(注:在将 RdmaWeight 设置为 0 之前,必须先将 SR-IOV 权重设置为 0):
    Set-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -IovWeight 100
  9. 在 VM 中使用 PROSET 安装程序安装 VF 网络适配器。
  10. 使用 VM 中的 PowerShell 在 VF 驱动程序和 Hyper-V 网络适配器上启用 RDMA:
    Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaVfEnabled -RegistryValue 1
    Get-NetAdapterRdma | Enable-NetAdapterRdma

检查“RDMA Capable”字段以验证是否已成功启用了 RDMA。运行:
Get-SmbServerNetworkInterface

如果“RDMA Capable”字段报告为 false,则请尝试禁用并重新启用 VM 中的 RDMA 功能:
Get-NetAdapterRdma | Disable-NetAdapterRdma
Get-NetAdapterRdma | Enable-NetAdapterRdma

如果“RDMA Capable”字段仍然报告为 false,则请尝试禁用并重新启用主机上的物理函数:Get-NetAdapterRdma | Disable-NetAdapter
Get-NetAdapterRdma | Enable-NetAdapter

客户支持

法律声明 / 免责声明

版权所有 (C) 2018 年,英特尔公司。保留所有权利。

英特尔公司对本文档中的错误和遗漏不负责任。英特尔公司对更新本文档中的信息不作任何承诺。

英特尔是英特尔公司在美国和/或其它国家(地区)的商标。

*文中涉及的其它名称及商标属于各自所有者资产。

本软件根据许可提供,仅允许按照许可条款使用或复制。本手册中的信息仅供参考,可能随时变更而不另行通知,并且不得将其视为英特尔公司的承诺。对于本文或提供的与本文有关的任何软件中可能出现的任何错误或不准确之处,英特尔公司概不承担任何责任或义务。除非许可证允许,在未获得英特尔公司明确的书面同意前提下,不得以任何形式或任何手段复制或传输本文档的任何部分,也不得将其存储到检索系统中。