GNU/Linux >> Linux の 問題 >  >> Linux

Automount Nfs:信頼性の低いサーバーのAutofsタイムアウト設定–ハングアップを回避する方法は?

フラットシェア用に小さなサーバーを実行しています。ほとんどがファイルサーバーです いくつかの追加サービスがあります。クライアントはLinuxマシン(ほとんどがUbuntuですが、他のディストリビューションもあります)とその間にあるMac(-Book)です(ただし、質問には重要ではありません)。サーバーはUbuntu11.10を実行しています (Oneiric Ocelot)「ServerEdition」、セットアップとテストを行うシステムは、11.10「DesktopEdition」を実行します。私たちは、かなり長い間Samba(私たちがよく知っている)と共有を実行していますが、その後 NFSに移行します (LANにWindowsユーザーがいないため、試してみたいため)これまでのところすべて正常に機能しています

次に、 autofsを使用して自動マウントを設定します スムーズにするため(これまでは、必要に応じて全員が手動で共有をマウントしていました)。自動マウントも機能しているようです。問題は、エネルギーを節約するために「サーバー」が24時間年中無休で稼働していないことです(サーバーから何かが必要な場合は、サーバーの電源を入れてからシャットダウンするため、毎日数時間しか稼働しません)。ただし、autofsが設定されているため、サーバーが実行されていないときにクライアントがハングアップすることがよくあります。

  • サーバーが稼働していないときでも、すべてのクライアントを正常に起動できます。

  • しかし、ディレクトリ(ターミナルまたはノーチラス)を表示したい場合、/nfsの下の共有へのシンボリックリンクが含まれています サーバーが実行されていない間、サーバーは少なくとも2分間ハングします(autofsはサーバーに接続できませんが、試行を続けるためです)。

    • それを回避する方法はありますか?ディレクトリに変更が加えられるまで、またはそのディレクトリのコンテンツにアクセスするまで、マウントが遅延するようにするには? /nfsの下にある共有へのリンクを「見る」ときではありません ?そうではないと思いますが、そんなに長くアクセスしようとしないことは可能でしょうか?空のディレクトリまたは「そのディレクトリが見つからない/接続できない」などを教えてください。
  • サーバーが稼働しているときは、すべてが正常に機能します。

  • ただし、サーバーがシャットダウンすると、に 共有がマウント解除されたツール(dfなど) またはll )ハングします(共有はまだオンになっていると考えているが、サーバーが応答しなくなったと想定します)。

    • 接続が失われたときに共有を自動的にアンマウントする方法はありますか?
  • また、サーバーがダウンしていて、共有がまだマウントされている場合、クライアントはシャットダウンまたは再起動しません。彼らは「残りのプロセスを殺す」に(見た目は無限に)ぶら下がっています 」と何も起こらないようです。

すべては、マウントとアンマウントのタイムアウト値が適切であることに帰着すると思います。また、サーバーへの接続が失われたときにすべての共有を削除する可能性があります。

関連:`$XAUTHORITY`はsu+tmuxの「どこからともなく」表示されますか?

だから私の質問は:これをどのように処理するのですか?そしてボーナスとして:/nfs内にリンクする良い方法はありますか 実際の共有をマウントする必要はありません(autofsオプション、または/nfsに疑似FSを使用する場合があります マウントが発生したときに置き換えられるのはどれですか?

マイセットアップ

NFS設定 かなり基本的ですが、これまでのところうまく機能しています( NFSv4 を使用) ):

/ etc / default / nfs-common

NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=

/etc/idmapd.conf

[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup

/ etc / exports

/srv/   192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)

エクスポートルート/srvの下 bindで2つのディレクトリを取得しました :

/ etc / fstab (サーバー)

...
/shared/shared/      /srv/shared/      none    bind  0 0
/home/Upload/        /srv/upload/      none    bind  0 0

1つ目はほとんど読み取り専用で(ただし、NFS設定ではなく、ファイル属性と所有権を使用して強制します)、2つ目は rw すべてのために。注: / etc / exportsには追加のエントリはありません。 、別々に取り付けることもできます。

クライアント側では、/etc/fstabでセットアップを取得します 必要に応じて手動でマウントします(morton はサーバーの名前であり、正常に解決されます。

/ etc / fstab (クライアント)

morton:/shared  /nfs/shared nfs4    noauto,users,noatime,soft,intr,rsize=8192,wsize=8192    0   0
morton:/upload  /nfs/upload nfs4    noauto,users,noatime,soft,intr,rsize=8192,wsize=8192    0   0

autofsセットアップの場合 /etc/fstabからエントリを削除しました クライアントで、残りを次のように設定します:

/etc/auto.master

/nfs    /etc/auto.nfs

まず、提供された実行可能ファイル/etc/auto.netを結びました (ここで確認できます)が、自動的に何もマウントされません。次に、/etc/auto.nfsを記述します。 オンラインで見つけたハウツーに基づく:

/etc/auto.nfs

shared  -fstype=nfs4  morton:/shared
upload  -fstype=nfs4  morton:/upload

そして、それはちょっと機能します…またはサーバーが24時間年中無休で実行される場合は機能します。そのため、サーバーを実行せずにクライアントを起動した場合、またはサーバーが接続されたまま共有しているときにサーバーがダウンした場合に、ハングアップが発生します。

承認された回答:

マウントシステムを使用して、Nautilusがマウントされているかどうかに関係なくマウントを含むディレクトリを一覧表示する状況を回避する必要があります。したがって、autofsでは、たとえば/nfsにマウントを作成しないでください。その場合、Nautilusを使用して「ファイルシステム」を一覧表示すると、/ nfsに存在する必要のあるマウントが作成され、それらのマウントの試行が失敗した場合、あきらめるのに数分かかります。

だから私がしたのは、auto.masterを変更して/ nfs/mntにマウントを作成することでした。

これで問題は解決しました。 / nfs / mntの内容を一覧表示しようとすると、長い遅延が発生するだけです。これは簡単に回避できます。


Linux
  1. autofsを使用してNFS共有をマウントする方法

  2. SSH接続タイムアウトを増やす方法

  3. Pkex​​ec – Pkexecポリシーを作成するときにAuth_admin_keepのカスタムタイムアウトを設定するにはどうすればよいですか?

  1. 専用サーバー用のカスタムネームサーバーを作成する方法

  2. NFS フォルダのアクセス許可を適切に設定するには?マウント側で許可が拒否されました。

  3. DNS サーバーの応答タイムアウトをシミュレートする方法は?

  1. 自宅のLinuxサーバー管理にコックピットを使用する方法

  2. showmountコマンドを使用してNFSサーバー上の共有を一覧表示する方法

  3. クラウドサーバーの権限マトリックス