「NFS」- 概念术语

Port Number

Fixing Ports Used by NFSv3 Server
Which ports do I need to open in the firewall to use NFS?
Wikipedia/Network File System/NFSv4

常见服务通常只占用固定端口号,比如HTTP/80、SSH/22、FTP/21等等,但是NFS比较特殊。本将梳理NFS端口号相关内容。

NFS v4

在 NFS v4 中,只需要开启 tcp/2049, udp/2049 端口:

One big advantage of NFSv4 over its predecessors is that only one UDP or TCP port, 2049, is used to run the service, which simplifies using the protocol across firewalls.[1]

所以在防火墙环境中,仅仅需要放行开启 2049 端口便可正常使用 NFS 服务。

NFS v3

在 NFS v3 中,需要开启更多端口号,每个端口都有不同的作用:
1)rpcbind‘s listening port:tcp/111, udp/111
2)nfsd‘s listening port:tcp/2049, udp/2049
3)RQUOTAD_PORT:用于向远程用户提供配额信息;
4)MOUNTD_PORT:处理用户挂载请求;
5)LOCKD_TCPPORT:用于客户端锁定服务端文件,使用TCP连接;
6)LOCKD_UDPPORT:用于客户端锁定服务端文件,使用UDP连接;
7)STATD_PORT:用于服务端通知客户端自身状态;

最后面的五个端口号由rpcbind随机分配(但是可配置,在CentOS中,配置/etc/sysconfig/nfs文件)。

Hard Mount vs Soft Mount

What are the differences between hard mount and soft mount – NetApp Knowledge Base
Hard Mount vs Soft Mount in NFS with Example

挂载 NFS 分为两种方式:Soft Mount;Hard Mount;

Soft Mount:
1)如果 NFS Client 未收到来自 NFS Server 的响应,此时 NFS Client 将向请求访问文件的进程返回错误信息。
2)优势:能够得到快速的响应;
3)缺点:容易导致文件损坏、数据丢失;

mount -o rw,soft host.nf_server.com/share_name /mnt/nfs_data

Hard Mount:
1)NFS Client 将尝试连接 NFS Server,当成功后,将继续进行数据发送、完成后续任务;

mount -o rw,hard,intr host.nf_server.com/share_name /mnt/nfs_data

参考文献

docker – Mount network share with nfs with username / password – Stack Overflow