根据红帽文件, '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