Temos um compartilhamento NFS 4, compartilhando um volume entre vários servidores (servidor NFS e clientes, todos Debian 8). Recentemente, tivemos alguns problemas nos quais as interrupções na rede congelavam os sistemas do cliente.
Opções Nossa NFS eram mínimas, apenas rw
(e assim os padrões hard
, fg
etc).
Agora estou experimentando essas opções, mas não estou obtendo o comportamento que espero:
rw,soft,bg,retrans=6,timeo=150
(Aumentei os retrans para compensar parte do risco brando)
O procedimento que estou seguindo para testar é:
- Máquina de inicialização
cd
para/mnt/mountpoint
- Verifique a conexão NFS ok
cd /
- matar rede
ifdown eth0
cd
para/mnt/mountpoint
ls
Nesse ponto, a linha de comando congela e não posso interrompê-la. Depois de algum tempo, a mensagem 'nfs: server [servername] não está respondendo, expirou`, o que parece se repetir uma vez por minuto (indefinidamente).
O que eu gostaria / esperava que acontecesse para a operação falhar e retornasse o controle.
Por favor, alguém poderia me dizer onde estou errado com essas configurações?
(PS: Eu também tentei montar com autofs, mas vi um comportamento semelhante)
Obrigado
soft
sob nenhuma circunstância. Permite que os dados sejam descartados por erro . Em vez disso, eu sugirohard,intr
.hard
é tão ruim para nós (sistemas morrendo e permanecendo mortos até a reinicialização).intr
não é suportado no NFS4, de acordo com o homem.intr
que é suportado pelo NFS4, mas não pelo kernels> 2.6.25)cd
, mas em vez dissols /mnt/mountpoint
? É possível que, após als
falha, seu shell esteja tentando operações do sistema de arquivos dependentes do PWD. (Pior ainda, se você fosse tolo o suficiente para colocar.
em sua$PATH
)Respostas:
intr
deve permitir o controle novamente quando você bate^C
, mas geralmente não imediatamente.Como você diz, as expectativas são o problema aqui. Os problemas de rede podem ser temporários, mas a falha em uma operação é permanente. Portanto, a maioria das operações assume como padrão o bloqueio simples até que a operação seja concluída.
Esta é a resposta padrão, mas, olhando para uma página de manual atual, vejo isso:
Portanto, não me parece ser um problema do NFS3 / NFS4, mas uma decisão sobre como
intr
funciona. Portanto, você deve poder acompanharKILL
o processo, mas isso pode não lhe dar muita utilidade.Não consegui encontrar a discussão sobre por que a opção foi removida. Você pode matar -KILL seu processo?
fonte
intr
é suportado pelo NFS 2/3, mas não 4.Parte da minha resposta é opinião, baseada na experiência. Onde eu tiver fatos, tentarei (lembre-se de) vincular a eles.
soft
em quase nenhuma circunstância. Permite que os dados sejam descartados por erro . Em vez disso, eu sugirohard,intr
.intr
não é válido para o NFS 4, mas parece que essa é uma alteração do kernel em vez de uma alteração no NFS.autofs
) funciona bem para meus casos de uso com as versões 2 e 3 do NFS e consegue ajudar a proteger meus sistemas clientes de falhas do servidor montando os sistemas de arquivos NFS apenas quando necessário.Minha sugestão para você seria considerar a mudança do NFS 4 para o NFS 3 e ver se isso ajuda no seu caso de uso específico. Não pense nisso como um downgrade.
fonte
intr
não for suportado nas versões recentes do kernel.intr
é suportado no NFS4 (ele está listado nas opções somente 2/3 e 4 únicas no man, o que é um pouco confuso), mas não é suportado nas versões recentes do kernel.hard
, o site inteiro ficará inoperante. Se usarmossoft
, podemos obter algumas imagens corrompidas (embora nosso sistema de cache mitigue isso quase completamente). O risco desoft
permitir a corrupção de arquivos realmente não é grande coisa. Prefiro ter um arquivo de imagem corrompido do que um site desativado!soft
como uma solução aceitável. Resposta modificada de "nunca" para "quase nunca". Obrigado!