フェイルオーバーの仕組み
HCLDomino® サーバークラスタで、あるサーバーから別のサーバーに要求をリダイレクトする機能を、フェイルオーバーと呼びます。ユーザーがアクセスしようとするサーバーのデータベースが使用できないか混雑している場合、ユーザーは Domino によってクラスタ内の別のサーバーにあるデータベースのレプリカにリダイレクトされます。
各クラスタサーバーのクラスタマネージャは、各クラスタサーバーに調査を送信して各サーバーの可用性を判断します。クラスタマネージャは、各サーバーで使用できるレプリカを絶えず調べています。ユーザーがアクセスしようとするデータベースが使用できない場合、そのユーザーの要求は、クラスタ内の別のサーバーにあるデータベースのレプリカにリダイレクトされます。別のサーバーにあるレプリカに接続されても、フェイルオーバーされていることはユーザーには分かりません。
たとえば、クラスタが 3 台のサーバーで構成され、サーバー 1 が現在使用できないと仮定します。サーバー 2 とサーバー 3 のクラスタマネージャは、サーバー 1 が使用できないことを認識しています。
フェイルオーバーは次のように発生します。
- HCLNotes® ユーザーがサーバー 1 上のデータベースを開こうとします。
- IBM Notes は、サーバー 1 が応答しないことを把握します。
- サーバーからの応答がないというメッセージをユーザーに表示する代わりに、IBM Notes は自身のクラスタキャッシュを参照してサーバー 1 がクラスタのメンバーかどうかを確認し、メンバーであればそのクラスタのほかのサーバー名を検索します(Notes クライアントがクラスタ内のサーバーに初めてアクセスしたときに、そのクラスタ内のすべてのサーバーの名前がクライアントのクラスタキャッシュに追加されます。このキャッシュは 15 分ごとに更新されます)。
- IBM Notes は、クラスタキャッシュで次にリストされているサーバーのクラスタマネージャにアクセスします。
- クラスタマネージャはクラスタデータベースディレクトリを参照し、クラスタの中で目的のデータベースのレプリカを持つサーバーを検索します。
- クラスタマネージャは自身のサーバークラスタキャッシュを参照し、レプリカを持つ各サーバーの可用性を確認します。(サーバークラスタキャッシュには、クラスタにあるすべてのサーバーの情報が格納されています。サーバークラスタは、他のクラスタサーバーに調査を送信したときにこの情報を取得します)。
- クラスタマネージャは、クラスタ内で目的のデータベースのレプリカを持つサーバーのリストを作成します。次にサーバーの可用性が高い順番でこのリストをソートし、Notes に送信します。
- IBM Notes はこのリストの先頭にあるサーバー、つまり使用できる可能性が最も高いサーバーにあるレプリカを開きます。そのサーバーが利用できなくなっている場合、Notes はリストで次の順位にあるサーバーでレプリカを開きます。この例で、使用できる可能性が最も高いのはサーバー 2 です。
Notes クライアントがシャットダウンするとき、クラスタキャッシュの内容が cluster.nsf というファイルに保存されます。クライアントは起動するたびに、cluster.nsf 内の情報をクラスタキャッシュに設定します。