>_Mysql-cluster + haproxy no Centos 5 – 1.1

MYSQL-CLUSTER – HOW-TO

O que é Mysql-Cluster?

• O MySQL Cluster é uma tecnologia de bancos de dados que mantém os dados em memória, e que tem como base não compartilhar recursos entre processos (shared nothing);

• Quando se diz que os componentes do Cluster não compartilham nada, significa dizer que cada processo possui seus próprios discos, memória, processador e não utilizam nenhuma estratégia de armazenamento compartilhado de dados: – SAN, NFS, servidores de arquivos e etc;

• Em sua arquitetura, o MySQL Cluster apresenta basicamente 3 tipos de componentes:

Management Nodes: estes são os nós ou nodos que são utilizados pelos administradores de bancos de dados para desempenhar tarefas de gerenciamento do MySQL Cluster;

Data ou Storage Node: este tipo de nó é responsável por armazenar e processar dados, com uma série de outros componentes que veremos mais à frente;

SQL ou API Node: nós responsáveis por fazer interface com o meio externo, recebendo todas as consultas SQL e enviando requisições para os Data Nodes;

Passo inicial

• O passo inicial é a criação do arquivo de configuração global para que os componentes o leia e inicie o Cluster;

• Tais arquivos podem ser globais ou locais, de maneira que configurações gerais são colocadas nas seções do arquivo globais e especificas, nos arquivos locais;

• O primeiro passo é a criação do arquivo global (chamado por convenção de config.ini) o qual será lido por todas os componentes do cluster via rede para que estes se unam em um mesmo processamento distribuído;

• Perceba que, ao tratarmos dos Data Nodes, Management Nodes e SQL Nodes, utilizamos os nomes de seus binários, ndbd ou ndbmtd, ndb_mgmd e sql, que é o mysqld, respectivamente;

• Um arquivo de configuração global, para controle da configuração do MySQL Cluster, conta com a seguinte estrutura de seções (mais comuns):

[ndb_mgmd] – mgm nodes
[ndbd default] – global p/ data nodes
[ndbd] – específico p/ data nodes
[mysqld] – espacífico p/ sql nodes
[api] -sql nodes ou cluster APIs

• Durante o funcionamento do MySQL Cluster, cada nó atuará como um “árbitro”, enviando pequenos “pings” para verificar se todos os nós estão respondendo – Heartbeat;

• Um nó será considerado como morto após a perda de três pings, também conhecidos como heartbeats. Tais pings são configurados através das seguintes variáveis:

HeartbeatIntervalDbDb: o tempo entre o envio de pings entre os Data Nodes;
HeartbeatIntervalDbApi: o tempo entre o envio de pings entre Data Nodes e SQL Nodes;

• A configuração dos Data Nodes se dá dentro de grupos e a variável NoOfReplicas define a quantidade de grupos que existirá dentro do Cluster e também a quantidade de partições de dados;

• Se NoOfReplicas for configurado com o número 2 e teremos 2 Data Nodes no Cluster, teremos 2 grupos de Data Nodes. Em caso de falha, pelo menos 50% dos nós em cada grupo deverá estar “vivo” para que o Cluster não desista da operação;

Recursos de Tecnologia que será utilizado neste how-to

6 máquinas virtuais rodando Sistema Operacional Centos na versão 5.8;
Heartbeat 2.1;
Haproxy 1.4.19;

Servidores:

1. mgm-1 eth0 → 192.168.50.1 (MGM) – mgm-1 eth1 → 10.20.0.1(MGM)
2. mgm-2 eth0 → 192.168.50.11(MGM) – mgm-2 eth1 → 10.20.0.2(MGM)
3. ndb-1 → 192.168.50.12(NDB)
4. ndb-2 → 192.168.50.13(NDB)
5. sql-1 → 192.168.50.14(SQL)
6. sql-2 → 192.16850.15(SQL)

DOWNLOADS DOS PACOTES

PASSO 1 – No servidor mgm-1 crie o /opt/pacotes, e em seguida faça o download dos pacotes necessários para o Cluster

[root@mgm-1 pacotes]# mkdir -p /opt/pacotes

ftp://mirror.switch.ch/pool/1/mirror/mysql/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-shared-compat-7.1.15-1.rhel5.i386.rpm

ftp://mirror.switch.ch/pool/1/mirror/mysql/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-server-7.1.15-1.rhel5.i386.rpm

ftp://mirror.switch.ch/pool/1/mirror/mysql/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-client-7.1.15-1.rhel5.i386.rpm

ftp://mirror.switch.ch/pool/1/mirror/mysql/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-tools-7.1.15-1.rhel5.i386.rpm

ftp://mirror.switch.ch/pool/1/mirror/mysql/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-storage-7.1.15-1.rhel5.i386.rpm

ftp://mirror.switch.ch/pool/1/mirror/mysql/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-management-7.1.15-1.rhel5.i386.rpm

PASSO 2 – Neste passo, instale o pacote Heartbeat no servidores mgm-1 e mgm-2

# yum install heartbeat

Passo 3 – Copie o diretório /opt/pacotes para os outros servidores

[root@mgm-1 pacotes]# for server in 11 12 13 14 15 ; do scp -r /opt/pacotes/ root@192.168.50.$server:/opt/ ; done

PASSO 4 – Ainda no servidor mgm-1, edite o arquivo /etc/hosts conforme o exemplo abaixo:

[root@mgm-1 ha.d]# vim /etc/hosts
192.168.50.10   mgm-1.local     mgm-1
192.168.50.11   mgm-2.local     mgm-2
192.168.50.12   ndb-1.local     ndb-1
192.168.50.13   ndb-2.local     ndb-2
192.168.50.14   sql-1.local     sql-1
192.168.50.15   sql-2.local     sql-2

PASSO 5 – Copie o arquivo /etc/hosts para os outros servidores do Cluster

[root@mgm-1 ha.d]# for server in 11 12 13 14 15 ; do scp -r /etc/hosts root@192.168.50.$server:/etc/ ; done

Continua na parte 2

>_Mysql-cluster + haproxy no Centos 5 – 1.1
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: