NFSv4和rpcbind

根据红帽文件, 'rpcbind'不再是必需的:

由于协议支持已被纳入v4协议,因此NFSv4与portmap,rpc.lockd和rpc.statd守护进程没有交互。 NFSv4监听众所周知的TCP端口2049,这消除了端口映射交互的需要。 安装和locking协议已被纳入V4协议中,无需与rpc.lockd和rpc.statd进行交互。 rpc.mountd守护程序在服务器上仍然是必需的,但不涉及任何over-the-wire操作。

但是当'rpcbind'服务没有运行时,我无法启动NFS恶魔:

# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp). [FAILED] Starting NFS mountd: [ OK ] Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused) rpc.nfsd: unable to set any sockets for nfsd [FAILED] 

我已经禁用了NFS v2和v3:

 # grep -v "^#" /etc/sysconfig/nfs MOUNTD_NFS_V2="no" MOUNTD_NFS_V3="no" RPCNFSDARGS="-N 2 -N 3" 

你能否确认哪些服务是必需/必要的服务器和客户端从下面列出(基本上我想禁用不需要的服务):

 # rpm -ql nfs-utils | grep 'init.d' /etc/rc.d/init.d/nfs /etc/rc.d/init.d/nfslock /etc/rc.d/init.d/rpcgssd /etc/rc.d/init.d/rpcidmapd /etc/rc.d/init.d/rpcsvcgssd 

这是NFS服务器内核模块中的一个错误。 它在2013年12月被修补。

从内核3.14开始, rpcbind不再需要运行内核NFS服务器。

(假定服务器configuration为仅使用NFSv4及更高版本)

http://lxr.free-electrons.com/source/net/sunrpc/svc.c?v=3.14#L966

您可以在此主题中find有关更改的更多信息:

http://www.spinics.net/lists/linux-nfs/msg41053.html

所以,你的configuration:

 MOUNTD_NFS_V2="no" MOUNTD_NFS_V3="no" RPCNFSDARGS="-N 2 -N 3" 

现在应该没有rpcbind工作。

如果仅使用NFSv4,则不需要这些服务:

 /etc/rc.d/init.d/nfslock /etc/rc.d/init.d/rpcgssd /etc/rc.d/init.d/rpcidmapd /etc/rc.d/init.d/rpcsvcgssd 

检查rpcbind服务。 如果停止工作启动,然后尝试启动nfs服务。

 service rpcbind start service nfs start