このページの本文へ

メインフレームの後継者

2001年04月28日 07時18分更新

文● 渡邉 利和(toshi-w@tt.rim.or.jp)

  • この記事をはてなブックマークに追加
  • 本文印刷

Dynamic System Domainの意味は、PCの延長上にサーバを位置づける発想からは理解しにくい。というのも、PCは本質的にはシングルユーザーシステムであり、その機能強化はフォアグラウンドのタスクの高速化に向けられているからだ。一方、Sun Fireが実現した機能強化は、並列性の向上に主眼を置いていると言ってよい。

PCの場合、性能が向上したかどうかはある特定のアプリケーションの実行速度に注目して考える例が多い。個人ユーザーにとってもっとも身近で分かりやすいのは、3Dグラフィックスを多用した最新のゲームソフトウェアだろう。精細なテクスチャをマッピングした複雑なグラフィックスを高速に動かし、そのフレームレートを測定するようなベンチマークが盛んに行なわれているようだが、こうした処理を高速化するには、CPUやグラフィックスアクセラレータの処理能力の向上が近道だ。もちろんソフトウェアの作り方に依存するのだが、こうした処理を高速化するには、下手にマルチプロセッサ化を目指すよりは単体CPUの性能向上を待つ方が効果が大きい。たとえば、Pentium III-500MHzのPCでのゲームのパフォーマンスに不満を感じている場合、Pentium III-500MHz×2CPU構成のマシンにリプレースするよりも、Pentium III-1GHzのマシンを選ぶほうがよいはずだ。

一方、サーバの場合はそもそも処理すべきタスクが複数並列にあり、しかもその数が大量になることが多い。こうした処理を高速化する際にも、もちろん単体CPUの性能向上は効果がある。しかし、むしろCPU数を増やすアプローチのほうが簡単であることが多い。1つの処理を分割して並列処理し、全体の性能を向上させるより、最初から別々の処理を平行実行するほうが簡単だし、並列実行した分だけ素直に性能が向上する。

とはいえ、それでもSMPでのCPUを増やせば事足りるのであって、システムを内部で複数のドメインに分割する意味はないと思われるかもしれない。実際、ドメインを分割しても性能は向上しないと思われる。とはいえ、逆に元の処理が十分並列性の高いものであれば、ドメイン分割による性能劣化もまた起こらないだろう。イメージしやすい例としてWebサーバのような処理を考えてみよう。インターネットからバラバラに届くリクエストは、相互に関係を持たない独立した処理なので、分散処理がとても有効になる。この場合は、このWebサーバの前段にディスパッチャのような負荷分散機構があれば、ドメイン分割は性能劣化要因にはならない。むしろ、ドメインごとに独立のネットワークインターフェイスを利用することで性能向上があるかもしれない。しかしながら、この部分での性能向上が目的だというわけではない。

ドメイン分割の意味は、信頼性の向上や、トラブルの局所化といった部分にある。サーバが1台しかない環境でも、そのサーバを内部的に分割できれば、万一の障害の際にもその被害はドメインの範囲に限定されることが期待できる。1台のサーバを2つのドメインに分割していた場合、あるCPUボードが故障しても、その影響は故障したCPUボードが属していたドメインにとどまり、もう1つのドメインにはいっさい影響しないというわけだ。これにより、クラスタリングと同様の効果が得られる。つまり、予備サーバを持つ余裕がなくても同レベルの信頼性が実現できるようになるわけだ。

新しいSunのクラスタソフトウェア、Sun Cluster 3.0では、前回紹介したとおりドメインレベルのクラスタリングをサポートしているため、1台のサーバ内でクラスタリングを実現できる。このとき、複数サーバでのクラスタリングよりも高速な接続が実現できるというのも面白いところだ。つまり、通常の複数サーバを利用したクラスタリングの場合、サーバ間の状態確認や処理の引き継ぎなどのためにネットワーク等を利用して相互に接続しておくわけだが、ドメイン分割の場合は、この接続にはシステム内部のインターコネクトを利用できる。Sun Fireの内部インターコネクトはSun Fireplaneと呼ばれるパケットスイッチ方式のクロスバー・アーキテクチャであり、実効バンド幅が9.6GB/sという高速なものである。これを利用すれば、クラスタノード間でのデータのやりとりが処理のボトルネックになることもないはずだ。

カテゴリートップへ

アスキー・ビジネスセレクション

ASCII.jp ビジネスヘッドライン

ピックアップ