コラム / Sun View 第6回
Sun Cluster 3.0
渡邉 利和(toshi-w@tt.rim.or.jp) [著]
2001年4月4日
クラスタリング形態
大規模環境では、信頼性やスケーラビリティの確保のために「クラスタリング」を利用するのが一般的だ。Sunもこのほど、クラスタリングソフトウェアの最新バージョン“Sun Cluster 3.0”をリリースした。このソフトウェアは、単なるクラスタリング用のオプションのような顔をしてはいるが、実はSolaris自体の将来の姿を変えてしまうほど野心的な構想に基づいて設計されたものである。
大規模環境では、クラスタリングを利用するのが一般的だが、一口にクラスタリングといっても用途によって性格の異なる構成がいくつかある。複数のコンピュータシステムを1群(=Cluster:クラスタ)にまとめ、仮想的に1台のコンピュータシステムであるかのように扱う、というのが共通する特徴だが、用途に応じて実現すべき機能が違ってくるのだ。最近では、大きく3種類に分類することが多いようだ。
大規模なWebサイトなどでよく利用される構成に、1Uタイプのラックマウントサーバなどの省スペースサーバを多数集積する例がある。このような構成を、最近は“loosely coupled cluster”と呼ぶ例が増えているようだ。「粗結合クラスタ」とでも訳せばよいだろうか。Webサーバの場合、特に静的なHTMLページを返すだけのサーバは「状態を保持しない」という特徴がある。つまり、要求を受け付け、要求されたURLに対応するファイル(HTMLファイルや画像ファイルなど)を送り返す、という処理で完結する。ユーザーが前にどのページを見ていたかとか、そもそもユーザーが誰であるかなどの付帯的な情報は必要としない。従って、リクエストのたびに異なるサーバが応答を返しても、送り返すファイルの内容が同一であれば問題はないことになる。ラックなどに多数集積されたWebサーバ機は、すべて同じURLで参照できるように設定され、受け付けたリクエストに応答する、ということを繰り返している。
この構成の場合は、Webサーバの前段にリクエストを各サーバに振り分ける「ディスパッチャ」と呼ばれるハードウェアを置いたり、あるいはラウンドロビンDNSなどの手法を用いて1つのURLに対して複数のサーバが応答するようにしている。確かに、アクセスするユーザーから見れば1つのWebサーバに見えるが、実際には複数のサーバ機から構成されている、という観点からはクラスタである。しかし個々のサーバに注目してみると、相互に通信する必要はなく、もちろんクラスタリング用の特殊なソフトウェアが動作している必要もない。loosely coupled、すなわち「緩やかな結合」という言葉通り、独立したコンピュータが全体として負荷を分散している、という形態である。
次に、特殊なソフトウェアを実行する際に用いられる大規模な並列コンピューティングがある。これは、HPC(High Performance Computing)と言われる分野で利用されるもので、極端に単純化してしまうと、「一昔前のスーパーコンピュータと同様の用途のコンピュータシステムを、安いハードウェアをたくさん集めて実現しましょう」という感じの考え方だ。並列コンピュータなどと呼ばれることもあり、これはこれでまたさまざまな実現方法があるし、現在も盛んに研究が行なわれている最先端分野でもあるのだが、ここではあまり詳しくは触れない。とりあえず、これは科学技術計算などの用途が主で、処理自体も並列度の高い演算処理でないと効果がないため、汎用性は低い。少なくとも、一般的なビジネスコンピューティングの分野ではあまり使われていないものだ。
最後になったが、一般的な企業システムなどで利用されているのが、高信頼性を重視したクラスタリングシステムである。これは、“tightly coupled cluster”(密結合クラスタ)と言われることもある。単純に言ってしまえば「いざという場合に備えて予備を用意しておく」という発想だ。こちらも、さまざまな構成を採ることが可能だが、現実には2台のコンピュータを一組にし、1台を予備として常時待機させておくホットスタンバイ構成が一般的だという。データのみのバックアップなら個人でもやっている人はいるだろうが、これは言うなればシステム丸ごとのバックアップである。しかも、単に同じ構成のハードウェアを予備として用意しておくだけなら特別なソフトウェアは必要ないが、ホットスタンバイ構成では予備のハードウェアも稼働状態にあり、メインのシステムの障害時にはそこで実行中だった処理を即座に引き継いで継続実行することが求められる。このために、クラスタソフトウェアが必要となるのである。Sun Cluster 3.0も、当然この機能を備えている。
渡邉 利和(toshi-w@tt.rim.or.jp) [著]
1つのシステムイメージ
クラスタシステムでは、ユーザーから見たシステムイメージは1つである。Webサーバの場合、個々のWebサーバ機にそれぞれURLが割り当てられているわけではない。ユーザーは1つのURLでアクセスすればよく、必要な負荷分散処理について意識する必要はない。tightly coupled clusterでも事情は同じで、このシステムを利用するユーザーは、予備機が控えていることを知る必要はないし、メインのハードウェアに障害が起こって処理が予備機に引き継がれた場合でも、メイン機と予備機の違いを意識することはない(厳密に言うと、処理が引き継がれるまでに短時間の中断があるのが普通だが、うまく構成されたクラスタシステムであれば、ちょっと応答に時間がかかっているな、と感じるくらいで済むはずだ)。つまり、複数のシステムを仮想的に1つのシステムとしてユーザーに提示するのがクラスタシステムの基本的な要件だといえる。
ユーザーにとっては1つのシステムだが、管理者にとってはどうかというと、これはもちろん1つのシステムに見えるわけではない。管理者の立場では、複数のシステムにどのように処理が分散されているかを把握したり、場合によってはあるマシンで実行されている処理を別のマシンに移したり、といった作業が必要となる。ただし、こうした処理はシステムの構成が複雑になり、マシンの台数が増えるととても困難なものとなっていく。言うなれば、tightly coupled clusterの高信頼性は、信頼性と同時に管理者の負荷も高めているようなものだ。
Sun Cluster 3.0は、この問題に対する根本的な解決を目指すアプローチが製品として結実した第一歩といえる。Sun Clusterが目指しているのは、複数の独立したマシンをユーザーにとっても管理者にとっても完全に1つのシステムイメージとしてみせること、つまり、複数のコンピュータを仮想的に1つのコンピュータに見せることである。従来のクラスタソフトウェアのアプローチでは、独立したコンピュータはそれぞれ独立したOSの管理下にあり、OS上で実行されるアプリケーションとして実装されたクラスタソフトウェアがOSの上の層で複数マシンをまとめ上げていた。しかし、Sun Clusterは、OS(Solaris)自体にこの統合の機能を持たせようとしている。
Sun Cluster 3.0では、ファイルシステムとネットワークインターフェイスの統合が実現している。グローバルファイルシステム/グローバルネットワークサービスという名称で呼ばれているものだ。たとえば、グローバルファイルシステムでは、複数台のマシンが完全に同一のイメージのファイルシステムを利用することができる。これだけを取り出してみると、NFSのようなネットワークファイルシステムの利用や、NAS/SANといったストレージシステムをうまく使うことで同様の環境を実現することはできるのだが、Sun Clusterが目指しているのはもっと先、プロセスやメモリの共有/統合にある。これが実現すると、「複数のコンピュータが全体で1台のコンピュータであるかのように振る舞う」という環境がごく自然な形で実現できるのだ。
こうした環境は、主として性能向上の観点から研究されていたが、現在実現されているシステムでは、やはり特殊用途向けの実装となっており、簡単に使えるものではない。アプリケーションを専用に書き直したりする必要があるシステムも多い。しかし、OS自体がこうした分散環境に対応してくれば、エンドユーザーも管理者もソフトウェアの開発者も、特別な意識を持つことなく自然にそのメリットを享受できるはずだ。
Sun Cluster 3.0の起源は、オブジェクト指向の分散オペレーティングシステムの研究プロジェクト“Spring”にあるという。つまり、元々クラスタソフトウェアという限定的な用途ではなく、新世代のOSとして研究されていたものだ。Sun Cluster 3.0では、プロセスの分散/統合までは実現されていないが、最終的な完成型では、OSであるSolaris自体が分散オペレーティングシステム化されると予想される。SMPを越える分散コンピューティング環境の実現に向けて、新しい動きが始まっているのだ。
渡邉 利和(toshi-w@tt.rim.or.jp) [著]
Sunの新ミッドレンジサーバ
Sun Microsystemsは、まず米国で新しいミッドレンジサーバ製品群を発表している。Sun Fire 3800/4800/6800といったシリーズだが、注目すべき点は、これらが従来はハイエンドのSun Enterprise 10000(Starfire)でしか実現されていなかったDynamic System Domainをサポートしたことだ。これは、1台のハードウェアの内部を独立した複数のシステムに分割できる機能、と言えばよいだろうか。たとえば8CPUのシステムを、4CPUずつに2分割し、それぞれを独立したコンピュータとして運用できる。必要なら、一方でSolaris 8、もう一方ではSolaris 7を実行する、といった構成が可能になる。
従来はSunのサーバ群の中で唯一Starfireのみが備えていた機能が、ミッドレンジサーバにまで拡大されたわけだ。こうした分割は、万一の障害の際にもその影響範囲を限定できるなど、信頼性向上に寄与するが、当然分割によって管理の手間は増えてしまう。ハードウェアの機能として分割をサポートする一方で、ソフトウェアの強化によって統合の道を提供しようとしているのがSun Clusterだと見ることも可能だ。
これまで、tightly coupled clusterの利用は主としてバックエンドのデータベースサーバなど、少数だが重要度の高いサーバに限られていたが、今後はアプリケーションサーバなどの中間層のサーバにも拡大すると予想される。フロントエンドのWebサーバなどに比べれば少数だが、データベースサーバなどよりは多数のサーバが配置される中間層で、台数を増やしてスケールを確保しつつ管理の手間を削減し、かつトラブルの際にも処理が中断されないように保護を講じる、という需要に応えるには、Sun Cluster 3.0が提示する方向性はとても有効だと思われる。現在はまだ道半ばという状況ではあるが、OSの新しい姿をSolarisが実現してくれることへの期待も込めて、今後の機能拡張を楽しみに待ちたいと思う。
渡邉利和
|