Linux 上挂起的 nfs 和 cifs 共享

Linux 上挂起的 nfs 和 cifs 共享

我有一个 NAS(Dlink DNS-323),我从 Linux 机器上安装它。它以前工作正常,后来我升级了我的发行版(apt-get upgrade)。我正在运行 Linux Mint Debian 版本。当前内核是:

oliver@astro ~ $ 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 等。
  • 安装为 nfs 共享而不是 cifs 共享
  • 通过 /etc/fstab 而不是 autofs 进行挂载。对 cifs 和 nfs 都进行了尝试

所有计算机都具有相同的行为。问题不在于 NAS 本身,因为它可以继续在屋子里的其他计算机上正常工作。问题也不在于这台机器的网卡,因为我可以从它上面正常浏览网页、观看视频等。这似乎是我的 Mint 机器特有的。这是我当前 /etc/fstab 中用于通过 cifs 挂载共享的行:

//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...

这是迄今为止最常见的情况,而且一般我所看到的也都是这样。有时我还看到了其他错误消息,不过恐怕我现在无法重现它们。

另一个线索。似乎在驱动器出现错误后,我通常会在 /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 的东西,应该与此无关。这可能是个转移注意力的花招,但我在遇到问题后经常看到它,而在其他情况下我通常不会看到它,所以我想提一下。

有任何想法吗??

答案1

经过大量调试和查看数据包转储后,我将其追溯到网卡驱动程序问题。网卡缓冲区溢出,因此 TCP 堆栈一直认为数据包已丢失。切换网卡解决了这个问题。

相关内容