Windows Server 2016 で RDMA / RoCE を利用する - (2) RoCE v2 の設定
- SR-IOV (1) (2) (3) (4)
- RDMA - InfiniBand (1)
- RDMA - RoCE (1) (2)
- SMB Multichannel (1) (2) (3)
- Switch Embedded Teaming (0) (1) (2)
それでは、Windows Server 2016 の Storage Spaces Direct (S2D) でも「強く推奨」とされている RDMA について設定方法をまとめていきたいと思います。
WS16 で RDMA を利用するにあたっては iWARP と RoCE の2つの方法がありますが、前回のとおり Azure や Azure Stack でも採用されている RoCE v2 をベースに説明していきます。下記の投稿も参考になりますので併せてご活用ください。
また、一部の設定は NIC やスイッチのメーカーに依存します。すべてのメーカーの設定を網羅することはできませんのであらかじめご了承ください。
ToR スイッチの設定
RoCE を使うには、少なくとも ToR スイッチは RoCE v2 に対応していなければなりません。お使いの ToR スイッチのマニュアルを参考に、RoCE v2 の通信を許可してください。下記は Mellanox スイッチの例です。
物理 NIC / CNA の設定
次に、物理 NIC*1 の設定です。
こういったケースでは、POST 画面から NIC BIOS 画面に入り、パラメーター調整していくのですが、私の知る限り RoCE の設定を NIC BIOS でやらせる製品は見たことがありません。
(最終的には購入した製品のマニュアルをご覧になった方が確実ですが)多くは下記のようなドライバパラメーターで設定すると思います。
この図は Broadcom CNA(旧 Emulex OneConnect の方)の設定画面です。
「Roce mode」というパラメーターがあります。
- 「1」を選択した場合: RoCE v1 で動作
- 「2」を選択した場合: RoCE v2 で動作
となっていますので、「2」を選択する必要があります。
Hyper-V ホストの設定
続けて、Hyper-V ホスト上で RDMA を有効にしましょう。
- Deploy SMB Direct with RoCE Network Adapters - Microsoft TechNet
- HowTo Configure SMB Direct (RoCE) over PFC on Windows 2012 Server - Mellanox Community
基本的には WS12 系と手順は変わりませんが、S2D で利用する場合は「Set-NetOffloadGlobalSetting」コマンドレットを利用して NetworkDirect パラメータを有効にする必要があります。
Set-NetOffloadGlobalSetting -NetworkDirect Enabled
S2D ストレージアクセス専用の物理 NIC を用意できない場合
Azure Stack もそうですが、S2D 専用の物理 NIC を用意できない場合は、以前手順を紹介した Switch Embedded Teaming (SET) モードの仮想スイッチを利用します。
RDMA に対応した SET 仮想スイッチにするために、内部的に用意した S2D セグメントに対して「Enable-NetAdapterRDMA」コマンドレットを実行します。
Enable-NetAdapterRDMA "<NICアダプタ名>","<NICアダプタ名>"