De acordo com os documentos da Red Hat, 'rpcbind' não é mais necessário:
Como o suporte ao protocolo foi incorporado ao protocolo v4, o NFSv4 não tem interação com os daemons portmap, rpc.lockd e rpc.statd. O NFSv4 escuta na conhecida porta TCP 2049, que elimina a necessidade de interação do mapa de portas. Os protocolos de montagem e bloqueio foram incorporados ao protocolo V4, o que elimina a necessidade de interação com o rpc.lockd e o rpc.statd. O daemon rpc.mountd ainda é necessário no servidor, mas não está envolvido em nenhuma operação por fio.
no entanto, não consigo iniciar o NFS demon quando o serviço 'rpcbind' não estiver em execução:
# 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]
Desabilitei o NFS v2 e v3:
# grep -v "^#" /etc/sysconfig/nfs
MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="no"
RPCNFSDARGS="-N 2 -N 3"
Você poderia confirmar quais serviços são necessários / essenciais no servidor e no cliente dentre os listados abaixo (basicamente eu gostaria de desativar os serviços que não são necessários):
# 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
com v4-N 2 -N 3
arpc.nfsd
no script de início e recebendo o mesmo erro "não é possível definir qualquer soquetes para nfsd"Respostas:
Este foi um erro no módulo do kernel do servidor NFS. Foi corrigido em dezembro de 2013.
A partir do kernel 3.14,
rpcbind
não é mais necessário executar o servidor NFS no kernel.(supondo que o servidor esteja configurado para usar apenas NFSv4 e superior)
http://lxr.free-electrons.com/source/net/sunrpc/svc.c?v=3.14#L966
Você pode encontrar mais informações sobre essa alteração neste tópico:
http://www.spinics.net/lists/linux-nfs/msg41053.html
Portanto, sua configuração:
agora deve funcionar sem
rpcbind
.Quando você usa apenas o NFSv4, nenhum desses serviços é necessário:
fonte
rpc.idmapd
é necessário apenas para o NFSv4. O GSS também é necessário para a segurança Kerberos. Embora ambos sejam opcionais.A documentação citada do RedHat estava errada e foi corrigida pelo Bug 521215 :
rpc.mountd
ainda deve ser usado para configurar o NFSv4, mas, estritamente falando, não é necessário que seja executado depois disso.nfs
: Servidor para todas as versões do NFS: v2, v3, v4, v4.1rpcbind
/portmapper
: Servidor , estritamente apenas para NFS <= v3. Mas também para o NFS v4, pois o servidor Linux Kernel NFS tenta se registrar e falha ao iniciar serpcbind
não estiver em execução.rpc.mountd
: Servidor , estritamente apenas para NFS <= 3. Mas também para o NFS v4, como o Linux Kernel o usa para verificar se o cliente de conexão tem permissão para se conectar.nfslock
: Servidor apenas para NFS <= v3rpc.idmapd
: Servidor opcional (e clientes mais antigos ) para NFS v4rpc.quotad
: Servidor para usar cota de discorpc.statd
: Servidor apenas para NFS <= v3Ao usar o Kerberos (
sec=krb
/krb5i
/krb5p
), os seguintes serviços são necessários:rpc.gssd
: Clienterpc.svcgssd
: ServidorObserve que, mesmo que eles carreguem
rpc.
seus nomes, eles usam o mecanismo interno do kernel do Linuxrpc_pipef
para comunicação entre o kernel do Linux e o auxiliar de espaço do usuário; entãorpcbind
AKAportmapper
não é necessário para eles.fonte
Verifique o serviço rpcbind. Se ele parou de funcionar, inicie e tente iniciar o serviço nfs.
fonte