フェイルオーバーの仕組み

HCL Domino® サーバークラスタで、あるサーバーから別のサーバーに要求をリダイレクトする機能を、フェイルオーバーと呼びます。ユーザーがアクセスしようとするサーバーのデータベースが使用できないか混雑している場合、ユーザーは Domino® によってクラスタ内の別のサーバーにあるデータベースのレプリカにリダイレクトされます。

各クラスタサーバーのクラスタマネージャは、各クラスタサーバーに調査を送信して各サーバーの可用性を判断します。クラスタマネージャは、各サーバーで使用できるレプリカを絶えず調べています。ユーザーがアクセスしようとするデータベースが使用できない場合、そのユーザーの要求は、クラスタ内の別のサーバーにあるデータベースのレプリカにリダイレクトされます。別のサーバーにあるレプリカに接続されても、フェイルオーバーされていることはユーザーには分かりません。

たとえば、クラスタが 3 台のサーバーで構成され、サーバー 1 が現在使用できないと仮定します。サーバー 2 とサーバー 3 のクラスタマネージャは、サーバー 1 が使用できないことを認識しています。

フェイルオーバーは次のように発生します。

  1. HCL Notes® ユーザーがサーバー 1 上のデータベースを開こうとします。
  2. Notes® は、サーバー 1 が応答しないことを把握します。
  3. サーバーからの応答がないというメッセージをユーザーに表示する代わりに、Notes® は自身のクラスタキャッシュを参照してサーバー 1 がクラスタのメンバーかどうかを確認し、メンバーであればそのクラスタのほかのサーバー名を検索します(Notes® クライアントがクラスタ内のサーバーに初めてアクセスしたときに、そのクラスタ内のすべてのサーバーの名前がクライアントのクラスタキャッシュに追加されます。このキャッシュは 15 分ごとに更新されます)。
  4. Notes® は、クラスタキャッシュで次にリストされているサーバーのクラスタマネージャにアクセスします。
  5. クラスタマネージャはクラスタデータベースディレクトリーを参照し、クラスタの中で目的のデータベースのレプリカを持つサーバーを検索します。
  6. クラスタマネージャは自身のサーバークラスタキャッシュを参照し、レプリカを持つ各サーバーの可用性を確認します。(サーバークラスタキャッシュには、クラスタにあるすべてのサーバーの情報が格納されています。サーバークラスタは、他のクラスタサーバーに調査を送信したときにこの情報を取得します)。
  7. クラスタマネージャは、クラスタ内で目的のデータベースのレプリカを持つサーバーのリストを作成します。次にサーバーの可用性が高い順番でこのリストをソートし、Notes® に送信します。
  8. Notes® はこのリストの先頭にあるサーバー、つまり使用できる可能性が最も高いサーバーにあるレプリカを開きます。そのサーバーが利用できなくなっている場合、Notes® はリストで次の順位にあるサーバーでレプリカを開きます。この例で、使用できる可能性が最も高いのはサーバー 2 です。

Notes® クライアントがシャットダウンするとき、クラスタキャッシュの内容が cluster.ncf というファイルに保存されます。クライアントは起動するたびに、cluster.ncf 内の情報をクラスタキャッシュに設定します。