サーバーAは、以前はNFSサーバーでした。サーバーBはそのエクスポートをマウントしていました。すべてが大丈夫でした。その後、Aが死亡しました。ただスイッチを切った。消えた。消えた。
ただし、そのフォルダーはまだBにマウントされています。明らかに、そのフォルダーに入れることはできませんcd
。ただしumount /mnt/myfolder
、ハングしてマウント解除されません。Bを再起動せずにアンマウントする方法はありますか?
クライアントとサーバーの両方がLinuxマシンです。
サーバー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にも存在します。
umount -f -l nfsserver:/export/thefolder
。
デビッド・パシュリーによって与えられたヒントを詳しく説明すると、
「アンマウント-l」があなたの問題を解決しない限り、あなたは離れて行ってしまったものと同じアドレスを持つ偽のサーバーを設定することができます- しかし、あなたは実際に新しいサーバか何かを設定する必要はありません。ブロッキング/ハングumount状況から抜け出す最も簡単な方法は、次のようにローカルエイリアス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
:
soft / hard
NFS要求がタイムアウトした後のNFSクライアントの回復動作を決定します。どちらのオプションも指定されていない場合(またはハードオプションが指定されている場合)、NFS要求は無期限に再試行されます。ソフトオプションが指定されている場合、NFSクライアントは、再送信の再送信が送信された後にNFS要求に失敗し、NFSクライアントが呼び出し元のアプリケーションにエラーを返します。
...そして、それはにintr
優先されると言いsoft
続けていますが、ぶら下がりを防ぐという同様の効果があります。
私はumount -f
仕事に取り掛かることができませんでした。便利なトリックは、同じエクスポートをマウントする別のサーバーをセットアップし、古いサーバーと同じIPアドレスを与えることです。NFSクライアントは、すべてが正常に戻っており、プロセスのブロックが解除されると考える必要があります。その後、マウントポイントを通常どおりにアンマウントし、一時NFSサーバーからIPアドレスを削除できます。