NFS Server RK が提供する監視機能と起動処理、停止処理についてご説明します。
対象製品
NFS Server Recovery Kit (LifeKeeper for Linux)
※本処理概要は LifeKeeper for Linux v9.6.0 に付属するリカバリキットをもとに作成しています。
監視処理
LKCHECKINTERVAL(デフォルト120秒)の間隔で NFS リソースを監視いたします。
各処理の中のどこかで異常と判定されると、回復処理が行われます。
監視処理のタイムアウトは 15秒(固定)で、タイムアウト時は SIGALRM で通知します。
監視処理はリソースが起動 (ISP) 状態のみ実施されます。
- デーモン起動確認
NFSのサービス提供に必要なデーモンの起動を ps コマンドにより確認します。具体的には以下のプロセスが起動しているか確認します。- rpcbind
- rpc.idmapd
- gssproxy or rpc.svcgssd
- nfsd
- rpc.mountd
- 疎通確認
pingnfs を実行して疎通を確認します。/opt/LifeKeeper/lkadm/bin/pingnfs -s 127.0.0.1 -t 5 -p tcp -v 4
※5秒(固定)のタイムアウトがあります。
※v9.6.0未満では、-p オプションおよび -v オプションは指定していませんでした。RHEL8 など UDP が無効になっているサーバーでは、/etc/default/LifeKeeper に NFS_RPC_PROTOCOL=tcp を追加することで pingnfs が TCP で確認を行うようになります。 - エクスポート確認
/var/lib/nfs/etab よりエクスポートポイントがエクスポートされていることを確認します。
また、エクスポートオプションが一致しているか確認します。 - rpc_pipefs マウント確認
/var/lib/rpc_pipefs が rpc_pipefs でマウントされているか確認します。
起動処理
- デーモン起動確認
監視処理の 1. と同じ処理を行います。
デーモンが起動していない場合は、2. の処理を行います。 - デーモンの起動
1. の結果デーモンが起動していない場合、起動していないデーモンを起動させます。 - 疎通確認と再起動
監視処理の 2. と同じ処理を行います。もし疎通が確認できない場合は、以下のコマンドで nfsd を停止させ、再度デーモンを起動させます。そして、再度監視処理の 2. と同じ処理を行い疎通確認します。疎通が確認できない場合は、エラーで終了します。killall -q -9 nfsd
- エクスポート
以下のコマンドでエクスポートポイントをエクスポートします。exportfs -i -o <オプション> <ホスト名>:<エクスポートポイント>
- rpc.mountd 再起動
RESTARTMOUNTD=true の場合、rpc.mountd の再起動を行います。
停止処理
- アンエクスポート
以下のコマンドでエクスポートポイントをアンエクスポートします。exportfs -u <ホスト名>:<エクスポートポイント>
- デーモンの停止
fsid=0 のリソースの場合、以下のデーモンを停止させます。なお、v9.6.0 以降は fsid=0 のエクスポートポイントは保護できなくなりましたので、この処理は実行されません。- nfsd
- lockd
- rpc.statd
- rpc.rquotad
- gssproxy or rpc.svcgssd
- rpc.mountd
- ロック解放
lockd を停止させ、ファイルシステムをアンマウントできるようにファイルロックを解放します。
回復処理
- 状態確認
監視処理と同じ確認を行います。正常であればそのまま処理を終了します。 - 起動処理
1. の結果、異常であれば起動処理の1. ~ 4. と同じ処理を行います。
起動処理に失敗する場合は、フェイルオーバーします。
パラメーター
NFSリソースでは下記の設定パラメーターがございます。
設定ファイル
/etc/default/LifeKeeper
RESTARTMOUNTD
NFS リソースの起動時に rpc.mountd の再起動(停止&起動)を行うかどうか。
デフォルト:有効(true)
※設定は次回の起動時より有効となります。
NFS_RPC_PROTOCOL
このパラメーターは v9.6.0 未満で有効です。
pingnfs の実行時のプロトコルを TCP か UDP のどちらかに指定することが出来ます。
デフォルト:udp
※設定はリソース再起動をせず即時に反映され、次回の監視動作より有効となります。
以下ドキュメントにも記載がございます。
■NFSパラメータ一覧
https://docs.us.sios.com/spslinux/9.6.0/ja/topic/nfs-parameters-list
改訂履歴
[公開日:2016年06月14日]
[改訂日:2019年05月21日] 設定可能なパラメータを追加しました
[改訂日:2020年05月20日] v9.5.0で追加された fsid のチェックについて追記しました。
[改訂日:2021年11月04日] v9.6.0リリースに伴い、更新しました。