システム障害モニターは、プロセスの存在および NULL rpc 呼び出しへの応答を調べることで、rpcbind、statd、lockd、nfsd、mountd を検証します。このモニターは、次の 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 拡張プロパティの構成を参照してください。
デーモンの停止が必要な場合、呼び出し側のメソッドはプロセス ID (PID) に停止シグナルを送り、PID の消滅を確認するために待機します。呼び出し側メソッドが待機する時間は、メソッドタイムアウトの一瞬だけです。その期間内にプロセスが停止しない場合、障害モニターはそのプロセスにエラーが発生したと見なします。
プロセスが停止にさらに時間を要する場合は、プロセスが停止シグナルを送った時に動作していたメソッドのタイムアウト値を増やしてください。
デーモンの停止後、障害モニターがデーモンを再起動し、デーモンが RPC に登録されるまで待機します。新しい RPC ハンドルの作成が可能な場合は、障害モニターの内部においてデーモンの状態が正常と報告されます。RPC ハンドルの作成が不可能な場合は、デーモンの状態が障害モニターに unknown として返され、エラーメッセージは出力されません。
各システム障害モニターの検証サイクルでは、次の作業が順に行われます。
Cheap_probe_interval の間、休止します。
rpcbind を検証します。
プロセスが失敗し、Failover_mode = HARD の場合、障害モニターはノードをリブートします。
デーモンに対するヌルの rpc 呼び出しが失敗し、Rpcbind_nullrpc_reboot=False でかつ Failover_mode=HARD の場合、障害モニターはノードをリブートします。
statd と lockd を検証します。
statd または lockd が失敗する場合、障害モニターは両方のデーモンの再起動を試みます。障害モニターがこれらのデーモンを再起動できない場合、すべての NFS リソースがほかのノードにフェイルオーバーします。
これらのデーモンに対するヌルの rpc 呼び出しが失敗した場合、障害モニターは syslog にメッセージを記録しますが、statd、lockd とも再起動しません。
mountd を検証します。
mountd が失敗すると、障害モニターはデーモンの再起動を試みます。
kstat カウンタ (nfs_server:calls) が増加しない場合、次の動作が発生します。
nfsd を検証します。
nfsd が失敗する場合、障害モニターはデーモンの再起動を試みます。
kstat カウンタ (nfs_server:calls) が増加しない場合、次の動作が発生します。
NFS デーモンのどれかが再起動に失敗すると、すべてのオンライン NFS リソースの状態が FAULTED に設定されます。すべての NFS デーモンが再起動され、状態が正常の場合には、リソースの状態は再び ONLINE に設定されます。