クラスタとは、単一のシステムとして連係して動作する 2 つ以上のシステムまたはノードのことで、アプリケーションやシステムリソース、データをユーザーに提供する連続的な可用性を備えたシステムです。 クラスタの各ノードは、それぞれが十分に機能するスタンドアロンシステムです。 しかし、クラスタ環境では、すべてのノードがインターコネクトによって接続され、単一のエンティティとして動作しますので、可用性と性能が向上します。
HA を備えたクラスタは、通常、単一のサーバーシステムなら停止するような障害が発生しても、データやアプリケーションに対してほとんど連続的なアクセスを提供するように稼動し続けることができます。 ハードウェアやソフトウェア、ネットワークに単一障害が発生しても、それによってクラスタが停止することはありません。 これに対して、フォルトトレラントのハードウェアシステムは、データとアプリケーションに対する一定したアクセスを可能にしますが、特殊なハードウェアが必要なため、コストが高くなります。 フォルトトレラントシステムには通常、ソフトウェア障害に対する備えはありません。
個々の Sun Cluster システムは密接に関わり合ったノードの集合であり、すべてのネットワークサービスやアプリケーションが一元的に管理されます。 Sun Cluster システムは、次のハードウェアとソフトウェアの組み合わせを通して HA を実現します。
冗長化されたディスクシステム。 ストレージを提供するこれらのディスクシステムは一般にミラー化されるため、ディスクやサブシステムに障害が発生しても、操作が中断されることはありません。 さらに、ディスクシステムへの接続は冗長化されているため、サーバーやコントローラ、ケーブルに障害が発生しても、データにアクセスできなくなることはありません。 ディスクに直結されていないノードからリソースへのアクセスは、ノード間を結ぶ高速インターコネクトを通して行われます。 さらに、クラスタのすべてのノードがパブリックネットワークに接続されているため、複数のネットワークに散在するクライアントからクラスタにアクセスできます。
電源装置や冷却システムなど、冗長化されたホットスワップ可能コンポーネント。これらのコンポーネントは冗長化されているため、ハードウェアに障害が発生しても、システムは操作を続けることができ、可用性が向上します。 ハードウェアコンポーネントがホットスワップ可能であれば、そのコンポーネントを動作中のシステムから取り外したり、システムに追加することができます。そのためにシステムを停止する必要はありません。
Sun Cluster ソフトウェアフレームワーク。このフレームワークはノードの障害を素早く検知し、それと同一環境で動作する別のノードにアプリケーションやサービスを移行します。 すべてのアプリケーションが同時に使用不能になることはありません。 停止したノードと関係のないアプリケーションは、この復旧処理の間も全面的に使用可能です。 さらに、障害が発生したノードのアプリケーションは、復旧されると同時に使用可能になります。 復旧したアプリケーションは、ほかのすべてのアプリケーションが完全に復旧するまで待つ必要はありません。
システムで単一ソフトウェアまたはハードウェアの障害が発生してもあるアプリケーションが稼働し続けられる場合、そのアプリケーションには高い可用性があります。 ただし、アプリケーション自体のバグやデータは破損に起因する障害の場合は除きます。 HA のアプリケーションには次が適用されます。
リソースを使用するアプリケーションから、復旧は透過的に行われます。
リソースのアクセスは、ノードに障害が発生しても完全に保持されます。
アプリケーションのホストノードが別のノードに移行されたことをアプリケーションが検知することはありません。
単一ノードの障害は、このノードに接続されているファイルやデバイス、ディスクボリュームを使用する障害を受けないほかのノード上のプログラムへ、完全に透過的に行なわれます。
フェイルオーバーサービスやスケーラブルサービス、パラレルアプリケーションを使用すると、アプリケーションの高い可用性が実現し、クラスタで動作するアプリケーションの性能が向上します。
フェイルオーバーサービスでは、冗長性を通して HA を提供します。 障害が発生した場合、ユーザーが介入することなく、アプリケーションの設定に従って、稼動しているアプリケーションを同じノードで再起動するか、クラスタの別のノードに移動することができます。
スケーラブルサービスでは、性能を高めるために、クラスタの複数のノードでアプリケーションを同時に実行します。 スケーラブルな構成では、クラスタ内の各ノードが、データを提供して、クライアント要求を処理することができます。
PDB (パラレルデータベース) を使用すれば、データベースサーバーの複数のインスタンスを使って次のことができます。
クラスタに参加する。
同じデータベースに対する別々のクエリーを同時に処理する。
大規模なクエリーの場合、クエリーを並列に処理する。
フェイルオーバーサービスやスケーラブルサービス、パラレルアプリケーションについては、データサービスの型を参照してください。
クライアントは、パブリックネットワークを介してクラスタにデータ要求を行います。 各クラスタノードは、1 つまたは複数のパブリックネットワークアダプタを介して少なくとも 1 つのパブリックネットワークに接続されています。
IPMP では、サーバーの複数のネットワークポートを同じサブネットに接続できます。 IPMP ソフトウェアはネットワークアダプタ障害からの復旧をサポートします。そのために、まず、ネットワークアダプタの障害や修復を検知し、 次に、アダプタと代替アダプタとの間でネットワークアドレスを同時に切り替えます。 複数のネットワークアダプタが機能している場合、IPMP は、送信パケットをアダプタ間に分配することによってデータスループットの向上を図ります。
多重ホストストレージではディスクが複数のノードに接続されるため、ディスクの高い可用性が実現します。 この場合、データには複数のパスを通してアクセスできるため、1 つのパスに障害が発生しても、別のノードがその代わりをします。
多重ホストディスクの使用によって、次のクラスタ処理が可能になります。
1 つのノードに障害が発生しても動作を続ける。
アプリケーションデータやアプリケーションバイナリ、構成ファイルを一元化する。
ノードの障害からユーザーを保護する。 クライアント要求があるノードを介してデータにアクセスしていて失敗した場合、これらの要求は、同じディスクへの直接接続を持つ別のノードを使用するようにスイッチオーバーされます。
ディスクを「マスター」する稼動系を通して広域にアクセスするか、ローカルパスを通して直接かつ並列にアクセスする。
ボリュームマネージャを使用すると、大量のディスクやそこに格納されているデータを管理することができます。 ボリュームマネージャは、次のような機能を使ってストレージの容量やデータの可用性を高めます。
ディスクドライブのストライピングやコンカチネーション
ディスクのミラー化
ディスクドライブのホットスペア
ディスク障害への対応とディスクの交換
Sun Cluster システムは、次のボリュームマネージャをサポートします。
Solaris Volume Manager
VERITAS Volume Manager
Sun StorEdge Traffic Manager ソフトウェアは、Solaris Operating System 8 からそのコア入出力フレームワークに完全に組み込まれています。 Sun StorEdge Traffic Manager ソフトウェアを使用すると、Solaris オペレーティング環境の単一インスタンス内で複数の入出力コントローラインタフェースを通してアクセスされるデバイスの表現や管理が効果的になります。 Sun StorEdge Traffic Manager アーキテクチャーには、次の機能が備わっています。
入出力コントローラの障害による入出力の中断を防止する。
入出力コントローラの障害時に代替のコントローラに自動的に切り替える。
複数の入出力チャネルに負荷をロードバランスさせることによって、入出力の性能を高める。
Sun Cluster システムでは、ハードウェア (RAID) Redundant Array of Independent Disks やホストベースのソフトウェア RAID が使用できます。 ハードウェア RAID では、ストレージアレイまたはストレージシステムのハードウェアの冗長性を使って、個々のハードウェア障害がデータの可用性に影響がないようにします。 別々のストレージアレイ間でデータがミラー化されている場合には、ホストベースの RAID を使って、個別のハードウェア障害 (ある1つのストレージアレイが完全にオフライン) がデータの可用性に影響がないようにします。 ハードウェア RAID とホストベースのソフトウェア RAID を同時に使用することもできますが、ある程度の高いデータ可用性を維持するために、1 つの RAID ソリューションだけを使用することもできます。
クラスタシステム本来の特性の 1 つにリソースの共有があります。そのため、クラスタには、ファイルを一貫性のある方法で共有できるファイルシステムが欠かせません。 Sun Cluster ファイルシステムでは、遠隔またはローカルの UNIX 標準 API を使って、ユーザーやアプリケーションからクラスタのどのノードにあるファイルにでもアクセスできます。 アプリケーションが、あるノードから別のノードに移動されても、そのアプリケーションは変更なしで同じファイルにアクセスできます。 さらに、既存のアプリケーションでクラスタファイルシステムを使用する場合、アプリケーションを変更する必要はありません。