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

7 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 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

  5. 5 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

  6. 6 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


  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

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s




Coobox Blog Stats

  • 474,218 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

LinkedIn profile

Facebook profile

Technorati profile

Add to Technorati Favorites

Blogtoplist profile

Votami su Diggita.it

MyBlogLog profile

Join My Community at MyBloglog!
Il Bloggatore
directory blog
Blogitalia
Sfondi Desktop

Coobox Flickr Photos

Frama & Giusy

Ilaria Invernizzi (iPhone)

Motorway A4 Brescia, sunset

Vimodrone, sunset (iPhone)

More Photos

Licenza Coobox Blog

Questo blog è pubblicato sotto una Licenza Creative Commons.


Iscriviti

Get every new post delivered to your Inbox.