壊れたNFSマウントがディレクトリをロックするのを止めますか?


17

ちょっとおもしろい設定があります。複数のリモートNFSサーバーが1つのフォルダーにマウントされ、そのフォルダーがSambaに再エクスポートされます。すべての共有フォルダを1か所に保持する共有プロキシと考えてください。

私の問題は、マウントの1つがダウンしたとき(サーバーの再起動、サービスの再起動、サーバーがエクスポートしていた外部ハードドライブの削除など)に、マウントブロックを永久に読み取ろうとすることです。これはls、そのディレクトリでの実行がフリーズし、Samba経由で接続しているユーザーもフリーズすることも意味します。これにより、数百回ブロックされたプロセスがあったために、サーバーをほとんどクラッシュさせたcronジョブの1つが数回ブロックされました。私は通常ls、終了するのを待っていない(キャンセルできない)端末を立ち上げ、実行しfor i in *; do sudo umount -l -f $i; done;、動作することを望み、問題を修正し、すべてを再マウントする必要があるため、非常に面倒です。

接続が何らかの理由で(できれば再試行期間があれば)接続に失敗した場合、マウント自体をアンマウントするか、少なくともブロックしないという規定でNFS共有をマウントする方法はありますか?


投稿できます/etc/fstabか?
カールソン

回答:


19

通常、NFSをマウントするときは、次のようなフラグを設定することをお勧めします。

bg,intr,soft
   bg      If  the  first  NFS  mount  attempt times out, retry the mount in the 
           background.  After a mount operation is backgrounded, all subsequent mounts
           on the same NFS  server  will  be  backgrounded immediately, without first
           attempting the mount.  A missing mount point is treated as a timeout, to
           allow for nested NFS mounts.
   soft    If  an  NFS  file operation has a major timeout then report an I/O error
           to the calling program.  The default is to continue retrying NFS file
           operations indefinitely.
   intr    If  an  NFS  file  operation  has  a major timeout and it is hard mounted,
           then allow signals to interupt the file operation and cause it to return
           EINTR to the calling program.  The default is to not allow file operations
           to be interrupted.

さらに以下を設定できます。

timeo=5,retrans=5,actimeo=10,retry=5

NFSサーバーが再試行で待機するのではなく接続をドロップすると、NFSマウントがタイムアウトし、ディレクトリにアクセスできなくなります。

NFSマウントオプションの詳細については、このリンクをご覧ください。


Fedora 20ではbg、intr、softのみを使用しても120秒のハングが残ります。しかし、timeo = 5、retrans = 5、actimeo = 10、retry = 5を追加すると素晴らしく迅速になります。ありがとう!
グレッグシェレメタ14年

4
「カーネル2.6.25以降、intr / nointrマウントオプションは非推奨です。これらのカーネルで保留中のNFS操作を中断できるのはSIGKILLだけです。指定されている場合、このマウントオプションは無視され、古いカーネルとの後方互換性を提供します。」「このオプションは下位互換性のために提供されています。カーネル2.6.25以降では無視されます。」
デビッドC.ビショップ

1
@ DavidC.Bishopその引用はどこからですか?リンクをお願いできますか?ありがとう。
becko

2
@becko:SIGKILLの引用は、nfsのマニュアルページからのものです(「nointr」を検索してください)。私のシステムにあるような新しいバージョンは、「このオプションは後方互換性のために提供されています。カーネル2.6.25以降は無視されます」と読みました。リンキー
デビッドC.ビショップ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.