web-dev-qa-db-ja.com

NFSサーバーのIPが変更されたときに解決する方法

WindowsNFSサーバーとそこからボリュームをマウントしていたいくつかのCentOSLinuxサーバーがあります。 Windowsサーバーは新しいネットワークに移動し、DNSが機能し、NFSマウントがホスト名でマウントされていても、NFSクライアントはipaddr値も記録しているようです。これは無効になっています。これにより、予想される典型的なハンギングマウントdfの問題が発生します。これをさかのぼって解決するにはどうすればよいですか?

2
Gregg Leventhal

IPアドレスが変更された場合は、NFSクライアントを再起動するか、マウントされたサービスを明示的に解放するumountコマンドを実行する必要があります。ただし、元のNFSサービスがなくなったため、これを完了できない場合があります。

私が見つけた他の唯一のアプローチは、このLinux Journalの記事「 ハウツー:再起動せずにスタックしたNFSマウントを解放する 」に書かれているものでした。私はこのアプローチを使用したことがなく、今日までこの方法について聞いたことがありませんが、それを調べることは実行可能に聞こえます。

また、NFSマウントがintr/nointrでマウントされているかどうかによっては、問題が発生する可能性があると思います。このフィーチャートグルの詳細については、NFSのマニュアルページman nfsを参照してください。

抜粋

intr / nointr  Selects whether to allow signals to interrupt file operations 
               on this mount point. If neither option is specified (or if 
               nointr is specified), signals do  not  interrupt NFS file 
               operations. If intr is specified, system calls return EINTR 
               if an in-progress NFS operation is interrupted by a signal.

               Using the intr option is preferred to using the soft option 
               because it is significantly less likely to result in data
               corruption.

               The  intr  / nointr mount option is deprecated after kernel 
               2.6.25.  Only SIGKILL can interrupt a pending NFS operation 
               on these kernels, and if specified, this mount option is 
               ignored to provide backwards compatibility with older
               kernels.
2
slm

この投稿 私のために働いたステップがあります。一言で言えば:

  • NFSサーバーの古いIPをエイリアスに割り当てます。 ifconfig eth0:fakenfs Old_IP netmask xxx.xxx.xxx.xxx
  • umount -l /mount
  • エイリアスを停止します:ifconfig eth0:fakenfs down
  • NFS共有を再度マウントします:mount -a
1
user193937