サイト内の現在位置を表示しています。

WebOTX Application Server - 負荷分散機能

AS Enterprise Editionが備える機能WebOTX Clusterが備える機能
WebOTXでは、スケーラビリティを向上するためにアプリケーションサーバ、Webサーバを複数台並列に配置した負荷分散運用を行うことができます。負荷分散運用を行うことにより、大量のトラフィックに耐え得る安定したシステム運用が可能になります。また 負荷分散運用を行うことによりサーバ障害時にも縮退運転を行いシステムに対する影響を最小限にすることができます。

Webサーバの負荷分散

BIG-IPのような負荷分散装置を利用して、Webサーバの負荷分散を行うことが可能です。

現在では、負荷分散装置も多種多様なものが出回っており、これらを利用することで複数台のWebサーバを負荷状況によって切り分けることができます。セッションを維持して同じクライアントからのリクエストは、常に同じWebサーバで処理することも可能です。また、障害が発生した場合も、動作可能な Webサーバを自動的に選択します。負荷分散の方法は、単純なラウンドロビン方式や、重み付けを付加したものなど、装置によりさまざまな方法が提供されています。

アプリケーションサーバの負荷分散

アプリケーションサーバの負荷分散については、WebOTX Cluster(クラスタ環境)で行います。次の負荷分散方式を提供しています。

ラウンドロビン負荷分散

名前サーバにおいて各サーバのオブジェクトを管理し、クライアントからオブジェクト取得要求があった時にラウンドロビンに各サーバのオブジェクトを払い出す方式です。これによりクライアントからのオペレーション要求は名前サーバから払い出されたオブジェクトを登録したマシン上で実行されます。

またあるマシンで障害が発生した場合に、そのマシンへのアクセスを制限するために、名前サーバの持つラウンドロビンリストから該当マシンのオブジェクトを削除する機構(WebOTX WatchServer(注)と呼びます)を提供しています。これにより予期せぬ障害が発生したときでも安全にシステムを縮退することができます。

(注)V9まで提供していた機能です。
要するに障害が発生しない限りは、あるクライアントがアクセスするサーバアプリケーションは1つに決定されるということです。

ラウンドロビン負荷分散方式
ラウンドロビン負荷分散方式

(注)図中のWatchServerはV9まで提供していた機能です。V10以降には含まれません。

オペレーション呼び出し毎の負荷分散

オブジェクトリファレンスに複数のサーバ情報を埋め込む機能です。クライアント側では、このリファレンスを利用してオペレーション呼び出しを実施する際に、埋め込まれているサーバのリスト中から処理を依頼するサーバを選び出します。これによりオペレーション単位で接続先サーバの振り分けが実施されます。仮にリスト中のあるサーバが異常終了した場合でも、オブジェクトリファレンスの再取得を行うことなく、オペレーション要求を行うことができます。このとき異常終了したサーバを除いた振り分けが行われます。

重み付けラウンドロビン負荷分散

ラウンドロビン負荷分散において、各マシン単位で重みを設定することができます。名前サーバはこの重みの割合に応じてラウンドロビンにオブジェクトの払い出しを行います。これにより、負荷分散を行っている各マシンで処理能力に差がある場合、処理能力の高いマシンに重点的に分散させることが可能です。

重み付けラウンドロビン負荷分散方式
重み付けラウンドロビン負荷分散方式

(注)図中のWatchServerはV9まで提供していた機能です。V10以降には含まれません。

動的負荷分散

ラウンドロビン負荷分散(重み付けも含む)では、クライアントが接続するサーバについてはオブジェクト取得時に決定されます。クライアントで取得したオブジェクトを使い続ける限り同一のサーバへのアクセスとなります。アプリケーションの動作によっては一時的に負荷が一方のマシンに集中してしまうことも起こり得ます。

このような問題に対応するため、WebOTXではオペレーション単位の動的負荷分散をサポートしています。これによりクライアント側でオペレーションを呼び出す毎にラウンドロビンに各サーバに振り分けを行います。

仮にその接続先での呼び出しに失敗した場合、その接続先をラウンドロビンリストから外し、他の接続先に切り替えを行うことにより、オペレーションの実行を保証します。ラウンドロビンリストから外れた接続先に関しては定期的に監視を行うことにより、復旧後速やかにラウンドロビンリストに追加されます。

動的負荷分散方式
動的負荷分散方式