FreeBSD Daily Topics

2011年12月26日NFSv4クライアントがロックした場合の問題解決方法例

tips

How to fix the NFSv4 dead lock alike issue

FreeBSDでNFSv4サーバを運用したり、FreeBSDでNFSv4クライアントを使用している場合、何かの原因でNFSv4マウント領域が反応を示さなくなることがあります。特にクライアントにCURRENTを採用しているとか、サーバにCURRENTを採用しているといった場合に発生する可能性があります。

再起動すれば直るのですが、場合によってはNFSv4サーバにログインして処理することで復帰することもあります。まず、NFSサーバにログインしてrootで次のようにnfsdumpstate(8)コマンドを実行して接続状況を確認します。


# nfsdumpstate 
Flags         OpenOwner      Open LockOwner      Lock     Deleg  OldDeleg Clientaddr      ClientID
CB                    0         0         0         0         5         0 192.168.1.55    a989ea4e00000000613a6163303a33a72d343636a92d313164622a38a265352d303a30656136326361313933
                      0         0         0         0         0         0 0.0.0.0         d0dded4a0000000030303030303030302d30a030302d303030302aa0a030302d303031666430643a65333334
#

接続状況が確認できたら、次のようにnfsrevoke(8)コマンドでクライアントアクセスをリボークしてみます。場合によってはこれで復帰するようになります。


nfsrevoke a989ea4e00000000613a6163303a33a72d343636a92d313164622a38a265352d303a30656136326361313933

定期的に似たような状況が発生する場合、クライアント側でのコールバックデーモンnfscbd(8)を使用を停止してみてください。次のように/etc/rc.confに設定を追加しておけば良いでしょう。


nfscbd_enable="NO"

CURRENTなどを使っている場合にはロック周りの処理でアクセスが固まることがあります。安定した運用を必要とする場合には双方ともにリリース版を使用した方が良いでしょう。

おすすめ記事

記事・ニュース一覧