サーバーAは、以前はNFSサーバーでした。サーバーBはそのエクスポートをマウントしていました。すべてが大丈夫でした。その後、Aが死亡しました。電源を切るだけです。なくなった。消えた。
ただし、そのフォルダーはまだBにマウントされています。私は明らかにそのフォルダーにcd
することはできません。しかしながら umount /mnt/myfolder
ハングアップしてアンマウントされません。 Bを再起動せずにアンマウントする方法はありますか?
クライアントとサーバーはどちらもLinuxマシンです。
Linuxを想定:
umount -f -l /mnt/myfolder
問題をある程度修正します:
-f
アンマウントを強制します(到達できないNFSシステムの場合)。 (カーネル2.1.116以降が必要です。)
-l
遅延アンマウント。ここでファイルシステムをファイルシステム階層から切り離し、ファイルシステムがビジーでなくなったらすぐに、ファイルシステムへのすべての参照をクリーンアップします。 (カーネル2.4.11以降が必要です。)
-f
は、SolarisおよびAIXにも存在します。
ヒントの詳細 David Pashleyから提供 、
「umount -l」で問題が解決しない限り、なくなったアドレスと同じアドレスで偽のサーバーを設定できます-しかし実際には設定する必要はありません新しいサーバーか何かをアップ。ブロッキング/ハングしたマウント解除状態から抜け出す最も簡単な方法は、次のようにローカルエイリアスIPインターフェースを設定することです。
ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down
(明らかに、11.22.33.44は(現在は死んでいる)NFSサーバーの(以前の)IPアドレスです)
intr
オプションを/etc/fstab
エントリに追加すると、ハングまたはクラッシュする可能性があります。 soft
またはintr
オプションを使用しない場合、NFSファイルをホストしているサーバーがダウンすると、ファイルがマウントされているサーバー(クライアント)が起動時にハングすることがあります。 。
man 5 nfs
によると:
ソフト/ハード
NFS要求がタイムアウトした後のNFSクライアントの回復動作を決定します。どちらのオプションも指定されていない場合(またはhardオプションが指定されている場合)、NFS要求は無期限に再試行されます。ソフトオプションが指定されている場合、NFSクライアントは、再送信の再送信が送信された後にNFS要求に失敗し、NFSクライアントが呼び出し元のアプリケーションにエラーを返します。
...そしてintr
はsoft
よりも優先されると言い続けますが、ハングを防止するという同様の効果があります。
umount -f /mnt/myfolder
はこれを解決する必要があります。 umountのマンページを参照してください。
Solarisの場合、NFSクライアントを再起動すると、「ハードマウントの死のスパイラル」が解決されます。 Solaris 10のコマンドは、「svcadm restart network/nfs/client」です。最近、Linuxボックスでこれを試していません(「intr」フラグでマウントされているため、この問題が発生することはほとんどないため)。問題。
なんとかumount -f
動作します。便利なトリックは、同じエクスポートをマウントする別のサーバーをセットアップして、古いサーバーと同じIPアドレスを与えることです。 NFSクライアントは、すべてが正常に戻ったと考えるべきであり、プロセスはブロックを解除します。その後、マウントポイントを通常どおりにマウント解除し、一時的なNFSサーバーからIPアドレスを削除できます。
余談ですが、 automount を使用すると、NFS共有が使用可能になったときにマウント解除が処理されるため、将来この状況でスタックするのを回避できます。
私はこれと同じ問題に遭遇しました。 NFSサーバーが削除されたため、クライアントからnfsをアンマウントできません。私は次のトリックを試しました、それが役立つかどうかを確認してください。元のNFSサーバーがなくなったので、同じIPとエクスポートで新しいサーバーを作成します。次に、umount -f/mnt/nfs_partを試します。ようやくnfsをアンマウントできるようになりました。
マウントコマンドはほとんど* nixに依存しないため、OS X固有のフォローアップのみです。ただし、-l(レイジー)フラグはOS Xには存在しませんが、-f(強制)フラグは存在し、十分であることが証明されています。また、システム生成のマウントポイントは/ Volumes(/ Volumes/myserversexport)にあります
カーネル3.2.0を強制的にアンマウントすると、NFSv4マウントでハングすることに気づきました。 NFSv3のアンマウントは正常に機能します。
$ mount [...] -o nfsvers=3