Sun Cluster の概要 (Solaris OS 版)

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

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

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

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

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

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

ロードバランシングポリシー

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

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

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

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

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

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