Como criar um Cluster Mysql para 2 Servidores (são necessários 3 na realidade)

Fev 26, 2010 por Nuno Figueiredo    Sem Comentários    Categoria: Tutoriais




Este tutorial servirá para criar um cluster de forma a que seja possível fazer um balanço de carga dos dados servidos, será necessário um terceiro servidor que após a configuração pode ser desligado, não é recomendável fazer isso, não é possível apenas com os dois servidores ter uma verdadeira redundancia.

Para ser possível desligar um dos servidores do Cluster é necessário que o servidor de gestão esteja a correr.

Vamos então ver os 3 servidores:

mysql1.dominio.com     192.168.0.1

mysql2.dominio.com     192.168.0.2

mysql3.dominio.com     192.168.0.3

O servidor 1 e 2 serão os que acabarão a servir o cluster, enquanto que o terceiro irá fazer a gestão do nó, não requer a instalação do Mysql e apenas algumas pequenas alterações serão efectuadas (geralmente utiliza-se uma máquina que já se encontra em produção a fazer outras tarefas).

Passo 1 – Instalar o Mysql em ambas as máquinas do cluster para isso serão necessários os seguintes comandos em ambas as máquinas do cluster.

cd /usr/local/
http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/
 from/http://www.signal42.com/mirrors/mysql/
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql
cd mysql
scripts/mysql_install_db –user=mysql
chown -R root  .
chown -R mysql data
chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig –add mysql.server~

Não inicie o mysql.

Passo 2 – Instalar e configurar a máquina de gestão do Cluster.

Para isso irá necessitar dos ficheiros que se encontram em /bin no directório do Mysql: ndb_mgm e ndb_mgmd poderá ir buscar estes ficheiros ao mysql-max basta descarregar o mesmo.

De seguida terá que executar os seguintes comandos:

mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/
 from/http://www.signal42.com/mirrors/mysql/
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
cd mysql-max-4.1.9-pc-linux-gnu-i686
mv bin/ndb_mgm .
mv bin/ndb_mgmd .
chmod +x ndb_mg*
mv ndb_mg* /usr/bin/
cd
rm -rf /usr/src/mysql-mgm

Terá que configurar o ficheiro de configuração para a gestão:

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi (ou qualquer outro editor) config.ini

Agora, altere o que é apresentado:

[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.3  # O IP do servidor actual de gestao
# Storage Engines
[NDBD]
HostName=192.168.0.1  # O IP do primeiro servidor
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2  # O IP do segundo servidor
DataDir=/var/lib/mysql-cluster
# 2 Clientes MySQL
[MYSQLD]
[MYSQLD]

Agora inicie o servidor de gestão mysql:

ndb_mgmd

Este é o servidor de gestão e não a consola de gestão, logo de momento não espere nenhum tipo de output. (Já voltamos a isso)

Passo 3 – Configurar as directorias da informação e iniciar o mysql.

Em ambos os servidores do cluster terá que alterar o seguinte: (Alterando o que for necessário para se adaptar)

nano /etc/my.cnf

Insira as seguintes linhas em ambos os servidores alterando os endereços IP para o IP do servidor de gestão que configurou no passo 2.

[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3 # O IP do servidor de gestão
[mysql_cluster]
ndb-connectstring=192.168.0.3 # O IP do servidor de gestão

Agora criamos a directoria da informação e iniciamos o motor de dados:

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
/usr/local/mysql/bin/ndbd –initial
/etc/rc.d/init.d/mysql.server start

Repita exactamente o mesmo passo para o segundo servidor do cluster.

Nota: deverá usar –initial apenas se está a fazer este procedimento de raiz ou se ouve alguma alteração ao ficheiro config.ini no servidor de gestão.

Passo 4 – Verificar se tudo está a funcionar.

Agora poderá aceder ao servidor de gestão do cluster para ver o que está a acontecer.

/usr/local/mysql/bin/nbd_mgm

Insira o comando SHOW para perceber o que está a acontecer, deverá visualizar ambos os servidores com o respectivo id caso ele se tenha ligado é altura de aceder a um dos servidores e fazer:

mysql
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest

O comportamento esperado é que a mesma informação seja visível no outro servidor, o derradeiro teste será desligar um dos servidor e verificar se a informação continua disponível.

Partilhe com a Comunidade:
  • del.icio.us
  • Digg
  • PDF
  • Rec6
  • StumbleUpon
  • Twitter


Outros artigos de interesse:

Deixe-nos o seu comentário!

XHTML: Pode usar as seguintes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>