Pacemakerを利用したNFSサーバのクラスタリングで、クライアントのマウントがフェイルオーバー後に再接続するまで時間がかかる場合の設定見直しについて
前提条件
- CentOS7
- NFS4の形式でクライアントがNFSマウントしている
- Pacemakerを利用してNFSサーバがクラスタ構成となっている
発生した事象
クライアントがNFSマウントしたまま、NFSサーバがフェイルオーバーした際に
クライアント側のロック要求を90秒待つデフォルト設定があった
https://access.redhat.com/solutions/42868
対応策
「nfsserver」リソースに「--grace-time {秒}」オプションをつければよいとのこと
これで、ロック要求を待つ時間を短く出来る。
[hoge@nfs ~]$ sudo crm configure show res_NFSServer | cat
primitive res_NFSServer nfsserver \
params nfs_ip=***.***.***.*** nfsd_args="--grace-time 10"
上記指定をすると、「/etc/sysconfig/nfs」が自動的に構成されて、結果として下記の行が追記され
ロック要求待ち時間設定が効くようになります。
[hoge@nfs ~]$ sudo cat /etc/sysconfig/nfs | grep "grace-time"
RPCNFSDARGS="--grace-time 10"
最後に
通常は「/etc/sysconfig/nfs」に設定すればいいのですが、
Pacemakerを利用していると、設定ファイル自体が書き換えられるとは思ってませんでした。
NFSサーバを構築して、フェイルオーバー時に挙動がおかしいと思ったらこの設定を見直してみてください。