有什么方法可以让 linux 放弃尝试重新连接 nfs 共享?我目前在 fstab 中有它们。我希望他们在启动时尝试挂载,然后仅尝试手动重新连接。它在下面抱怨的共享是在一台没有一直打开的机器上。
$ tail /var/log/syslog
Mar 17 10:13:26 Inspiron kernel: [429184.924089] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:30 Inspiron kernel: [429189.132255] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:37 Inspiron kernel: [429196.156051] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:37 Inspiron kernel: [429196.156072] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:42 Inspiron kernel: [429200.364084] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:46 Inspiron kernel: [429204.572092] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:53 Inspiron kernel: [429211.596078] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:53 Inspiron kernel: [429211.596122] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:57 Inspiron kernel: [429215.804094] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:14:01 Inspiron kernel: [429220.012094] nfs: server 192.168.1.200 not responding, timed out
$ cat /etc/fstab
192.168.1.200:/mnt/Raid/TV_SHOWS /home/Shares/TV_SHOWS nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user
192.168.1.200:/mnt/Raid/MOVIES /home/Shares/Movies nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user
192.168.1.200:/mnt/Raid/DocuTV /home/Shares/DocuTV nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user
Run Code Online (Sandbox Code Playgroud)
更新:
我已经用额外的标志修改了我的 fstab,但由于某种原因问题仍然存在。一旦挂载了共享并且 nfs 服务器关闭,它就会不断尝试重新建立连接,而不仅仅是卸载它们。我相信只有在挂载共享时 nfs 服务器出现故障才会出现此问题。
192.168.1.200:/mnt/Raid/TV_SHOWS /home/Shares/TV_SHOWS nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user,retry=0,nofail
192.168.1.200:/mnt/Raid/MOVIES /home/Shares/Movies nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user,retry=0,nofail
192.168.1.200:/mnt/Raid/DocuTV /home/Shares/DocuTV nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user,retry=0,nofail
Run Code Online (Sandbox Code Playgroud)
更新 2: 我试过 bg, soft, retrans=100 , retry=0, nofail
它仍然似乎并没有被卸载的份额,当它失去连接。每隔几分钟,我就会为每个共享收到几条超时消息。
解决方案: 我按照以下对映体的说明进行了一些更改
auto.master
/- /etc/auto.shares --timeout=60
Run Code Online (Sandbox Code Playgroud)
基本挂载点是 / 而不是 /home/user/Shares。这解决了我同时使用 autofs+fstab 时遇到的一些问题。60 秒后卸载共享。
auto.shares
/home/user/Shares/TV_SHOWS -rsize=8192,wsize=8292,timeo=14,intr,rw,uid=1000,gid=1000 192.168.1.200:/mnt/Raid/TV_SHOWS
/home/user/Shares/Movies -rsize=8192,wsize=8292,timeo=14,intr,rw,uid=1000,gid=1000 192.168.1.200:/mnt/Raid/MOVIES
/home/user/Shares/DocuTV -rsize=8192,wsize=8292,timeo=14,intr,rw,uid=1000,gid=1000 192.168.1.200:/mnt/Raid/DocuTV
Run Code Online (Sandbox Code Playgroud)
注意 nfs 服务器 IP 后面的冒号。UID/GID 以用户身份而不是 root 身份安装共享。
编辑:由于该问题仅在共享已成功挂载后 NFS 服务器关闭时才会出现,因此之前的答案无济于事。
我现在唯一的建议是使用autofs
按需挂载 NFS 共享,而不是在启动时挂载它们。这样,系统只会在您尝试访问 NFS 共享时尝试挂载它们,并且会在一段时间不活动后自动卸载它们。
有关于如何使用指南autofs
可以在这里,但我下面将列出步骤,您应该需要按照得到的东西运行。
确保autofs
已安装。该包通常被称为“autofs”
在 Ubuntu 上,您可以通过apt-get install autofs
以 root 身份运行来安装它。
将以下条目(以 root 身份)添加到 /etc/auto.master
/home/Shares /etc/auto.shares
Run Code Online (Sandbox Code Playgroud)创建文件/etc/auto.shares
(以 root 身份),内容如下:
TV_SHOWS -rsize=8192,wsize=8292,timeo=14,intr,rw 192.168.1.200:/mnt/Raid/TV_SHOWS
Movies -rsize=8192,wsize=8292,timeo=14,intr,rw 192.168.1.200:/mnt/Raid/MOVIES
DocuTV -rsize=8192,wsize=8292,timeo=14,intr,rw 192.168.1.200:/mnt/Raid/DocuTV
Run Code Online (Sandbox Code Playgroud)删除这些目录的静态挂载点 /etc/fstab
重新加载 autofs 服务。在 Ubuntu 上,您可以service reload autofs
以 root 身份运行来执行此操作。
测试以确保它有效。运行ls /home/Shares/TV_SHOWS
并查看它是否列出了您的文件。
注意:由于问题中添加了其他信息,以下答案不再适用。但是,我会将它留在这里,以防将来对某人有所帮助。
您可以尝试将nofail
选项添加到 /etc/fstab 中的全部内容中。
从安装手册页:
nofail
Do not report errors for this device if it does not exist.
Run Code Online (Sandbox Code Playgroud)
这应该会导致系统在启动时尝试挂载设备,但如果无法挂载则放弃。然后,您可以稍后手动尝试挂载设备。
还有另一个可能有用的选项:retry
(nfs 联机帮助页)
retry=n
The number of minutes that the mount(8) command retries an NFS mount
operation in the foreground or background before giving up. If this
option is not specified, the default value for foreground mounts is 2
minutes, and the default value for background mounts is 10000 minutes
(80 minutes shy of one week). If a value of zero is specified, the
mount(8) command exits immediately after the first failure.
Run Code Online (Sandbox Code Playgroud)
默认情况下,NFS 挂载是前台挂载,因此在尝试 2 分钟后应该会失败。如果 NFS 服务器不可用,您总是可以手动将其设置为一定时间,以使其更快地失败,结合该nofail
选项,可以让它按您想要的方式工作。
归档时间: |
|
查看次数: |
13970 次 |
最近记录: |