Come creare un Cluster MySQL con Ubuntu


mysql cluster
Premetto che per creare un cluster “vero” con una ridondanza “vera” sono necessarie 3 macchine.

a) Nodo dati 1 — es.: IP 192.168.100.101
b) Nodo dati 2 — es.: IP 192.168.100.102
c) Nodo di Management dei 2 nodi — es.: IP 192.168.100.103

Installiamo MySQL su entrambi i nodi dati con il comando:

# sudo apt-get install mysql-server

Durante il setup vi verrà chiesto di inserire la password di root del database. (Importante non perderla)

Passiamo ora ad installare e configurare il Nodo di Management.

Creiamo il seguente file /etc/mysql/ndb_mgmd.cnf con:

# sudo nano /etc/mysql/ndb_mgmd.cnf

e inserite al suo interno le seguenti lines:

[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]
# Section for the cluster management node
[NDB_MGMD]
# IP address of the management node (this system)
HostName=192.168.100.103

# Section for the storage nodes
[NDBD]
# IP address of the first storage node
HostName=192.168.100.101
DataDir=/var/lib/mysql-cluster
BackupDataDir=/var/lib/mysql-cluster/backup
DataMemory=512M
[NDBD]
# IP address of the second storage node
HostName=192.168.100.102
DataDir=/var/lib/mysql-cluster
BackupDataDir=/var/lib/mysql-cluster/backup
DataMemory=512M

# one [MYSQLD] per storage node
[MYSQLD]
[MYSQLD]

Passiamo ora a configurare i Nodi dati 1 e 2, quindi la seguente operazione va seguita su entrambi i nodi.

# sudo mkdir /var/lib/mysql-cluster/backup
# sudo chown -R mysql:mysql /var/lib/mysql-cluster

Modifichiamo il file di configurazione di MySQL

#sudo nano /etc/mysql/my.cnf

Inserite sotto la voce [mysqld] le seguenti lines:

[mysqld]
ndbcluster
# IP address del nodo di management
ndb-connectstring=192.168.100.103

cercate la voce [MYSQL_CLUSTER] dovrebbe essere preceduta da un # che lo commenta, rimuovete il # per avere 2 lines come segue:

[MYSQL_CLUSTER]
ndb-connectstring=192.168.100.103 # IP address del nodo di management

Perfetto, vi ricordo che la procedura appena spiegata va eseguita su entrambi i nodi.

Ora passiamo di nuovo al Nodo di management ed eseguite il seguente comando:

# sudo /etc/init.d/mysql-ndb-mgm restart
# sudo /etc/init.d/mysql restart

digitate:

# ndb_mgm

e date il comando:

#show

dovreste vedere qualcosa di questo tipo:
ndb_mgm> show;
Connected to Management Server at: localhost:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 192.168.1.6)
id=3 (not connected, accepting connect from 192.168.1.7)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.5 (Version: 5.0.51)

[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)

Significa che il Nodo manager non è ancora in grado di collegarsi ai nodi.

Tornate ai nodi e date su entrambi:

# sudo /etc/init.d/mysql restart
# sudo /etc/init.d/mysql-ndb restart

Bene, ora ritornate sul Nodo di management e ridate il comando “show” , il risultato dovrebbe essere il seguente:

ndb_mgm> show;
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.6 (Version: 5.0.51, Nodegroup: 0, Master)
id=3 @192.168.1.7 (Version: 5.0.51, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.5 (Version: 5.0.51)
[mysqld(API)] 2 node(s)
id=4 @192.168.1.7 (Version: 5.0.51)
id=5 @192.168.1.6 (Version: 5.0.51)

Perfetto il CLUSTER è OK e funzionante.

Rigrazio il fantastico Blog di Bieg per le informazioni necessarie per questa guida.
Di base mi sono limitato a tradurla per chi ha difficoltà con l’inglese.

Fonte: Bieg Blog

About these ads

9 Risposte a “Come creare un Cluster MySQL con Ubuntu”


  1. 1 manuel 2 marzo 2010 alle 08:34

    Installando mysql-server il comando /etc/init.d/mysql-ndb-mgm restart non esiste dato che il management non è installato…. è un mio problema o questa guida è errata?

  2. 2 stefano 3 marzo 2010 alle 11:05

    In questa guida manca qualcosa…il nodo SQL qual’è? Seguendo la guida si ottengono due database che si replicano in realtime ( e qui va tutto bene, anzi perfetto ) ma la domanda è…

    Se io assumo di aver un server di front-end a che indirizzo ip devo “puntarlo”?

    Se lo punto al 192.168.1.6 e questo cade io so che esiste il db sul 192.168.1.7 ma in ogni caso dovrei andare a mano sul server di front-end a ripuntare il db-server..mi sembra strano che in un’architettura cluster non esista l’ip di cluster ovvero l’ip “pubblico” che si occupa poi di inoltrare le richieste al server db online…di sicuro l’mgm non è perchè questi controlla l’architettura cluster ma non è in grado di fungere da ruolo di Nodo SQL, io vedo che alla fine esistono due Nodi SQL 192.168.1.6/7 ma essi combaciano con i db…boh

  3. 3 Luigi Molinaro 3 marzo 2010 alle 17:05

    Alla fine è stato verificato questo post ? Funziona ?
    Ciao e grazie
    Luigi

  4. 4 Giuseppe 8 marzo 2010 alle 16:42

    Ciao a tutti, credo di aver capito il problema!
    Il post originale, di cui questo è una traduzione (http://bieg.wordpress.com/2008/08/03/mysql-clustering-ubuntu/) indica chiaramente le versioni di Ubuntu (8.04.1) e di MySQL (5.0.51).
    Dunque, ho scaricato a mano le versioni giuste dei pacchetti da http://packages.ubuntu.com/ (ovvero quelle per Hardy), e finalmente, dopo una giornata di prove, mi ritrovo tutti i files necessari!

    Ciao,
    Giuseppe

  5. 5 Valerio 19 maggio 2010 alle 06:57

    Ciao,
    ti sei dimenticato di dire che mysql server va installato su tutti e tre i nodi e non solo su quelli dati (se andate sulla guida originale infatti si parla di 3 nodi) il resto è perfetto. grazie e ciao

  6. 6 luciano 22 agosto 2011 alle 21:37

    Non può funzionare. Con apt-get install mysql-server non vengono insallati i tool per il clustering. Che pacchetti devo installare? Non trovo altre guide e con apt-cache search non trovo!

    PS: uso debian squeeze

  7. 7 Shikky 20 maggio 2012 alle 13:00

    guarda che cosi il sistema è tutto tranne che sicuro. Se muore il server di gestioen cluster “sei del gatto”. Ce ne vuole uno pronto a subentrare.
    Discorso “ip di connessione” bisogna aggiungere un round robin dns IMHO

  8. 8 autoblog 11 maggio 2013 alle 01:22

    Attractive section of content. I just stumbled upon your website and in
    accession capital to assert that I acquire in fact enjoyed account your blog posts.
    Any way I will be subscribing to your feeds and even
    I achievement you access consistently rapidly.


  1. 1 Notizie dai blog su Oracle annuncia MySQL Cluster 7.1 Trackback su 14 aprile 2010 alle 09:46

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Connessione a %s...




Coobox Blog Stats

  • 517,671 hits

Utenti connessi attualmente

website stats

Cerca in Coobox Blog

Calendario Articoli

gennaio: 2010
L M M G V S D
« dic   mag »
 123
45678910
11121314151617
18192021222324
25262728293031

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

%d bloggers like this: