NFS sem noac congela o Ubuntu (com o Dolphin, Nautilus e na linha de comando)

0

Eu tenho tentado configurar um NAS-box caseiro usando o NFS em um servidor Ubuntu 17.04 usando o Kubuntu 17.04 como um cliente, mas mesmo depois de uma configuração extensa e ajustes não consigo fazer o cliente parar de congelar durante uma cópia para o compartilhamento.

Esta configuração ultrapassa 5GHz a + n WiFi (tem que, por portabilidade), o que aparentemente reduz as velocidades de transferência NFSv4 e NFSv3 TCP para cerca de 2 MiB / s. Agora estou usando o NFSv3 sobre o UDP, que atinge velocidades aceitáveis de cerca de 25 a 30 MiB / s, mas isso expôs outro problema no final do cliente. Se eu tiver a pasta aberta em que um arquivo está sendo copiado, todo o sistema operacional começa a gaguejar e o gerenciador de arquivos (neste caso, o Dolphin) congela com "Não está respondendo". O monitoramento da transferência na bandeja do KDE também congela, mas através do KSysGuard eu posso ver a transferência ainda ocorrendo a partir da velocidade de upload. nfswatch e nfstrace também relatam nenhum problema ou pacotes descartados. A rede não está sobrecarregada e as taxas de perda são pequenas, o ping para o servidor é < 1 ms.

O mais estranho é que, se eu desabilitar o cache de atributos de arquivo com a opção noac mount, tudo estará bem e nenhum congelamento ocorrerá. Isso introduz a penalidade de desempenho de noac , embora a velocidade de transferência caia para cerca de 10 MiB / se o carregamento da pasta se torne lento. Eu tentei todas as opções de sincronização e async em ambas as extremidades, lookupcache = none, actimeo = 0 e actimeo = 1, mas tudo, exceto noac não se livrar do congelamento. Eu também ajustei os parâmetros rsize e wsize, mas sem sucesso, então os deixei de fora por questão de clareza.

O engraçado é que, com o atributo de cache ativado, ele também congela ls na linha de comando, watch -n1 ls -la /path/to/nfs/dir reporta uma atualização a cada 5-10 segundos, em vez do intervalo especificado de 1 segundo, aguardando no estado "inativo" como monitorado por htop. Também experimentei um comportamento semelhante com o Nautilus em um sistema Ubuntu Budgie 17.10 com o monitor de transferência interrompido enquanto um upload estava em andamento. Downloads do servidor NFS não apresentam congelamento. Eu suponho que isso poderia ser um problema com inotify? Como já mencionado, o atraso ocorre apenas quando a pasta de destino da transferência é aberta no Dolphin, e a mudança para qualquer subdiretório "descongela" o sistema e o Dolphin.

Aqui está o meu /etc/exports no servidor:

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

/export/nfsdir    client.local(rw,no_subtree_check,no_root_squash,mountpoint,async)

E no cliente estou usando autofs , embora o mesmo problema também apareça ao montar diretamente usando o comando mount . Aqui está o autofs config:

nfsmountdir -fstype=nfs,vers=3,udp,rw,soft,noatime,nodiratime,noacl,nolock,async server.local:/export/nfsdir

As permissões estão corretas, posso ler e escrever no compartilhamento. Eu tentei isso com todas as opções de montagem acima mencionadas, mas a presença delas não tem efeito algum. Adicionar noac parece ser a única opção, mas detesto ter a penalidade de desempenho, especialmente porque vou transferir arquivos grandes para o compartilhamento. Então a questão é, eu fiz algo errado, ou acabei de descobrir um bug? Seria legal se alguém pudesse explicar esse comportamento e como contornar isso, porque eu estou sem ideias neste ponto.

Obrigado pelo seu tempo.

este é o meu primeiro post, fique à vontade para dar feedback se houver algo que eu deva mudar.

    
por twelho 02.12.2017 / 15:03

0 respostas