Por que os volumes replicados do GlusterFS não são recomendados para hosts em datacenters diferentes?

2

Qualquer tutorial que eu possa encontrar sobre os volumes replicados do GlusterFS assume que ambos (todos) bricks estão na mesma rede privada, o que também leva à conclusão de que eles devem estar no mesmo datacenter.

por exemplo. "O problema é quando o armazenamento que você deseja replicar está em uma rede remota, possivelmente em um local diferente, o GlusterFS não funciona muito bem. Isso ocorre porque o GlusterFS não foi projetado para funcionar quando há alta latência entre nós de replicação " é uma citação do link

Além disso, o link diz que os volumes replicados não são destinados à georreplicação. o mecanismo real de "georreplicação" no GlusterFS cria apenas escravos somente leitura que não funcionam em todos os cenários.

Portanto, a questão é: por que não é recomendado em geral, já que não encontrei um único exemplo de volumes replicados para hosts em redes diferentes, e até mesmo datacenters diferentes.

Também posso explicar por que quero usar volumes replicados. Eu tenho um vServer (OpenVZ) em um datacenter em Frankfurt, na Alemanha e um segundo em Nuremburg, na Alemanha. Ambos têm múltiplos colegas com DE-CIX, Deutsche Telekom e assim por diante e a latência entre os vServers é < 4 ms que na minha opinião não pode ser considerado alta latência, qualquer que seja a definição para isso pode ser no caso do GlusterFS.

Estou executando os serviços do iRedmail nos dois servidores e o MariaDB é replicado na replicação do Master-Master, armazenando apenas a configuração de email. O armazenamento de email está no disco e estou usando volumes replicados do GlusterFS para replicá-lo. Não vejo problemas até agora (o armazenamento de mensagens é de cerca de 20 GB de e-mails, incluindo anexos) e estou me perguntando se estou com sorte ou se há problemas que eu ainda não detectei ainda. De qualquer forma, eu prefiro seguir as melhores práticas que eu não fiz neste caso e estou me perguntando o que você pensa sobre o GlusterFS replicado volumens para hosts em diferentes datacenters e o que "alta latência" realmente significa.

    
por Chris 13.08.2017 / 22:49

1 resposta

0

Esse problema se aplica a muitos tipos de armazenamentos de dados, não apenas ao GlusterFS. Isso ocorre porque o aumento da distância aumenta a latência. A recomendação para estar na mesma sub-rede é também reduzir a latência devido a saltos de rede.

Para manter a sincronização de dados, os vários servidores devem garantir que todos os servidores tenham a mesma visão dos dados. Para leituras de dados, o efeito de latência geralmente não é um problema. No entanto, pode ocorrer sérios danos nos dados se vários servidores gravarem o mesmo bloco antes de serem sincronizados. Quando um bloco de dados está sendo atualizado, é possível perder as alterações, se o bloco que está sendo atualizado foi lido antes que uma atualização subseqüente em dados de um servidor diferente seja perdida.

Os mecanismos de bloqueio podem ser usados para reduzir o risco de corrupção. No entanto, os bloqueios distribuídos levam mais tempo para serem obtidos e liberados à medida que a latência aumenta. Neste caso, a latência é a hora de completar uma viagem de ida e volta entre os servidores. Existem três fatores que contribuem para a comunicação entre os data centers.

Os armazenamentos de dados de correio tendem a ser relativamente lidos em sua maioria. Normalmente, é improvável que vários clientes conectados a servidores diferentes atualizem o mesmo arquivo ou diretório. Pode haver alguma contenção entre mensagens de e-mail recebidas e clientes que as leiam, mas a latência não deve ser um problema significativo. Os armazenamentos de formato do Maildir devem ter contenção relativamente menor que outros formatos. No entanto, eles têm atividade de renomeação e movimentação relativamente alta, o que pode causar problemas se os nós forem desconectados.

  • Distância: Os dados do fio trafegam pelo fio a cerca de 30 cm em um nanossegundo, a 300 metros em um microssegundo ou a 300 km em um milissegundo. Isso adiciona latência significativa à medida que a distância aumenta.
  • Tempo de comutação: Cada comutador que um pacote atravessa precisa ser examinado, roteado, enfileirado e transmitido pelo pacote. Isso adiciona latência adicional, que aumenta à medida que o switch fica mais ocupado.
  • Congestionamento de rede: as redes podem ficar congestionadas, causando atrasos adicionais, pois o tráfego é enfileirado por mais tempo e possivelmente redirecionado. Se o congestionamento for ruim, os atrasos podem ser longos o suficiente para acionar a retransmissão de pacotes.
por 14.08.2017 / 01:03