Sun Cluster Data Service for Network File System (NFS) ガイド (Solaris OS 版)

Sun Cluster HA for NFS 障害モニターの調整

Sun Cluster HA for NFS 障害モニターは、リソースタイプが SUNW.nfs であるリソースに含まれます。

障害モニターの動作についての概要は、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「Sun Cluster データサービス用に障害モニターを調整する」を参照してください。

障害モニターの起動

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

障害モニターの停止

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

Sun Cluster HA for NFS 障害モニターの検証中の動作

この節では、以下の障害監視プロセスの動作について説明します。

NFS システム障害監視プロセス

NFS システム障害モニターの検証機能は、ローカルノード上の NFS デーモン (nfsdmountdstatdlockd) と RPC ポートマッパーサービスデーモン (rpcbind) を監視します。この検証機能は、プロセスの存在と、NULL rpc 呼び出しに対するその応答を調べます。このモニターは、次の NFS 拡張プロパティーを使用します。

「Sun Cluster HA for NFS 拡張プロパティーの設定」を参照してください。

各 NFS システム障害モニターの検証サイクルでは、次の作業が順に行われます。システムプロパティー Cheap_probe_interval は、検証の間隔を指定します。

  1. 障害モニターが rpcbind を検証します。

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

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

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

  2. 障害モニターは、まず statd を検証し、続いて lockd を検証します。

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

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

  3. 障害モニターは、mountd を検証します。

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

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

  4. 障害モニターは、nfsd を検証します。

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

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

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

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

NFS リソース障害監視プロセス

NFS リソース障害監視は、各 NFS リソースに固有の障害モニターです。各リソースの障害モニターは、リソースによってエクスポートされるファイルシステムを、各共有パスの状態を調べることで監視します。

NFS リソース障害モニター検証を開始する前に、すべての共有パスが dfstab ファイルから読み取られ、メモリーに格納されます。各検証サイクルにおいて、検証機能は次の作業を実行します。

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

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

  2. 障害モニターは、パスに対して stat() を実行することで、すべての共有パスを繰り返し検証します。

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

  3. 検証機能は、NFS デーモン (nfsdmountdlockdstatd) および rpcbind の存在を確認します。

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

  5. 共有パスがすべて有効で、NFS デーモンが存在する場合、リソースの状態は ONLINE にリセットされます。

ファイル共有の監視

Sun Cluster HA for NFS 障害モニター検証は、次のファイルを監視することによってファイル共有の成否を監視します。

これらのファイルのどれかに変化があったことを検出した場合、検証機能は dfstab.resource 内のパスを再び共有します。