NFSマウントはカーネルによってマウント解除できます。

NFSマウントはカーネルによってマウント解除できます。

最近、いくつかのシステムではマウントポイントが消え始め(サーバーごとに1つのマウントポイント、ランダム間隔、ランダムシステム)、ログに何も見つかりませんでした。 5つのマウントポイントがあり、そのうちの1つがランダムに消えます。これらの消失はマウントポイントプロトコルとは関係ありません(TCPとUDPの両方のマウントが消えます)。

私は何も試していません
tcp dumpを継続的に実行します(この問題は2〜3日ごとに発生するため、以下が消えます...)

機械に関する情報
NFSブート、ブートサーバーはFreeBSD 11.0です。 (ところで、ログには何もありません。)rootfsオプションは次のとおりです。
(rw,noatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=ADDRESS,mountvers=3,mountport=677,mountproto=udp,local_lock=all,addr=ADDRESS)
OSはCentOs7で、4.11.0-1 MLカーネルを実行します。インストールオプションの例:
rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=ADDRESS,mountvers=3,mountport=4002,mountproto=udp,local_lock=none,addr=ADDRESS) (rw,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,proto=udp,timeo=11,retrans=3,sec=sys,mountaddr=ADDRESS,mountvers=3,mountport=4002,mountproto=udp,local_lock=none,addr=ADDRESS,_netdev)
NFS共有とサーバーに関する情報
合計5つのNFSサーバーがあり、ロードバランシングはDNSを介して行われ、すべて同じマウントポイント(一部の共有UDP、一部の共有TCP)をエクスポートします。 NFSサーバーを実行しているサーバーはRHEL 6.7(Santiago)、カーネルバージョンは2.6.32-573.el6、snfs-common/server/clientは4.7.3です。推測できないように、サーバーログにはこの問題に関する内容はありません。エクスポートオプションの例:
(rw,async,root_squash,no_wdelay,no_subtree_check,fsid=ID)
これまでに試したこと:
最初の仮定は、任意のNFS共有で奇妙な理由でumountまたはumount2を呼び出すプロセスがあり、sysdigを使用してunlinkat、切断、アンマウント、およびアンインストールシステムコールを追跡した後にsystemd-logindがunmount2を実行するのを見るだけですあるということでした。ユーザーセッションが削除されたがマウントポイントから削除されなかった場合。私がchiselで使用しているsysdigフィルタは以下に掲載されています:アンインストールはランダムに再
function on_init() local filename = path for i in string.gmatch(path, "[^/]+") do filename = i end print("PID\tPROC_NAME\tPROC_EXEC\tPROC_SID\tPROC_PNAME\tPROC_PPID\tPROC_EXELINE\tPROC_PCMDLINE") chisel.set_event_formatter("%proc.pid\t%proc.name\t%proc.exec\t%proc.sid\t%proc.pname\t%proc.ppid\t%proc.exeline\t%proc.pcmdline ") chisel.set_filter( "(evt.type=unlinkat and evt.arg.name=" .. path .. ") or \ (evt.type=unlink and evt.arg.path=" .. path .. ") or \ (evt.type=umount) or \ (evt.type=remove and evt.arg.path=" .. path .. ")") return true end
発生しますが、フィルタはそれを見ることができません。フィルターに欠陥があると思います。共有を使用してアンマウントするプログラムを作成しumountumount2怠惰なフラグと強制アンマウントフラグを試みた)、フィルタはそれを正しく検出するので、カーネルがマウントを解除していると信じています。
私のログには何もありません。問題が発生したときに共有される一般的な「nfs応答なし」メッセージもありません。
コンピュータにログインして再インストールすると、問題なく再インストールされます。
同じ設定で多くのクライアントを実行していますが、これは発生しません。このマシングループの唯一の共通点は、ネットワークセグメントとNFSブートサーバーです。しかし、なぜサーバーとクライアント間の通信が中断されると、何も報告されないのは理解できません。

ベストアンサー1

誰かが興味を持っているなら、これはカーネルのNFSのバグです。提出して修正する必要がありますcc89684c9a265828ce061037f1f79f4a68ccd3f7

NFS:明らかに無効なdentryのみを無効にします。

v3.18 でコミット bafc9b754f75 ("vfs: d_invalidate でより正確なテスト") 以降 ->d_revalidate() で "0" を返すと、ファイルシステムがマウントされていても dentry が無効になります。子孫。マウントされたファイルシステムがマウント解除されました。

...

おすすめ記事