Desempenho do NAS: NFS vs Samba vs GlusterFS

31

Estou planejando minha nova infraestrutura de armazenamento compartilhado para um pequeno farm de servidores da web. Portanto, eu executei 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 é muito mais rápido que o NFS e o GlusterFS para gravações de arquivos pequenos.

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 uma reprodução mais fácil, executei novamente agora 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 a 19 segundos , alta carga de CPU
  • Servidor de kernel NFS + cliente NFS (sincronização): 32 a 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 do samba (acho que meu último contato foi com o samba 2.x), então não otimizei nada aqui - apenas uma configuração pronta para uso (pacote debian / squeeze). A única coisa que eu adicionei "sync always = yes", que deve impor a sincronização após a gravação (mas vendo esses resultados ..). Sem ele, os testes são cerca de 1-2 segundos mais rápidos.

Todos os testes são executados na mesma máquina (montada automaticamente, é exportação NAS), para que não haja atrasos na rede - desempenho puro do protocolo.

Nó lateral: Como sistema de arquivos, usei ext4 e xfs. Os resultados acima estão com ext4. xfs teve desempenho até 40% (menos tempo) melhor. As máquinas são instâncias EC2 m1.small. A exportação do NAS está nos volumes EBS, fontes (tar extraído) no 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 kernel deveria ser tão horrível (superado pelo servidor NFS GlusterFS) no modo de sincronização? Alguma idéia de como ajustar isso?

Obrigado, L

Linus Ardberk
fonte
Esqueceu: as medidas NFS são as melhores de um casal, onde eu brinquei com rsize, wsize, noatime, noac, udp vs tcp e assim por diante.
Linus Ardberk 21/03/12
3
+1 para pesquisa e referências!
Bigbio2002
11
Observamos as mesmas diferenças no desempenho CIFS vs. NFS durante o desenvolvimento e teste do SoftNAS. Posso confirmar que o NFS assíncrono é muito mais rápido que o NFS de sincronização, e o Samba supera o NFS nos benchmarks que executamos usando o software de benchmark ATTO.
3
A propósito, você reinicializou cada máquina entre os testes para limpar o cache de leitura do disco?
Matt

Respostas:

5

Usamos o Samba extensivamente e sempre achei que ele era mais rápido que o NFS em quase todos os casos (e só digo isso porque 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 um ACK do último comando para voltar. Isso melhorou bastante sua velocidade, pelo menos na minha experiência, e sei que fiquei chocado na primeira vez em que também vi a diferença de velocidade - Solucionando problemas de velocidades de rede - The Old Age Inquérito

Univ426
fonte