Posso executar o mysqld em cima do glusterfs?


12

Eu tenho jogado com glusterfs recentemente.

O que eu quero tentar é executar o mysqld sobre o glusterfs da mesma maneira que é possível executar o MySQL sobre o DRBD .

Eu estou familiarizado com a replicação do MySQL e as vantagens de usá-lo, em vez desta abordagem, e também estou ciente do MongoDB e outras soluções NoSQL.

No entanto, seria uma solução fácil para alguns projetos específicos que surgir se eu pudesse deixar o MySQL como está e replicar o sistema de arquivos subjacente.

Isso é possível e se for onde posso descobrir como?

Respostas:


16

Devido a um atraso razoavelmente longo e sem respostas, descobri por tentativa e erro.

A resposta é: Sim, eu posso rodar o mysqld sobre o glusterfs.

Eu configurei isso no Ubuntu e, brevemente, aqui estão as etapas:

O verdadeiro problema está em como o MySQL lida com bloqueios.

No entanto, você pode passar tudo isso para o glusterfs, para que muitos processos mysqld (executados em nós separados) possam acessar os mesmos arquivos de banco de dados em / mnt / glusterfs. Você precisa ler isso com atenção .


2
Que tipo de problemas de desempenho você está vendo?
CMCDragonkai

4
Isso é realmente muito interessante! No entanto, para constar, aconselho vivamente a não usar isso em qualquer situação em que seus dados sejam importantes. Só porque parece funcionar, não significa que é seguro. Você pode apenas ter sorte e ainda não ter condições de corrida que podem causar perda de dados.
precisa saber é

você vai usar 1 servidor por vez, certo? Estou bastante confiante de que não funcionará em vários servidores. você vai perder seus dados
Diego Roccia 02/02

3

Tentativa disso em um cluster K8. MySQL rodando dentro de um contêiner, o GlusterFS instalado diretamente no nó (não em contêiner). O contêiner do MySQL tinha uma afinidade definida para sempre ser executada no mesmo nó do GFS, montando volume usando o driver de volume GFS nativo do K8.

Alta latência aleatória experiente para sites WordPress, mesmo com o cache do NGINX FastCGI (PHP-FPM) ativado. Mudado para o volume hostPath para o contêiner MySQL, os problemas de latência desapareceram.


2

Eu não acho que isso seja possível. Richard, o link que você forneceu está falando sobre o MyIsam e eles dizem que isso não é recomendado. Li em algum lugar (não me lembro onde) que o uso de arquivos innoDB compartilhados por vários nós levará à corrupção de dados.


2

Não sei por que você deseja acessar os mesmos arquivos de banco de dados de diferentes processos do servidor MySQL, mas se o motivo é o desempenho, você deve dar uma olhada no Galera.

http://www.codership.com/content/using-galera-cluster

Integrado no Maria DB e no Percona XTRA DB Cluster


E a replicação Master para Master no GlusterFS?
CMCDragonkai

-1 para o Galera, a menos que você esteja procurando por escalabilidade de leitura. O Galera não é adequado para grandes bancos de dados ou bancos de dados em que o desempenho de gravação é importante. Falo por experiência própria e pelas recomendações de um contrato de suporte com o MariaDB.
Ross Peoples

@RossPeoples, para ser honesto, é improvável que o OP faça isso para o desempenho de gravação. É provável que o Gluster adicione latência a todas as transações. Provavelmente, ele provavelmente está procurando HA, possivelmente usando um Kubernete para garantir que haja uma única instância de dB em execução.
Aron

1

Em teoria você pode. Na prática e principalmente no que diz respeito ao desempenho, o manual Gluster sugere que ele não se destina a ser usado para replicar arquivos de banco de dados ou outros sistemas de E / S de baixa granularidade.

Veja a visão geral oficial do Gluster aqui:

http://docs.gluster.org/en/latest/Install-Guide/Overview/#is-gluster-going-to-work-for-me-and-what-i-nn-it-to-do

O Gluster vai funcionar para mim e o que eu preciso fazer?

... Por outro lado, adicionando servidores Gluster suficientes ao mix, algumas pessoas obtiveram melhor desempenho conosco do que outras soluções devido à natureza de expansão da tecnologia - o Gluster não suporta os chamados "dados estruturados", significando ao vivo , Bancos de dados SQL. Obviamente, seria bom usar o Gluster para fazer backup e restaurar o banco de dados - o Gluster é tradicionalmente melhor quando se usa tamanhos de arquivo de pelo menos 16 KB (com um ponto ideal em torno de 128 KB).

Mais uma vez, se você deseja ter replicação do MySQL, sugiro:

  1. Use a replicação tradicional MySQL Master / Slave https://dev.mysql.com/doc/refman/5.7/en/replication.html

  2. Use o cluster Codership Galera que atualmente é implementado em todos os tipos de MySQL, como Oracle MySQL ou MariaDB

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.