iWARP RDMA(适用于英特尔以太网)

远程直接内存访问(或 RDMA)允许计算机在不与计算机的操作系统数据缓冲区交互的情况下访问另一台计算机的内存,从而提高了网络速度和吞吐量。iWARP 是一种跨网络协议网络实施 RDMA 的协议。

Microsoft* Windows* 提供了两种形式的 RDMA:网络直接内核 (NDK) 和网络直接 (ND)。

iWARP RDMA(适用于 NDK)提供如 SMB 直接等功能

NDK 允许 Windows 组件(如 SMB 直接存储)使用 iWARP 功能。

iWARP NDK 配置

NDK 功能包括在英特尔基本网络驱动程序中,不需要安装其他功能。

验证 iWARP RDMA 操作

检查 RDMA 是否在网络接口上启用

Get-NetAdapterRDMA

验证网络接口显示为 RDMA 兼容,并已启用多通道

et-SmbClientNetworkInterface

网络直接已在操作系统中启用

Get-NetOffloadGlobalSetting | 选择 NetworkDirect

接口中每个 RDMA 兼容的网络应该有一个位于端口 445 的侦听程序(支持 RDMA 的 Windows 客户端操作系统可能不发布侦听程序)

netstat.exe -xan | ? {$_ -match "445"}

跨 IP 子网的 iWARP 路由

如果你想跨子网允许 NDK 的 RDMA 功能,您需要在基础驱动程序安装过程中(请参阅下面的”安装”部分)在 iWARP 配置选项屏幕上选择“启用跨 IP 子网的 iWARP 路由”。

iWARP(适用于虚拟化环境)

为了在连接到 VMSwitch 的虚拟适配器上启用 RDMA 功能,*SRIOV(单根 I/O 虚拟化)和 *VMQ(虚拟机队列)的高级属性必须在每个端口驱动程序上启用。在某些情况下,这些设置可能会默认禁用。可以在“适配器属性”对话框的“高级”选项卡中手动设置这些选项,也可以使用以下 Powershell 命令:

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

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

测试 iWARP NDK:带 DiskSPD 的 Microsoft* Windows* SMB 直接

本节概述了我们推荐的在 Microsoft windows* 操作系统上测试适用于英特尔以太网功能和性能的 iWARP RDMA 的方法。

注:由于 SMB 直接是存储工作负载,因此基准测试的性能可能仅限于存储设备的速度,而不是被测试的网络接口。英特尔建议尽可能使用最快的存储,以对所测试的网络设备的真实功能进行测试。

测试说明:

  1. 设置至少两台 Microsoft* Windows* Server 2012 R2 或 Microsoft* Windows* Server 2016,每台服务器上至少有一个网络接口有 iWARP 兼容的英特尔® 以太网连接。
  2. 在指定为 SMB 服务器的系统上设置一个 SMB 共享。注:基准测试的性能可能仅限于存储设备的速度,而不是被测试的网络接口。存储的设置不在本文的范围之内。
    PowerShell (PS) 命令:
    New-SmbShare -Name <SMBsharename> -Path <SMBsharefilepath> -FullAccess <domainname>\Administrator,Everyone

    实例:
    New-SmbShare -Name RAMDISKShare -Path R:\RAMDISK -FullAccess group\Administrator,Everyone

  3. 从此处下载并安装 Microsoft 实用程序 Diskspd:https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
  4. 使用 CMD 或 Powershell,cd 到 DiskSpd 文件夹并运行测试。(参考 Diskspd 文档以了解关于参数的更多信息)

    示例:将块大小设置为 4K,运行测试 60 秒钟,禁用所有硬件和软件缓存,测量和显示延迟统计数据,利用 16 个重叠的 IO 和 16 个线程每目标,随机 0% 写入和 100% 读取,并在以下位置创建一个 10GB 的传输文件: “\\<SMBserverX722IP>\<SMBsharename>\test.dat” :
    .\diskspd.exe –b4K -d60 -h -L –o16 -t16 –r –w0 -c10G \\<SMBserverX722IP>\<SMBsharename>\test.dat

  5. 确认 RDMA 通信作者使用“RDMA 活动”和“SMB 直接连接”之类的性能计数器。(参考 Microsoft 文档以了解更多细节)

配置 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

iWARP RDMA(适用于 ND 用户模式应用程序)

ND 允许用户模式应用程序使用 iWARP 功能。如果您计划在您正在开发的用户模式应用程序中使用 iWARP 功能,则您在安装驱动程序时将需要安装网络直接 (ND) 功能。

iWARP 用户模式的安装

英特尔® 以太网用户模式 iWARP 提供程序 Microsoft* Windows Server* 2012 R2 或更新版本中受支持。

注意:

  • 在 Windows Server 2016 Nano Server 上安装,请参阅下面 “在Nano Server 上安装”。
  • 用户模式应用程序可能具有诸如 Microsoft HPC 包或英特尔 MPI 库之类的先决条件,请参阅应用程序文档以了解详细信息。

按照以下步骤安装用户模式网络直接 (ND) iWARP 功能。

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

在 Microsoft Windows Server 2016 Nano Server 上安装 iWARP 用户模式

按照以下步骤在 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 路由。

客户支持

法律声明 / 免责声明

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

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

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

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

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