•  desabrochar luz

Sistemas de arquivos distribuídos

Um resumo de sistemas de arquivos distribuídos

Metas

Sistemas de arquivos distribuídos?

UMA sistema de arquivos distribuído , geralmente, fornece um idealmente POSIX interface de sistema de arquivos compatível. Esta é a maior parte de sua definição porque construir um cluster de nós que mantém dados de uma forma distribuída pode ser alcançado de muitas maneiras diferentes, mas construir um que forneça acesso a um utilizável a interface do sistema de arquivos é desafiadora. Um sistema de arquivos de arquivos geralmente é assumido como locale, como tal, muitos aplicativos assumem acesso rápido a ele, desconsiderando possíveis problemas de latência que podem surgir em um sistema de arquivos apoiado por dados remotos. Muito poucos aplicativos distinguem entre sistemas de arquivos locais e remotos.

Trocar um sistema de arquivos por um distribuído pode ser considerado uma forma de compatibilidade com versões anteriores ... no caso de você desejar implementar um aplicativo em um ambiente de nuvem que dependa do acesso ao sistema de arquivos para sua camada de dados, a nuvem deve fornecer uma interface de sistema de arquivos que possa se replicar arbitrariamente nas máquinas. No entanto, em um único caso de usuário, também pode ser considerado uma forma de reduzir a sobrecarga de gerenciamento ... em vez de rastrear backups de dados de cada servidor que você executa, você pode rastrear a integridade do sistema de arquivos baseado em rede e agendar backups nele.

Se você não precisa de acesso estrito à semântica dos sistemas de arquivos, uma interface de armazenamento de objetos distribuídos é mais simples e portátil e universal como um sistema de arquivos, com menos carga de sincronicidade na rede, uma vez que um armazenamento de objeto em si, não contém metadados. Alguns softwares de armazenamento de objetos oferecem uma interface de sistema de arquivos integrada.

Arredondar para cima

Uma vez que nosso objetivo é não big data, ignoramos soluções como HDFS.

Aqui, alguns resultados de benchmark em uma tabela, eles não cobrem todos os sistemas de arquivos e podem estar desatualizados neste ponto, e nof2fs o cache de resultados pode ter escapado :)

Largura de banda

FS seq rread rrw files create read append rename delete
raw 78793 1.0409e6 89958 179483 17300.0 23550.0 14408.0 4677 5373
zfs 102121 1.3985e6 92391 198410 29180.0 4470.0 18980.0 4695 8468
f2fs 2.064e6 1.455e6 101674 184495 28320.0 10950.0 16890.0 4233 3912
xtreemefs 159310 29117 29468 1690 510.0 1190.0 520.0 274 330
glusterfs 178026 17222 18152 5681 4380.0 7620.0 3110.0 413 1076
beegfs 79934 103006 85983 24867 9830.0 12660.0 10470.0 2889 3588
orangefs 330781 54735 41611 5523 5120.0 7020.0 6130.0 638 1989

IOPS

FS seq rread rrw files create read append
raw 76 266440 22489 44870 4430 6028 3688
zfs 99 358000 23097 49602 7470 1146 4860
f2fs 2064 372524 25418 46123 7250 2803 4325
xtreemefs 155 7279 7366 422 131 306 134
glusterfs 173 4305 4537 1420 1123 1951 798
beegfs 78 25751 21495 6216 2518 3242 2682
orangefs 323 13683 10402 1380 1310 1979 1571

Recursos

FS CPU (Server) CPU (Client) RAM (Server) RAM (Client)
xtreemefs 100 25 300 201
glusterfs 100 50 92 277
beegfs 80 80 42 31
orangefs 15 75 60 20

Dados

Aqui estão os dados de benchmarks

Os botões sysctl foram ajustados para o rendimento máximo, mas eles devem ser indiscutivelmente inúteis e provavelmente distorcem os benchmarks, uma vez que em uma rede heterogênea esses botões nem sempre são aplicados e, de qualquer forma, são dependente da rede , então, mesmo se eles forem aplicados, pode haver outros gargalos no local.

Comparações adicionais, da wikipedia, de algas marinhas.

Tags de postagem: