Enterprise Watch
バックナンバー

伊勢雅英のInfiniBand探検隊 - 【後編】データセンターでの活躍が期待されるInfiniBand


 中編でも取り上げたように、当面はHPCC(High Performance Computing Cluster)での利用が中心となるInfiniBandだが、将来的にはデータセンター内での活用も期待されている。後編では、InfiniBandによるデータセンターのファブリック統合やデータベースクラスタでの活用例について解説していく。


データセンター内での活躍が期待されるInfiniBand

 インターネット販売やオンラインバンキングといった多数のユーザーを対象とするインターネットサービスでは、システム全体の処理性能や信頼性、アプリケーション開発の柔軟性を高めるために、複数のサーバーを階層的に配置し、それぞれのサーバーに役割分担をさせる多階層モデルが採用されている。そして、それぞれの階層をティア(tier)と呼ぶ。特に、Web経由でサービスを提供するWebソリューション向けのシステムでは、ユーザーのクライアントPCに加え、データセンター内のWebサーバー、アプリケーションサーバー、データベースサーバーから構成された三階層モデルが多く採用されている。

 ここで、データセンター内のサーバー間を接続したり、外部ストレージを接続するには、さまざまなファブリックを構成しなければならない。各ティア間ではEthernetによって接続され、さらにはクラスタを構成するサーバー間を接続するEthernet、ストレージを接続するFibre Channelという3つのファブリックが必要になる。システムの規模が大きくなるにつれて、ケーブル類がスパゲティ状に絡んでいき、システム全体の複雑さが増す。この結果、トラブルが発生しやすくなったり、パフォーマンスの最適化に時間がかかるなど、管理コストの増大を招く。

 そこで、これらのファブリックをInfiniBandで統一する方法が有効になる。つまり、IPネットワーク、クラスタリング用ネットワーク、SANの信号経路をすべて1本のInfiniBandでまかなってしまおうという構想だ。InfiniBandは、物理的なInfiniBandリンクの中に論理的な通信リンクを設ける仮想レーン(VL)をサポートしている。1本の物理リンクには、最大15本の仮想レーン(VL0~14)と1本の管理用仮想レーン(VL15)を設けられる。従って、各種サーバー、ストレージ間でInfiniBandファブリックを構成すれば、1本のInfiniBandリンクであっても、個々の仮想レーンを通じて、IPネットワーク、クラスタリング、ストレージ用のデータを独立して取り扱える。仮想レーンはサービスレベル(SL)に基づくQoS(Quality of Service)もサポートしているため、信号帯域幅の配分を簡単に行え、パフォーマンスの最適化も容易になる。

 ただし、ストレージに関しては、InfiniBandで直結されるかどうかは微妙だ。Fibre ChannelでSANを構成することはもはや常識となっており、InfiniBandがストレージ業界でよほど認知されない限り、InfiniBandベースのネイティブストレージはごく少数にとどまるだろう。現時点でInfiniBandのネイティブサポートを表明しているストレージは、Network ApplianceのFAS900シリーズくらいしかない。従って、IPネットワークとクラスタリング用ネットワークはInfiniBandで統一され、ストレージだけがFibre Channelで接続される形が現実的といえる。もしくは、Fibre Channel-InfiniBandブリッジを介して、Fibre ChannelストレージをInfiniBandに取り込む形となる。


複数のサーバーでクラスタを構成する場合、これらの間を接続するファブリックは、IPネットワーク用のEthernet、クラスタリング用のEthernet、ストレージ用のFibre Channelの3種類が必要になる。これらのファブリックに対して、ケーブルだけでなく、サーバー上のHBAやNIC、スイッチ、管理アプリケーションなどもそれぞれ用意しなければならない(出典:Boris Bialek - Manager DB2 Strategic Technologies, IBM Toronto Lab, IBM Canada, High Scalable Solutions with DB2 and InfiniBand)。
InfiniBandの仮想レーンを利用すれば、クラスタネットワークやストレージ接続を1つのInfiniBandファブリックで構成できる。ファブリックの構築には、InfiniBand用のHCA、ケーブル、スイッチ、管理ソフトウェアのみを用意すればよい(出典:Boris Bialek - Manager DB2 Strategic Technologies, IBM Toronto Lab, IBM Canada, High Scalable Solutions with DB2 and InfiniBand)。

EthernetとFibre Channelを用いた現状の三階層モデル。数多くのケーブルが必要になり、サーバーラックの中ではケーブル類がスパゲティ状態となってしまう(出典:JNI Corp., InfiniBand Implementations and Total Cost of Ownership)。
InfiniBandとFibre Channelを用いた将来の三階層モデル。Webサーバー、アプリケーションサーバー、データベースサーバー間の接続をInfiniBandのみでまかなえるため、ケーブルの本数が大幅に削減される。図中ではストレージがFibre Channelで接続されているが、ストレージをInfiniBandで接続し、完全にInfiniBandで統一を図ることも“理論的”には可能だ(出典:JNI Corp., InfiniBand Implementations and Total Cost of Ownership)。

大規模データベースに明光を与えるInfiniBand

 そして、このようにデータセンター内でケーブリングの統一が図られる前に、順番的にはまずデータベースサーバーのクラスタ環境からInfiniBandが導入される予定だ。

 これまで、データベースサーバーの高速化には、大規模のSMPサーバーが活躍してきた。これは、いわゆる“スケールアップ”による高性能化だ。スケールアップは、1台のサーバーで完結した形で性能アップを図れることから、データの一貫性を維持しやすいという利点がある。SANが普及するまでは複数のサーバーで単一のストレージを共有することが難しかったため、データが頻繁に書き換えられるデータベースサーバーではスケールアップを積極的に採用してきたという背景もある。

 しかし、スケールアップを実現するには莫大なコストがかかる。CPUが2基搭載されたサーバーとCPUが32基搭載されたサーバーの価格差は、CPUの個数に比例して16倍(=32÷2)にはならない。特にPCサーバーの場合、4基を超える構成では各社で標準化の進んだコモディティーパーツを使用できなくなることから、その価格はおおよそ指数関数的に増大する傾向にある。


大規模SMPサーバーと安価なラックマウントサーバーのクラスタ構成の価格差を比較したもの。安価なサーバーのクラスタ構成ならば、大型SMPサーバーに拮抗する性能を10分の1のコストで実現できるという(出典:Mellanox Technology, The InfiniBand Data Center)。
 そこで、データベースサーバーでもクラスタリングによるスケールアウトを導入するケースが増えてきている。例えば、CPUを16基搭載した大型のSMPサーバーを配置する代わりに、CPUを2基搭載した安価なSMPサーバーを8台配置してクラスタ構成をとるというアプローチだ。すでに、Oracle DatabaseやIBM DB2などの主要なデータベースソフトウェアは、こうしたクラスタ構成をサポートしている。現在、これらの製品ではサーバー間をGigabit Ethernetなどで接続しているが、より高い処理性能を求めるシステムではこれをInfiniBandで置き換える形となる。

 ある程度の規模になれば、InfiniBandクラスタによるコスト的なメリットも大きい。Mellanoxの試算によれば、77~216GFLOPSのピーク処理性能を持つCPU32基のSMPサーバーが114万ドルなのに対し、CPU2基の1Uサーバーを16台でクラスタ構成をとったシステムでは10万ドル以下になるという。ピーク性能は195GLOPS(Xeon 3GHz×2基×16台の構成)なので、大型SMPサーバーに拮抗する性能を10分の1のコストで実現できる計算だ。

 「最近、DB2のお客様もInfiniBandに関心を示し始めています。DB2クラスタとInifiniBandで検証を行っているところもありますし、プルデンシャル保険のように実際にInfiniBandベースのデータベースシステムを稼働させているところもあります。なお、弊社のWebサイト(DB2 UDB V8.1 Validated IHV Products)では、DB2と稼動検証済みのInfiniBand製品を掲載しています(日本アイ・ビー・エム ソフトウェア事業部 インフォメーション・マネジメント事業推進・事業部長の中川いち朗氏)」。


InfiniBandによってTCP/IPが持つ数々の制限を取り払う

 データセンター内のコアネットワーク(これまでEthernetで接続してきた部分)でInfiniBandを採用する理由はもうひとつある。それは、InfiniBandが持つ比類なきネットワークパフォーマンスだ。Ethernetで接続されたサーバー間もしくはティア間では、ネットワークプロトコルとしてTCPを使用しているが、TCPはデータセンターの要求についていけなくなりつつある。

 多階層モデルを採用したシステム性能を高めるには、各ティア内にあるサーバー間のデータ転送を高速化する必要がある。しかし、データの流れは起点のティアから最も深いティア間の往復となり、一般に、nティア構造の場合、データ移動のホップ数は2(n-1)で計算される。例えば、ロードバランサ、Webサーバー、アプリケーションサーバー、データベースサーバーという基本的な4ティア構成の場合、往復には6ホップを要する。従って、Ethernet+TCPのようなレイテンシの大きなインターフェイスでは、ティアの多階層化が進むにつれてレイテンシの大きさがシステム全体に波及してくる。

 このように、TCPは、制御されたデータセンターに対して低レイテンシのファブリックを提供するのが難しい。TCPは、世界中に広がるヘテロジニアスなネットワークを接続できる“高い柔軟性”を優先し、半導体チップ上に実装するハードウェアスタックではなく、ソフトウェア上で実装するソフトウェアスタックとして設計されている。つまり、パケットの整合性チェック、パケットの並べ替え、信頼性の確保、ユーザー空間とカーネル空間のデータ移動、データ細分化、OSのスレッドスケジューリングなどは、すべてホストCPUによって行われるわけだ。この結果、サーバーのCPUリソースに対する過負荷、レイテンシの増大、RASの低下といった、システムコストやパフォーマンスにおける重大なペナルティを生む。

 そこで注目されているのがInfiniBandである。TCPは、Ethernetのような信頼性の低いリンク層を通じてデータをやり取りするが、InfiniBandは、本質的に信頼性の高いリンク層を通じてデータをやり取りするところが大きな違いだ。このため、信頼性の高いトランスポートを実現する上で、InfiniBandのほうが上位層の処理が簡単なのはいうまでもない。また、InfiniBandは、ハードウェアでプロトコルを実装するように設計されており、ホストCPUへの負荷軽減、レイテンシの低減に役立っている。

 もちろんTCPでも、Ethernet NICにTOE(TCP Offload Engine)の機能を実装することで、TCPが抱えるレイテンシやCPU過負荷の問題をかなり軽減できる。実際、高パフォーマンスを目指すネットワークストレージの世界では、TOEの導入がかなり進んでいる。ただし、細かいことをいえば、TOEで高いパフォーマンスを実現するには、それなりにコストがかかる。例えば、TCPである以上は、アウトオブオーダーでのパケット伝送をサポートする必要がある。このため、高速なTOEを実現するには大容量のキャッシュメモリを搭載しなければならない。また、データの受信、蓄積、並べ替えを高速に行えるように、キャッシュメモリの帯域幅も十分に確保する必要がある。こうした理由から、TCP+TOEで無理やり対処するくらいなら、本質的に高速で低レイテンシのInfiniBandを使用したほうがいいと考えるユーザーも現れているのだ。


InfiniBandの利点を最大限に引き出すSDP(Sockets Direct Protocol)

従来モデルとSocket Directモデルの違いを示したもの。Socket Directモデルでは、複雑なトランスポート処理をInfiniBand TCAがOSカーネルで直接行える。こうした処理方式をカーネルバイパスと呼んでいる(出典:Mellanox Technology, White Paper - InfiniBand and TCP in the Data Center, page 9 figure 3)。
 では、まったく生い立ちの異なるInfiniBandを導入したら、既存のTCP/IPソフトウェアはすべて使えなくなるのか? 答えはNoだ。InfiniBandを併用しながら従来のソフトウェアモデルを使い続けられるからだ。しかし、これではあまり高いパフォーマンスが得られない。そこで、InfiniBandではSDP(Sockets Direct Protocol)に代表される新たなプロトコルの使用が推奨されている。SDPは、アプリケーションとその下にあるハードウェアを透過的に接続する基本的なソケットメカニズムを提供する。ハードウェアがInfiniBandの場合には、複雑なトランスポート処理をInfiniBand TCAがOSカーネルで直接行えるようになる。これにより、ソフトウェアからはTCP/IPに見せながらも、同時にInfiniBandの利点を享受できるわけだ。

 「Oracleとしては、InfiniBandの技術的な優位性に注目しており、OracleデータベースでInfiniBandをサポートするための開発を進めています。すでに、Oracle 9i RAC(Real Application Cluster)、10gでは、InfiniBandのパフォーマンスをさらに高めるプロトコルとしてSDPをサポートしています。将来的には、ノード間やストレージ向けのインターフェイスでもInfiniBandをネイティブサポートする予定です(日本オラクル マーケティング本部 システム製品マーケティンググループ 担当マネージャの山本哲也氏)」。


 以上、エンタープライズシステムの観点からInfiniBandの利点を解説してきたが、残念ながら現時点では普及の兆しがあまり見えてこない。昨月、LinuxでのInfiniBand利用を促進するOpenIB Allianceが結成されたが、これが一つの起爆剤になるかどうかが興味のあるところだ。筆者個人としては、技術的な優位性を数多く持つInfiniBandがもう少し元気に振る舞ってくれることを願ってやまない。



URL
  InfiniBand Trade Association(英文)
  http://www.infinibandta.com/
  IntelのInfiniBandページ(英文)
  http://developer.intel.com/technology/infiniband/

関連記事
  ・ 伊勢雅英のInfiniBand探検隊 - 【前編】InfiniBandっていったい何?(2004/07/07)
  ・ 伊勢雅英のInfiniBand探検隊 - 【中編】HPCCで高いパフォーマンスを発揮するInfiniBand(2004/07/08)


( 伊勢 雅英 )
2004/07/09 00:00

Enterprise Watch ホームページ
Copyright (c) 2004 Impress Watch Corporation, an Impress Group company. All rights reserved.