Sun Cluster の概要 (Solaris OS 版)

第 3 章 Sun Cluster のアーキテクチャー

Sun Cluster アーキテクチャーでは、一連のシステムが単一の大規模システムとして配備され、管理され、認識されます。

この章で説明する内容は次のとおりです。

Sun Cluster のハードウェア環境

クラスタは、次のハードウェアコンポーネントから構成されます。

図 3–1に、ハードウェアコンポーネント相互間の連携のしくみを示します。

図 3–1 Sun Cluster ハードウェアコンポーネント

図 : パブリック/プライベートネットワーク、インターコネクトハードウェア、ローカル/多重ホストディスク、コンソール、クライアントからなる 2 ノードクラスタ

Sun Cluster のソフトウェア環境

ノードがクラスタメンバーとして動作するためには、ノードに次のソフトウェアがインストールされていなければなりません。

図 3–2に、相互に機能して Sun Cluster ソフトウェア環境を構成するソフトウェアコンポーネントの概要を示します。

図 3–2 Sun Cluster ソフトウェアアーキテクチャー

図 : RGM、CMM、CCR、ボリュームマネージャー、クラスタファイルシステムなどの Sun Cluster ソフトウェアコンポーネント

クラスタメンバーシップモニター

データが破壊から保護されるように保証するには、すべてのノードが、クラスタメンバーシップに対して一定の同意に達していなければなりません。必要であれば、CMM は、障害に応じてクラスタサービスのクラスタ再構成を調整します。

CMM は、クラスタのトランスポート層から、他のノードへの接続に関する情報を受け取ります。CMM は、クラスタインターコネクトを使用して、再構成中に状態情報を交換します。

CMM は、クラスタメンバーシップの変更を検出すると、それに合わせてクラスタを構成します。この構成処理では、クラスタリソースが、クラスタの新しいメンバーシップに基づいて再配布されることがあります。

CMM は完全にカーネル内で動作します。

クラスタ構成レポジトリ (CCR)

CCR は、CMM に依存して、定足数 (quorum) が確立された場合にのみクラスタが実行されるように保証します。CCR は、クラスタ全体のデータの一貫性を確認し、必要に応じて回復を実行し、データへの更新を容易にします。

クラスタファイルシステム

クラスタファイルシステムは、次のコンポーネント間のプロクシです。

クラスタファイルシステムでは、グローバルデバイス (ディスク、テープ、CD-ROM) が使用されます。グローバルデバイスには、クラスタのどのノードからでも同じファイル名 (たとえば、/dev/global/) を使ってアクセスできます。そのノードは、アクセスするストレージデバイスに物理的に接続されている必要はありません。ユーザーは、グローバルデバイスを通常のデバイスと同じように使用できます。つまり、newfsmkfs を使ってグローバルデバイスにファイルシステムを作成することができます。

クラスタファイルシステムには、次の機能があります。

スケーラブルデータサービス

クラスタネットワーキングの主な目的は、データサービスにスケーラビリティを提 供することにあります。スケーラビリティーとは、サービスに提供される負荷が増えたときに、新しいノードがクラスタに追加されて新しいサーバーインスタンスが実行されるために、データサービスがこの増加した負荷に対して一定の応答時間を維持できるということを示します。スケーラブルデータサービスの例としては、Web サービスがあります。通常、スケーラブルデータサービスはいくつかのインスタンスからなり、それぞれがクラスタの異なるノードで実行されます。これらのインスタンスは、遠隔クライアントに対して単一のサービスとして動作し、そのサービスの機能を提供します。別々のノードで動作するいくつかの httpd デーモンからなるスケーラブル Web サービスでは、任意のデーモンでクラスタ要求を処理できます。要求に対応するデーモンは、負荷均衡ポリシーによって決められます。クライアントへの応答は、その要求にサービスを提供する特定のデーモンからではなく、サービスからのもののようにみえるため、単一サービスの外観が維持されます。

次の図は、スケーラブルサービスの構造を示したものです。

図 3–3 スケーラブルデータサービスの構造

図 : 複数のノードで動作するデータサービス要求

グローバルインタフェースのホストではないノード (プロキシノード) には、そのループバックインタフェースでホストされる共有アドレスがあります。グローバルインタフェースに入ってくるパケットは、構成可能な負荷均衡ポリシーに基づいてほかのクラスタノードに分配されます。次に、構成できる負荷均衡ポリシーについて説明します。

負荷均衡ポリシー

負荷均衡は、スケーラブルサービスのパフォーマンスを応答時間とスループットの両方の点で向上させます。

スケーラブルデータサービスには、puresticky の 2 つのクラスがあります。pure サービスとは、どのインスタンスでもクライアント要求に応答できるサービスをいいます。sticky サービスでは、ノードへの要求の負荷をクラスタが均衡させます。これらの要求は、別のインスタンスには変更されません。

pure サービスは、ウェイト設定した (weighted) 負荷均衡ポリシーを使用します。この負荷均衡ポリシーのもとでは、クライアント要求は、デフォルトで、クラスタ内のサーバーインスタンスに一律に分配されます。たとえば、各ノードのウェイトが 1 であるような 3 ノードクラスタでは、各ノードが、任意のクライアントからの要求をそのサービスのために 3 分の 1 ずつ処理します。ウェイトの変更は、clresource(1cl) コマンドインタフェースか Sun Cluster Manager GUI を使っていつでもできます。

sticky サービスには、ordinary stickywildcard sticky があります。sticky サービスを使用すると、内部状態メモリーを共有でき (アプリケーションセッション状態)、複数の TCP 接続でアプリケーションレベルの同時セッションが可能です。

ordinary sticky サービスを使用すると、クライアントは、複数の同時 TCP 接続で状態を共有できます。このクライアントを、単一ポートで待機するサーバーインスタンスに対して 「sticky」であるといいます。クライアントは、インスタンスが起動していてアクセス可能であり、負荷均衡ポリシーがサービスのオンライン時に変更されていなければ、すべての要求が同じサーバーのインスタンスに送られることを保証されます。

wildcard sticky サービスは、動的に割り当てられたポート番号を使用しますが、クライアント要求が同じノードに送りかえされると想定します。クライアントは、同じ IP アドレスに対して、複数のポート間で sticky wildcard であるといいます。

多重ホストディスク記憶装置

Sun Cluster ソフトウェアは、複数のノードに同時に接続できる多重ホストディスクストレージを使用することによって、ディスクの高い可用性を実現します。これらのディスクは、ボリューム管理ソフトウェアの使用を通して、クラスタノードからマスターされる共有ストレージに編成されます。そして、障害が発生したときに別のノードに移動されるように構成されます。Sun Cluster システムで多重ホストディスクを使用することには、さまざまな利点があります。たとえば、次はその例です。

クラスタインターコネクトコンポーネント

少なくとも2 つの冗長な物理的に独立したネットワーク、またはパスを使用して、すべてのノードをクラスタインターコネクトによって接続し、単一障害を回避する必要があります。冗長性を保つためには 2 つのインターコネクトが必要ですが、ボトルネックを解消したり、冗長性や拡張性を強化するために、最大 6 つのインターコネクトを使ってトラフィックを分散させることができます。Sun Cluster インターコネクトでは、Fast Ethernet、Gigabit-Ethernet、InfiniBand、または Scalable Coherent Interface (SCI, IEEE 1596-1992) の使用を通して、高性能のクラスタ内通信がサポートされます。

クラスタ環境のノード間通信には、高速、低遅延のインターコネクトとプロトコルが欠かせません。Sun Cluster システムの SCI インターコネクトは、一般的なネットワークインタフェースカード (NIC) よりも高い性能を発揮します。

RSM Reliable Datagram Transport (RSMRDT) ドライバは、RSM API 上に構築されるドライバと、RSMRDT-API インタフェースをエクスポートするライブラリから構成されます。このドライバは、Oracle Real Application Clusters の性能を向上させます。このドライバはまた、負荷均衡機能と高可用性 (HA) 機能をドライバ内部で直接提供することにより、両機能を強化すると共に、クライアントからの透過な利用を可能にしています。

クラスタインターコネクトは、以下のハードウェアコンポーネントで構成されます。

図 3–4 に、3 つのコンポーネントがどのように接続されているかを示します。

図 3–4 クラスタインターコネクト

図 : トランスポートアダプタ、2 本のケーブル、トランスポートスイッチで接続される 2 つのノード

IP ネットワークマルチパスグループ

パブリックネットワークアダプタは、IPMP グループ (マルチパスグループ) として編成されます。各マルチパスグループには、1 つまたは複数のパブリックネットワークアダプタがあります。マルチパスグループの各アダプタはアクティブにすることができます。あるいは、スタンバイインタフェースを構成し、フェイルオーバーが起こるまでそれらを非アクティブにしておくことができます。

マルチパスグループは、論理ホスト名と共有アドレスリソースの基盤です。つまり、ノード上の同じマルチパスグループは、任意の数の論理ホスト名または共有アドレスリソースをホストできます。マルチパスを作成すれば、クラスタノードのパブリックネットワーク接続を監視できます。

論理ホスト名や共有アドレスリソースについては、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』を参照してください。

パブリックネットワークインタフェース

クライアントは、パブリックネットワークインタフェースを介してクラスタに接続します。各ネットワークアダプタカードは、カードに複数のハードウェアインタフェースがあるかどうかによって、1 つまたは複数のパブリックネットワークに接続できます。複数のパブリックネットワークインタフェースカードをもつノードを設定することによって、複数のカードをアクティブにし、それぞれを相互のフェイルオーバーバックアップとすることができます。アダプタの 1 つに障害が発生すると、Sun Cluster の Solaris IPMP ソフトウェアが呼び出され、障害のあるインタフェースが同じグループの別のアダプタにフェイルオーバーされます。