サーヴァンツブログ

技術
Mellanox

“Windows 10 Pro for Workstations でのSMB Direct のサポート”の続き

“Windows 10 Pro for Workstations でのSMB Direct のサポート”の続き
  1. だいぶ時間がたってしまいましたが、Windows 10のラインナップに追加された“Windows 10 Pro for Workstations”でのSMB Directの動作検証を実施しました。

検証環境は以下になります。Windows Server 2012 R2でファイル共有サーバを構築、MellanoxのConnectX-4とSN2010スイッチにて100Gbpsのネットワーク環境で検証しました。
サーバのストレージを使用せずにメモリ上にRAMディスクを作成することによりボトルネックを事実上無くした構成になります。

◆検証環境

Server:Windows Server 2012 R2
Client: Windows 10 Pro for Workstations (WS)
Switch:Mellanox SN2010
ネットワークカード:Mellanox ConnectX-4 Lx EN

SN2010
https://www.servants.co.jp/product/switch/ethernet-switch/116/

 

ConnectX-5 EN:(100Gb/s RDMA対応 Ethernetアダプタカード)
http://www.servants.co.jp/product/adaptor/ethernet-adaptor/127/

ConnectX-4 Lx EN:(10/25/40/50Gb/s RDMA対応 Ethernetアダプタカード)
http://www.servants.co.jp/product/adaptor/ethernet-adaptor/132/

ConnectX-5 VPI:(100Gb/s RDMA対応 InfiniBand/Ethernetアダプタカード)
http://www.servants.co.jp/product/adaptor/infiniband-adaptor/103/

 

◆ファイル共有

Windows Server 2012 R2サーバのメモリの一部に、“VSuite Ramdisk” ソフトウェアを使用してRAMディスクを作成、ネットワーク共有しClient側からそれをネットワークマウント

 

設定手順
◆Windows Server 2012 R2
  • 搭載されているMellanox ConnectX-4のフロー制御を無効にする
    ・デバイスマネジャーにてMellanox ConnectX-4を選択
    ・プロパティ→詳細 でフロー制御を“Disable”に変更

ConnectX-4 Properties

 

※以下からは、Windows PowerShellのコマンド操作にて各種設定を行う

  • Mellanoxインターフェース名の変更
    ・コマンドラインでの操作をわかりやすくするためにインターフェースの名前をユニークにする。
  • Get-NetAdapter
    ・セットされているネットワークアダプタの名前を表示する。
  • Rename-NetAdapter –Name “イーサネットスロット 2”  –NewName RDMA1
    ・認識されているConnectX-4のネットワークアダプタ名が、”イーサネットスロット 2“の場合
    →”RDMA1“に変更
  • Data Center Bridging機能を消去する
    ・Remove-NetQosTrafficClass
    ・Remove-NetQosPolicy -Confirm:$False
  • Data Center Bridging機能をイネーブルにする
    ・Install-WindowsFeature Data-Center-Bridging
  • QoS(Quality of Service)のポリシーに“RoCE”を適用する
    ・New-NetQosPolicy “RoCE” –NetDirectPortMatchCondition 445
    -PriorityValue8021Action 4
  • PFC(Priority Flow Control)の設定をする
    ・Enable-NetQosFlowControl –Priority 4
  •  NICのDCB設定を行う
    ・Enable-NetAdapterQos –InterfaceAlias RDMA1
    ・Set-NetQosDcbxSetting –willing 0
    ・New-NetQoSTrafficClass “RoCE” -Priority 4 -Bandwidth 60 -Algorithm ETS
  • 確認
    1. NICの構成の確認 各パラメータが“True”になっているかを確認する
      ・Get-NetOffloadGlobalSetting | Select NetworkDirect
      ・Get-NetAdapterRDMA
      ・Get-NetAdapterHardwareInfo
    2. SMB構成の確認
      ・Get-SmbServerConfiguration | Select EnableMultichannel
      ・Get-SmbServerNetworkInterface
      ・netstat.exe -xan | ? {$_ -match “445”}
    3. SMBコネクションの確認
      ・Get-SmbConnection
      ・Get-SmbMultichannelConnection
      ・netstat.exe -xan | ? {$_ -match “445”}

 

◆Windows 10 Pro for Workstations
  • Mellanox ConnectX-4 のフローコントロールをDisableにする
    ・デバイスマネージャーのConnectX-4のプロパティでフローコントロールを“Disable”にする

ConnectX-4 Properties

※以下からはWindows PowerShellでのコマンド操作

  • Mellanoxインターフェース名の変更
    ・コマンドラインでの操作をわかりやすくするためにインターフェースの名前をユニークにする。
  • Get-NetAdapter
    ・セットされているネットワークアダプタの名前を表示する。
  • Rename-NetAdapter –Name “イーサネットスロット 2”  –NewName RDMA1
    ・認識されているConnectX-4のネットワークアダプタ名が、”イーサネットスロット 2“の場合
    →”RDMA1“に変更
  •  RDMAを有効にする
    ・Set-NetOffloadGlobalSetting -NetworkDirect Enabled
    ・Enable-NetAdapterRdma -Name “RDMA1”
  •  データセンターブリッジの役割のインストールする
    ・Install-WindowsFeature Data-Center-Bridging
    ※コマンドが成功しない場合、
    “コントロールパネル”→“プログラムと機能”→“Windows機能の有効または無効”を選択
    以下のウィンドウの中から、“DatCentertBridging”のチェックボックスに☑する。

  • RoCEモードの変更
    ・Set-MlnxDriverCoreSetting –RoceMode 2 ※ConnectX-4以降では必要なし(=>RoCEv2設定がデフォルト)
  • PFCとETSの設定
    ・Enable-NetQosFlowControl -Priority 3
    ・Enable-NetAdapterQos –Inte    rfaceAlias ”RDMA1”
  • QoSのポリシー設定
    ・New-NetQosPolicy “SMB” -PolicyStore ActiveStore –NetDirectPort 445
    -PriorityValue8021Action 3
    ・New-NetQosPolicy “DEFAULT” -Default -PolicyStore ActiveStore
    -PriorityValue8021Action 3
    ・New-NetQosPolicy “TCP” -IPProtocolMatchCondition TCP
    -PolicyStore ActiveStore -PriorityValue8021Action 0
    ・New-NetQosPolicy “UDP” -IPProtocolMatchCondition UDP
    -PolicyStore ActiveStore -PriorityValue8021Action 0
    ・New-NetQosTrafficClass -name “SMB class” -priority 3 -bandwidthPercentage 50
    -Algorithm ETS
  • 確認
    1. NICの構成の確認 各パラメータが“True”になっているかを確認する
      ・Get-NetOffloadGlobalSetting | Select NetworkDirect
      ・Get-NetAdapterRDMA
      ・Get-NetAdapterHardwareInfo
    2. SMB構成の確認
      ・Get-SmbClientConfiguration | Select EnableMultichannel
      ・Get-SmbClientNetworkInterface
    3. SMBコネクションの確認
      ・Get-SmbConnection
      ・Get-SmbMultichannelConnection
      ・netstat.exe -xan | ? {$_ -match “445”}

 

◆動作確認

Client側にてネットワークマウントしたServerの共有ディスクに対して、IOを実行。
Client、ServerのWindowsパフォーマンスモニターで以下項目を選択し、これらの値が変化すれば、SMB-Direct/RDMA(RoCE)で通信できていると判断できる。

  • パフォーマンスモニタを選択
    →“グラフの種類の変更” から”レポート”を選択
    以下の項目を選択して、該当するインスタンスを選択
    ・RDMA Activity
    ・SMB Direct Connection

SMB Direct/RDMA設定をしていない、通常のネットワーク共有(CIFS)接続では、SMB Directの項目はインスタンスが表示されず選択できない、RDMA Activityは、IOをかけても全く変化しなかった。

以上、Windows 10 Pro for Workstations でのSMB Directの設定手順になります。

 

◆パフォーマンスに関して

CrystalDiskMark 6にて、簡易的にパフォーマンスを測定しましたが、通常のファイル共有と比較すると
ランダム、シーケンシャルでもSMB Direct(RDMA)は2倍程度のパフォーマンスを記録しております。

今後、パフォーマンスは正確な計測ができる環境を整えて、実施する予定