mount.nfs: 古いファイルハンドルエラー - マウントできません。

mount.nfs: 古いファイルハンドルエラー - マウントできません。

NFS 共有をマウントしようとするたびに、次のメッセージが表示されます。

>> mount -t nfs gitlab-replica-storage.blah.com:/export/registry-gitlab-prod-data-vol /mnt/test
mount.nfs: Stale file handle

問題は、次のように削除できないことです。

>> umount -f -l /mnt/test
umount: /mnt/test: not mounted

マウントポイントを使用するプロセスがあるかどうかを確認しようとしましたが、そうではありませんでした。

この問題を解決するための他の選択肢はありますか?

説明すると:

  • 他のコンピュータにインストールできます。
  • 影響を受けたシステムの他のマウントポイントにはインストールできません。

ベストアンサー1

サーバーにそのクライアントの古いエクスポートエントリがある場合、Amount -t nfsは失敗します。Stale file handle

例のシナリオ:クライアントが最初にnfsボリュームをマウント解除せずにサーバーを再起動すると、これが発生する可能性があります。サーバーが返され、クライアントがアンマウントされてnfsボリュームをマウントしようとすると、サーバーは次のように応答できます。

mount.nfs: Stale file handle

/proc/fs/nfs/exportsこれはまたはを見ると確認できます/proc/fs/nfsd/exports。クライアントエントリがある場合は、古いエントリかもしれません。

サーバーからエクスポートを明示的にキャンセルし、関連エクスポートを再エクスポートすると、この問題を解決できます。たとえば、すべてのエクスポートに対してこれを行うには、次のようにします。

# exportfs -ua
# cat /proc/fs/nfs/exports
# exportfs -a

その後、クライアントはmount -t nfs ...成功する必要があります。

マウントの作成ESTALEやその他のシステムコール(たとえば、open/readdir/unlink/chdir...)は、ESTALE古いエクスポートとファイルハンドルを返します。 NFSは古いファイルハンドルが発生しやすい(たとえば、クライアントにはファイルハンドルがありますが、ファイルはサーバーから削除されます)。

おすすめ記事