我遇到了一个让我困惑的 NFS 问题。我甚至无法给出一个合理的解释。我有十台机器:
从站1(10.0.0.10)-从站10(10.0.0.20)
每个都运行 NFS 服务器并导出一个目录。
我像往常一样挂载目录:
sudo mount 10.0.0.11:/var/export /mnt/slave/1/ -o soft
sudo mount 10.0.0.12:/var/export /mnt/slave/2/ -o soft
...
sudo mount 10.0.0.20:/var/export /mnt/slave/10/ -o soft
此时,坐骑看起来如下:
10.0.0.11:/var/export on /mnt/slaves/1 type nfs (rw,soft,vers=4,addr=10.0.0.11,clientaddr=10.3.3.212)
10.0.0.12:/var/export on /mnt/slaves/2 type nfs (rw,soft,vers=4,addr=10.0.0.12,clientaddr=10.3.3.212)
10.0.0.13:/var/export on /mnt/slaves/3 type nfs (rw,soft,vers=4,addr=10.0.0.13,clientaddr=10.3.3.212)
10.0.0.14:/var/export on /mnt/slaves/4 type nfs (rw,soft,vers=4,addr=10.0.0.14,clientaddr=10.3.3.212)
10.0.0.15:/var/export on /mnt/slaves/5 type nfs (rw,soft,vers=4,addr=10.0.0.15,clientaddr=10.3.3.212)
10.0.0.16:/var/export on /mnt/slaves/6 type nfs (rw,soft,vers=4,addr=10.0.0.16,clientaddr=10.3.3.212)
10.0.0.17:/var/export on /mnt/slaves/7 type nfs (rw,soft,vers=4,addr=10.0.0.17,clientaddr=10.3.3.212)
10.0.0.18:/var/export on /mnt/slaves/8 type nfs (rw,soft,vers=4,addr=10.0.0.18,clientaddr=10.3.3.212)
10.0.0.19:/var/export on /mnt/slaves/9 type nfs (rw,soft,vers=4,addr=10.0.0.19,clientaddr=10.3.3.212)
10.0.0.20:/var/export on /mnt/slaves/10 type nfs (rw,soft,vers=4,addr=10.0.0.20,clientaddr=10.3.3.212)
现在,让我困惑的是,有些坐骑随机指向了错误的服务器!
例如,文件 /mnt/slaves/2 可能来自从站 5 (10.0.0.15)。或者可能来自从站 9。或者如果我幸运的话,来自从站 2。卸载并再次安装,使用完全相同的行会导致安装随机指向另一个从站。通过重新安装足够多次(并且每次检查是否找到了正确的从站),我可以正确安装,但这很烦人。
使用 ubuntu 14.04.1 LTS 时出现了该问题。
一些信息:
- 这不是 DNS。我们没有使用 DNS。
- 这不是 IP/Mac 地址冲突。所有其他协议(SSH、HTTP 等)都转到正确的从属设备。
- 我在日志中看不到任何内容,据我所知,主设备认为它与正确的从设备进行了通信。
- 使用 wireshark,我看到一些流量流向正确的从属设备。主设备发送 SETCLIENTID 命令,因此它启动通信。此后通信就停止了。没有发送 SETCLIENTID_CONFIRM。
因此,我现在想知道:
- 这是某种已知的错误吗?
- 有解决方法吗?
我已经设法在不同时间设置的两个不同的 Ubuntu 系统上重现了相同的行为,因此它并不局限于单个服务器。