O NFS não é mais montado: o rpc-statd falha ao iniciar

13

Sempre que tento iniciar uma montagem NFS, recebo:

Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: Version 1.3.2 starting
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: Flags: TI-RPC
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: Running as root.  chown /var/lib/nfs to choose different user
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: failed to create RPC listeners, exiting
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: rpc-statd.service: control process exited, code=exited status=1
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: Failed to start NFS status monitor for NFSv2/3 locking..
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: Unit rpc-statd.service entered failed state.
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: rpc-statd.service failed.
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: Version 1.3.2 starting
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: Flags: TI-RPC
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: Running as root.  chown /var/lib/nfs to choose different user
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: failed to create RPC listeners, exiting

Tentei chown /var/lib/nfspara rpc, o que só me dá a linha "Executando como root" erro de menos:

Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23773]: Version 1.3.2 starting
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23773]: Flags: TI-RPC
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23773]: failed to create RPC listeners, exiting
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: rpc-statd.service: control process exited, code=exited status=1
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: Failed to start NFS status monitor for NFSv2/3 locking..
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: Unit rpc-statd.service entered failed state.
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: rpc-statd.service failed.
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23775]: Version 1.3.2 starting
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23775]: Flags: TI-RPC
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23775]: failed to create RPC listeners, exiting

Eu tentei reinstalar o nfs-utils:

$ pacman -R nfs-utils
$ rm -r /var/lib/nfs
$ pacman -S nfs-utils 

Em seguida, recria o diretório com a permissão do usuário root. Não tenho certeza se esse erro está relacionado ao rpc.statdnão iniciar.

Também tentei executar rpc.statd -F --no-notifyno meu shell, mas isso acabou de sair com o código 1. Sem erro, sem nada. Não há sinalizador detalhado ou de depuração documentado na página de manual.

Também tentei esvaziar o meu /etc/exportse meu sistema está atualizado ( pacman -Syu). Não mudei nada, ele parou de funcionar algumas horas atrás.

Note que usando mount -o nolock /dataobras; portanto, o restante dos daemons NFS / rpc parece estar bem.

Martin Tournoij
fonte

Respostas:

26

O mesmo problema aqui, rpc-stadfalhou desde a última atualização (todos os meus computadores tiveram o problema após a atualização).

Para resolver o problema, apenas habilitei e iniciei o rpcbind:

sudo  systemctl enable   rpcbind.service  # for the next reboot
sudo  systemctl start    rpcbind.service   
sudo  systemctl restart  rpcbind.service
humhumhum
fonte
7

Parece que os arquivos da unidade rpcbind systemd foram perdidos:

$ find /usr/lib/systemd -name 'rpcbind*'
# no output

Reinstalar isso resolveu o problema:

$ pacman -S rpcbind
# [...]

$ find /usr/lib/systemd -name 'rpcbind*
/usr/lib/systemd/system/rpcbind.service
/usr/lib/systemd/system/rpcbind.target
/usr/lib/systemd/system/rpcbind.socket

$ systemctl enable rpcbind
$ systemctl start rpcbind
$ systemctl restart nfs-server

Não tenho certeza de como esses arquivos estavam ausentes; talvez um problema de corrupção do FS?

O estranho é que o nfsd ainda estava em execução, mas o statd não estava. Após uma reinicialização, o nfsd também não funcionou (porque precisa rpcbind). É quase como se esses arquivos desaparecessem enquanto o sistema estava em execução.

Infelizmente systemd, não rpcbindé exibida uma mensagem de erro clara sobre esse tipo de erro (ou seja, a dependência não foi carregada), o que tornaria mais fácil a depuração :-(

Martin Tournoij
fonte
Esquisito. Acabei de experimentar exatamente o mesmo problema (não consegui montar um volume NFS3, systemctl start rpc-statdfalhei com a mensagem "falha ao criar ouvintes RPC, saindo de".) Em um sistema Arch linux. Instalar, ativar e iniciar o serviço rpcbind resolveu o problema. Gostaria de saber se isso estava funcionando anteriormente como um soquete em vez de serviço, mas algo deu errado em algum lugar. Infelizmente, falhei ao verificar a priori se havia algum arquivo rpcbind. * No diretório / usr / lib / systemd.
precisa saber é
Você provavelmente quer dizer 'systemctl' em vez de 'systemd' nas últimas três linhas do seu exemplo acima?
Jeremiah
1
Opa, sim, corrigido. Obrigado @jeremiah.
Martin Tournoij 30/07/19
1

Encontrei alguns casos em que / var / lib / nfs ou / var / lib / nfs / statd estavam ausentes, o que faz com que certos daemons do NFS saiam com um código de erro, mas sem imprimir nenhuma mensagem. A correção é simples, apenas isso:

$ sudo mkdir -p /var/lib/nfs/statd

Mas é um pouco estranho que os daemons e os arquivos de serviço do systemd não tentem criar os diretórios ou imprimir nenhuma mensagem de erro sobre ele.

mulad
fonte
Eu tive um problema semelhante e isso funciona para mim. Ainda não sei como os serviços não criam os diretórios ou por que o diretório foi excluído.
ftrujillo
0

Da mesma forma, eu estava vendo esses erros:

Starting NFS status monitor for NFSv2/3 locking....
Version 1.3.3 starting
Flags: TI-RPC
Failed to access local netconfig database: Netconfig database not found
failed to create RPC listeners, exiting
rpc-statd.service: Control process exited, code=exited status=1
rpc-statd.service: Failed with result 'exit-code'.
Failed to start NFS status monitor for NFSv2/3 locking..

No meu caso, eu havia quebrado as permissões nas /etc/netconfigquais precisa ser legível pelo mundo (assim como /etc/)

Configurando as permissões de arquivo para:

chmod 644 /etc/netconfig

corrigido meu problema.

KurtB
fonte