Linux slogan
Visite também: BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Arch Linux
Por removido
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Cluster MySQL - Instalação e configuração
Linux user
andrecostall
25/10/2010
Nesse artigo aprenderemos como configurar um cluster MySQL com três nós, um nó de gerenciamento e dois nós de armazenamento.
Por: André Costa
[ Hits: 26428 ]
Conceito: 10.0   1 voto(s)1 voto(s)1 voto(s)1 voto(s)1 voto(s) + quero dar nota ao artigo

Introdução

Bom pessoal, espero que esse artigo seja útil para alguém, serei claro e rápido na instalação e configuração.

Para instalação do cluster MySQL foi usado RHEL 5.2 (Red Hat Enterprise Linux), também poderá ser usado o CentOS 5.2 e 5.3.

Espero que gostem, comentários e críticas construtivas serão bem vindas para o melhoramento de futuros artigos.

Bom, vamos pôr a mão na massa.

Vamos ver nosso ambiente de trabalho.
  • BD1 - 172.16.3.241 - Servidor de Gerenciamento (MGM) node.
  • BD2 - 172.16.3.242 - Servidor de Armazenamento (NDBD) node 1.
  • BD3 - 172.16.3.243 - Servidor de Armazenamento (NDBD) node 2.

1° passo - Configuração do servidor de gerenciamento (MGM)

Primeiramente instalar os seguintes pacotes através do YUM:

# yum install perl-HTML*
# yum install perl-DBD-MySQL


Link para baixar os pacotes do MySQL usado nesse tutorial:
Instalar pacotes:

# rpm -ivh MySQL-ndb-management-5.0.90-1.glibc23.i386.rpm
# rpm -ivh MySQL-ndb-tools-5.0.90-1.glibc23.i386.rpm


Criar diretório:

# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini


[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the .world. database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]

# Seção do Gerenciamento (MGM)
[NDB_MGMD]
#NodeId = 1
# Endereco IP do nó de Gereciamento
HostName=172.16.3.241

# Seção do Servidor de Armazenamento (NDBD)
[NDBD]
#NodeId = 2
# Endereco IP do Servidor Armazenamento (NDBD) node 1
HostName=172.16.3.242
DataDir=/var/lib/mysql
BackupDataDir=/var/lib/backup
DataMemory=100M

[NDBD]
#NodeId = 3
# Endereco IP do Servidor Armazenamento (NDBD) node 2
HostName=172.16.3.243
DataDir=/var/lib/mysql
BackupDataDir=/var/lib/backup
DataMemory=100M

# one [MYSQLD] per storage node
# 2 Clientes MySQL
[MYSQLD]
#NodeId = 5
[MYSQLD]
#NodeId = 6

Após configurar os endereços IP dos servidores no arquivo de configuração config.ini é preciso iniciar o serviço de gerenciamento:

# ndb_mgmd

Comando para entrar no console de administração:

# ndb_mgm

Comando "SHOW" mostra os nós que estão conectados ao cluster:

ndb_mgm> show

Comando "HELP" para melhores informações:

ndb_mgm> help

Mas como ainda não possuímos outros nós, vamos criá-los.

    Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por fs.schmidt em 26/10/2010 - 12:15h:

Parabéns, exclente solução e artigo !


[2] Comentário enviado por bjnlima em 26/10/2010 - 14:30h:

Muito Bom seu artigo...

Mas tenho uma dúvida? O acesso ao banco se dará pelo servidor de Gerenciamento?

E se o servidor de Gerenciamento falhar, estiver down, como fica o acesso das aplicações que estão usando este acesso?

Mais uma vez parabéns...

Bruno Lima®


[3] Comentário enviado por andrecostall em 26/10/2010 - 16:28h:

Opa, muito obrigado Bruno !!!

As aplicações podem se conectar tanto no servidor 172.16.3.242 (BD2) como no servidor 172.16.3.243 (BD3). Mas se eles tentarem se conectar ao servidor que possui as ferramentas administrativas 172.16.3.241 (BD2) eles não conseguiram se conectar, ele somente faz o gerenciamento do Cluster.
Caso um nó do cluster não esteja "up" isso não será um problema para a aplicação, uma vez que os outros nós funcionaram de forma independente. Quando um nó estiver "down" e quando subir o serviço NDBD ele irá procurar as informações perdidas e tentará sincronizar os dados.

Há, tem uma ferramenta chamada "MySQLProxy" esse serviço faz o balanceamento de carga, você pode instalar no Servidor de Gerenciamento, ai as aplicações podem se conectar apenas no Servidor de Gerenciamento, com esse serviço você terá uma solução completa de balanceamento de carga, tolerância a falhas e replicação dos dados por meio do cluster.

Bom cara é isso, espero ter tirado sua dúvida.

Qualquer coisa me add no msn andreclsilva@hotmail.com.

Abraços


[4] Comentário enviado por snails em 14/11/2010 - 17:51h:

Bom artigo....

To pensando já aonde posso aplica essa solução..rsrsrsrs...

Referente a pergunta do bjnl eu entendi a duvida.....alias...como vão gerenciar os nodos, se o gerenciador estiver off.....

Bem, pelo que parece, o gerenciador que faz o sync dos bancos..... então caso ele esteja off, vc apenas perde o sync dos bancos de dados....
Uma solução robusta e phoderosa para usar com esse sistema seria o heartbeat com sync de sistemas. Foi postado um tuto sobre ele aqui no VOL....

Poderia ser feito um heartbeat do gerenciador com o MysqlProxy e alguns nodos do cluster..isso tbm garantiria 99,9% de osciosidade nos seus sstemas DB.

Vai ae a dica !!!

Flw


[5] Comentário enviado por wasleyalmeida em 03/05/2013 - 09:02h:

Bom dia amigo,

Desculpe minha ignorância, consigo utilizar essa tecnologia possuindo apenas dois servidores, ou seja

Servidor 1: rodaria o NDBD (node 1) e rodaria tb o MGM
Servidor 2: rodaria o NDBD (node 2) e receberia as replicações do node 2.

Deseja agradeço



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.