Veja o manual do auto.master.
Em "Opções" você pode encontrar "nobind", que faz o truque.
Eu tenho um par de servidores web executando o GlusterFS 3.3.0 fornecendo um único volume replicado. Os clientes se conectam via NFS e os servidores da Web também são clientes. A Gluster fica muito insatisfeita se os arquivos que ela serve forem gravados através da 'porta dos fundos' (ou seja, acesso a arquivos locais), então eu preciso passar pela pilha do NFS para entrar pela 'porta da frente'. Cada servidor tem uma configuração autofs que é configurada para montar o volume do host local. Estes são meus arquivos de configuração:
/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
(Esses valores de montagem são os sugeridos para os clientes NFS gluster, em particular o forçamento do TCP; uma configuração mais mínima também não funciona)
O problema em que estou me deparando é que o autofs (ou NFS) parece dizer "Ei, isso está apontando para o localhost para que eu possa atalho fazendo uma remontagem de ligação local!", como se eu tivesse dito mount --bind /shared /var/lib/sitedata
. Infelizmente, isso falha completamente, já que não é a mesma coisa.
Isso parece ser específico para localhost porque um servidor remoto se conectando a um desses hosts não tem um problema com a mesma configuração do autofs. Eu não quero que cada servidor web monte o outro - o desempenho já é ruim o suficiente sem introduzir novos modos de falha!
Como posso forçar a montagem NFS do autofs a passar pelo TCP?