Sistema de arquivos distribuído Docker Swarm com armazenamento local

Sistema de arquivos distribuído Docker Swarm com armazenamento local

Estou procurando uma solução de sistema de arquivos distribuído/sistema de arquivos de rede que possa ser usado no seguinte cenário:

  • Eu tenho um Docker Swarm com muitos hosts, mas cada host é essencialmente independente e não parece diferente de qualquer outro host. Nós apenas os usamos para dimensionamento. Isso significa que cada host executa todos os trabalhadores necessários para fazer o sistema funcionar e, idealmente, uma tarefa que entra no sistema é executada completamente no host que o iniciou.
  • Existem várias etapas para processar uma tarefa. Cada etapa gera um arquivo grande na faixa de 1 a 10 GB. Principalmente, os trabalhadores em cada host funcionarão apenas em arquivos que já estão armazenados localmente.
  • No entanto, às vezes, um host pode ficar sobrecarregado e eu quero que os trabalhadores de outro host assumam as etapas restantes do processamento. Para conseguir isso, preciso que os arquivos sejam armazenados em um volume compartilhado que os trabalhadores em outros hosts possam usar de forma transparente para acessar arquivos armazenados em outro host.

Em outras palavras: cada host terá o mesmo "volume de rede" montado em algum lugar e contém alguns arquivos que estão realmente armazenados no host atual (esses arquivos são principalmente relevantes) e alguns arquivos que estão armazenados em outro host. No entanto, os trabalhadores acessarão principalmente (90-95% das vezes) arquivos locais em seu host.

Não preciso de replicação (os arquivos são relevantes apenas por 30 a 60 minutos e depois disso não são mais necessários) e eu especificamentenãoquer um armazenamento central.

O rendimento no sistema é medido em minutos por tarefa e não em tarefas por segundo. Existem poucos arquivos grandes em vez de muitos arquivos pequenos. Além disso, os arquivos são gravados uma vez e lidos apenas uma ou duas vezes.

Existe uma boa solução para isso? Dei uma olhada em , , GlusterFSe EdgeFSalguns outros, mas nenhum parecia ser a escolha certa.InterPlanetary File SystemCeph

Responder1

Você pode fazer isso usando plug-ins do Docker Engine. Estes são plug-ins de volume compatíveis com o mecanismo docker.

  • Plug-in de armazenamento de arquivos do Azure
  • Plug-in de volume BeeGFS
  • Plug-in Blockbridge
  • Plug-in de volume Contiv
  • Plug-in de comboio
  • Plug-in de armazenamento em bloco DigitalOcean
  • Plug-in DRBD
  • Plug-in Flocker
  • Plug-in de volume Fuxi
  • Plug-in gce-docker
  • Plug-in GlusterFS
  • Plug-in de volume Horcrux
  • Plug-in de volume HPE 3Par
  • Plug-in de volume infinito
  • Plug-in de volume IPFS
  • Plug-in Keywhiz
  • Plug-in de persistência local
  • Plug-in NetApp (nDVP)
  • Plug-in NetShare
  • Plug-in de volume de armazenamento ágil
  • Plug-in OpenStorage
  • Plug-in de volume Portworx
  • Plug-in de volume de quobyte
  • Plug-in REX-Ray
  • Plug-in Virtuozzo Storage e Ploop
  • Plug-in de armazenamento VMware vSphere

Para mais detalhes consulte o abaixolink

informação relacionada