bloqueio do sistema quando o armazenamento ficar offline ao usar as opções de montagem do nfs bg, hard, nointr

4

Eu tinha a seguinte opção de montagem definida no meu sistema. No caso de alguma interrupção de armazenamento, esses (bg,hard,nointr) irão bloquear o acesso ao console?

        storage:/vol/myvol on /test type nfs (rw,bg,hard,nointr,rsize=65536,wsize=65536,tcp,nfsvers=3,timeo=600)

Que combinação de opções de nfs são consideradas práticas corretas?

    
por Raza 29.07.2014 / 22:00

1 resposta

14

Todas as opções de montagem do NFS têm pontos positivos e negativos.

  • bg significa que, quando você tenta mount do sistema de arquivos (geralmente durante a inicialização do sistema), se o servidor não responder a tempo, a montagem se separa de um processo executado em segundo plano e repete montar.

    Se você não usar a opção bg , mount tentará novamente e não sairá (nem continuará montando outros sistemas de arquivos se você usou mount -a ) até que a montagem seja bem-sucedida ou falhe.

    Se você precisar montar um sistema de arquivos de um servidor que geralmente está inativo e não quiser que a inicialização do sistema seja atrasada, use a opção bg (ou um montador automático).

    A desvantagem da opção bg é que o sistema pode inicializar sem ter montado o sistema de arquivos remoto, o que pode causar falhas nos aplicativos que desejam usar esse sistema de arquivos (ou pior, preencher o disco local com coisas que foram destinado a ser gravado no sistema de arquivos remoto).

    Portanto, usar bg é uma escolha que você pode fazer.

  • hard e soft se aplicam depois que o sistema de arquivos é montado.

    Se o servidor remoto falhar ou estiver inacessível, uma montagem física continuará tentando novamente a solicitação de E / S, indefinidamente.

    Uma montagem soft retornará um erro para o aplicativo e, geralmente, o aplicativo tratará isso como um erro irrecuperável, como se uma unidade de disco local tivesse sido desligada. Se o próprio executável do aplicativo estiver no sistema de arquivos remoto que foi instalado de forma simples e se tornar inacessível, quando o kernel local precisar obter uma página do sistema de arquivos remoto, o aplicativo será eliminado.

    Portanto, a escolha é sua: quando um servidor remoto (ou sua rede) fica inoperante, você deseja que os programas falhem ou deseja que eles repitam o i / o indefinidamente até que o controle remoto seja atingido novamente?

  • com uma montagem rígida, se o servidor remoto desistir, qualquer programa que use o sistema de arquivos remoto não será interrompido por sinais, da mesma forma que os programas que usam um disco local não podem ser interrompidos durante minúsculo) quantidade de tempo que leva para fazer disco i / o. Isto pode frustrar os usuários, porque seus programas irão travar e eles não podem matá-los com control-C . Se você quiser interromper os programas que estão aguardando a E / S do NFS, inclua a opção intr mount. Geralmente, é seguro usar a opção intr ; lembre-se de que isso pode fazer com que os programas vejam erros de E / S (o erro EINTR ) quando forem interrompidos.

Uma recomendação que tenho: ao usar sistemas de arquivos NFS com servidores remotos que podem ficar inativos, não monte o sistema de arquivos em um diretório em / (como /test ), ou mesmo em qualquer diretório no mesmo nível de um diretório que muitas pessoas usam, como /home/username . Isso ocorre porque pwd ou sua biblioteca C equivalente percorre a árvore de diretórios, fazendo stat s nos diretórios. Se um aplicativo fizer um stat em um ponto de montagem NFS montado de forma rígida que não esteja respondendo, ele será interrompido. Esta é a principal causa de reclamações de usuários sobre o NFS: eles não podem logar porque o seu shell faz um pwd e algum sistema de arquivos NFS que eles nem precisam usar está inativo. boa razão para usar um montador automático de diretórios home.

Esta é a nossa melhor prática para montagens NFS:

  • use o montador automático
  • se você não puder, monte cada sistema de arquivos remoto em / n / remoteservername / filesystemname com as opções hard,intr .
  • / n e / n / remoteservername são diretórios locais que nunca são pontos de montagem do NFS.
  • configure updatedb ou qualquer outra coisa que examine a árvore de diretórios inteira para não procurar em /n .
por 30.07.2014 / 00:08

Tags