Blog

※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。 / # The contents expressed here are only my personal opinions.

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の仕様です)

  • Hyper-V 管理オペレーティング システムで SMB ダイレクトを使用して、Hyper-V over SMB を使用できるようにしたり、Hyper-V 記憶域スタックを使用する仮想マシンに記憶域を提供したりできます。ただし、RDMA 対応ネットワーク アダプターは Hyper-V クライアントに直接公開されません。RDMA 対応ネットワーク アダプターを仮想スイッチに接続すると、そのスイッチからの仮想ネットワーク アダプターは RDMA 対応ではなくなります。

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)

ONS2014 Keynote (YouTube) - Albert Greenberg, Director of Development, Windows Azure Networking, Microsoft からの引用

f:id:kz_tomo:20140428210451j:plain

  • ストレージコストを抑えるため、ネットワークに投資コモディティーサーバを高速ネットワークで接続した構成。 
  • Erasure Code(消失符号)を活用し、データの冗長性を担保。データライトに対して、3つのコピーライトが実行される。(引用者注:コピーライト完了がクライアントからの応答性能に含まれるため、コピーライトの完了をいかに速くできるかがライト性能のポイントとなり、後述のRDMAが効果を発揮する)

f:id:kz_tomo:20140428211227j:plain

  • 40ギガビットイーサネットRoCE (RDMA over Converged Ethernet)が動作
  • Software Defined Network - 全ての機能はホスト側(RDMA対応NICとドライバソフトウェア)で実現(ネットワーク機器は特別なものではない)
  • オールL3(IPベース)でRDMAが動作(※本稿執筆時点では詳細未公開)
  • 極めて速いレイテンシー:E2Eで2us未満(スライド参照)
  • RDMAにより、ホストCPUの負荷を削減し、圧倒的なコストパフォーマンスを実現

f:id:kz_tomo:20140428211637j:plain

  • 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 Ethernet10GbE/40GbE)を足回りとしながら、その上でInfiniBand譲りのRDMA転送を行う、運用性と転送効率を両立した新世代のプロトコルである。

過去記事

 

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"であったが、内外各所からの要望で公開された模様。

NTttcp Version 5.28 Now Available - Server and Cloud Partner and Customer Solutions Team Blog - Site Home - TechNet Blogs

送信側:# 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

  • IPアドレスは送信側、受信側共に受信側IPを指定する。
  • -s : 送信側、-r:受信側、-m: X,Y,Z : X:セッション数、Y:プロセッサ(*で全プロセッサ使用)、Z:受信IPアドレス、-a:セッション内同時I/O
  • -tは実行時間(秒)。十分大きくしてパフォーマンスメーターで性能状況を観測した。

 

f:id:kz_tomo:20140419184541j:plain

性能状況例

  • 受信側タスクマネージャー:38.4 Gbps程度を確認

f:id:kz_tomo:20140419194812j:plain

参考: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

        -nic <NIC IP>

             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ドライバ実機デモ

デモ構成

  •  2x VM(CentOS6.4) vs 2x VM(CentOS 6.4)を1本の40GbEで接続
  • VMware ESXi 5.5 inbox 40GbEドライバ
  • VMで下記を実行

(受信側VM)# iperf -s

(送信側VM)# iperf -c <受信側VMのIP address> -l 64k -P 4

 

f:id:kz_tomo:20140419173339j:plain

デモでの性能例(受信側サーバ)

  • 受信側サーバにて4.86GB/s(=38.88Gbps)程度のスループットでの安定動作を確認

f:id:kz_tomo:20140419173858j:plain

Mellanox 40GbE I/O統合デモ

  • 某国産ストレージの40GbE iSCSIモデル(プロトタイプ版)を展示
  • ネットワークI/OとストレージI/O(iSCSI)を40GbEシングルワイヤ接続
  • ネットワークI/O、ストレージI/O混在環境下での安定したスループットを確認
  • 性能状況を会場にて紹介(プロトタイプストレージのため、ここでは省略)

f:id:kz_tomo:20140419174236j:plain

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にて安定動作し、片パス障害及び障害復帰時にアクセスが途切れることなく動作することを実証

f:id:kz_tomo:20140413223209j:plain

性能はストレージの構成やサーバーの構成によるため、あくまで一例としてだが、展示会場でのデモでは、2パスで7,000MB/sを超えるスループット性能を確認した。

2パスでの接続状況(SMB Multichannel / SMB Direct)

 

f:id:kz_tomo:20140413221550j:plain

 

展示会場では一方のパスのケーブルをオンラインで抜き差しするデモも実施。

ストレージアクセスが途切れることなく、片パスの抜き差しが出来ることを実演。

 

片パスを抜いた場合の状況(SMB Multichannel(1パス) / SMB Direct)

f:id:kz_tomo:20140413221722j:plain

 

参考:デモを含めて展示内容を紹介する動画(RBBtoday)


【Interop 2013】メラノックスのスイッチがShow Award特別賞を受賞 - YouTube

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 over SMB の展開

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のVMSQL 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の場合での所要時間に顕著な差がついている。