開いているファイルをNFSマウントされたボリュームでリンク解除できますが、それらのファイルをまだ持っているアプリケーションは、読み取り/書き込みを開いていますか?


9

NFSでは、ローカルファイルシステムでできるように、開いているファイルのリンクを解除/削除できますか?

私が尋ねる理由は、複数のサーバー上で実行され、バックエンドとしてNFSにアクセスできるものを開発しているためです。開いているファイルのリンクを解除できる場合は、多少単純になります。

これは、開いているファイルのリンクを解除できるLinux(unix?)ファイルシステムの優れた機能です。単にディレクトリエントリを削除します。ファイルは、開いている限り、開いたままにするプロセスで引き続き使用できます。閉じられると、iノードは破棄されます。

同じ機能がNFSマウントで開かれたファイルにも当てはまりますか?


一言で言えば、投票が下がるのを防ぐために言い換えると、NFSを使用してファイルを削除できるかどうかを尋ねているように見えます。持ってる。:-)
Red Tux

回答:


9

短い答えはイエスですが、警告があります。

NFSv3はステートレスであるため、NFSクライアントドライバーはこれを「愚かな名前変更」と呼ばれるもので実現します。削除されたファイルは.nfsXXXXXXXXXXのような名前に変更されます。これは通常は機能しますが、ローカルファイルシステムと比較していくつかの注意点があります。たとえば、クライアントがクラッシュした場合、それらの.nfsXXXXファイルは削除されないため、手動でクリーンアップする必要があります。

NFSv4.1の時点では、このプロトコルには愚かな名前変更なしで最後のクローズの削除を実装するために必要な機能があると思いますが、クライアント/サーバーがこれを実装しているかどうかはわかりません。


NFSはステートレスであるため、リンクを解除する同じクライアントでファイルが開かれている場合にのみ機能することに注意してください。
Quentin Casasnovas 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.