システムの信頼性を向上するアプローチ
ここ数年、サーバシステムの低コスト化が顕著になってきており、IAサーバにいたっては手軽に導入できる数万円のものから、ストレージを含めて数千 万円にもなる堅牢なものまで多種多様に存在するようになった。また64bitやデュアルコアなど、CPUの急速な進化もあり、それほどコストを掛けずに、 ひと昔前では考えられなかったパフォーマンスを発揮するようになっている。
アプリケーションについても、エンタープライズ用途に十分に使える商用ソフトも多くなり、またオープンソースソフトウェア(OSS)はIAサーバでの利用がかなり進んできており、イニシャルコストの削減に寄与しているのはご存知の通りである。
そのためIAサーバは、部門サーバやフロントエンドサーバから基幹システムに至るまであらゆる用途で利用されてきている。またIAサーバに限らず、 システムに重要な業務をさせるためには、導入する際に如何にシステムの持続性を確保し、たゆまない稼働を続けさせるかを考えなければならないのは当然のこ とである。
最近はIAサーバであっても様々なパーツを二重化し、障害が発生しても自動的に予備に切り替えることが可能である。ただし、ハードウェアパーツの二 重化を行うには最初からそのようなデザインのサーバを選択する必要があり、なおかつ自動的に切り替えを行うためには、かなりコストの高いサーバがどうして も必要になるので、IAサーバのメリットであるイニシャルコストの削減という意味がなくなってしまう。
また、すでに稼働しているサーバに対しては、パーツの二重化というアプローチはデザイン上どうしても無理がある。特に導入時期が古いサーバほどデザインが古かったり、パーツが手に入らないなどの理由によって対応が難しくなる。
IAサーバに搭載可能なハードウェアの冗長化の技術が高まったとはいえ、物である以上は障害の発生をゼロにすることはできない。
例えば内蔵ハードディスクをRAID5のアレイ構成にしている状態で、ディスク障害があった場合に、スペアディスクを用意している間に別のハードディスクにも障害が発生する可能性がないとはいえないからである。
また上記のようにハードウェアの信頼性を高めたとしても、オペレーティングシステムやその上で稼働するアプリケーションがトラブルに見舞われること はよくあるため、ハードウェアとは別の角度から信頼性の向上をはかる必要がある。そこで比較的多く取り上げられるソリューションがクラスタシステムであ る。
クラスタシステムとは
クラスタシステムといっても様々な仕組みで稼働するものがある。
クラスタシステムとは一般的には、いくつものサーバをあたかも1つのサーバのように稼働させるシステムを指す。
用途としては大きく2つあり、1つは複数のサーバを並列的に配置し、負荷分散を行うことでパフォーマンスの向上をはかるシステムである。 HPC(High Performance Computing)、パラレルコンピューティング、グリッドコンピューティングなどがこの部類に入る。
もう1つは、本連載の主旨であるスタンバイサーバを用意してシステムの信頼性を向上するためのハイアベイラビリティクラスタ(HAクラスタ)である。
「ハイアベイラビリティ」はよく「高可用性」という日本語に当てはめられるが、この「高可用性」という言葉は一般的には馴染みの低いものだと筆者は常々思っている。やわらかく表現すれば「使うことのできる時間がより長い」システムであろうか。
この「高可用性」をデータとして評価するには、システム故障が生じるまでの平均時間(MTBF:Mean Time Between Failure)と、システムに故障が生じてから復旧までの平均所要時間(MTTR:Mean Time To Repair)で行う。つまりこの2つの数値がよいほど「高可用性」といえる。
そして、この数値をよくするためのアプローチがHAクラスタである。HAクラスタを構築する際には、ごく一般的なIAサーバ・ストレージ・ネット ワーク・専用のHAクラスタソフトウェアの組み合わせで行うことが多い。HAクラスタは「一般的な」ハードウェアで構築することが可能なため、比較的導入 しやすくしかも信頼性を大幅に向上させるためにはよいアプローチである。