リモート・ダイレクト・メモリー・アクセス (RDMA) は、ネットワーク・デバイスが別のシステムのアプリケーション・メモリーと直接データを転送できるようにすることで、特定のネットワーク環境でスループットを向上させ、レイテンシーを短縮します。
主な違いは、iWARP は TCP で RDMA を実行し、RoCEv2 は UDP を使用することです。
RDMA 機能を備えたデバイスでは、RDMA は次のオペレーティング・システムでサポートされています。
パケットのドロップによるパフォーマンスの低下を防ぐには、すべてのネットワーク・インターフェイスおよびスイッチでリンクレベルのフロー制御または優先度のフロー制御を有効にします。
注:
|
Linux* または FreeBSD* で RDMA をサポートするインテル® イーサネット・デバイスでは、次の表に示すドライバーを使用してください。
デバイス | Linux | FreeBSD | サポートされているプロトコル | ||
---|---|---|---|---|---|
ベースドライバー | RDMA ドライバー | ベースドライバー | RDMA ドライバー | ||
インテル® イーサネット 800 シリーズ | ice | irdma | ice | irdma | RoCEv2、iWARP |
インテル® イーサネット X722 シリーズ | i40e | irdma | ixl | iw_ixl | iWARP |
Linux* または FreeBSD* で RDMA をインストールおよび設定する一通りの手順は次のとおりです。詳細については、該当する RDMAドライバーの tarball 内の README ファイルを参照してください。
インテル® イーサネット 800 シリーズ搭載デバイスは、対応する Windows* または Linux* ホスト上で Linux* VF の RDMA をサポートします。Linux* VF で RDMA をロードおよび構成する方法の詳細については、Linux* RDMA ドライバー tarball 内の README ファイルを参照してください。
Network Direct (ND) はユーザーモードのアプリケーションで RDMA 機能を使用可能にします。
注: ユーザーモードのアプリケーションは、Microsoft* HPC Pack またはインテル® MPI ライブラリーなどで前提条件をもつことがあります。詳細については、アプリケーションのドキュメントを参照してください。 |
インテル® イーサネット・ユーザー・モード RDMA プロバイダーは、Microsoft* Windows Server* 2012 R2 以降でサポートされています。
ユーザーモードの Network Direct 機能をインストールするには、以下の手順に従います。
注: Windows* ファイアウォールが無効になっている場合またはサードパーティーのファイアウォールを使用している場合は、この規則を手動で追加する必要があります。 |
RDMA Network Direct Kernel (NDK) 機能は、インテルベースのネットワーク・ドライバーに含まれており、追加機能をインストールする必要はありません。
サブネット全体で NDK の RDMA 機能を有効化したい場合は、ベースドライバーのインストール中に RDMA 構成オプション画面で [IP サブネット全体で RDMA ルーティングを有効にする] を選択する必要があります。
パケットのドロップによるパフォーマンスの低下を防ぐには、すべてのネットワーク・インターフェイスおよびスイッチで優先フロー制御 (PFC) またはリンクレベルのフロー制御を有効にします。
注:Microsoft* Windows Server* オペレーティング・システムを実行しているシステムでは、*QoS/優先度のフロー制御を有効にすると、リンクレベルのフロー制御が無効になります。 |
次の PowerShell* コマンドを使用して、Microsoft* Windows Server* の PFC を有効にします。
Install-WindowsFeature -Name Data-Center-Bridging -IncludeManagementTools
New-NetQoSPolicy "SMB" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3
Enable-NetQosFlowControl -Priority 3
Disable-NetQosFlowControl -Priority 0,1,2,4,5,6,7
New-NetQosTrafficClass -Name "SMB" -Priority 3 -BandwidthPercentage 60 -Algorithm ETS
Set-NetQosDcbxSetting -Willing $FALSE
Enable-NetAdapterQos -Name "Slot1 4 2 Port 1"
次の Microsoft* PowerShell* コマンドを使用して、ネットワーク・インターフェイスで RDMA が有効になっているか確認できます:
Get-NetAdapterRDMA
次の PowerShell* コマンドを使用して、ネットワーク・インターフェイスが RDMA 対応でありマルチチャネルが有効になっているか確認できます:
Get-SmbClientNetworkInterface
次の PowerShell* コマンドを使用して、オペレーティング・システムで Network Direct が有効になっているか確認できます:
Get-NetOffloadGlobalSetting | Select NetworkDirect
Netstat を使用して、各 RDMA 対応ネットワーク・インターフェイスのポート 445 にリスナーがあることを確認します (RDMA をサポートする Windows* クライアント OS はリスナーをポストできない場合があります)。例:
netstat.exe -xan | ? {$_ -match "445"}
VMSwitch 接続された仮想アダプターで RDMA 機能を有効にするには、以下を行う必要があります。
特定の状況下では、これらの設定をデフォルトで無効にすることができます。これらのオプションは、アダプターのプロパティー・ダイアログ・ボックスの [詳細設定] タブ内にあるインテル® PROSet ACU の [アダプターの設定] パネル、または次の PowerShell コマンドを使用して手動で設定できます。
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV -RegistryValue 1
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ -RegistryValue 1
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <1-32>
NDK モード 3 はカーネルモード Windows* コンポーネントが Hyper-V* ゲスト・パーティション内で RDMA 機能を使用できるようにします。インテル® イーサネット・デバイスで NDK モード 3 を有効にするには、次の手順に従ってください:
New-VMSwitch -Name <switch_name> -NetAdapterName <device_name>
-EnableIov $true
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <Value: 0 - 32>
Get-NetAdapterRdma | Disable-NetAdapter
Get-NetAdapterRdma | Enable-NetAdapter
Add-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -SwitchName <switch_name>
Set-VMNetworkAdapterRdma -VMName <vm_name> -VMNetworkAdapterName <device_name> -RdmaWeight 100
Set-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -IovWeight 100
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaVfEnabled -RegistryValue 1
Get-NetAdapterRdma | Enable-NetAdapterRdma
NDK は、Windows* コンポーネント (SMB ダイレクト・ストレージなど) が RDMA 機能を使用できるようにします。
このセクションでは、インテルのイーサネット機能と、Microsoft* Windows* オペレーティング・システムでのパフォーマンスを調べるために推奨される RDMA のテスト方法を説明します。
SMB ダイレクトはストレージ・ワークロードなので、ベンチマークのパフォーマンスは、テストされるネットワーク・インターフェイスではなく、ストレージデバイスの速度に制限される可能性があります。テスト中のネットワーク・デバイスの真の性能をテストするために、インテルは可能な限り最速のストレージを使用することを推奨します。
テストの手順:
New-SmbShare -Name <SMBsharename> -Path <SMBsharefilepath> -FullAccess <domainname>\Administrator,Everyone
New-SmbShare -Name RAMDISKShare -Path R:\RAMDISK -FullAccess group\Administrator,Everyone
.\diskspd.exe -b4K -d60 -h -L -o16 -t16 -r -w0 -c10G \\<SMBserverTestIP>\<SMBsharename>\test.dat
(C) 2019 - 2022, Intel Corporation.無断での引用、転載を禁じます。
インテルは、本書の記載内容の誤りや記入漏れについて、いっさい責任を負いません。また、その記載内容を更新することを約束するものでもありません。
Intel、インテルは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
本ソフトウェアはライセンスに基づいて提供されるものであり、そのライセンスの許諾範囲内でのみ使用または複製できます。本マニュアル内での情報は、あくまでも情報として提供するもので、予告なしに変更されることもあり、また、内容についても、インテルが責任を負うものではありません。本書の内容および本書の内容に関連して掲載されているソフトウェア製品の誤りに関して、インテルは一切の責任や義務を負いません。ライセンス契約で許可されている場合を除き、インテルからの書面での承諾なく、本書のいかなる部分も複製したり、検索システムに保持したり、ほかの形式や媒体によって転送したりすることは禁じられています。