É uma boa ideia armazenar os volumes do Docker em glusterfs?

22

Atualmente, estou pensando em migrar alguns de nossos servidores e aplicativos para um ambiente coreOS . Um dos problemas que vejo aqui é o gerenciamento de dados persistentes, pois o coreOS não manipula volumes do Docker ao mover um contêiner para uma nova máquina. Depois de algumas pesquisas eu encontrei glusterFS que afirma ser um sistema de arquivos em cluster que poderia resolver todos os meus problemas.

Minha idéia atual é a seguinte: Eu tenho um contêiner glusterFS que é executado como um contêiner privilegiado em cada uma das minhas máquinas coreOS e expõe um armazenamento, /mnt/gluster , por exemplo. No meu Dockerfile s eu especifico que todos os meus volumes devem ser montados neste caminho.

A próxima coisa que eu considerei foi quais recipientes devem obter seus próprios volumes e quais devem estar compartilhando um. Por exemplo, cada contêiner mysql teria seu próprio volume, já que é capaz de manipular a replicação sozinho. Eu não quero mexer com isso. Webservers que atendem ao mesmo site usam corretamente o mesmo volume para itens como "imagens enviadas por usuários" etc., pois não são capazes de replicar esses dados.

Alguém tentou algo assim ou há algo que eu tenha perdido?

    
por Martin 22.03.2015 / 14:36

2 respostas

6

Nós implantamos uma configuração semelhante com o Atomic ( link ) em vez do CoreOS para um sistema de armazenamento GlusterFS não distribuído replicado com três réplicas -2 conjuntos. Isso funciona muito bem.

No entanto, você precisa manter algumas características especiais do GlusterFS em mente. Como Brian já mencionou, Gluster coloca consistência e confiabilidade acima de tudo. As mudanças mais freqüentes acontecem, mais replicação está acontecendo. Isso coloca muito, e quero dizer muito, de pressão no seu sistema.

Tome cuidado para que seu subsistema de IO seja rápido (duh, é armazenamento), conecte seus nós Gluster com as conexões de rede mais rápidas disponíveis. Se você tem apenas GBit, agregue! Por último, mas não menos importante, o sistema de armazenamento deve ter um alto poder de computação, e o Gluster faz muitos cálculos para verificar seu estado. Dito isto, mesmo sob alta carga, Gluster oferece.

Reconsidere sua estratégia do MySQL. O Gluster faz a replicação para você e também fornece uma espécie de balanceamento de carga na entrega. Pode ser mais rápido usar o Gluster.

    
por 27.06.2015 / 10:32
3

O uso de glusterfs dependerá do back-end de armazenamento que você está usando. Como um sistema de arquivos de cluster, ele é destinado ao armazenamento físico em cluster, de modo que ele apareça como um grande volume contínuo. Este guia oficial de início rápido tem uma boa explicação do processo.

No caso de sua configuração utilizar dois ou mais servidores de armazenamento de back-end separados ou algo semelhante para armazenar todos os volumes do docker, o uso do glusterfs ou de outro sistema de arquivos paralelo semelhante pode oferecer vantagens significativas de desempenho. Se este for o caso, você também pode considerar o uso do Lustre , que é amplamente usado como um sistema de arquivos paralelo na comunidade HPC.

Com isso dito, ajustar, depurar e configurar sistemas de arquivos paralelos / em cluster pode ser uma tarefa demorada, que exige muita experiência, paciência e, às vezes, disposição de reiniciar desde o início. Seria prudente certificar-se de que o desempenho beneficia uma oferta de sistema de arquivos paralelo valer a quantidade de esforço necessária para configurá-lo e mantê-lo.

    
por 15.07.2015 / 17:59