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

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

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

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

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

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

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