断电后 Synology NFS 共享超时

断电后 Synology NFS 共享超时

Synology DS1513+ 配备 DSM 6.2.2-24922

这是 Synology NFS 的问题。NAS 上和 NAS 外的其他一切都正常。也许一些 NFS 专家知道发生了什么。

编辑:有没有办法在 NAS 上重新安装或重置 NFS,有点像 Debian 中的包或其他什么?

不久前断电,NAS 上的 NFS 共享突然超时。几乎可以肯定这是 NAS 的问题,因为这来自三台不同的 Linux 机器,操作系统版本不同(Debian 9、Debian 10 升级、Linux Mint Whatever)。Debian 10 Live 也失败了。在出现此问题的客户端上,CIFS 挂载工作正常。在 Windows 7 机器上也可以正常工作。除了 NAS 上的 NFS 之外,与 NAS 相关和不相关的其他所有东西都正常工作。

  • 所有界面都没有改变
  • 防火墙规则没有改变,一切
  • 我可以用 nmap 从我的电脑上扫描它,并且所有相应的端口都是打开的
  • 我可以通过 DSM 和 SSH 登录 NAS;其他一切正常
  • 无丢包
  • NAS 上的所有共享和文件服务设置均保持不变
  • 尝试禁用/启用 NFS 并重新创建 NFS 权限,但无效
  • 没有任何最新更新...

在客户端...

fstab 条目如下所示:

NAS:/volume1/Share1 /mnt/nfs/Share1 nfs noauto,_netdev,x-systemd.automount,x-systemd.device-timeout=3,rw,noexec,nosuid,soft,timeo=20 0 0
NAS:/volume1/Share2 /mnt/nfs/Share2 nfs noauto,_netdev,x-systemd.automount,x-systemd.device-timeout=3,rw,noexec,nosuid,soft,timeo=20 0 0
etc...

尝试挂载共享会导致重复超时。这种情况发生在 systemd 自动挂载或尝试手动挂载时:

$ mount -v Share1

mount.nfs: timeout set for Mon Jul 1 14:03:35 2019
mount.nfs: trying text-based options 'soft,timeo=20,nfsvers=4.2,addr=10.2.3.4,clientaddr=10.2.3.123'
mount.nfs: mount(2): Connection timed out
mount.nfs: trying text-based options 'soft,timeo=20,nfsvers=4.2,addr=10.2.3.4,clientaddr=10.2.3.123'
mount.nfs: mount(2): Connection timed out
etc...

我注意到它从不尝试任何其他 NFS 版本,但随后它超时,而不是连接失败。NAS 上启用了 NFS 4.1 选项,因此我尝试强制使用版本 4.1,也禁用了 4.1,但结果相同。

在服务器上...

nfsd 似乎正在运行。更改设置会导致它们按预期重新启动。大约有 50 多个 nfsd 进程。ps 说:

$ ps -el | grep nfs

1 S 0 479 2 0 60 -20 - 0 rescue ? 00:00:00 nfsiod
1 S 0 19310 2 0 60 -20 - 0 rescue ? 00:00:00 nfsd4
1 S 0 19311 2 0 60 -20 - 0 rescue ? 00:00:00 nfsd4_callbacks
1 S 0 19315 2 0 80 0 - 0 svc_ge ? 00:00:00 nfsd
1 S 0 19316 2 0 80 0 - 0 svc_ge ? 00:00:00 nfsd
... etc x 50+ ...
1 S 0 19382 2 0 80 0 - 0 svc_ge ? 00:00:00 nfsd

除了这些较旧的消息(请注意,没有有关挂载尝试的消息)之外,我似乎无法在 NAS 上的任何日志中找到太多内容:

$ dmesg | grep -i nfs

[ 1.634369] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 4.457531] NFS: Registering the id_resolver key type
[ 64.183851] Installing knfsd (copyright (C) 1996 [email protected]).
[ 65.032600] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 65.032650] NFSD: starting 90-second grace period (net ffffffff81853a80)
[ 732.887033] nfsd: peername failed (err 107)!
[ 3747.212750] nfsd: last server has exited, flushing export cache
[ 3747.857575] Installing knfsd (copyright (C) 1996 [email protected]).
[ 3748.106390] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 3748.114294] NFSD: starting 90-second grace period (net ffffffff81853a80)
[ 3766.547251] nfsd: last server has exited, flushing export cache
[ 3767.179133] Installing knfsd (copyright (C) 1996 [email protected]).
[ 3767.417179] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 3767.425074] NFSD: starting 90-second grace period (net ffffffff81853a80)
[64250.094837] nfsd: peername failed (err 107)!
[67058.897383] nfsd: last server has exited, flushing export cache
[67071.416444] Installing knfsd (copyright (C) 1996 [email protected]).
[67071.686715] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[67071.694600] NFSD: starting 90-second grace period (net ffffffff81853a80)
[67762.742233] nfsd: last server has exited, flushing export cache
[67783.915610] Installing knfsd (copyright (C) 1996 [email protected]).
[67784.287170] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[67784.295081] NFSD: starting 90-second grace period (net ffffffff81853a80)
[67826.140602] nfsd: last server has exited, flushing export cache
[67827.558978] Installing knfsd (copyright (C) 1996 [email protected]).
[67828.044110] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[67828.052009] NFSD: starting 90-second grace period (net ffffffff81853a80)
[67865.118316] nfsd: last server has exited, flushing export cache
[67866.194700] Installing knfsd (copyright (C) 1996 [email protected]).
[67866.444936] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[67866.452861] NFSD: starting 90-second grace period (net ffffffff81853a80)

找到了一些更多信息在里面建筑维基(众所周知这很棒)...

$ cat /proc/fs/nfs/exports

# Version 1.1
# Path Client(Flags) # IPs

就是这样。我觉得这很可疑。这个列表应该导出吗?

$ cat /etc/exports

/volume1/Share1   Client1(rw,async,no_wdelay,insecure,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)
etc...

它们都是一样的。有三个导出文件:exports、exports_map 和 exports_syno,都是一样的。

$ cat /proc/net/rpc/nfsd

rc 0 0 0
fh 0 0 0 0 0
io 0 0
th 63 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
ra 128 0 0 0 0 0 0 0 0 0 0 0
net 0 0 0 2
rpc 0 0 0 0 0
proc2 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
proc3 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
proc4 2 0 0
proc4ops 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

我不知道。

$ cat /etc/nfs/syno_nfs_conf

udp_read_size=32768
udp_write_size=32768
nfsv4_enable=yes
nfs_unix_pri_enable=0
statd_port=0
nlm_port=0
nfs_custom_port_enable=no
kerberos_principal=nfs/nas.lan@LAN

尝试过的调试标志:

$ sysctl -w sunrpc.rpc_debug=1023
$ sysctl -w sunrpc.nfsd_debug=1023

但我找不到任何更新的日志。试过 /var/log/messages、dmesg、kern.log、syslog.log、sysnotify.log。

这真是太烦人了...有什么想法吗?我发布在 Synology 社区论坛上,但已过去一周多了,它仍然没有反应。

编辑:

刚刚注意到 dmesg 中充满了:

[46814.703044] NFSD: laundromat service - starting
[46814.707587] NFSD: laundromat_main - sleeping for 90 seconds
repeat like 40 times...
[46846.668090] svc: server ffff88006d210000, no data yet
[46846.668165] svc: server ffff880077f60000, no data yet
[46846.668167] svc: server ffff880077f60000 waiting for data (to = 3600000)
[46846.668175] svc: server ffff88007d57e000, no data yet
[46846.668178] svc: server ffff88007d57e000 waiting for data (to = 3600000)
[46846.668183] svc: server ffff88006ff0a000, no data yet
repeat like 50 times...

我不记得以前见过这个。不确定 svc 的东西是否相关...

答案1

如果断电也许某些设备重新启动并恢复了其存储的配置这与易失性存储器中运行的内容不同。

运行网络存储时,优化网络是一种常见的做法,企业交换机不会立即存储配置,您必须保存它,否则重启后它会丢失。

  • 检查您的 NAS 服务器、网络交换机和所有中间设备,看看是否可能:
    • 您已在所有设备上启用巨型帧,但现在它仅在 NAS 或交换机上的某些端口上可用。
    • VLAN 配置不正确。
    • 网络绑定失败。
  • 使用从 NAS 到客户端以及从客户端到 NAS 的 ping 来测试网络
  • 使用直接网线和笔记本电脑连接到 NAS 并测试 NFS

相关内容