É razoável usar NFS em um servidor web de produção?

Aug 16 2020

O NFS pode ser razoavelmente usado em servidores de produção como um meio de conectar um servidor de computação a um servidor de armazenamento, supondo que a conexão seja em uma conexão LAN de 1 Gbe ou 10 Gbe?

Obviamente, há alguma sobrecarga de rede e o NFS parece particularmente mais lento com gravações se você tiver o modo de sincronização habilitado. Caso contrário, parece razoavelmente leve e capaz de escalar pelo que posso dizer, mas tenho pouca experiência pessoal com ele. Estou errado?

O problema é que agora tenho um servidor que atua como armazenamento e servidor web, mas vou acabar precisando dividir os dois provavelmente no futuro, e considerando que algumas solicitações precisam passar pela camada de aplicativo web para autenticação antes de inicializar a transferência de arquivos, fica meio complicado com este software. Uma montagem de rede fs é a opção mais simples, só ... não sei se é uma boa.

Também pretendo tentar utilizar o cache local com NFS, que deve melhorar um pouco o desempenho, mas não tenho certeza se isso é suficiente.

Quanto às alternativas, há apenas iSCSI que eu conheço como um verdadeiro concorrente, e a maioria das pessoas parece recomendar o NFS sobre qualquer um dos outros menos conhecidos.

Respostas

29 AustinHemmelgarn Aug 17 2020 at 09:04

NFS está bem, exceto alguns outros critérios específicos sejam atendidos, a saber:

  • Os sistemas envolvidos são capazes de usar NFS nativamente. O Windows não conta aqui, meio que funciona, mas tem uma série de peculiaridades e muitas vezes é difícil de lidar ao lidar com NFS em um ambiente de plataforma cruzada (e se for apenas Windows, use SMB3, elimina a maioria dos outros problemas com NFS). Observe que, no lado do cliente, isso significa suporte no nível do kernel, porque uma implementação no nível do usuário deve lidar com os problemas de eficiência inerentes ao uso de algo como FUSE, ou deve ser vinculada diretamente ao aplicativo que precisa acessar o compartilhar.
  • Você verificou corretamente como o cliente NFS lida com uma reinicialização do servidor NFS. Isso inclui o próprio sistema operacional (que deve funcionar na maioria dos casos) e o software que acessará o compartilhamento. Em particular, é necessário cuidado especial em algumas plataformas de cliente quando o software que usa o compartilhamento mantém arquivos abertos por longos períodos de tempo, já que nem todas as implementações de cliente NFS lidam bem com reinicializações de servidor remontando explicitamente e revalidando bloqueios e identificadores de arquivo como deveriam leva a todos os tipos de problemas para o software cliente). Observe que você deve verificar novamente a qualquer momento que qualquer parte da pilha seja atualizada ou reconfigurada.
  • Você está disposto a configurar o mapeamento de ID de usuário / grupo adequado. Isso é grande, porque sem ele você precisa espelhar os mapeamentos UID / GID entre os sistemas (factível, mas seria cauteloso ao configurar o SSO em uma rede interna para um sistema voltado para a Internet) ou você acaba com problemas potencialmente graves implicações de segurança (ou seja, o que você vê em um sistema para permissões não corresponde ao que você vê em outros).
  • Você está operando em um link de rede seguro ou deseja configurar a autenticação adequadamente para o compartilhamento. Sem autenticação, qualquer pessoa no link pode acessá-lo (e um cliente malicioso pode facilmente contornar os controles de acesso discricionário básicos do UNIX).

Supondo que você atenda a todos esses critérios e tenha uma rede razoavelmente rápida, você deve ficar bem. Além disso, se você pode executar jumbo frames, faça isso, eles ajudam muito para qualquer sistema de arquivos de rede ou armazenamento de bloco em rede.

17 BaronSamedi1958 Aug 16 2020 at 14:34

O NFS é absolutamente OK e é preferível ao iSCSI devido ao fato do NFS ser muito mais fácil de gerenciar, compartilhar e fazer backup.

12 GeraldSchneider Aug 16 2020 at 11:34

Há anos usamos o NFS para conectar nossa SAN aos nossos servidores VMware ESXi, executando centenas de VMs nele. Sem problema nenhum.

O gargalo é mais o sistema de armazenamento do que o protocolo de rede.

A conexão de rede deve ser rápida o suficiente, é claro, o que significa Ethernet de 10 Gb ou fibra. Nós nem nos preocupamos mais com uma rede de armazenamento separada.

6 NISMO1968 Aug 16 2020 at 23:01

iSCSI pode ser um pouco mais rápido ...

https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/storage_protocol_comparison-white-paper.pdf

https://www.hyper-v.io/whos-got-bigger-balls-testing-nfs-vs-iscsi-performance-part-3-test-results/

... mas o NFS como qualquer outro redirecionador de rede (SMB3, AFS / AFP etc) permite multi-acesso simultâneo, o que é complicado com iSCSI ou outros protocolos de bloco.

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392