プログラマ目線から見たRDMAのメリットと その応用例について

  • Published on
    02-Jun-2015

  • View
    5.226

  • Download
    3

DESCRIPTION

2010/11/17に開催された InfiniBand Day 02 でオンライン講演した際の資料です。
システムソフトウェアの開発者の観点から見た、RDMA機能のメリットと応用についてまとめています。

VIOPSのHPからリンクされているものと同じものです。

Transcript

  • 1. InfiniBand & Manycore Day プログラマ目線から見たRDMAのメリットと その応用例について2010年11月17日株式会社NTTデータ技術開発本部 伊藤雅典
2. INDEX 00 自己紹介 01 概要とInfiniBand & Manycore Day における位置づけ 02 InfiniBandの「機能」概要 03 RDMA技術のメリット 04 RDMAの応用例(1):SDP 05 InfiniBandの応用例(1):vSMP 06 今後の予定(?) 07 まとめCopyright © 2010 NTT DATA CORPORATION 1 3. 00 自己紹介氏名 伊藤 雅典 (いとう まさのり)所属 株式会社NTTデータ 技術開発本部 ITアーキテクチャ&セキュリティ技術センタ担当業務 NTTデータの総合クラウドサービス BizXaaS™ (http://bizxaas.net/)の、 「フルOSSクラウド構築ソリューション」 の開発ほかに従事 http://www.nttdata.co.jp/release/2010/040801.htmlOpenStackやクラウドストレージ技術などに注力中その他、活動領域Open Cloud Campus、日本OpenStackユーザ会(JOSUG)、JEUG、VIOPS InterCloud SIG、GICTF等でも活動中Copyright © 2010 NTT DATA CORPORATION2 4. 00 自己紹介(続き)Disclaimer私の勤務先では、特に、InfiniBand に関する開発活動(製品、ソリューション等)は行っておりません。純粋に、ユーザの立場にあります。Then, why me?その昔(前職の頃)、仕事で InfiniBand 他の高速インタコネクトに関わっていたためです。具体的には・・・• InfiniBand HCAカードの Linux 用デバイスドライバの開発• SDPプロトコルの策定• DAPL (Direct Access Provider Library)ライブラリの開発• RDMA技術の応用の1つである、ICSC Socket Extension の仕様の策定等々Copyright © 2010 NTT DATA CORPORATION 3 5. 01 概要InfiniBand & Manycore Day シリーズの全体象 InfiniBand 関連 1.技術編 2.業界動向編 3.応用編 Manycore 関連 調整中?本日のプレゼンテーションの概要 以下のトピックについて、システムプログラマ視線でみた技術的なポイン トをご紹介します。• RDMA技術の代表格である、InfiniBandの機能概要• RDMA技術のメリット• RDMA技術および InfiniBand の応用例(SDP, vSMP)Copyright © 2010 NTT DATA CORPORATION4 6. 02 InfiniBandの「機能」概要Specification • 最新版スペックのバージョンは1.2.1+Errata • http://members.infinibandta.org/kwspub/spec/ • 意外にバージョンが上がっていない • 機能としては十分成熟したということか。 • 構成 • Volume 1 : 全体アーキテクチャ、リンク~トランスポート層、管理系 1727pp • Volume 2 : 物理層 834pp• Volume 1+2 合計で2500page以上! • 物理層(L1)からトランスポート層(L4)、管理系、およびコネクタ の規格等まで定められているため、膨大な量となっているCopyright © 2010 NTT DATA CORPORATION 5 7. 02 InfiniBandの「機能」概要全体像の理解への近道• スペックの Volume1、Chapter 3 “Architectural Overview” が一番網羅的でまとまっており、おすすめです。• 豊富な図版入りで、55page (ただし、英文)システムプログラマの視線から見た特徴的な機能• Addressing • パケットに埋め込まれているアドレスには2種類ある • サブネット単位でユニークな、LID (Local Identifier) : 16bit • 全世界でユニークな、GID (Global Identifier): 128bit• GIDには、実は IPv6 が使用されている• つまり、InfiniBand “ルータ” という概念があるCopyright © 2010 NTT DATA CORPORATION6 8. 02 InfiniBandの「機能」概要• 豊富なトランスポート層の機能 • 4種類のトランスポート• RC, RD, UC, UD • RDMA : Remote DMA • Atomic Operation (リモートでCompareAndSwap等ができる) • 以上はすべてハード(ファームも含む)で実装されている• Congestion Control • Slow Drain問題の考慮等が入っている• 管理系 • 管理用に外付けのネットワークは要求しない。インバンドで管理Copyright © 2010 NTT DATA CORPORATION7 9. 03 RDMA技術の「機能」概要InfiniBand HCAの基本的な構造 IB spec. 1.2.1 Vol1. p96より 引用Copyright © 2010 NTT DATA CORPORATION 8 10. 03 RDMA技術の「機能」概要HCAホストチャネルアダプタの略。要するにNICWR Work Request。要するに通信コマンドQP Queue Pair。プログラムが使う、通信エンドポイント 全二重のチャネルの送信側と受信側のコマンド処理キューに対応CQ Completion Queue。QPに投入したWR(通信コマンド)のうち、 処理が完了したWRに対応する情報エントリ(CQE)が格納されるPD Protection Domain。アクセス保護のための単位MR Memory Region。HCAに登録された、仮想連続なメモリ領域MW Memory Window。MRを分割する単位Copyright © 2010 NTT DATA CORPORATION 9 11. 02 InfiniBandの「機能」概要InfiniBandによる通信手順の概要1. 事前準備• HCAとの接続、PD、CQの準備等 2. 通信エンドポイントを作成する(QPをつくる) 3. コネクションを張る(RCを使う場合) 4. 通信バッファをHCAに登録する2/3と4は逆でも構わない 5. 通信リクエストWRをQPにポストするSend/Recv、RDMAなどRDMAするリモートアドレスは、Send/Recvでコネクションの両側で通知しあうのが普通 6. CQから通信リクエストの完了を刈り取るCopyright © 2010 NTT DATA CORPORATION10 12. 03 RDMA技術のメリット広帯域通信?低遅延?違います。それは、主にリンク層の性能によるメリット • リンク層の性能以外にも、 I/Oバスの性能、I/Oブリッジの性能、 DMAエンジンのI/Oバスの使い方の善し悪し、そもそも論としてソ フトからの使い方の善し悪し等、さまざまな要素が関係してきま す。では何がRDMA技術のメリットなのか? コピーを減らせること システムバスの負荷が低いこと ≒SMPシステム全体の効率を上げられることCopyright © 2010 NTT DATA CORPORATION11 13. 03 RDMA技術のメリットまず、 プログラマ視点で見た、RDMAを復習しておきましょう• リモートノード上の、• 仮想アドレス(user/kernel spaceを問わない)を指定して、• 書き込み、読み込みができる• しかもCPUを介さずにデバイスがやってくれる• だから、Remote Direct Memory Access(RDMA)Copyright © 2010 NTT DATA CORPORATION 12 14. 03 RDMA技術のメリット「コピーを減らせる」とはどういうことか?以下の2つのケースにおける、受信側でのデータの動きを比較してみます1. 通常の socket 通信のケース2. RDMAによるユーザレベル通信(ULT)のケース 0コピー通信?Copyright © 2010 NTT DATA CORPORATION 13 15. 03 RDMA技術のメリット1.通常のSocket通信などのケース送受信バッファを使って Send/Recv するMain MemoryHCAI/OI/O BusBridgeKernel Buffer User Buffer System Bus CPUによるメモリコピー:ca CPU #1cheCopyright © 2010 NTT DATA CORPORATION14 16. 03 RDMA技術のメリット2.RDMAによるユーザレベル通信(ULT)のケースリモートのユーザバッファへ直接RDMA Write するMain MemoryHCAI/OI/O BusBridgeKernel Buffer User Buffer System Bus CPUによるメモリコピーなし :ca CPU #1cheCopyright © 2010 NTT DATA CORPORATION15 17. 03 RDMA技術のメリットこれら2つのケースにおける、受信側でのデータの動きの違い1. 通常の socket 通信などのケース デバイス -> I/Oバス -> I/Oブリッジ -> システムバス -> メモリ (kernel buffer) -> メモリ(user buffer)2. RDMAによるユーザレベル通信(ULT)のケース デバイス -> I/Oバス -> I/Oブリッジ -> システムバス -> メモリ (user buffer)実は違いは最後のメモリコピーしかない• メモリコピーはシステムバスを2回通るのに注意つまり、RDMAの有無で、システムバス上のトラフィックは(最悪)3倍違う!• これがSMPシステム全体の効率に効く。Copyright © 2010 NTT DATA CORPORATION16 18. 03 RDMA技術のメリット(余談)I/Oバスに対する DMA READ/WRITE とRDMA Read/Writeの関係RDMA Writeソース側のデバイス上のHCAのDMAエンジンからは、主記憶上からのデータの読み出しが必要 • DMA READ を実行RDMA Writeターゲット側のHCAのDMAエンジンからは、主記憶へデータの書き込みが必要 • DMA WRITE を実行つまり、立ち位置によって、READとWRITEが逆転して見えることがあるので混乱しないようにしましょうCopyright © 2010 NTT DATA CORPORATION 17 19. 04 RDMAの応用例(1):SDPRDMA技術の問題点の一つハードの設定を気にするのは面倒だし、慣れたソケット通信でプログラムを書きたい解決策ソケットライブラリのすぐ下の層(ユーザ空間)で、通信処理を横取りし、RDMAを利用した低コスト・高性能通信処理にすげかえてしまえばいい!この種のアイデアは、古くは、UCB の FastSockets の研究[1] にさかのぼります[1] Steven H.Rodrigues, Thomas E.Anderson, and David E.Culler. High-performancelocal area communication with fast sockets. USENIX, 1997.Copyright © 2010 NTT DATA CORPORATION 18 20. 04 RDMAの応用例(1):SDPSDPの処理の概要• TCPの代わりに独自プロトコル(Socket Direct Protocol)を定義。上位プログラムには通常の byte-stream通信を見せる。• ショートメッセージ、Recv Postingが間に合わない場合はSend/Recvを使用して通信• ロングメッセージの場合は、プログラムが渡したバッファをメモリ登録してからRDMAを使用して0コピー通信使い方 通常のsocket通信を行うプログラムの起動時に、LD_PRELOADに libsdp.so を指定するだけCopyright © 2010 NTT DATA CORPORATION19 21. 04 RDMAの応用例(1):SDP効果 ベンチマークすると、物理層の実効性能の9割以上は達成できます。 例:SDRの測定例で、例えば7.6Gbpsくらい。特性(というか、留意事項)• SDPでは、プログラムにTCPソケットに見えるパス1本について1つ、RCのコネクションをはります。なので、低通信量でコネクション確立・切断を繰り返すような使い方をすると、性能が出ません。• 送受信バッファを十分大きくする必要があります。でないと、0-copy通信が走らないことがあります。• RCコネクションはハード資源です。なので、多量のコネクションを張るようなプログラムは性能劣化を起こすことがあります。Copyright © 2010 NTT DATA CORPORATION20 22. 05 InfiniBandの応用例(1):vSMPScaleMP• リングトポロジのIBで接続した仮想SMP(vSMP)なるもの• 以下の例では 8core、16GB の4台を束ねて、32core、64GB のSSIにできる Virtual SMP Node#1 Node#2 2QC/16GB 2QC/16GB 2port InfiniBand でリング状に接続HCA HCAHCA HCA 2QC/16GB 2QC/16GB Node#3 Node#4Copyright © 2010 NTT DATA CORPORATION 21 23. 05 InfiniBandの応用例(1):vSMPリングトポロジでvSMPを実現するにあたって気になること• 鶏と卵問題 このNノードなら、 IBサブネットもN個存在する サブネットごとに Subnet managerが必要 Subnet manager は SSI になった後に起動するのか? でも、Subnet Manager がいないと、SSIになれないはず では、vSMPってどうやって起動するんだろう? もしかしたら、各ノードごとにOSあげるのか?• そのあとでSSI化するなら納得できるCopyright © 2010 NTT DATA CORPORATION 22 24. 05 InfiniBandの応用例(1):vSMP考えるべきこと spinlock の実装• spinlock を獲得しようとしたプログラムが動作している物理ノードの以外のノードも含めて、システムワイドでCAS操作を行う必要がある。InfiniBand の Atomic Operation で実現するのか? ある物理ノードで動いているプロセスが、他ノードのメモリにアクセス したらどう処理するのか?• 別ノードにコンテキストを移動させる? 別物理ノードに接続されているI/Oアダプタに対してI/O要求が出た 場合にどう処理するのか? etc.某所のScaleMP環境で実機検証・調査をしたいと思います ☺Copyright © 2010 NTT DATA CORPORATION 23 25. 06 今後の予定(?)• 今後の InfiniBand & Manycore Day でご紹介したいこと• InfiniBand以外のRDMA系技術の動向• NFS/RDMAの概要とメリット• Oracle RACが使用する RDS : Reliable Datagram Socket の概要とメリット• DAPL等、RDMA技術を利用可能な通信ライブラリの概要• RDMA技術を活用するためのSocket API拡張Copyright © 2010 NTT DATA CORPORATION 26. 07 まとめ• システムプログラムからみたRDMAのメリット• メモリコピーを減らすことが、通信性能だけでなく、システム性能全体に効く(意外と認知されていない)• 今後も、RDMA技術の応用例やメリットなど、ご紹介していきたいと思います• 一緒に実機評価作業をしてくれるボランティア求む! ☺Copyright © 2010 NTT DATA CORPORATION 27. ご清聴ありがとうございましたCopyright © 2010 NTT DATA CORPORATION26 28. 本文中に記載の会社名、商品名、製品名などは、一般に各社の商標または登録商標です ただし本文中では、TMや®マークは明記してありません 29. Q&ACopyright © 2010 NTT DATA CORPORATION 28 30. ReferencesInfiniBandの規格http://www.infinibandta.org/メンバ登録(無料)をしなくてもスペックは以下から入手できるようです。http://members.infinibandta.org/kwspub/spec/OpenFabricshttp://www.openfabrics.org/InterConnect Software Consortiumhttp://www.opengroup.org/icsc/Copyright © 2010 NTT DATA CORPORATION29 31. 0x バックアップスライド以下、バックアップスライド投影せず。また、配布資料からも削除。Copyright © 2010 NTT DATA CORPORATION 32. 0x バックアップスライドCopyright © 2010 NTT DATA CORPORATION 33. Interconnect の歴史Ethernet (1973-)Token RingFDDIFiber ChannelSONET/SDHHIPPI, SP-Switch(IBM) , AP-net(Fujitsu), Memory-Channel(DEC), etc.Myrinet, SCI, Giganet,... (academic NW)Virtual Interface Architecture (1997)NGIO + Future I/O = InfiniBand (2000-) ←ココ3GIO => PCI-Express (2002)Quadrics, PathScale… 34. Interconnect の歴史横軸年代、縦軸帯域のグラフを描く 35. INDEX NNInfiniBandに至る、Interconnect の歴史 NNInfiniBandの「機能」概要 NNそもそもRDMAのメリットって何? NNRDMAの応用例:NFS/RDMA (RFC5532等) NNRDMAの応用例:SRP NNRD : Reliable Datagram の威力 NNEnd-to-end latency 1us の理想と現実 NNNW冗長化?昔々、APMというものがあっての~ NNSDPが効く場合と効かない場合 NNvSMPって、初代 Virtual Ironを思い出す… (OLS2005) NNそれでも socket でいきたい人っているかしら?Copyright © 2010 NTT DATA CORPORATION 34 36. E2E latency 1us の理想と現実どうやればこんな性能を出せるか?CPUを busy poll で使いまくって通信完了を検出する。これの繰り返し。実用的には、割り込みベース指定回数pollしてから blocking wait するのもあり 37. APMによるパス・マイグレーション通信経路冗長化機能の一つRC作成時に、2つのパスレコード(通信経路を示す)を指定しておくプライマリ側の通信経路でエラーが発生した場合、ハード層でセカンダリ側の経路に切り替えてくれる • Failover可能な経路の制約 • Standby 側パスは同一HCA上のポートを使っていること(マルチ ポートHCAなら、別ポートでもいい)絵を描く 経路変更をキックする人 ModifyQPでもできる SW 38. 01 クラウド業界動向Copyright © 2010 NTT DATA CORPORATION 37 39. 05 IaaSインフラを自分で持つとはどういうことか?Eucalyptus で構築したオンプレミスのIaaSインフラの例で考えてみます利用者PCインターネット外部ネットワーククラスタ#1(≒ラック#1)AWS S3 APIAWS EC2 API NAT、F/W SC : Storage CLC : CloudCC : ClusterWalrusControllerController Controller内部ネットワーク 管理・ストレージ用 ネットワークVM VM VM VMVMEBSボリュームEBSボリュームVMImageNC : Node…NC : NodeControllerController 管理・ストレージ用ネットワーク Copyright © 2010 NTT DATA CORPORATION 38 40. 05 Eucalyptusの論理構成(参考)Eucalyptusの論理コンポーネント構成(階層構成イメージ)Walrusクラウドで1つ CLC(S3サーバ)クラスタで1つ SC SCCCCC(EBSサーバ) (EBSサーバ) …NCNCNC NCクラスタでn個…VM VM VM VM VM VMVM VM …VM VM VM VM VM VMVM VM クラスタ #1クラスタ #2Copyright © 2010 NTT DATA CORPORATION39 41. 05 Eucalyptusの論理構成(参考)Eucalyptusの論理コンポーネント構成 論理コンポーネント 論理コンポーネント 略称 役割実装単位備考 Cloud Controller CLC クラウド全体の制eucalyptus-cloud クラウドで1つ御 プロセス Walrus WalrusS3サーバ(イメージ 同上 クラウドで1つデータ等の保持) StorageSCEBSサーバ同上クラスタで1つ Controller Cluster Controller CCNAT、VLAN制御、 CCプロセスクラスタで1つDHCP Node ControllerNCVMの実行 NCプロセスクラスタごとにN台(注)他のソフトもだいたい似たような論理構成になっていることが多いです。Copyright © 2010 NTT DATA CORPORATION40 42. TIPS : 試験に出るOSSクラウド「ごった煮」 ←今年はこれだ!NASA Nebula クラウドと、OpenNebula はまったくの別物NASA Nebulaクラウドは、NASAエイムズ研究所のクラウドOpenNebulaはEU系の学術プロジェクト名前がかぶっているだけJOSUG (Japan OpenStack Users Group)は「ジョス・ユージー」と読んであげてください。☺OpenStackの 2nd リリースの Bexar は「ベア /ˈbɛər/ 」と読みますEucalyptus 2.0 と Eucalyptus Enterprise Edition 2.0 基本的に別物です。評価された方は情報提供お願いします!Copyright © 2010 NTT DATA CORPORATION41 43. References: IaaS基盤オープンソースOpenStack http://www.openstack.org/Eucalyptushttp://www.eucalyptus.com/OpenNebulahttp://www.opennebula.org/Nimbushttp://www.nimbusproject.org/Wakame-vdchttp://wakame.axsh.jp/vdc.htmlKaresansuihttp://karesansui.sourceforge.jp/CloudStackhttp://cloud.com/community商用Morph http://www.mor.ph/ja/Enomaly http://www.enomaly.com/Nimbula http://www.nimbula.com/Copyright © 2010 NTT DATA CORPORATION 42 44. References: IaaS基盤その他NASA Nebulaクラウド http://nebula.nasa.gov/NII edubaseクラウド http://grace-center.jp/prj_educloud.html国立情報学研究所(NII)プレスリリースよりNASA Nebula とNII edubaseクラウドが連携 http://www.nii.ac.jp/index.php?action=pages_view_main&page_id=1106WIDEクラウドhttp://www.wide.ad.jp/project/wg/wide-cloud-j.htmlCopyright © 2010 NTT DATA CORPORATION43 45. References: 関連コンポーネントストレージ系SheepDoghttp://www.osrg.net/sheepdog/Ceph/RADOShttp://ceph.newdream.net/Vastsky http://sourceforge.net/projects/vastsky/ etc.NW系Vyattahttp://www.vyatta.com/http://www.vyatta-users.jp/Open vSwitchhttp://openvswitch.org/CloudSwitch http://www.cloudswitch.com/etc.Copyright © 2010 NTT DATA CORPORATION44 46. References: そのほかPaaS系Heroku http://heroku.com/Ruby on RailsベースのPaaS (「Heroku最強伝説」 by @nabehiro_ さん)FluxFlex http://www.fluxflex.com/第4回JAWS-UG勉強会LTAppScale http://appscale.cs.ucsb.edu/OSSなGAEクローン etc.国プロ系の取り組み総務省 H21年度情報通信に関わる研究開発「セキュアクラウドネットワーキングの研究開発」 http://www.idg.co.jp/expo/cns/ (クラウドネットワーキングシンポジウム)Copyright © 2010 NTT DATA CORPORATION 45 47. References: そのほかユーザ会OpenStack http://openstack.org/Eucalyptushttp://eucalyptus-users.jp/JAWSUGhttp://jaws-ug.jp/JAZUG http://jazug.jp/Copyright © 2010 NTT DATA CORPORATION 46 48. 0x バックアップスライドCopyright © 2010 NTT DATA CORPORATION 49. OpenStackのコミュニティ動向OpenStackそもそも OpenStack とは・・・ようするに Yet Another Eucalyptus のようなものNASAが開発したIaaS 基盤の Nova(EC2相当) + RackSpace社のNova(EC2相当)相当CloudFiles 実装の Swift (S3相当)+α (S3相当相当)実装言語は、基本 Python実装言語はポリシー • Open な開発プロセス☺ • NO Enterprise EditionURLhttp ://www.openstack.org/http://launchpad.net/openstack/ 50. 02 ねらい有力ソフト1Eucalyptus Eucalytpus1.6.2は、なぜ注目に値するのか?Eucalyputs はどのような構造で実現されているのか?2OpenStack(ネットワーク視点を中心に)Eucalyptus 1.6.2 を活用する上で、なお注意が必要な事項3CloudStack とは何か?4そのほか 今後、期待される改善とは何か?Copyright © 2010 NTT DATA CORPORATION 49 51. 図版図版Place holderCopyright © 2010 NTT DATA CORPORATION 50 52. 参考:Sheepdog特徴IaaSのような、仮想化を前提としたクラスタ環境向けのストレージ基盤VMに接続するディスクのイメージを配置することに特化して最適化実現方式クラスタを構成するノードのローカルディスクを利用VMのディスクイメージを固定長のチャンクに分割DHTでクラスタ内に分散、デフォルト3重のコピーを分散して保持発想としては Hadoop HDFS(等)によく似ているVMインタフェース部(クライアント)は、qemu block device のドライバとして実装クラスタ管理、クラスタ内通信にはCorosyncを使用開発元日本電信電話株式会社 サイバースペース研究所 (@横須賀)2010年7月、Sheepdogのクライアント部分が、qemu のメインラインにマージされました (^o^)vCopyright © 2010 NTT DATA CORPORATION 51 53. 0x めも2006/8 エリック・シュミット “Cloud Computing”2006/8 Amazon EC2 Betaサービス開始2006/x RightScale社創業2008/4 Google App Engineプレビューリリース公開2008/10 Windows Azure発表2009/4 Google App Engine有料版サービス開始2008/5 Eucalyptus 1.0 リリース2009/3 AppScale 1.0 リリース2010/2 Eucalyptus 1.6.2 リリース2010/1 Windows Azure 正式サービス開始2010/8 Eucalyptus 2.0 リリース2010/7/19 OpenStack発表2010/10/21 OpenStack 1st リリース(Austin Release)VMware vCloud (vExpress)(Vmware, EMC, Cisco)Oracle の発表Nifty Cloud API正式リリース ‘10/XCP2008年4月:GAEプレビューリリース版を公開2009年2月:GAE有料版のサービスを開始2009年4月:Javaアプリケーションに対応Copyright © 2010 NTT DATA CORPORATION 54. 04 RDMAの応用例(1):NFS/RDMANFSの問題点の一ついくら高橋@VA Linux さんが、Zerocopy NFS 化してくれたとは言え、POSIX セマンティクスを守るためには copy-in/copy-out が必要 • メモリコピー!物理メモリを全部 Registerしている!read() -> NFSサーバがクライアントへ RDMA Writewrite() -> NFSクライアントがサーバから RDMA ReadCopyright © 2010 NTT DATA CORPORATION53