Mellanox Windowsドライバ WinOF4.70でのアップデート
日本ではゴールデンウィークの最中でしたが、日本時間2014年5月5日の深夜に下記WEBにてさりげなくリリースとなっています。
Mellanox Products: Mellanox OFED for Windows (WinOF)
下記に概要とトピックを説明します。
MellanoxのWindowsドライバは、VPI(Virtual Protocol Interconnect)版ドライバです。
(InfiniBandとEthernetの両方をサポートするドライバ)
Mellanox WinOF Rev 4.70 New Features(リリースノートから抜粋)
- Ethernet SR-IOV over Windows Hyper-V Hypervisor (over Windows 2012 R2)1
- Virtual Ethernet Adapter support (over Windows 2012 and above)2
- RoCEv2: RoCE over Layer 3 networks (only for ConnectXR-3 Pro)
- Lossless TCP buffer management when no receive WQE are available
- IPoIB SR-IOV over KVM Hypervisor (Beta level)
今回のリリースでは大きなアップデートが2点あります。
1.RoCEv2のサポート
RoCE Version 2という新しいプロトコルがサポートされました。
元々RoCEは、InfiniBandフレームの最下位ヘッダをEthernetヘッダに置き換えただけのものであったため、IPヘッダが存在せず、IPルーティングが出来ないという制約がありました(参考:当ブログ過去記事)。EthernetベースでのRDMAプロトコルであるRoCEでL3でのスケーリングが出来ればさらに大規模で柔軟なシステム構成が可能となるため、RoCEのL3対応は長らく課題とされていました。
RoCEv2は、そのような課題を解消し、理想的なプロトコルを実現するものであり、L3活用でのオーバーレイネットワークの方向性と合わせて投入された新世代のプロトコルであると言えます。
本プロトコルは非常に新しいため、今後随時情報アップデートを行っていきたいと思います。
今後色々なシステムで検証が実施されていくのが楽しみです。
参考:例外的に既に使用しているユーザーも存在します。当ブログの過去エントリ、
http://rdma.hatenablog.com/entry/2014/04/28/212936
で紹介したスライドをよく見るとはっきりと書いてあります。
2.Virtual Ethernet Adapterのサポート(vea_manコマンド)
詳しくはドライバユーザーマニュアル「8.11 Virtual Ethernet Adapter」の章を参照。
このコマンド(vea_manコマンド)を使用すると、1つの10/40GbE物理ポートを2つの論理ポートとしてWindows OSへ提供できます。
従来より同様のコマンドはInfiniBand向けにはサポートされていました(part_manコマンド)が、Ethernetでは未サポートでした。
WinOF4.70では、Ethernetでもサポートという点がアップデートです。
なぜ論理ポート追加コマンドが必要か
理由:SMB Direct(RDMA)と仮想スイッチ経由のアクセスを同一物理ポートで共存させるため(I/O統合(Unified I/O)の実現)
http://technet.microsoft.com/ja-jp/library/jj134210.aspx
SMB ダイレクトを使用する場合の考慮事項 より抜粋(※Windowsの仕様です)
part_manコマンド(InfiniBand)、vea_manコマンド(Ethernet)を使って1つの物理ポートを2つの論理ポートとしてWindowsへ提供することで、上記制約事項をクリアし、RDMAと仮想スイッチの両立を実現できます。
# 本件については別エントリとして記事作成を予定しています。
Microsoft Azureでの40GbE RoCE (RDMA over Converged Ethernet)活用
Microsoft Azure
Microsoft Azureといえば、InfiniBandで動くHPCクラウドが2012年11月のSC12にてスパコンTOP500にランクイン(165位)し、2013年11月時点では、TOP500の309位にランキングされている。
Windows Azure Benchmarks Show Top Performance for Big Compute
TOP500 site : http://www.top500.org/site/50454
一方、表題のMicrosoft Azureでの40ギガビットイーサネットベースでのRDMA(RoCE)活用は、HPCクラウドではなく、より広く使われている一般的なIaaSサービスの方だと思われる。
2014年3月に開催されたONS(Open Networking Summit)2014にて発表された内容がYouTubeにアップされている。以下に該当部分をピックアップする。
Microsoft Azure - Software Defined Storage : 40GbE RoCE (RDMA)
- ストレージコストを抑えるため、ネットワークに投資。コモディティーサーバを高速ネットワークで接続した構成。
- Erasure Code(消失符号)を活用し、データの冗長性を担保。データライトに対して、3つのコピーライトが実行される。(引用者注:コピーライト完了がクライアントからの応答性能に含まれるため、コピーライトの完了をいかに速くできるかがライト性能のポイントとなり、後述のRDMAが効果を発揮する)
- 40ギガビットイーサネットRoCE (RDMA over Converged Ethernet)が動作
- Software Defined Network - 全ての機能はホスト側(RDMA対応NICとドライバソフトウェア)で実現(ネットワーク機器は特別なものではない)
- オールL3(IPベース)でRDMAが動作(※本稿執筆時点では詳細未公開)
- 極めて速いレイテンシー:E2Eで2us未満(スライド参照)
- RDMAにより、ホストCPUの負荷を削減し、圧倒的なコストパフォーマンスを実現
- 40Gbpsで通信をしている状態でもホストCPU使用率はゼロ(RDMAの特長)
- 実際にパフォーマンスメーターで0%を確認
伊勢雅英氏のInfiniBand関連記事まとめ
久々に伊勢雅英氏のInfiniBandの記事が掲載となっているので、これまでの記事をまとめてみた。伊勢氏の最初のInfiniBand記事2004年からちょうど10年。10年前にはクラウドやデータセンターという話題がまだほとんど無かったと言ってもよく、随分と状況は変わった。
今回の記事は、ユーザー事例に加え、新動向としてRoCEが取り上げられている点に注目である。RoCEを使えば、慣れ親しんだEthernetでありながらInfiniBandの性能の核心であったRDMAが使える。「運用性と転送効率を両立した新世代のプロトコル」と紹介されているが、クラウド、データセンターといった外側ネットワークとの接続や従来のVLAN運用が必要となる部分にもRDMAが活用できるようになってきた、という10年前には無かった、最近のニーズに合わせた動向と思う。
RoCEの登場によって10G/40G Ethernetの魅力がさらに増す
InfiniBandがどれだけ高速であろうと、実績の豊富なEthernetを使いたいと思う人がいるのも事実だ。InfiniBand製品は、Mellanoxを中心とする極めて少数のベンダーしか手がけていないが、Ethernet製品であればさまざまなベンダーから選べるからだ。また、接続先となるストレージシステムも、InfiniBandポートをネイティブに備えた製品はまだ少なく、Ethernetポートを搭載した製品が圧倒的に多い。
これまでを振り返ると、InfiniBandがネイティブでRDMA技術をサポートしていたのに対し、Ethernetは通信効率の面で見劣りする部分があった。しかし、近年ではInfiniBandで培われた広帯域・低レイテンシの通信技術をEthernetに適用したRoCE(RDMA over Converged Ethernet)が実製品のレベルで登場している。RoCEは、フロー制御によるロスレスの10Gigabit/40Gigabit Ethernet(10GbE/40GbE)を足回りとしながら、その上でInfiniBand譲りのRDMA転送を行う、運用性と転送効率を両立した新世代のプロトコルである。
過去記事
- InfiniBand探検隊リターンズ【前編】〜2012年現在も進化を続けるInfiniBandの最新状況 - クラウド Watch (2012/1/26)
- InfiniBand探検隊リターンズ【後編】〜広帯域I/Oを必要とする仮想化やDB分野で強く期待されるInfiniBand - クラウド Watch (2012/1/27)
Windows Server 2012 R2 - 40GbE TCP/IP性能例
※実際の性能はハードウェア構成、ドライババージョン、設定等で異なるため、あくまで一例である。
- NIC :Mellanox ConnectX-3Pro (40GbEモード) [FW:2.30.8000(WinOF4.60に付属)]
- ドライバ :Mellanox WinOF4.60
- ドライバオプション:全てデフォルト設定(JumboFrame無効)
- 構成:40GbE Copper QSFPケーブル直結対向構成
- ベンチマークツール :NTttcp v5.28(Microsoftのベンチマークツール)
※Windows版iperf等もあるが、Windows環境での推奨ベンチマークツールはNTttcpとのこと。下記Microsoft WEBより入手可能。2013年4月に公開されている。過去5年に渡ってMicrosoft "internal only"であったが、内外各所からの要望で公開された模様。
- テストコマンド(PowerShellではなく、コマンドプロンプトから実行。PowerShellから"cmd"と打てばOK)
送信側:# NTttcp.exe -s -m 16,*,10.0.0.10 -a 2 -t 10000
受信側:# NTttcp.exe -r -m 16,*,10.0.0.10 -a 2 -t 10000
性能状況例
- 受信側タスクマネージャー:38.4 Gbps程度を確認
参考:NTttcpのヘルプ
NTttcp: [-s|-r|-l|-n|-p|-sp|-a|-rb|-sb|-u|-w|-d|-t|-cd|-wu|-v|-6|-wa|-nic|-xml]
-m <mapping> [mapping]
-s work as a sender
-r work as a receiver
-l <Length of buffer> [default TCP: 64K, UDP: 128]
-n <Number of buffers> [default: 20K]
-p <port base> [default: 5001]
-sp synchronize data ports, if used -p should be same on every instance
-a <outstanding I/O> [default: 2]
-rb <Receive buffer size> [default: 64K]
-sb <Send buffer size> [default: 8K]
-a : [default: 0]
<Send buffer size> < 0 : system default
-u UDP send/recv
-w WSARecv/WSASend
-d Verify Flag
-t <Runtime> in seconds. When with -n mans max test time and disables
-wu and -cd flags. [default (with -n): 3h]
-cd <Cool-down> in seconds
-wu <Warm-up> in seconds
-v enable verbose mode
-6 enable IPv6 mode
-wa Sets the WAIT_ALL flag when using recv or WSARecv functions
Use NIC with <NIC IP> for sending data (sender only).
-xml [filename] save XML output to a file, by default saves to xml.txt
-m <mapping> [mapping]
where a mapping is a session(s),processor,StartReceiver IP set
e.g. -m 4,0,1.2.3.4 sets up:
4 sessions on processor 0 to test a network on 1.2.3.4
VMware ESXi5.5 - 40GbE inbox 実機デモ - vForum 2013
VMware ESXi5.5では、40GbEドライバがinboxサポート(OSやハイパーバイザーにドライバが内蔵されていること)されたことが大きなアップデートであった。
VMwareのイベントであるvForum 2013(東京)及びvSS 2013(大阪)での会場にて実機デモを実施した記録である。
- 日時:2013年11月6日-7日(東京:vForum 2013)
- 2013年11月19日(大阪:vSS 2013)
- 場所:ザ・プリンスパークタワー東京 展示会場
- ホテル阪急インターナショナル 展示会場
Mellanox 40GbE inboxドライバ実機デモ
デモ構成
(受信側VM)# iperf -s
デモでの性能例(受信側サーバ)
- 受信側サーバにて4.86GB/s(=38.88Gbps)程度のスループットでの安定動作を確認
Mellanox 40GbE I/O統合デモ
SMB Direct - 40GbE RoCE 実機デモ - Interop Tokyo 2013
Interop Tokyo 2013でのSMB Direct実機デモ内容の記録。
40GbE(RoCE) x 2本をSMB Multichannelで束ね、SMB DirectでのファイルシステムI/OをIOmeter(1MBシーケンシャルリード)で実行するデモを会場ブースにて実施した。
デモ概要
- 日時:2013年6月11日-14日
- 場所:Interop Tokyo 2013 幕張メッセ 展示会場
デモの目的
- Windows Server 2012環境での40GbE End-to-End接続を実証
- 40GbE RoCE(RDMA over Converged Ethernet)でのSMB Directアクセスが安定して充分な性能が出ることを実証
- SMB Multichannelにて安定動作し、片パス障害及び障害復帰時にアクセスが途切れることなく動作することを実証
性能はストレージの構成やサーバーの構成によるため、あくまで一例としてだが、展示会場でのデモでは、2パスで7,000MB/sを超えるスループット性能を確認した。
2パスでの接続状況(SMB Multichannel / SMB Direct)
展示会場では一方のパスのケーブルをオンラインで抜き差しするデモも実施。
ストレージアクセスが途切れることなく、片パスの抜き差しが出来ることを実演。
片パスを抜いた場合の状況(SMB Multichannel(1パス) / SMB Direct)
参考:デモを含めて展示内容を紹介する動画(RBBtoday)
SMB Direct - Windows Server 2012 / R2
SMB Direct関連情報まとめ
SMB Directとは
Windows Server 2012(及びR2)[以降、Win2012/R2と記載]にてサポートされたSMB3.0は、RDMA対応のネットワークアダプタとの組み合わせで、SMBプロトコル(ファイル共有プロトコル)がRDMA(RDMAに関する説明)で動作する。このRDMAで動作するSMBプロトコルをSMB Directと呼ぶ。
従来、ファイル共有プロトコルは、運用性に優れるものの、CPUに負荷が掛かりやすく、性能が出しにくい部分があったが、SMB Directによって運用性と性能の両立を実現している。SMB DirectはRDMAによるデータ転送のため、CPUに負荷を掛けないデータ転送が可能である。
また、SMB Directは、Win2012/R2でOS標準サポートされており、RDMA対応ネットワークアダプタが実装されていれば、特に設定変更などすることなく、自動的に動作する。
SMB Directは、RDMAがOSで標準サポートされ、しかもファイル共有プロトコルがRDMA動作するという二つの意味で、非常に画期的な技術である。
SMB Direct関連情報
SMB ダイレクトを使用してファイル サーバーのパフォーマンスを向上させる
Deploy SMB Direct with InfiniBand Network Adapters (InfiniBandでの構成)
Deploy SMB Direct with RoCE Network Adapters (RoCEでの構成)
Hyper-V over SMB Direct
Win2012/R2では、Hyper-V環境でのストレージとして、SMBファイルストレージが使用できるようになった。前項で述べたSMB DirectもHyper-V環境で使用可能であり、仮想化環境でボトルネックとなりやすいストレージアクセスを高速化できる。
Hyper-V Live Migration over SMB Direct
Windows Server 2012 R2でのアップデートとして、Hyper-V環境でのLive MigrationでSMB Directが選択できるようになった。SMB DirectはRDMAによるデータ転送のため、CPUに負荷を掛けず、非常に高速なLive Migrationが可能であり、運用面で大きなメリットが期待できる。
Microsoft Worldwide Partner Conference (2013年7月)での講演で紹介されたデモ
Microsoft Pushes the Envelope with Hyper-V Live Migration -- Redmondmag.com
- 約8GBのVMでSQL Serverが動作しているVMをLive Migrationするというデモ
デモの結果:
Win2012とWin2012間:1分26秒
Win2012R2とWin2012R2間(圧縮あり):32秒
Win2012R2とWin2012R2間(RDMA):11秒
このデモでは、VM上でSQL Serverが動作しているため、圧縮ありの場合のLive Migrationでは圧縮処理に使うCPUとSQL Server動作が競合するのに対し、RDMAの場合にはCPUを使う必要がないため、圧縮ありの場合とRDMAの場合での所要時間に顕著な差がついている。