web-dev-qa-db-ja.com

Linuxからぶら下がっているnfsとcifsの共有

LinuxボックスからマウントするNAS(Dlink DNS-323)があります。以前は正常に機能していましたが、ディストリビューションをアップグレードしました(apt-getupgrade)。 Linux Mint DebianEditionを実行しています。現在のカーネルは次のとおりです。

[email protected] ~ $ uname -a
Linux astro 3.11-2-AMD64 #1 SMP Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux

以前はautofsを使用してcifs共有としてマウントしていましたが、アップグレード後に問題が発生しました。具体的には、共有をマウントすることはできましたが、すばやく読み取りや書き込みを行うと、ハングしてさまざまなエラーが返されました。たとえば、gThumbで多数の画像を含むフォルダを開いてから、[次へ]ボタンをすばやくクリックするだけで、通常はハングする可能性があります。ハングすると、プログラム(ls、lsof、fuser、グラフィカルファイルシステムツールなどを含む)は共有にアクセスできなくなり、すべてハングします。ただし、共有への読み取りおよび/または書き込みは「ゆっくり」で問題ありません。

私は次のような非常にさまざまな修正を試しました。

  • さまざまなマウントオプションがたくさんあります。それらすべてを覚えるには多すぎますが、いくつかのハイライトには、nounix、sec = ntlm、sec = ntlmv2などがあります。
  • Cifs共有ではなくnfs共有としてマウント
  • Autofsの代わりに/ etc/fstabを介してマウントします。 cifとnfsの両方でこれを試しました

すべて同じ動作をします。問題はNAS自体ではなく、家の他のコンピューターからも正常に動作します。このマシンのネットワークカードでも問題はありません。ウェブを閲覧したり、ビデオを見たり、これは私のMintマシンに固有のようです。これは、cifsを介して共有をマウントするために使用している現在の/ etc/fstabの行です。

//192.168.0.3/Volume_1  /media/dlink    cifs    guest,rw,uid=oliver,gid=oliver,nounix,sec=ntlm  0   0

そして、これが/ etc/mtabからの対応する行です。

//192.168.0.3/Volume_1 /media/dlink cifs rw,relatime,vers=1.0,sec=ntlm,cache=strict,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.0.3,file_mode=0755,dir_mode=0755,nounix,serverino,rsize=61440,wsize=65536,actimeo=1 0 0

/ var/log/syslogに表示される最も一般的なエラーは次のとおりです。

Feb 19 17:01:47 localhost kernel: [  276.258055] CIFS VFS: Server 192.168.0.3 has not responded in 120 seconds. Reconnecting...

それは断然最も一般的であり、一般的に私が見るのはそれだけです。現時点では再現できないのではないかと思いますが、他のエラーメッセージが表示される場合があります。

もう1つの手がかり。ドライブでエラーが発生した後、通常は/ var/log/syslogに次のように表示されるようです。

Feb 19 17:04:57 localhost minissdpd[4451]: 12 new devices added
Feb 19 17:05:01 localhost minissdpd[4451]: 1 new devices added

MinissdpdはUPnPのものであり、これとは何の関係もないことを私は知っています。燻製ニシンかもしれませんが、問題が発生した後はよく見かけますし、普段は見ないので、言及したいと思いました。

何か案は??

4
Oliver Dain

たくさんのデバッグとパケットダンプを調べた後、私はこれをネットワークカードドライバの問題にたどりました。ネットワークカードのバッファがオーバーフローしていたため、TCPスタックは、パケットが失われたと考え続けました。ネットワークカードを切り替えることで問題が解決しました。

3
Oliver Dain