GlusterFS alternativa para o site de upload de arquivos

4

Eu tenho alguns sites de upload de arquivos, com arquivos que variam de centenas de kilobytes a alguns gigabytes.

Atualmente, tenho todos os arquivos em um volume Gluster distribuído-replicado em alguns servidores.

Meu maior problema com o Gluster é a velocidade.

Por exemplo, eu tenho uma pasta com ~ 80.000 imagens, com média de 500 KB cada, e levei algumas horas para alterar o proprietário das imagens.

No momento, tudo é bastante decente, mas estou preocupado em ter muito mais arquivos e o tempo que levará para trabalhar com eles.

Quais alternativas eu tenho? Estou fazendo algo errado com o Gluster?

Esta é minha configuração de gluster:

performance.cache-size: 1GB
performance.cache-refresh-timeout: 60
performance.cache-max-file-size: 100KB
cluster.choose-local: true
performance.readdir-ahead: on
performance.io-thread-count: 16
client.event-threads: 3
server.event-threads: 3
    
por Alex Dumitru 20.09.2016 / 00:31

2 respostas

1

Qualquer sistema de arquivos distribuído sofrerá quando executar operações em lote em um grande número de arquivos: afinal de contas, ele teve que propagar todas as alterações para uma máquina remota e o foguete de latência comparado ao host local apenas. Isso pode ser especialmente perceptível ao executar operações de alteração de metadados: não tocar em dados reais, eles são muito rápidos localmente; no entanto, a replicação remota será totalmente ligada à latência.

Você tem basicamente duas soluções:

  • use uma abordagem de compartilhamento de arquivos, carregando seus arquivos em uma caixa específica e exportando-os via NFS. Enquanto o NFS não é uma bala de prata (e não é um monstro de velocidade), quando acoplado com o cache do lado do cliente, ele pode executar adequadamente
  • use um sistema de replicação de arquivos assíncrono como lsyncd (ou algo baseado em rsync )
por 08.06.2017 / 17:27
2

Eu usei o programa lsyncd em uma situação semelhante em que preciso sincronizar o conteúdo dos servidores may. Internamente, ele usa rsync para sincronizar arquivos entre servidores.

No entanto, a desvantagem é que você precisa direcionar os uploads para um único servidor e sincronizar os arquivos desse servidor para todos os servidores.

    
por 08.06.2017 / 14:04