automount nfs:信頼できないサーバーのautofsタイムアウト設定-ハングアップを避ける方法


18

フラット共有のために小さなサーバーを実行しています。ほとんどの場合、いくつかの追加サービスを備えたファイルサーバーです。クライアントはLinuxマシン(ほとんどがUbuntuですが、他のディストリビューションもあります)とその間にあるMac(-Book)です(ただし、これらは質問にとって重要ではありません)。サーバーはUbuntu 11.10(Oneiric Ocelot) 'Server Edition'を実行しています。セットアップとテストを行うシステムは11.10 'Desktop Edition'を実行しています。私たちは、どこかなりの時間のために(私たちはより精通している)のSambaとの当社株式を実行しているが、その後に移行NFS(私たちはLAN内の任意のWindowsユーザーを持って、それを試してみたくないので)、これまですべてが正常に動作します

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

  • サーバーが実行されていなくても、すべてのクライアントを正常に起動できます。

  • ただし/nfs、サーバーが実行されていないときに共有へのシンボリックリンクを含むディレクトリを(ターミナルまたはnautilusで)表示したい場合、少なくとも2分間ハングします(autofsはサーバーに接続できないが、しようと、私は仮定します)。

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

  • ただし、共有がアンマウントされる前にサーバーがシャットダウンされると、ツール(dfまたはなどll)がハングします(共有はまだ存在しているが、サーバーが応答しなくなったため)。

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

私はそれがすべてマウントとアンマウントのきちんとしたタイムアウト値に帰着すると思います。サーバーへの接続が失われたときにすべての共有を削除することもできます。

だから私の質問は次のとおりです。また、ボーナスとして、/nfs実際の共有をマウントせずに内部にリンクする良い方法はありますか/nfs

私のセットアップ

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)

エクスポートルートの下に、次の/srv2つのディレクトリがありbindます。

/ 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オンラインで見つけたHowToに基づいてを作成します。

/etc/auto.nfs

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

そして、それはちょっと動作します...または、サーバーが24時間365日実行される場合は動作します。そのため、サーバーを実行せずにクライアントを起動したとき、または共有がまだ接続されているときにサーバーがダウンしたときにハングアップします。

回答:


2

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

そこで、auto.masterを変更して、/ nfs / mntにマウントを作成しました。

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


20

mount-options "bg、intr、hard"を使用して、クライアントにNFS共有をマウントします。

あなたのケースで最も重要なのは、バックグラウンドの「bg」です。これは、サーバーが利用できないときにブロックしないようにシステムに指示します。

割り込み可能の場合は「intr」-したがって、killコマンドを使用して、クライアント上のぶら下がったマウントを強制終了できます。

「ハード」は「ソフト」の反対です。違いは、「ハード」は無限に試行し続けるのに対し、「ソフト」はサーバーが利用できないときに再試行を指数関数的に取り消すことです。


回答ありがとうございます。:私は家にいないんだ原因が、(再び)のmanページを取得するには同点の後、私はいくつかのより多くの質問を得た今、テストすることはできませんhardし、bg音が最初に私には直感的に対抗します。マウントが再試行せ、ベイルが発生した場合にすぐに戻るようにしたいですか?intr細かいようだが、またもう仕事にはないようだ: " INTR / nointrマウントオプションのみSIGKILLは、これらのカーネル上で保留NFS操作を中断することができ、カーネル2.6.25の後に廃止されて、指定した場合、このマウントオプションは後方互換性を提供するために、無視されます。古いカーネルで。
ブルータス

2
ハードは無限に再試行します-現在マウントが不可能な場合、bgはブロックしません。結果は、使用可能なときにマウントされますが、他のすべての操作は続行されます。INTRは現在デフォルトのようです-これは素晴らしいことです。最初は、NFSサーバーが
Nils

私はそれをテストしましたが、追加hard,bgして/etc/auto.masterも何も変わらないようです。Aは、time ls -l ~(私のユーザーディレクトリがへのシンボリックリンクが含まれている/nfs/uploadサーバが実行されていないとき)はまだ、よりその2分かかります。
ブルータス

autofsを再起動しましたか?autofsを再起動せずにサブマップの変更のみが伝播されます。
ニルス

私がやったこと:sudo reload autofs && sudo restart autofs
ブルータス

7

マニュアルページのオプションのいくつかをさらに試してみました。すべてのbg,hardbg,softfg,hardfg,soft私は2以上のメヌエットの回数を返す与えます。

retrans=1,retry=0ただし、(上記のいずれかと組み合わせて)設定すると、約3秒の時間が与えられます。かなりまともです。私はそれぞれの組み合わせが何を意味するのかよくわからないが。さらに掘り下げます。

また、autofsオプションMOUNT_WAITUMOUNT_WAIT。私は彼らといくつかの異なる結果を得ることができませんでしたが、私は試み続けます。likaは「より安全な」(再試行など)NFSオプションを使用するのに適した方法のようですが、autofsの戻り時間が速いかどうか


1
rsize=32768,wsize=32768,noatimeここに記載されているように、他のオプションもあるようです。techrepublic.com
opensource

-1

Red Hat Linuxシステムを起動するたびに自動的にマウントされるようにNFSファイルシステムを設定するには、そのNFSファイルシステムのエントリを/ etc / fstabファイルに追加する必要があります。/ etc / fstabファイルには、Red Hat Linuxシステムのさまざまな種類のマウントされた(およびマウント可能な)ファイルシステムに関する情報が含まれています。EX::nfsファイルシステムをエクスポートするサーバーのホスト名、IPアドレス、または完全修飾ドメイン名に対応します。は、エクスポートされたディレクトリへのパスです。は、エクスポートされたディレクトリをマウントするローカルファイルシステム上の場所を指定します。このマウントポイントは、/ etc / fstabが読み込まれる前に存在している必要があります。そうでない場合、マウントはファイルシステムのマウントオプションを指定します。たとえば、オプション領域にrw、suidと記載されている場合、エクスポートされたファイルシステムは読み書き可能にマウントされ、サーバーによって設定されたユーザーとグループIDが使用されます。ここでは括弧を使用しないことに注意してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.