O armazenamento em cache do NFS é adequado para o armazenamento em cache de arquivos grandes (200kb a 50mb?)

3

Eu tenho um disco de 1 TB em um servidor que 4 outros servidores acessam com frequência via NFS para distribuir os arquivos via HTTP. Estou vendo uma carga alta no servidor central e quero armazenar esses arquivos em cache nos servidores locais, pois eles raramente são alterados. O cache do NFS é adequado ou devo estar olhando para outra coisa?

Obrigado

    
por Tom 20.01.2012 / 19:00

2 respostas

3

O caminho do NFS:

O FS-Cache provavelmente ajudaria se você tivesse pouco espaço nos servidores do cliente para impedir que você mantenha cópias completas de todos os seus arquivos grandes (por exemplo, você só quer ou precisa armazenar em cache os arquivos acessados com mais freqüência).

Existem algumas ressalvas (conforme observado na documentação da Red Hat ):

  • Abrir um arquivo de um sistema de arquivos compartilhado para E / S direta ignorará automaticamente o cache. Isso ocorre porque esse tipo de acesso deve ser direto ao servidor.
  • Abrir um arquivo de um sistema de arquivos compartilhado para gravação não funcionará no NFS versão 2 e 3. Os protocolos dessas versões não fornecem informações de gerenciamento de coerência suficientes para o cliente detectar uma gravação simultânea no mesmo arquivo de outro cliente .
  • Dessa forma, abrir um arquivo de um sistema de arquivos compartilhado para E / S direta ou gravação eliminará a cópia em cache do arquivo. O FS-Cache não armazenará o arquivo novamente em cache até que ele não seja mais aberto para E / S ou gravação direta.
  • Além disso, esta versão do FS-Cache armazena apenas arquivos NFS regulares. O FS-Cache não armazenará em cache diretórios, links simbólicos, arquivos de dispositivos, FIFOs e soquetes.

Além disso, você precisa executar tipos específicos de sistemas de arquivos no cliente NFS para fornecer o suporte FS necessário para os atributos do sistema de arquivos que o FS-Cache usa para acompanhar as coisas (ext3 com user_xattr, ext4, btrfs xfs).

A maneira de rsync:

Outra alternativa é usar o rsync e manter uma cópia completa dos arquivos em cada sistema. Se estas são coisas que só mudam periodicamente (como diariamente ou semanalmente), isto pode ser mais benéfico para você do ponto de vista de ter menos complexidade no gerenciamento e depuração de problemas.

A desvantagem disso é que agora você está mantendo N + 1 cópias, onde N é o número de sistemas que você precisa para executar isto e você terá que criar um mecanismo para lidar com os rsyncs periodicamente (por exemplo, scripts + cron, etc).

    
por 20.01.2012 / 23:14
0

Eu vejo que você marcou sua pergunta com squid , então você claramente sabe disso. Como você está usando isso? Eu acho que o seu problema pode ser resolvido usando o squid no modo proxy reverso (httpd-accelerator) . Se você configurou corretamente, então você não precisa se preocupar com o lado do NFS.

    
por 20.01.2012 / 23:57