O nautilus do cliente NFS trava quando o servidor NFS é ofline

0

Servidor NFS: Servidor Ubuntu 14.04

Cliente NFS: Ubuntu 14.04 desktop 64 bits

No cliente, montei o compartilhamento NFS mount -v -t nfs NFSSERVER_IP: / servidornfsfolder ~ / clientnfs

A montagem foi bem-sucedida e consegui ver todos os arquivos compartilhados do NFS na minha pasta ~ / clientnfs por meio do gerenciador de arquivos.

Problema: Suponha que o servidor NFS fique offline enquanto eu tenho o compartilhamento NFS montado no meu cliente, o nautilus do meu cliente irá travar, também não posso fazer um 'ls' no meu diretório home.

Como posso fazer com que minha máquina cliente do NFS desmonte o compartilhamento NFS automaticamente quando meu servidor fica offline?

    
por SleepyLord 27.08.2014 / 16:20

1 resposta

1

Isso parece um pouco antigo, por isso não sei se você já encontrou uma resposta, mas resolvi recentemente um problema semelhante.

Esse problema é composto por vários problemas:

  1. O novo navegador de arquivos sempre obtém informações sobre os vários sistemas de arquivos disponíveis - ou seja, se você tiver 5 compartilhamentos montados, sejam eles SSH, CIFS ou NFS, e estiverem visíveis na seção "rede" do painel de lugares (lado esquerdo), eles sempre terão um fread () chamado para eles.
  2. Alguns desses compartilhamentos levarão mais tempo para responder, mesmo com as devidas credenciais, e farão com que o Nautilus pare de funcionar ao abri-lo após um período de inatividade ou se um servidor desaparecer.
  3. Muitos outros aplicativos fazem com que o nautilus fread () s - Eu testemunhei isso fazendo um strace no processo nautilus, mas esse problema parece estar conectado apenas quando algo solicita uma lista completa (como uma janela aberta de arquivo).
  4. Sempre que você abre o nautilus (clicando no ícone da pasta de arquivos no painel), ele faz uma varredura das pastas em seu diretório pessoal e no conteúdo interno. Se você fizer seu ponto de montagem algo como / home / $ user / server_mount, o nautilus irá travar quando o servidor ficar indisponível.

Note que isso também afeta outros aplicativos, como o Evolution. Receber eventos do calendário ou responder a uma mensagem faria com que o Evolution "escurecesse" como estava aguardando. Eu estou supondo que estava solicitando uma lista completa de arquivos para o botão de anexo, mas eu não investiguei mais.

Minha solução rápida para mim foi apenas desmontar os compartilhamentos de rede aos quais eu estava conectado. Por enquanto, só me conectarei quando precisar acessar os recursos e, em seguida, desmontarei quando terminar.

Você está semi-permanentemente ligado, então sua solução será um pouco diferente, e é algo que eu fiz no passado.

  1. Para lidar com a reconexão depois que o servidor voltar, você vai querer usar um autofs - como autofs
  2. Para lidar com o nautilus trava quando o servidor não está disponível, realoque o ponto de montagem em algum lugar que não seja um ponto de partida padrão para o nautilus, como um subdiretório. / home / $ user / mounts / server_mount
  3. Você precisará que sua montagem seja reprovada no seu aplicativo em tempo hábil quando o servidor for desativado. Para fazer isso, você desejará adicionar as opções soft,retrans=1,retry=0,intr à sua montagem. Se a memória me serve corretamente, os valores de retransmissão e repetição só funcionam com o NFS sobre UDP, que é o padrão. Se você estiver usando TCP, os valores de tempo limite serão baseados nas configurações da pilha TCP.

HTH

    
por Iron Davey 13.11.2014 / 18:50