Sun Cluster 3.1 Data Service for Network File System (NFS) ガイド

Sun Cluster HA for NFS 障害モニター

Sun Cluster HA for NFS の障害モニターには、次の 2 つの機能があります。

障害モニターの起動

最初に、NFS リソースの MONITOR_START メソッドは、NFS システム障害モニターを起動します。この起動メソッドは、最初に NFS システム障害モニターの nfs_daemons_probe が、プロセスモニターデーモンの rpc.pmfd の下ですでに実行されているかどうかを調べます。 NFS システム障害モニターが動作していない場合、この起動メソッドはプロセスモニターの制御下で nfs_daemons_probe プロセスを起動します。その後、同様に、プロセスモニターの制御下でリソース障害モニター (nfs_probe) を起動します。

障害モニターの停止

最初に、NFS リソースの MONITOR_STOP メソッドは、リソース障害モニターを停止します。その後、ほかの NFS リソース障害モニターがローカルノード上で実行されていない場合、NFS システム障害モニターも停止します。

NFS システム障害モニタープロセス

NFS システム障害モニターは、ローカルノード上で、rpcbind statdlockdnfsd、および mountd を検証します。検証は、プロセスの存在と、ヌル rpc 呼び出しに対する応答を調べることで行います。このモニターは、次の NFS 拡張プロパティを使用します。

Rpcbind_nullrpc_timeout Lockd_nullrpc_timeout
Nfsd_nullrpc_timeout Rpcbind_nullrpc_reboot
Mountd_nullrpc_timeout Nfsd_nullrpc_restart

Statd_nullrpc_timeout

Mountd_nullrpc_restart

拡張プロパティの検討や設定については、Sun Cluster HA for NFS 拡張プロパティの構成を参照してください。

各システム障害モニターの検証サイクルでは、次の作業が順に行われます。

  1. Cheap_probe_interval の間、休止します。

  2. rpcbind を検証します。

    プロセスが不意に終了したが、デーモンのウォームリスタートが実行中の場合、rpcbind は引き続きほかのデーモンを検証します。

    プロセスが不意に終了した場合、障害モニターはそのノードを再起動します。

    デーモンに対するヌル rpc 呼び出しが不意に終了し、 Rpcbind_nullrpc_reboot=TrueFailover_mode=HARD の場合、障害モニターはノードを再起動します。

  3. 最初に statd を検証し、次に lockd を検証します。

    statd または lockd が不意に終了した場合、システム障害モニターは両デーモンの再起動を試みます。

    これらのデーモンに対するヌル rpc 呼び出しが不意に終了した場合、障害モニターは syslog にメッセージを記録しますが、statdlockd を再起動しません。

  4. mountd を検証します。

    mountd が不意に終了した場合、障害モニターはデーモンの再起動を試みます。

    デーモンに対するヌル rpc 呼び出しが不意に終了し、 Mountd_nullrpc_restart= True の場合、クラスタファイルシステムが利用可能であれば、障害モニターは mountd の再起動を試みます。

  5. nfsd を検証します。

    nfsd が不意に終了した場合、障害モニターはデーモンの再起動を試みます。

    デーモンに対するヌル rpc 呼び出しが不意に終了し、Nfsd_nullrpc_restart=TRUE の場合、クラスタファイルシステムが利用可能であれば、障害モニターは nfsd の再起動を試みます。

rpcbind を除き、上記 NFS デーモンのうちいずれかが検証サイクル中の再起動に失敗した場合、NFS システム障害モニターは、次のサイクルの再開を再度試みます。すべての NFS デーモンが再起動され、状態が正常の場合には、リソースの状態は再び ONLINE に設定されます。モニターは、最後の Retry_interval での NFS デーモンの予期せぬ終了を追跡します。デーモンの予期せぬ終了の合計数が、 Retry_count に到達した場合、システム障害モニターは scha_control ギブオーバー (中止) を発行します。ギブオーバー呼び出しに失敗した場合、モニターは失敗した NFS デーモンの再起動を試みます。

各検証サイクルの最後で、すべてのデーモンが正常であれば、モニターは失敗の履歴を消去します。

NFS リソース障害モニタープロセス

リソース障害モニター検証を開始する前に、すべての共有パスが dfstab ファイルから読み取られ、メモリーに格納されます。各検証サイクルでは、パスに対して stat() を実行することで、各繰り返しですべての共有パスが検証されます。

各リソース障害モニターの障害検証では、次の作業が順に行われます。

  1. Thorough_probe_interval の間、休止します。

  2. 最後の読み取り以降に dfstab が変更されている場合は、メモリーをリフレッシュします。

    dfstab ファイルの読み取り中にエラーが発生した場合、リソースの状態は FAULTED に設定され、モニターは、現在の検証サイクル内のチェックの残りをとばします。

  3. パスに stat() を実行することで、すべての共有パスを各繰り返し検証します。

    問題のあるパスが見つかると、リソースの状態は FAULTED に設定されます。

  4. NFS デーモン (nfsdmountdlockdstatd) および rpcbind の存在を検証します。

  5. これらのデーモンのいずれかが停止している場合、リソースの状態は FAULTED に設定されます。

すべての共有パスが正しく、かつ NFS デーモンが存在する場合、検証サイクルの最後で、リソースの状態が ONLINE に設定されます。