リモート・ダイレクト・メモリー・アクセス (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 | サポートされていません | 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
perfmon またはその他のパフォーマンス監視ツールを使用して、RDMA カウンターと統計情報を監視および表示できます。詳細については、Microsoft* のドキュメントを参照してください。Register-IntelEthernetRDMACounterSet cmdlet を使用して、特定のデバイスの RDMA 統計カウンターを perfmon に登録します。インテル® イーサネット cmdlet のインストール方法および使用方法に関する詳細については、Windows PowerShell による構成を参照してください。次の PowerShell コマンドを使用して、すべての対応デバイスの RDMA 統計情報を登録できます。
Register-IntelEthernetRDMACounterSet
次の PowerShell cmdlet を使用して、RDMA 統計情報を登録解除できます。
Unregister-IntelEthernetRDMACounterSet
(C) 2019 - 2023, Intel Corporation.無断での引用、転載を禁じます。
本ソフトウェアと関連ドキュメントは、インテルが著作権を有する著作物であり、その使用には付随する明示的なライセンス (「ライセンス」) が適用されます。ライセンスで特に明記されていない限り、インテルから書面による許可を得た場合を除き、本ソフトウェアまたは関連ドキュメントを使用、改変、複製、公表、配布、公開することはできません。
本ソフトウェアおよび関連ドキュメントは現状のまま提供され、ライセンスに明記されているものを除き、明示されているか否かにかかわらず、いかなる保証もいたしません。
インテルのテクノロジーを使用するには、対応したハードウェア、ソフトウェア、またはサービスの有効化が必要となる場合があります。
絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。
コストと結果は状況によって変わります。
Intel、インテル、Intel ロゴ、その他のインテルの名称やロゴは、Intel Corporation またはその子会社の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。