クラスタコンポーネント
クラスタマネージャ、クラスタデータベースディレクトリー、クラスタデータベースディレクトリマネージャ、クラスタ管理プロセス、クラスタレプリケータなどのコンポーネントは、クラスタリングが正しく動作するように連動して機能します。また、インターネットクラスタマネージャは、インターネットプロトコルを実行する HCL Domino® サーバーをクラスタ化します。
クラスタマネージャ
クラスタマネージャはクラスタの各サーバーで動作し、クラスタにある他のサーバーすべての状態をトラッキングします。クラスタ内で現在使用できるサーバーのリストを保持し、各サーバーのワークロードの情報を維持します。
クラスタにサーバーを追加すると、Domino® はそのサーバー上のクラスタマネージャを自動的に開始します。サーバーがクラスタを構成しているかぎり、サーバーを起動するたびにクラスタマネージャが起動します。
各クラスタマネージャは、調査と呼ばれるメッセージをクラスタにある他のサーバーと交換することによってクラスタをモニターします。これらの調査によって、クラスタマネージャは他のクラスタサーバーのワークロードや可用性を判断します。ユーザー要求を別のレプリカにリダイレクトする必要があるときは、クラスタマネージャはクラスタデータベースディレクトリーを参照して、対象データベースのレプリカがあるクラスタサーバーを探します。クラスタマネージャは、レプリカが含まれているサーバーと、それらのサーバーの可用性をクライアントに通知します。それを受けたクライアントは、レプリカが含まれているサーバーの中で使用できる可能性が最も高いサーバーに要求をリダイレクトします。
クラスタマネージャのタスクは次のとおりです。
- クラスタに属するサーバーを認識する。Domino® ディレクトリーを定期的にモニターし、サーバー文書の [クラスタ名] フィールドやクラスタメンバーシップリストに変更がないかを調べて、クラスタ内のサーバーを認識します。
- クラスタ内のサーバーの可用性とワークロードをモニターする。
- 他のクラスタマネージャにサーバーの可用性の変更を通知する。
- クライアントがクラスタサーバーの可用性に基づいてデータベース要求をリダイレクト (フェイルオーバー) できるように、使用できるレプリカとクラスタサーバーの可用性をクライアントに通知する。
- クラスタサーバーの可用性に基づき、クラスタ内のサーバーのワークロードを分散させる。
- フェイルオーバーイベントとワークロード均衡イベントをサーバーの Notes Log にログ記録する。
クラスタマネージャは起動すると、Domino® ディレクトリーを調べ、そのクラスタに属するサーバーを認識します。この情報は、サーバーの Cluster Name Cache にあるメモリに保持されます。クラスタマネージャはこの情報を使用して、他のクラスタマネージャと調査を交換します。また、Cluster Name Cache を使用して、これらの調査で取得したサーバーの可用性情報も保存します。この情報は、クラスタマネージャが前述の機能 (フェイルオーバーやワークロードの均衡化など) を実行する際に役立ちます。
Cluster Name Cache の情報を参照するには、サーバーコンソールで「show cluster」と入力します。
クラスタデータベースディレクトリ
クラスタデータベースディレクトリ (cldbdir.nsf) のレプリカは、クラスタの各サーバーにあります。クラスタデータベースディレクトリーには、クラスタにある各データベースとレプリカに関する文書があります。この文書には、データベース名、サーバー名、パス、レプリカ ID などの複製情報やアクセス情報があります。クラスタコンポーネントはこの情報を使用してフェイルオーバーパスの特定、データベースへのアクセス制御、複製するイベントとそれらのイベントの複製先の特定などの機能を実行します。
クラスタデータベースディレクトリマネージャ
各サーバーのクラスタデータベースディレクトリマネージャにより、クラスタデータベースディレクトリーが作成され、その内容は最新のデータベース情報で常に更新されています。初めてサーバーをクラスタに追加すると、クラスタデータベースディレクトリマネージャによりそのサーバーにクラスタデータベースディレクトリーが作成されます。クラスタ化されたサーバーにデータベースを追加すると、クラスタデータベースディレクトリマネージャによってそのデータベースに関する情報を含む文書が作成され、クラスタデータベースディレクトリーに格納されます。クラスタ化されたサーバーからデータベースを削除すると、クラスタデータベースディレクトリマネージャにより、この文書がクラスタデータベースディレクトリーから削除されます。クラスタデータベースディレクトリマネージャは、[サービスを無効](ユーザーアクセスで使用不可) または [削除の保留] というマークが付いたデータベースなど、クラスタの各データベースの状況もトラッキングします。
クラスタデータベースディレクトリーに変更があると、クラスタレプリケータにより、クラスタにある各サーバーのクラスタデータベースディレクトリーにその変更がただちに複製されます。これにより、クラスタの各構成メンバーには、そのクラスタにあるデータベースの最新情報が保持されるようになります。
クラスタ管理プロセス
クラスタ管理プロセスはクラスタに関連する多くのハウスキーピングタスクを処理します。たとえば、サーバーをクラスタに追加すると、クラスタ管理プロセスによってクラスタデータベースディレクトリマネージャとクラスタレプリケータが起動します。システム管理プロセスがまだ稼働していない場合は、クラスタ管理プロセスによって起動されます。サーバーをクラスタから削除すると、クラスタ管理プロセスによってクラスタデータベースディレクトリマネージャとクラスタレプリケータが停止します。そのサーバーのクラスタデータベースディレクトリも削除され、他のサーバーのクラスタデータベースディレクトリーにあるサーバーのレコードもクリーンアップされます。
クラスタレプリケータ
クラスタレプリケータによって、クラスタ内のレプリカ間のデータは常に同期されます。クラスタ内のデータベースに変更が加えられると、クラスタレプリケータによりクラスタにある他のレプリカにただちに変更がプッシュされます。これにより、ユーザーはデータベースにアクセスすると最新バージョンを参照できます。クラスタレプリケータによりデータベースに保存されている個人フォルダにも変更が複製されます。デフォルトでは、クラスタにあるサーバーごとに実行するクラスタレプリケータは 1 つです。ただし、クラスタで実行するアクティビティが多数ある場合は、複数のクラスタレプリケータを実行できます。
クラスタレプリケータはクラスタデータベースディレクトリーを参照し、クラスタにある他のメンバーのレプリカを持つデータベースを認識します。クラスタレプリケータはこの情報をメモリに保存し、変更を他のサーバーに複製する際に使用します。クラスタレプリケータは、クラスタデータベースディレクトリーに変更が発生していないか定期的に調べます。デフォルトでは、15 分間隔で変更の発生を調べます。クラスタデータベースディレクトリーの変更を検出したクラスタレプリケータは、メモリに格納している情報をその変更内容で更新します。この変更の例には、データベースの追加や削除、データベースにあるクラスタレプリケータの無効化があります。
クラスタレプリケータが変更をプッシュするのは、クラスタにあるサーバーのみです。標準のレプリケータタスク (REPLICA) を使用すれば、クラスタの外にあるサーバーとの間で変更の複製ができます。