スケーラブルデータサービスは、複数のノードまたはゾーンのアクティブインスタンスに対して効果があります。
スケーラブルサービスは、2 つのリソースグループを使用します。
「スケーラブルリソースグループ」には、アプリケーションリソースが含まれます。
フェイルオーバーリソースグループには、スケーラブルサービスが依存するネットワークリソース (「共有アドレス」) が含まれます。共有アドレスは、ネットワークアドレスです。このネットワークアドレスは、クラスタ内のノードまたはゾーンのすべてのスケーラブルサービスによってバインドできます。この共有アドレスにより、これらのスケーラブルサービスをノードまたはゾーンに拡張できます。クラスタには複数の共有アドレスを設定することができ、1 つのサービスは、複数の共有アドレスにバインドすることができます。
スケーラブルリソースグループは、同時に複数のノードまたはゾーンでオンラインにできます。その結果、サービスの複数のインスタンスを一度に実行できます。ただし、共有アドレスを使用してノード間のサービス負荷のバランスを取るスケーラブルなリソースグループは、1 つの物理ノード当たり 1 つのゾーンでのみオンラインにできます。スケーラブルなリソースグループはすべて負荷分散を使用します。スケーラブルサービスのホストとなるすべてのノードまたはゾーンは、サービスをホストするための同じ共有アドレスを使用します。共有アドレスのホストとなるフェイルオーバーリソースグループは、一度に 1 つのノードまたはゾーンでしかオンラインにできません。
サービス要求は、単一ネットワークインタフェース (広域インタフェース) を通じてクラスタに入ります。これらの要求は、事前に定義されたいくつかのアルゴリズムの 1 つに基づいてノードまたはゾーンに分配されます。これらのアルゴリズムは「負荷分散ポリシー」によって設定されます。クラスタは、負荷分散ポリシーを使用し、いくつかのノードまたはサービス間でサービス負荷分散をとることができます。ほかの共有アドレスをホストしている異なるノードまたはゾーン上には、複数の広域インタフェースが存在する可能性があります。
スケーラブルサービスの場合、アプリケーションインスタンスはいくつかのノードまたはゾーンで同時に実行されます。広域インタフェースのホストとなるノードまたはゾーンに障害が発生すると、広域インタフェースは別のノードまたはゾーンで処理を続行します。動作していたアプリケーションインスタンスが停止した場合、そのインスタンスは同じノードまたはゾーン上で再起動しようとします。
アプリケーションインスタンスを同じノードまたはゾーンで再起動できず、別の未使用のノードまたはゾーンがサービスを実行するように構成されている場合、サービスはその未使用ノードまたはゾーンで処理を続行します。そうしないと、サービスは残りのノードまたはゾーン上で動作し続け、サービスのスループットが低下することがあります。
各アプリケーションインスタンスの TCP 状態は、広域インタフェースノードではなく、インスタンスを持つノードで維持されます。したがって、広域インタフェースノードに障害が発生しても接続には影響しません。
図 3–7 に、フェイルオーバーリソースグループとスケーラブルリソースグループの例と、スケーラブルサービスにとってそれらの間にどのような依存関係があるのかを示します。この例は、3 つのリソースグループを示しています。フェイルオーバーリソースグループには、可用性の高い DNS のアプリケーションリソースと、可用性の高い DNS および可用性の高い Apache Web Server (SPARC ベースのクラスタに限って使用可能) の両方から使用されるネットワークリソースが含まれます。スケーラブルリソースグループには、Apache Web Server のアプリケーションインスタンスだけが含まれます。リソースグループの依存関係は、スケーラブルリソースグループとフェイルオーバーリソースグループの間に存在します (実線)。また、Apache アプリケーションリソースはすべて、共有アドレスであるネットワークリソース schost-2 に依存します (破線)。