![如何让 autofs 挂载由本地主机提供的 NFS 卷?](https://linux22.com/image/1370761/%E5%A6%82%E4%BD%95%E8%AE%A9%20autofs%20%E6%8C%82%E8%BD%BD%E7%94%B1%E6%9C%AC%E5%9C%B0%E4%B8%BB%E6%9C%BA%E6%8F%90%E4%BE%9B%E7%9A%84%20NFS%20%E5%8D%B7%EF%BC%9F.png)
我有一对运行 GlusterFS 3.3.0 的 Web 服务器,它们提供单个复制卷。客户端通过 NFS 连接,Web 服务器也是客户端。如果 Gluster 提供的文件是通过“后门”(即本地文件访问)写入的,它会非常不高兴,因此我需要通过 NFS 堆栈才能通过“前门”进入。每台服务器都有一个 autofs 配置,设置为从本地主机挂载卷。这些是我的配置文件:
/etc/auto.master
:
#+auto.master
/- /etc/auto.nfs
/etc/auto.nfs
:
/var/lib/sitedata -fstype=nfs,vers=3,hard,noexec,nosuid,nodev,rsize=32768,wsize=32768,intr,noatime,mountproto=tcp 127.0.0.1:/shared
(这些挂载值是针对 gluster NFS 客户端的建议值,特别是强制 TCP;更简单的配置也不起作用)
我遇到的问题是 autofs (或 NFS) 似乎在说“嘿,这指向 localhost,所以我可以通过执行本地绑定重新挂载来快捷方式!”,就好像我说的那样mount --bind /shared /var/lib/sitedata
。不幸的是,这完全失败了,因为它根本不是一回事。
这似乎是 localhost 特有的,因为连接到其中一个主机的远程服务器在相同的 autofs 配置下不会出现问题。我不希望每个 Web 服务器都挂载其他服务器 - 性能已经够差了,不需要引入新的故障模式!
我如何强制 autofs 的 NFS 挂载通过 TCP 进行?
答案1
参见 auto.master 手册。
在“选项”下,您可以找到“nobind”,它可以起到作用。