Desempenho NAS: NFS vs Samba vs GlusterFS

27

Estou planejando minha nova infraestrutura de armazenamento compartilhado para um pequeno farm de servidores web. Portanto, eu fiz muitos testes com muitos sistemas de arquivos NAS. Ao fazer isso, obtive alguns resultados inesperados e gostaria de saber se alguém aqui pode confirmar isso.

Resumindo: o Samba é extremamente mais rápido que o NFS e o GlusterFS para pequenas gravações de arquivos.

Aqui o que eu fiz: Eu executei um "benchmark rsync" simples com muitos arquivos para comparar o desempenho de gravação de arquivos pequenos. Para facilitar a reprodução, reproduzi-o agora mesmo com o conteúdo do wordpress atual tar.gz.

  • GlusterFS replicado 2: 32-35 segundos , alta carga de CPU
  • GlusterFS único: 14-16 segundos , alta carga de CPU
  • Cliente GlusterFS + NFS: 16-19 segundos , alta carga de CPU
  • Servidor de kernel NFS + Cliente NFS (sincronização): 32-36 segundos , carga de CPU muito baixa
  • Servidor de kernel NFS + Cliente NFS (assíncrono): 3-4 segundos , carga de CPU muito baixa
  • Samba: 4-7 segundos , carga média da CPU
  • Disco direto: < 1 segundo

Eu não sou absolutamente nenhum guru de samba (acho que meu último contato foi com o samba 2.x), então eu não otimizei nada aqui - apenas configuração out-of-the-box (pacote debian / squeeze). A única coisa que eu adicionei "sync always = yes", que é suposto para impor a sincronização após a gravação (mas vendo os resultados ..). Sem isso, os testes duram cerca de 1-2 segundos mais rápido.

Todos os testes são executados na mesma máquina (auto-montado é a exportação do NAS), portanto, não há atrasos de rede - desempenho de protocolo puro.

Nó secundário: Como sistema de arquivos, usei ext4 e xfs. Os resultados acima são com ext4. O xfs funcionou até 40% (menos tempo) melhor. As máquinas são instâncias do EC2 m1.small. A exportação do NAS está em volumes do EBS, fontes (tar extraído) em disco efêmero.

Então, aqui vamos nós: Alguém pode me explicar por que o samba é muito mais rápido?

Além disso, o desempenho do NFS com o servidor do kernel deve ser horrível (superado pelo servidor NFS do GlusterFS) no modo de sincronização? Alguma idéia de como ajustar isso?

Obrigado, L

    
por Linus Ardberk 21.03.2012 / 21:09

1 resposta

4

Nós usamos o Samba extensivamente, e eu sempre achei que ele é tipicamente mais rápido que o NFS em quase todos os casos (e eu digo apenas porque eu não os comparei o suficiente).

Pelo que vi depois de algumas capturas de pacotes, o protocolo SMB pode ser falador, mas a versão mais recente do Samba implementa o SMB2, que pode emitir vários comandos com um pacote e emitir vários comandos enquanto aguarda por um ACK. do último comando para voltar. Isso melhorou muito sua velocidade, pelo menos na minha experiência, e sei que fiquei chocado quando vi pela primeira vez a diferença de velocidade também - Solução de problemas de velocidade de rede - a pesquisa mais antiga

    
por 12.06.2012 / 20:55