Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR InfinibandでSMB Direct (SMB over RDMA)を試してみた

6,132 views

Published on

2台のWindows Server 2012とInfiniband FDR HCAを用いてRDMAを利用したSMB Direct (SMB over RDMA)によるファイル転送で、どれくらいの数値がでるのかを試してみました。

0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,132
On SlideShare
0
From Embeds
0
Number of Embeds
116
Actions
Shares
0
Downloads
72
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR InfinibandでSMB Direct (SMB over RDMA)を試してみた

  1. 1. Infiniband hack-a-thon #2 Windows Server 2012 + FDR InfinibandでSMB Direct (SMB over RDMA)を試してみた Windows班まとめ資料 rev1.3 17th Nov 2012 #ibhack Last Update 04th Feb 2014
  2. 2. Windows班アジェンダ  ibhack02(Windows班)概要  Windows班の検証環境  SMB Diriect環境構築の予備知識(1)  SMB Diriect環境構築の予備知識(2)  補足(1)-Intermediate版のファームウェアアッ プデート1  補足(1)-Intermediate版のファームウェアアッ プデート2  SMB Diriect環境構築手順(1)  補足(2)-OpenSMの登録と起動  SMB Diriect環境構築手順(2)  SMB Diriect環境構築手順(3)  SMB Diriect環境構築手順(4)  SMB Diriect環境構築手順(5)  SMB Diriect環境構築手順(6)  補足(3)-SmbClientとSmbServerについて  SMB Diriect環境構築手順(7)  SMB Diriect環境構築手順(8)  SMB Diriect環境構築手順(9)  補足(4)-ファイルのドラッグ&ドロップ時の警告  SMB Diriect測定準備(1)  SMB Diriect測定準備(2)  SMB Diriect測定準備(3)  SMB Diriect測定準備(4)  SMB Diriect測定準備(5)  SMB Diriect測定準備(6)  補足(5)-その他の測定ツールについて1  補足(5)-その他の測定ツールについて2  SMB Diriect測定の実施計画  ibhack02当日の測定内容  Ib_read_bwの測定結果  RDMA有効(単一のコピー処理)  RDMA有効(並列のコピー処理)  RDMA無効(単一のコピー処理)  RDMA無効(並列のコピー処理)  ibhack02 SMB Direct測定結果まとめ  反省点や今後同様の測定を行う際の注意  総括  謝辞  おわり  おまけ
  3. 3. ibhack02(Windows班)概要  Windows班は、Windows Server 2012を利用し、SMB Direct(SMB over RDMA)の検証を行った。  RDMA環境が有効であるかを確認し、ダミーファイルの転送とその速度 の確認及びRDMA無効時のダミーファイルの転送とその速度の確認を 行った  当該資料は、Windows Server 2012においてRDMAを利用したSMB Directが利用可能な環境を構築する上での手順、要点や補足及び Infiniband Hack-a-thon [02]での作業結果のまとめ。
  4. 4. Windows班の検証環境  Windows Server 2012でのSMB Direct環境構築  RDMAを利用したSMB Direct転送を検証するに当たって、2台の Windows Server 2012にFDR Infinband HCAを搭載、双方を接続。 サーバー側のダミーファイルをクライアント側に転送し、その際の秒間 当たりの転送速度を計測した。 Windows Server Xeon E5-2690 8Core HT 48GB DDR3 Windows Server 2012 Xeon E5-2690 8Core HT 48GB DDR3 smb direct Infiniband Switch FDR Infiniband Switch with Subnet Manager WinOF 56Gbps FDR HCA 共有 フォルダ WinOF 56Gbps FDR HCA
  5. 5. SMB Diriect環境構築の予備知識(1)  RDMA対応のInfiniband HCA(Host Channel Adapter) – RDMAに対応したHCAは、ConnectX-2及びConnectX-3シリーズでかつファームウェ アが2.09.8350以上?が条件となり、ConnectXシリーズやInfiniHost IIIシリーズ は対応しない。 ※当初、ファームウェア2.09.1000でRDMAに対応するとの情報だったが、海外等での報告や事前検証 の結果、当該バージョンでは、RDMA対応しない場合があることが判明した。 ※HPのMHQH29C-XTR相当の592520-B21、HP提供ファームウェアのバージョン2.09.12000でもNG だった(2013/03/25追記) – なお、最新ファームウェアのSTABLEは、2012年11月時点でConnectX-3シリーズが 2.11.XXXXだが、 ConnectX-2シリーズは2.09.1000となっている。そのため、 ConnectX-2でRDMAを有効にするには、STABLE版のファームウェアではなく、 Intermediate版のファームウェアが必要となる場合がある。 – Intermediate版のファームウェアは、直接焼き込める形になっていないため、「補足 (1)-Intermediate版のファームウェアアップデート1及び2」にて手順を示す。 – HCAの型番によるConnectX、X-2、X-3シリーズの見分け方  ConnectXシリーズは、 MHQH29-XXX、MHRH19-XXX等、数字のあとにアルファベッドが付 かない型番  ConnectX-2シリーズは、MHQH19B-XXX、MHQH29C-XXX、MHRH19B-XXX等、数字の後 にBやCが付く型番  ConnectX-3シリーズは、MNX353A-XXXX、 MNX354A-XXXX等になっている型番
  6. 6. SMB Diriect環境構築の予備知識(2)  Windows用OFEDドライバ – Windows Server 2012では、OFED for Windows(WinOF)が標準で組み込まれてい るため、Infiniband HCAは、挿すだけで認識される。 – ただし、ibstatやvstat等のツール類は提供されていないため、これらは別途、 MellanoxやOFED等からWinOFをダウンロードすることで入手可能となる。 – なお、Windows Server 2012に標準で組み込まれているドライバは古いため、 MellanoxやOFED等から最新のドライバを入手しインストールが推奨。  SMB DirectとMultichannel – RDMA転送を行うには、RDMA及びMultichannelが共に有効になっている必要がある。 – Windows Server 2012では、RDMA(設定名:NetworkDirect)及びMultichannel(設 定名:EnableMultiChannel)はデフォルトで有効になっている。
  7. 7. 補足(1)-Intermediate版のファームウェアアップデート1  Intermediate版のファームウェアのアップデート方法 – 通常、STABLE版のファームウェア製品別のiniファイルが組み込まれた各製品型番専用のファーム ウェアが用意されており、それをダウンロードしてflintコマンドでファームウェアをアップデート。 – しかしIntermediate版は、元々OEM向けに用意されているため、各OEM先ベンダが製品情報を編集 できるよう、基本となるファームウェアとiniファイルが別々に分けられた形で提供されている。 – この仕組みを利用し、 Intermediate版で同梱されている製品別iniファイルを利用せず、アップデー ト対象HCAから製品別iniファイルの元情報を抜き出しiniファイル化し、そのiniファイルと基本 ファームウェアを組み合わせてmlxbunrコマンドでファームウェアをアップデートする。 基本ファ ームウェア 製品別 iniファイル ファーム ウェア 製品別 iniファイル mlxburn コマンド flint コマンド 基本ファ ームウェア 製品別 iniファイル mlxburn コマンド flint コマンド 製品別 iniファイル
  8. 8. 補足(1)-Intermediate版のファームウェアアップデート2  Intermediate版のファームウェアのアップデート方法詳細 – アップデート対象となるHCAから製品別iniファイルの作成 1. MFT Software for Windows_x64をダウンロードし、MFT Software for Windows_x64をインストール (http://www.mellanox.com/content/pages.php?pg=management_tools) 2. Intermediate版のファームウェアをダウンロード (http://www.mellanox.com/content/pages.php?pg=custom_firmware_table) ※ページをスクロールしていくと「ConnectX-2 IB & VPI adapter cards:」で「2.9.8350」のバージョンが 見つかる 3. OpenSMが起動していることを確認後、次のコマンド( mst start )をコマンドプロンプトで投入 4. さらに次のコマンドを投入( mst status )し、デバイスIDを確認、以後、各種コマンドは、ここで得たデバイスID を指定して行う 5. さらに次のコマンドを投入( flint -d mt26428_pci_cr0 dc > MHQH29B.OWN.ini ) 6. mlxburn -d mt26428_pci_cr0 -fw fw-ConnectX2-rel.mlx -conf MHQH29B.OWN.ini ※コマンドやファイルは全てパスが通っている前提での表記、コマンドパスが通ってない場合は、コマンド及びini ファイル等はすべてフルパス指定で実行すること。また、デバイスIDも各自の環境のものに読み替えること。 ※flintコマンドで吐きだしたiniファイルは、一度メモ帳で開いてUnicodeからANSI形式にして保存しないと、 mlxburnコマンドが読み込めない場合がある(mlxburnでInvalid Syntax対応)。【2013/03/25追記】 基本ファ ームウェア 製品別 iniファイル mlxburn コマンド flint コマンド 製品別 iniファイル デバイスIDが2つ見えるが、両方とも同じ デバイスを示す、ただデバイスIDの指定に 利用するのは上側を利用するのが推奨 リダイレクトの出力 先は任意のディレ クトリも指定可能
  9. 9. SMB Diriect環境構築手順(1) 1. Windows Server 2012をインストールし、Infiniband HCAを取り付ける。 2. MellanoxのWebサイトからWinOFをダウンロードしインストール。  http://www.mellanox.com/content/pages.php?pg=products_dyn&product_family=32&menu _section=34#tab-three  インストールウィザードは全て変更することなく終了させる。インストール後、再起動が必要。 3. OpenSMの登録と起動(省略可能) → 詳細は次ページ  HCAを搭載した2台のホストがManagedなInfinbandスイッチ(Subnet Managerが搭載されたス イッチ)でないもしくは、スイッチレスで接続する場合は、以下の作業を実行するが、ibhack02で は、FDRのInfiniband Managedスイッチ利用したため、当該作業は割愛。  もし、実施する環境にManagedスイッチがない場合にのみ、次ページを参考に作業を実施する。 4. Infinbandケーブルを各ホストのInfiniband HCAに挿し、スイッチと接続。  スイッチレスの場合、3.の作業を行い、双方のホストを1本Infinbandケーブル直結でも良い。  Infinibandケーブルを差し込む時は、コネクタの上下に注意すること。特にQSFPのコネクタは、 CX-4等のコネクタに比べ、差し込みの向けが分かりづらい。  ケーブルを抜く場合は、ケーブルの部分を手に持って引き抜かないこと、ケーブルが破損します。 ケーブルを抜くとき は、必ずここを持っ て引っ張ること! 正常な向きでは、最 後まで押し込むと「カ チッ」と音がする
  10. 10. 補足(2)-OpenSMの登録と起動 1. OpenSMの登録と起動を行う OpenSMはWinOFインストール時に、デフォルトインストールしていれば、一緒にインストールされるが 起動及びサービス登録は、自動で行われないため、必要に応じて自分で実行する必要がある。  コマンドプロンプト(管理者)で OpenSMをサービス登録し起動する、手順は以下のとおり。 ※PowerShellから以下のコマンドを叩く場合はsc.exeと”.exe”まで付けて実行すること(2014年2月5日追記) 1. sc create opensm binPath= “C:¥Program Files¥Mellanox¥MLNX_VPI¥IB¥Tools¥opensm.exe --service" 2. sc start opensm 3. sc query opensm (コマンド投入結果、STATEがrunningかどうか確認) ※赤字の部分は、各自の環境に読み替える。WinOFをデフォルトインストールすると赤字ディレクトリパスになる sc create opensmの結果、 サービスに、opensmが登録 された。自動起動したい場合 は、上記コマンドの引数を与 えるか、右の画面で「スタート アップの種類」のプルダウンから 「自動」を選択し、設定する。
  11. 11. SMB Diriect環境構築手順(2) 1. Infiniband HCAのIPアドレスを付与  ホストのネットワークアドレス帯とかぶらないネットワークアドレス帯を、それぞれのInfiniband HCAのInfinbandケーブルを接続したポートに割り当てる。2ポートあるHCAの場合、IPアドレスは ポートごとに付与可能だが、今回は1ポートのみ使用 NICと異なるネットワーク アドレス帯のIPを付与、 デフォルトゲートウェイは 入力しないままで良い
  12. 12. SMB Diriect環境構築手順(3) 1. HCAのブラケットのLEDが緑と黄色、両方点灯を確認し、正常にコネクトした かどうかをチェックする。スイッチに接続している場合は、スイッチ側のLED も同様に緑と黄色、両方点灯しているか確認する。  PowerShell(ISEを管理者として実行する)でも正常なコネクションを確認する。 1. ibstatでStateがPhysical stateがLinkUpActiveかどうか確認 2. vstatでport_stateがPORT_ACTIVE及びport_phys_stateがLINK_UPかどうか確認 正常なリンク時は、黄色と緑 が点灯している。上から2つの LEDは、もう1つのポート用 ibstatの結果 vstatの結果
  13. 13. SMB Diriect環境構築手順(4) 1. RDMA対応のカードとして認識されているか確認  PowerShell(ISEを管理者として実行する)で Get-NetAdapterRDMA と入力しEnableがTrueである ことを確認する。 2. smbで利用するネットワークカードの状態(RDMA CapableがTrueかどうか) 確認  PowerShell(ISEを管理者として実行する)で以下の2つのコマンドをそれぞれ実行 1. Get-SmbClientNetworkInterface 2. Get-SmbServerNetworkInterface
  14. 14. SMB Diriect環境構築手順(5) 1. RDMA転送が有効か(NetworkDirectがEnableかどうか)確認  PowerShell(ISEを管理者として実行する)で Get-NetOffloadGlobalSetting と入力しEnableが Trueであることを確認する。 2. もしも、RDMA転送が無効になっていたら・・・  PowerShell(ISEを管理者として実行する)で以下のコマンドを実行 1. Set-NetOffloadGlobalSetting -NetworkDirect Enable ※RDMAが有効な状態でファイル転送の速度を測ったあと、RDMAを無効にする際には、上記のコマンド のEnableをDisableに変更してやる。
  15. 15. SMB Diriect環境構築手順(6) 1. Multichannelが有効か(EnableMultichannelがTrueかどうか)確認  RDMAを利用したSMB Directによるファイル転送は、 NetworkDirectとMultichannelがセットで 有効になっていないと機能しない。  PowerShell(ISEを管理者として実行する)で以下の2つのコマンドをそれぞれ実行 1. Get-SmbClientConfiguration | Select EnableMultichannel 2. Get-SmbServerConfiguration | Select EnableMultichannel 2. もしも、Multichannelが無効になっていたら・・・  PowerShell(ISEを管理者として実行する)で以下のコマンドを実行 1. Set-SmbClientConfiguration -EnableMultichannel $true 2. Set-SmbServerConfiguration -EnableMultichannel $true ※ここまで(SMB Diriect環境構築手順(4)~(6))で、いずれかでDisableないしはFalseがあった場合、 HCAに問題がある可能性があるため、Windows Server 2012のRDMAに対応で、かつファームウェ アのバージョンが2.09.8350以上かどうか、よく確認する
  16. 16. 補足(3)-SmbClientとSmbServerについて  SmbClientとSmbServerの関係 – RDMA、SMB Directが可能か否かの確認の中で、何度かGet-SmbClientとGet-SmbServer及びSet- SmbClientとSet-SmbServerが出てきたが、ファイル転送の方向性で、いずれかがServerになり得、 いずれかがClientにもなり得るため、双方のマシン上で両方のコマンドを入力し、状態を確認した。 Windows Server 2012 (SMB Client) Windows Server 2012 (SMB Server) smb direct 共有 フォルダ Windows Server 2012 (SMB Server) Windows Server 2012 (SMB Client) smb direct 共有 フォルダ
  17. 17. SMB Diriect環境構築手順(7) 1. SMB Directのファイル転送に利用するドライブ(RamDisk)を作成する  今回の検証においては、FDR Infifnband接続で構成したサーバ間のインターコネクト環境において、 Windows Server 2012のRDMAを用いたSMB Directによるファイル転送が最大でどの程度の性能が 出るかを確認するため、ファイル転送元と転送先のストレージにRamDiskを用いた。  これは、想定されるFDR Infinibandの理論値のバンド幅に比べ、ストレージのRead/Writeが確実に ボトルネックになると考えられたことから SMB Directによる最大転送速度が計測するための対策。  StarWind RAM DiskをStarWindのWebサイト(http://www.starwindsoftware.com/high-performance-ram- disk-emulator)からダウンロードしインストール(Windows Server 2012やx64環境で動作)。  インストールウィザードで、設定可能な最大メモリ数から数GBをマイナスした数値を入力、ある程度のメモリ空 き容量を保ちつつ、可能な限り大きな容量のRamDiskを作成する。 ※FDR Infinibandのバンド幅は56Gbps、理論値で言えば7GB/secとなる。実装や符号化等の影響で実効 レートはもう少し落ちるが、それでも数GB/secのバンド幅の場合、ファイル転送を行った際の挙動を計測、 監視するためには、少なくとも10秒程度はファイル転送が行われ続ける必要があるため、それだけのファイル 配置可能なRamDiskを作成できるだけのメモリを搭載したほうが良い。 ※もし、ioDrive 2のような高速ストレージを有し、それらをストライプ等でさらに高速化することで、少なく とも数GB/secの転送速度をたたき出すストレージがあれば、測定におけるストレージ側のボトルネックを解消 できるため、SMB Diriect環境構築手順(7)及び(8)の作業は必要ない。 Windows Server 2012 (SMB Client) Windows Server 2012 (SMB Server) smb direct 共有 フォルダ RamDisk上に作成
  18. 18. SMB Diriect環境構築手順(8) 1. SMB Directのファイル転送に利用するドライブ(RamDisk)を構成する  RamDiskは、StarWind RAM Diskのインストールウィザードを完了すると自動的に作成されるが、 フォーマットを行いドライブレターが振り出されないと利用できないため、これを行う。  StarWind RAM Diskのインストールウィザードを完了させ、RamDiskのディスク状態をオンラインにすると自動 的にFAT32でフォーマットされマウントされてしまう。そのためダミーデータを作成する際に、2GBを超える ファイルを作成できない。  今回、Windows班では、いざ測定用のダミーデータを作成する際に、2GB以上のファイルが作れず、いくつかの ファイル作成方法やツールの検索等で時間をロスした。  RamDiskの状態をオンラインに変更した後、必ずディスクの管理で、RamDiskのファイルシステムをNTFSで フォーマットし直すこと。 StarWind RAM Diskの インストールウィザード終了 後、RamDiskが起動した 画面、赤枠線の中が追加 されたRamDisk ディスクの状態がオフラ インになっているので、 赤枠線内で右クリックし てディスクの状態をオン ラインに変更する オンラインに変更すると自動的に FAT32でフォーマットされるため、 NTFSでフォーマットし直す
  19. 19. SMB Diriect環境構築手順(9) 1. RamDiskを共有する  RamDiskをNTFSで再フォーマットした後、RamDiskを共有する。 1. RamDiskで構成したドライブをExplorer上で右クリックし「共有」をマウスでポイントすると「詳細な共有」が表 示されるのでクリック。 2. RamDiskのプロパティ-共有タブが表示されるので「詳細な共有」を選択する。 3. 詳細な共有ウィンドウが表示されるので「このフォルダーを共有する」にチェックを入れ「共有名」に任意の名称 を入力、その後「アクセス許可」をクリック。 4. 先ほど入力した共有名のアクセス許可ウィンドウが表示されるのでアクセス許可欄の「フルコントロール」に チェックを入れる チェックを入れる チェックを入れる 適当な共有名を入力
  20. 20. 補足(4)-ファイルのドラッグ&ドロップ時の警告  共有フォルダに対し、測定用のダミーファイルをドラッグ&ドロップすると警告 が表示される。 – 測定を実施する際に、マウス操作によるファイルのドラッグ&ドロップ時の操作で警告が表示される ことがある。そのため、事前に警告の表示を回避する設定をする。 – インターネットオプションでセキュリティタブから信頼済みサイトにネットワークドライブレター、 例えば、割り当てたネットワークドライブがZドライブであれば「Z:」もしくは「file://Infiniband HCAに割り当てたIPアドレス」を入した後、Windows Server 2012を再起動する。 信頼済みサイトにファイル転送先、もしくは ファイル転送元のサイトを登録する。 file://IPアドレス 信頼済みサイトを選択
  21. 21. SMB Diriect測定準備(1) 1. SMB Directのファイル転送に利用するダミーファイルを作成する  Windowsでは、任意のサイズのダミーファイルを作成するに当たって、Linuxのtouchコマンドのよ うなコマンドがないが、代わりに「ディスクの管理」からVHDファイルを適当なサイズ作成すること で、ダミーデータとする。 RamDiskのドラ イブを指定する 測定に応じたファイルサイ ズを作成する。マルチチャ ネルに考慮する測定をす る場合は、数GBのファイル を複数作るのが良い 容量固定を指定する ダミーファイルとして作成されたファイルは、 hoge.vhd等になっているが、vhdのままだと何か の拍子にティスクとしてマウントされてしまうコトがあ るため、拡張子をアプリケーションに関連づけられ ていないものに変更しておくと良い。 また、1つファイルを作成したら、後はExplorer上 で、当該ファイルのコピー&ペーストを繰り返すと、 短時間でファイルを作成することができる。
  22. 22. SMB Diriect測定準備(2) 1. パフォーマンスモニターの測定項目を選択する  測定するに当たっては、Windows標準のツールや操作時に表示されるGUI等、いくつかの方法で測定 できる。今回は、計測にパフォーマンスモニターを利用する。実際にファイル転送の操作を実施する 際には、ファイルコピーのダイアログが表示され、そちらにリアルタイムでファイル転送速度も表示 されるので併せて参考とする。 マウスカーソルを円付 近の部分にもっていく と、画面右側に検索 アイコンが表示される マウスカーソルを円付近の 部分にもっていくと「スター ト」と書かれたポップアップ が表示される。 そこで右クリックし、表示さ れたコンテクストメニューか ら検索を選択 検索入力ボックスに「ぱ」と入 力すると、自動的に「ぱ」又は 「パ」の付くアプリが検索される
  23. 23. SMB Diriect測定準備(3) 1. パフォーマンスモニターの測定項目を選択する  測定するに当たって、多数あるパフォーマンスモニターの項目を選択する。今回は転送速度を見るた め、Read/sec及びWrite/secのやAvg Read/secやAvg Read/Writeと言った項目のみを選択する。  なお、RDMA有効の場合と無効の場合で項目が異なるため注意。今回は、両方を選択しておく。 1. パフォーマンスモニターが起動したら、左ペインの「パフォーマンス」→「モニター ツール」→「パフォーマンス モニター」を選択し、画面中央付近のパフォーマンスモニターの表示形式を「レポート」にする 2. の緑の十字ボタンをクリックし、カウンターの追加からSMB Direct Connectionの下向きのアイコンをクリック。 パフォーマンスモニターの表示 形式を変更するには、ここに マウスでフォーカスを当てて、 Ctrl+gを2回でも変更可能 分類が多数あるの で、SMB~の分類 が見えるまで、下に スクロールさせる 赤枠線内をクリックすると、 さらに詳細な測定項目の 一覧が表示される。
  24. 24. SMB Diriect測定準備(4) 1. パフォーマンスモニターの測定項目を選択する  SMB Direct ConnectionとSMB Server Sessionから以下の項目を選択する。 1. SMB Direct Connectionから「Bytes RDMA Read/sec」「Bytes RDMA Write/sec」を選択する。なお、選択し たオブジェクトのインスタンスは、「_Total」、「{IPアドレス:445 -> IPアドレス:ポート}」を2つ選択する。 2. SMB Server Connectionから「Avg. Bytes/Read」と「Avg. Bytes/Write」をそれぞれ選択する。なお、選択し たオブジェクトのインスタンスは、「_Total」を選択する、 最後に「追加」を忘れずに IPアドレスは、Infiniband HCA に付与したIPアドレスで、ポートは 自動で割り当てられる Multichannelは、RDMA対応 HCAあたり2つなので、2つ表示さ れている Server Sessionsの Read/Writeは、SMB接続 1つのセッション当たりの数値 だと思われる RDMAを無効にすると、同時 にMultichannelも無効にな るため、RDMA無効の際の 測定は、当該項目で行う
  25. 25. SMB Diriect測定準備(5) 1. 選択されたパフォーマンスモニターの測定項目を確認する  SMB Diriect測定準備(4)までで設定した項目が設定されているか確認する。  特にSMB Direct Connectionにおいて「Bytes RDMA Read/sec」「Bytes RDMA Write/sec」を選択し、項目の追加を 行っても、パフォーマンスモニター上に何も表示されない場合には、RDMAが有効になっていない可能性が高いため、も う一度、PowerShell上で設定を確認する。  RDMAが有効になっていない(≓Multichannelが有効になっていない)場合は、「_Total」、「{IPアドレス:445 -> IPア ドレス:ポート}」を2つ選択が、選択したオブジェクトのインスタンスに表示されない。
  26. 26. SMB Diriect測定準備(6) 1. 電源オプションを確認し、バランス(推奨)から高パフォーマンスに変更する  測定前に電源オプションを確認する。Windows Server 2012インストール直後、特に電源オプションを変更していない 場合、デフォルトで「バランス(推奨)」になっている。この設定の場合、CPUの各コアがかなり低い周波数で動作する挙 動を示す。  そのため、測定前に電源オプションを「バランス(推奨)」から「高パフォーマンス」に変更する。電源オプションを変更 するとCPUの周波数が切り替えることに注目する。 マウスカーソルを円付近の 部分にもっていくと「スター ト」と書かれたポップアップ が表示される。 そこで右クリックし、表示さ れたコンテクストメニューか ら電源オプションを選択 最大速度3.30GHzに 対し、現在速度が 1.55GHzになっている 電源オプションを「高パフォーマンス」 に変更 最大速度3.30GHzに対し、現在速度が 3.07GHzと最高周波数近くになっている
  27. 27. 補足(5)-その他の測定ツールについて1  パフォーマンスモニター以外にも測定に参考となるツールやGUIがある – ファイルコピーダイアログ  ファイルコピーダイアログは、おなじみの画面で、Explorer上でファイルのコピーや移動を行った場合に、ダイア ログウィンドウが表示され、残り時間や進行状況のプログレスバーが表示される。Windows Server 2012では、 残り時間と同時にグラフィカルな秒間の転送速度が表示されるようになった。 – タスクマネージャー  こちらも馴染みが深い画面で、CPUやメモリ、ネットワークの利用率が示される。今回、RDMAを利用したSMB Direct転送では、CPUオフロードがあるため、CPUの使用率をみたい場合、こちらの視覚的にわかりやすい。また、 RDMAが有効である場合、ファイルにコピー時にネットワークの利用率は僅かにしか変動せず、RDMAを無効にし た場合に、大きく変化することに注目する際に利用する。 CPUは、全体利用率から スレッドごとの利用率に表 示を変更することが可能 1件のコピー時のダイアログ、残り時 間と現在の転送速度 (1.65GB/sec)が表示されている 1件のコピーが終わる前に、ドラッグ& ドロップを繰り返し、コピー処理を並 列で実行した場合のダイアログ、1件 ごとのコピー処理の残り時間や現在 の転送速度(合計2.6GB/sec)が 表示されている
  28. 28. 補足(5)-その他の測定ツールについて2  パフォーマンスモニター以外にも測定に参考となるツールやGUIがある – ioMeter  Windowsで利用できる、IOPSやスループットを測定できるツール。測定時におけるデータサイズ、Read/Writeの 割合、スレッド数、利用するネットワーク等を細かく指定できるため、サイジングの参考に利用される。 – CrystalDiskMark  コンシューマストレージ製品でよく利用されるベンチマークツール。とりあえずSSDやHDDを買ったら回してみる 系のツール。複数同時起動ができるため、複数起動して、同時に実行すると並列コピー処理を再現できる。 IOPS表示(32KB、 R75%/W25%)時 スループット表示(32KB、 R75%/W25%)時 6多重起動、シーケンシャル 時は、RDMA Read/Write で3GB/sec越え
  29. 29. SMB Diriect測定の実施計画 1. SMB Directによるファイル転送の測定実施計画 – 測定の実施は、以下のパターンを実施する  ib_read_bw/ib_write_bwの測定  RDMAが有効な状態での測定 1. SMB Server上の共有ディレクトリからファイルをSMB Clientにコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする 2. SMB Client からSMB Server上の共有ディレクトリへファイルをコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする  RDMAが無効な状態での測定 1. SMB Server上の共有ディレクトリからファイルをSMB Clientにコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする 2. SMB Client からSMB Server上の共有ディレクトリへファイルをコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする ※単一処理と並列処理の違いは以下のとおり。  1つのファイルを1回のドラッグ&ドロップでコピーすると単一処理  4つのファイルを1回のドラッグ&ドロップでコピーすると単一処理  4つのファイルを4回のドラッグ&ドロップでコピーすると並列処理
  30. 30. ibhack02当日の測定内容 1. SMB Directによるファイル転送の測定実施計画 – 測定の実施は、以下のパターンを実施する  ib_read_bw/ib_write_bwの測定  RDMAが有効な状態での測定 1. SMB Server上の共有ディレクトリからファイルをSMB Clientにコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする 2. SMB Client からSMB Server上の共有ディレクトリへファイルをコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする  RDMAが無効な状態での測定 1. SMB Server上の共有ディレクトリからファイルをSMB Clientにコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする 2. SMB Client からSMB Server上の共有ディレクトリへファイルをコピーする – 単一処理でファイルをコピーする – 並列処理でファイルをコピーする ※単一処理と並列処理の違いは以下のとおり。  1つのファイルを1回のドラッグ&ドロップでコピーすると単一処理  4つのファイルを1回のドラッグ&ドロップでコピーすると単一処理  4つのファイルを4回のドラッグ&ドロップでコピーすると並列処理
  31. 31. Ib_read_bwの測定結果  コメント – チューニング等を一切していないデフォルト状態でib_read_bwの実施をした結果、パケットサイズ が4KB以降では、おおよそ6GB/sec(48Gbps)の表示。実効レート付近に近い値となっている。 ib_read_bwやib_write_bwは、測定の意味合い的にはiperfやnetperfに近しいツール。 – TCP/IPにて一度、クライアント側からホスト側のサーバープログラムに対しアクセスし、その後、 Infinibandの通信にてバンド幅の測定を行っている。
  32. 32. RDMA有効(単一のコピー処理)  コメント – 1.6GB/sec(12.8Gbps)ほどの転送速度、ib_read_bwの実測値を事前に見ているため、拍子抜けして しまった。実は、この時点では並列処理でのコピー処理を実施する予定はなく、この後、いくつか検 討をした結果、並列でのコピー処理では、転送速度が向上するのではないか?との仮説に基づいて以 後の測定を実施することになった。
  33. 33. RDMA有効(並列のコピー処理)  コメント – 並列でのコピー処理では、転送速度が向上するのではないか?との仮説に基づいて以後の測定を実施、 仮説どおり、スループットは3.3GB/sec(26Gbps)まで向上した – iometerの処理スレッド数の増加によるIOPSや転送速度の向上、Las VegasのInterrop 2012での MellanoxとMicrosoftのSMB Directの報告PDFにあるSMB Diriect処理に対し割り当てスレッド数を 最大化することで、スループットが向上すると言った内容にヒントを得た。
  34. 34. RDMA無効(単一のコピー処理)  コメント – RDMA無効の状態での単一のコピー処理では、1.5GB/sec(12Gbps)と予想していたより転送速度の 落ち込みは見せなかった。 – なお、パフォーマンスモニターの測定項目が、ibhack02当日では、SMB Diriect測定の実施計画での 測定項目とは異なるため参考値となるが、SMB Server Connectionから「Avg. Bytes/Read」と 「Avg. Bytes/Write」とそれほど大きく異ならず、コピーダイアログでも同等の数値となっていた。
  35. 35. RDMA無効(並列のコピー処理)  コメント – RDMA無効の状態での単一のコピー処理では、2.4GB/sec(19.2Gbps) と、こちらも思いの外、ス ループットが落ちなかった印象。ここまで測定を実施して、SMB Directが劇的にファイル転送のパ フォーマンスを向上させるかというと、そうでもないと言う感触を有するに至った。 – なお、こちらも、前ページと同様にパフォーマンスモニターの測定項目が、ibhack02当日では、 SMB Diriect測定の実施計画での測定項目とは異なる。
  36. 36. ibhack02 SMB Direct測定結果まとめ No RDMA状態 単一/並列 結果(GB/sec) 結果(Gbps) ib_read_bw比較 0 - - - - 5.9GB/sec 1 有効 単一 1.6GB/sec 12.8Gbps 72.9%減 2 無効 単一 1.5.GB/sec 12.0Gbps 74.6%減 3 有効 並列 3.3.GB/sec 26.0Gbps 44.1%減 4 無効 並列 2.4GB/sec 19.2Gbps 59.3%減  結果 – ib_read_bwの結果から想定すると、SMB Directを利用しても最大で、実効レートの56%程度しか利 用できていない(ただし、ibhack02で利用した環境において、システムが利用可能なメモリ容量を大 きく加えた場合、大きく結果が向上する可能性はある)。 – また、今回はRamDiskにて測定を行ったが、実際の利用シーン、SASのRAIDやSSDを併用した階層 構造ストレージ等の利用を考慮すると、さらに数値はストレージ側の転送速度のボトルネックで低下 すると思われ、明らかに帯域に対するストレージ側のボトルネック状態は、依然として変わらないも のと思われる。 – ただ、今までSMB/CIFSが1つのNICあたり1つのセッションしか張れず、性能が出なかったことを考 えると、RDMA/SMB DirectとMultichannelによる現在値からの性能向上は期待できると考えられる。
  37. 37. 反省点や今後同様の測定を行う際の注意  反省点 – 単一処理と並列処理との違いをよく理解していなかった。 – 並列コピー処理の実行は、簡単なDOSバッチやPowerShellスクリプトを作成する必要があるめ、事 前に準備をしておくべきだった。 – ダミーファイル作成に手間取った、当初サードパーティのツールの利用も検討したが、候補だった GigaFileCreaterは.NET Frameworkが必要だった。 – 測定値をもう少し細かく取得する方法を検討するべきだった。  注意点 – RamDiskにメモリをギリギリまで割り当てて実施したが、後日、コピー処理においてバッファリング するメモリは足りているのか?との疑問からシステムが利用可能なメモリを増やしたところ、スルー プットがかなり向上した。 – Windows Server 2012の電源のオプションがデフォルトで「バランス(推奨)」となっており、測定 を開始した直後、RDMA有効状態の単一のコピー処理でパフォーマンスが1.1GB/sec(8.8Gbps)程度 しか出ていなかった。電源オプションで「高パフォーマンス」を選択したところ、スライドにある数 値までパフォーマンスが向上した。 – 参考までにCrystalDiskMarkでも測定を行ったが、CrystalDiskMarkは、パフォーマンスモニターや CrystalDiskMarkの実行結果の数値から単一のコピー処理での測定結果とほぼ同じになる。 – StarWind RAM Diskは、再起動すると自動でマウントされるが、その際にFAT32でマウントされて しまう。NTFSに固定するオプションは見つからなかったため、Windows Server 2012を再起動する 際には、その都度「ディスクの管理」でNTFSに再フォーマットすること。
  38. 38. 総括  SMB Directは、並列のファイル処理において最も効果を発揮する。  SMB Directは、RDMAによるCPUのオフロードよりも、処理におけるステップ数の削減の ほうが意味があると想定される(Xeon E5-2960では、30%程度のCPU使用率だったが、 Core i5では、100%違いCPU使用率となったため、CPUの処理性能はそこそこ必要に思え る)。  SMB Directは、現在のSMB/CIFSに比べ一定の性能向上が認められる。  Infinibandの帯域幅を使い切るには、もっと実装の改良が必要。  Infinibandの符号化変更は性能向上に一定の効果があると想定される(ibhack02ではFDR、 当該資料作成時に自宅のQDR環境で多少比較を取ったが、40Gbpsと56Gbpsの数値の割 合よりも性能に影響があった)。  それでも手軽に2、3秒でDVDが1枚転送できる、数GB/secの転送レートを有するストレー ジ環境のインフラを構築できる手軽さは魅力的! だからやっぱりInfinibandスゲェ!!・・・ ・・・ ・・・と思います。
  39. 39. 謝辞  Infiniband Hack-a-thon [02]の実施に当たって、協力を頂 きました皆様方にこの場を借りて御礼申し上げます。  株式会社アルティマ様 – Infiniband関連機材、FDR Infiniband HCAやFDRの36ポートInfinibandス イッチ!等一式をご提供いただきました。  国際産業技術株式会社様 – 当日の会場やInfiniband機材以外のサーバーやモニター、キーボード、電源 等をご提供いただきました。  主催、当日スタッフ及び参加者の皆様 – Infiniband Hack-a-thonに向けての各種調整、周知・宣伝、ネタ出しや参 考資料のご呈示、参加者の誘導や会場設営と現状復帰等をいただきました。
  40. 40. おわり THANK YOU
  41. 41. おまけ  Infiniband Hack-a-thon [02]の振り返りと今後 – 反省点等を踏まえて、もう少し測定数値等をちゃんと取るよ!(気が向いたら) – そしたら、この資料がひっそり更新されているかもね?! – でも、うちの環境はQDRの環境なんだよね・・・  Coming Soon?

×