インテル・イーサネットの iWARP RDMA
リモート・ダイレクトメモリ・アクセス (RDMA) は、コンピューターのオペレーティング・システムのデータバッファとのインタラクションなしで、別のコンピューターのメモリーにアクセスできるため、ネットワークの速度とスループットが向上します。iWARP は、インターネット・プロトコル・ネットワークを介して RDMA を実装するためのプロトコルです。
Microsoft* Windows* は、ネットワーク・ダイレクト・カーネル (NDK) とネットワーク・ダイレクト (ND) という 2 つの形式の RDMA を提供します。
SMB Direct (サーバー・メッセージ・ブロック) などの NDK 機能用の iWARP RDMA
NDK は、Windows* コンポーネント (SMB ダイレクト・ストレージなど) がiWARP 機能を使用できるようにします。
iWARP NDK 設定
インテルベースのネットワーク・ドライバーには NDK 機能が含まれており、追加機能をインストールする必要はありません。
iWARP RDMA 操作の検証
ネットワーク・インターフェイスで RDMA が有効になっていることを確認します
Get-NetAdapterRDMA
ネットワーク・インターフェイスが RDMA 対応と表示されマルチチャネルが有効になっていることを検証します
Get-SmbClientNetworkInterface
OS でネットワーク・ダイレクトが有効になっています
Get-NetOffloadGlobalSetting | ネットワーク・ダイレクトの選択
各 RDMA 対応ネットワーク・インターフェイスがポート 445 にリスナーを持つ必要があります (RDMA をサポートする Windows* クライアント OS はリスナーを掲示しないことがあります)
netstat.exe -xan | ? {$_ -match "445"}
IP サブネット全体に渡る iWARP ルーティング
サブネット全体に渡って NDK の RDMA 機能を許可したい場合は、ベースドライバーのインストール中に iWARP 設定オプション画面で [IP サブネット全体で iWARP ルーティングを有効にする] を選択する必要があります (以下のインストールを参照してください)。
仮想環境での iWARP
VMSwitch に接続されている仮想アダプターの RDMA 機能を有効にするには、各ポートドライバーで *SRIOV (シングルルート IO 仮想化) および *VMQ (仮想マシンキュー) の詳細プロパティーを有効にする必要があります。特定の状況の下では、これらの設定がデフォルトで無効になっていることがあります。これらのオプションは、アダプターの [プロパティ] ダイアログボックスの [詳細設定] タブで手動で設定するか、次の Powershell :コマンドを使用できます。
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV -RegistryValue 1
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ -RegistryValue 1
DiskSPD を使用して WARP NDK: Microsoft* Windows* SMB Direct をテストする
このセクションは、インテルのイーサネット機能と Microsoft* Windows* オペレーティング・システムでのパフォーマンスを調べるために iWARP RDMA をテストするための推奨方法を概説します。
SMB Direct はストレージ・ワークロードなので、ベンチマークのパフォーマンスは、テストされるネットワーク・インターフェイスではなく、ストレージデバイスの速度に制限される可能性があります。テスト中のネットワーク・デバイスの真の性能をテストするために、インテルは可能な限り最速のストレージを使用することを推奨します。
テストの手順:
- サーバーごとに iWARP 対応インテル® イーサネットを接続した少なくとも 1 つのネットワーク・インターフェイスを備えた少なくとも 2 台の Microsoft* Windows* Server 2012 R2 または Microsoft* Windows* Server 2016 サーバーを設定します。
- 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
- 次のサイトから Microsoft ユーティリティ Diskspd をダウンロードしてインストールします: https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
- CMD または Powershell を使用して DiskSpd フォルダーに cd してテストを実行します。(パラメーターの詳細については、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
- “RDMA Activity” や “SMB Direct Connection” などの perfmon カウンターを使用して RDMA トラフィックが実行されていることを検証します。詳細については、Microsoft* のドキュメンテーションを参照してください。
iWARP ゲストサポートの設定 (NDK モード 3)
NDK モード 3 はカーネルモード Windows* コンポーネントが Hyper-V* ゲスト・パーティション内で iWARP 機能を使用できるようにします。インテル® イーサネット・デバイスで NDK モード 3 を有効にするには、次の手順に従ってください:
- システムの BIOS または UEFI で SR-IOV を有効にします。
- デバイスで SR-IOV 詳細オプションを有効にします。
- スイッチで SR-IOV を有効にしてデバイスを設定します。同じデバイスですべての機能に対してこのステップを実行します:
New-VMSwitch -Name <switch_name> -NetAdapterName <device_name>
-EnableIov $true
- "RdmaMaxVfsEnabled" 詳細オプションを設定することにより、デバイス上の RDMA 仮想関数 (VF) の数を設定します。すべての物理関数を同じ値に設定する必要があります。この値はデバイス全体で RDMA を一度に実行できる仮想関数 (VF) の最大数です。さらに多くの仮想関数 (VF) を有効にすると、物理関数 (PF) と他の VF から RDMA リソースが制限されます。
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <値:0 – 32>
- ホストですべての物理関数 (PF) アダプターを無効にして、それらを再度有効にします。これはレジストリーのキーワード “RdmaMaxVfsEnabled” が変更されたとき、または VMSwitch を作成または破棄するときに必要です。
Get-NetAdapterRdma | Disable-NetAdapter
Get-NetAdapterRdma | Enable-NetAdapter
- RDMA VF サポートを必要とする仮想マシン用の VM ネットワーク・アダプターを作成します。
Add-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -SwitchName <switch_name>
- ゲスト・パーティションで Microsoft* Windows* 10 Creators Update (RS2) 以降を使用する予定の場合は、ホストで次のコマンドを入力して、VM ネットワーク・アダプターに RDMA ウエイトを設定してください。
Set-VMNetworkAdapterRdma -VMName <vm_name> -VMNetworkAdapterName <device_name> -RdmaWeight 100
- VM ネットワーク・アダプターで SR-IOV ウェイトを設定します (注:RDMA ウェイトを 0 に設定する前に SR-IOV ウェイトを 0 に設定する必要があります):
Set-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -IovWeight 100
- VM の PROSET インストーラーを使用して VF ネットワーク・アダプターをインストールします。
- VM の PowerShell* を使用して、VF ドライバーと Hyper-V* ネットワークアダプターで RDMA を有効にします:
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaVfEnabled -RegistryValue 1
Get-NetAdapterRdma | Enable-NetAdapterRdma
ND ユーザーモード・アプリケーションでの iWARP RDMA
ND では、ユーザーモードのアプリケーションで iWARP 機能を利用できます。開発しているユーザーモードのアプリケーションで iWARP 機能を利用する予定の場合は、ドライバーのインストール時にネットワーク・ダイレクト (ND) 機能をインストールする必要があります。
iWARP ユーザーモードのインストール
インテル® イーサネット・ユーザー・モード iWARP プロバイダーは、Microsoft* Windows Server* 2012 R2 以降でサポートされています。
 |
注:
|
ユーザーモードのネットワーク・ダイレクト (ND) iWARP 機能をインストールするには、以下の手順に従います。
- インストール・メディアで Autorun.exe を実行してインストーラーを起動して、[ドライバーとソフトウェアをインストールする] を選択し、ソフトウェア使用許諾契約に同意します。
- セットアップ・オプション画面で [インテル® イーサネット・ユーザー・モード iWARP プロバイダー] を選択します。
- iWARP 設定オプション画面で、希望する場合は [IP サブネット全体で iWARP ルーティングを有効にする] を選択します。このオプションは、ネットワーク・ダイレクト・カーネル機能にも適用可能なため、ユーザーモード iWARP が選択されていない場合でも、ベースドライバーのインストール中にこのオプションが表示されることに注意してください。
- Windows* ファイアウォールがインストールされ、アクティブになっている場合は、[Windows ファイアウォールにインテル® iWARP Port Mapping Service の規則を作成する] とその規則を適用するネットワークを選択します。Windows* ファイアウォールが無効になっている場合またはサードパーティーのファイアウォールを使用している場合は、この規則を手動で追加する必要があります。
- ドライバーとソフトウェアのインストールに進みます。
Microsoft* Windows Server* 2016 Nano Server での iWARP ユーザーモードのインストール
Microsoft* Windows Server* 2016 Nano Server にインテル® イーサネット・ユーザー・モード iWARP プロバイダーをインストールするには、以下の手順に従います。
- iWARP ファイルをインストールするディレクトリーを作成します。例:C:\Nano\iwarp
- 新しいディレクトリーに次のファイルをコピーします。
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\i40wb.dll
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\i40wbmsg.dll
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\indv2.cat
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\indv2.inf
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\indv2.sys
- DISM コマンドを実行して、ステップ 1 で AddDriver パスのパラメーターに作成したディレクトリーを使用して iWARP ファイルを Nano Server イメージに挿入します。例:"DISM .../Add-Driver C:\Nano\iwarp"
- UDP ポート 3935 に受信ファイアウォール規則を作成します。
- 希望する場合は以下の Windows* PowerShell* コマンドを使用して、IP サブネット全体で iWARP ルーティングを有効にします。
- Set-NetOffloadGlobalSetting -NetworkDirectAcrossIPSubnets Allow
- アダプターを無効にする
- アダプターを有効にする
カスタマーサポート
- インテルのサポート・ホームページ: http://www.intel.com/p/ja_JP/support
- ネットワーク製品情報:http://www.intel.com/network
法務情報 / 免責情報
(C) 2018, Intel Corporation.無断での引用、転載を禁じます。
Intel Corporation は本書に記載されている内容の誤りまたは記載漏れについて、一切責任を負いません。また、本書の記載内容を更新する義務も一切負いません。
Intel は、米国およびその他の国における Intel Corporation の商標です。
* その他の製品名またはブランドは各所有者に帰属している場合があります。
本ソフトウェアはライセンスに基づいて提供されるものであり、そのライセンスの許諾範囲内でのみ使用または複製できます。本マニュアル内での情報は、あくまでも情報として提供するもので、予告なしに変更されることもあり、また、内容についても、インテルが責任を負うものではありません。Intel Corporation は、本書または本書との関連において提供されることのあるソフトウェアに含まれる可能性があるいかなるエラーまたは不正確性について、一切の責任を負いません。ライセンス契約で許可されている場合を除き、インテルからの書面での承諾なく、本書のいかなる部分も複製したり、情報検索システムに保持したり、他の形式や媒体によって転送したりすることは禁じられています。