3.2. NFS 所需的服务

这部分列出了运行 NFS 服务器或挂载 NFS 共享所需的系统服务。Red Hat Enterprise Linux 会自动启动这些服务。

Red Hat Enterprise Linux 使用内核级支持和服务流程组合提供 NFS 文件共享。所有 NFS 版本都依赖于客户端和服务器间的远程过程调用(RPC)。要共享或者挂载 NFS 文件系统,下列服务根据所使用的 NFS 版本而定:

nfsd
为共享 NFS 文件系统请求的 NFS 服务器内核模块。
rpcbind
接受本地 RPC 服务的端口保留。这些端口随后可用(或公布出去),这样相应的远程 RPC 服务可以访问它们。rpcbind 服务响应对 RPC 服务的请求,并建立到请求的 RPC 服务的连接。这不能与 NFSv4 一起使用。
rpc.mountd
NFS 服务器使用这个进程来处理来自 NFSv3 客户端的 MOUNT 请求。它检查所请求的 NFS 共享是否目前由 NFS 服务器导出,并且允许客户端访问它。如果允许挂载请求,nfs-mountd 服务会回复 Success 状态,并将此 NFS 共享的文件句柄返回给 NFS 客户端。
rpc.nfsd
这个过程启用了要定义的服务器公告的显式 NFS 版本和协议。它与 Linux 内核一起使用,来满足 NFS 客户端的动态需求,例如,在每次连接 NFS 客户端时提供服务器线程。这个进程对应于 nfs-server 服务。
lockd
这是一个在客户端和服务器中运行的内核线程。它实现网络锁管理器(NLM)协议,它允许 NFSv3 客户端锁住服务器上的文件。每当运行 NFS 服务器以及挂载 NFS 文件系统时,它会自动启动。
rpc.statd
这个进程实现网络状态监控器(NSM)RPC 协议,该协议可在 NFS 服务器没有正常关机而重启时通知 NFS 客户端。rpc-statd 服务由 nfs-server 服务自动启动,不需要用户配置。这不能与 NFSv4 一起使用。
rpc.rquotad
这个过程为远程用户提供用户配额信息。启动 nfs-server 时,用户也必须启动 quota-rpc 软件包提供的 rpc-rquotad 服务。
rpc.idmapd

此进程为 NFSv4 客户端和服务器提供上行调用,这些调用在线上 NFSv4 名称(user@domain形式的字符串)和本地 UID 和 GID 之间进行映射。要使 idmapd 与 NFSv4 正常工作,必须配置 /etc/idmapd.conf 文件。至少应指定 Domain 参数,该参数定义 NFSv4 映射域。如果 NFSv4 映射域与 DNS 域名相同,可以跳过这个参数。客户端和服务器必须同意 NFSv4 映射域才能使 ID 映射正常工作。

只有 NFSv4 服务器使用 rpc.idmapd,它由 nfs-idmapd 服务启动。NFSv4 客户端使用基于密钥环的 nfsidmap 工具,内核按需调用它来执行 ID 映射。如果 nfsidmap 有问题,客户端将退回使用 rpc.idmapd

NFSv4 的 RPC 服务

挂载和锁定协议已合并到 NFSv4 协议中。该服务器还会监听已知的 TCP 端口 2049。因此,NFSv4 不需要与 rpcbindlockdrpc-statd 服务进行交互。NFS 服务器上仍然需要 nfs-mountd 服务来设置导出,但不涉及任何线上操作。