Según los documentos de Red Hat, 'rpcbind' ya no es necesario:
Debido a que el soporte de protocolo se ha incorporado al protocolo v4, NFSv4 no tiene interacción con los demonios portmap, rpc.lockd y rpc.statd. NFSv4 escucha en el conocido puerto TCP 2049, que elimina la necesidad de interacción con el mapa de puertos. Los protocolos de montaje y bloqueo se han incorporado al protocolo V4, lo que elimina la necesidad de interacción con rpc.lockd y rpc.statd. El demonio rpc.mountd todavía se requiere en el servidor, pero no está involucrado en ninguna operación por cable.
Sin embargo, no puedo iniciar el demonio NFS cuando el servicio 'rpcbind' no se está ejecutando:
# 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]
He desactivado NFS v2 y v3:
# grep -v "^#" /etc/sysconfig/nfs
MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="no"
RPCNFSDARGS="-N 2 -N 3"
¿Podría confirmar qué servicios son necesarios / esenciales en el servidor y el cliente de los que se enumeran a continuación (básicamente me gustaría deshabilitar los servicios que no son necesarios):
# 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
rpcbind
con v4-N 2 -N 3
alrpc.nfsd
script de inicio y obteniendo el mismo error "no se puede establecer ningún socket para nfsd"Respuestas:
Este fue un error en el módulo del kernel del servidor NFS. Se parchó en diciembre de 2013.
A partir del kernel 3.14,
rpcbind
ya no es necesario para ejecutar el servidor NFS en el kernel.(suponiendo que el servidor esté configurado para usar solo NFSv4 y superior)
http://lxr.free-electrons.com/source/net/sunrpc/svc.c?v=3.14#L966
Puede encontrar más información sobre ese cambio en este hilo:
http://www.spinics.net/lists/linux-nfs/msg41053.html
Por lo tanto, su configuración:
Ahora debería funcionar sin
rpcbind
.Cuando usa solo NFSv4, ninguno de estos servicios es necesario:
fuente
rpc.idmapd
solo se requiere para NFSv4. GSS también es necesario para la seguridad de Kerberos. Aunque ambos son opcionales.La documentación citada de RedHat era incorrecta y fue corregida por el error 521215 :
rpc.mountd
aún debe usarse para configurar NFSv4, pero estrictamente hablando no es necesario que se ejecute después de eso.nfs
: Servidor para todas las versiones de NFS: v2, v3, v4, v4.1rpcbind
/portmapper
: Servidor , estrictamente solo para NFS <= v3. Pero también para NFS v4, ya que el servidor Linux Kernel NFS intenta registrarse y no se inicia sirpcbind
no se está ejecutando.rpc.mountd
: Servidor , estrictamente solo para NFS <= 3. Pero también para NFS v4, ya que el Kernel de Linux lo usa para verificar si el cliente de conexión puede conectarse.nfslock
: Servidor solo para NFS <= v3rpc.idmapd
: Servidor opcional (y clientes anteriores ) para NFS v4rpc.quotad
: Servidor para usar la cuota de discorpc.statd
: Servidor solo para NFS <= v3Cuando se usa Kerberos (
sec=krb
/krb5i
/krb5p
) se requieren los siguientes servicios:rpc.gssd
: Clienterpc.svcgssd
: ServidorTenga en cuenta que incluso ellos llevan
rpc.
su nombre, usan el mecanismo interno del kernel de Linuxrpc_pipef
para la comunicación entre el kernel de Linux y el asistente de espacio del usuario; entoncesrpcbind
AKAportmapper
no es necesario para ellos.fuente
Verifique el servicio rpcbind. Si dejó de funcionar, comience y luego intente iniciar el servicio nfs.
fuente