Cluster MySQL en ubuntu con VirtualBox
Primero que todo se utilizan tres maquinas ubuntu (un nodo de administracion y dos nodos de datos) virtualizadas con VirtualBox, luego se ponen en red y se crea el cluster.
- Se crea una máquina virtual con ubuntu 8.10 según mi caso, se le instala mysql-server-5.0 con apt que al tiempo de este post era el último que soporta cluster.
$ sudo apt-get install mysql-server-5.0
- Después de tener la maquina virtual con mysql server, se procede a clonar las otras dos para completar las tres:
$ vboxmanage clonevdi Master.vdi node1.vdi $ vboxmanage clonevdi Master.vdi node2.vdi $ vboxmanage clonevdi Master.vdi mgmt.vdi
- Para este paso las dos maquinas virtuales deben estar creadas sin disco para añadirles los discos clonados anteriormente:
$ vboxmanage modifyvm Node1 -hda node1.vdi $ vboxmanage modifyvm Node2 -hda node2.vdi $ vboxmanage modifyvm Mgmt -hda mgmt.vdi
- Se crea la red interna para que las máquinas virtuales se comuniquen entre sí pero no podŕan ver al host.
$ vboxmanage modifyvm Node1 -nic1 intnet $ vboxmanage modifyvm Node1 -intnet1 testnet $ vboxmanage modifyvm Node2 -nic1 intnet $ vboxmanage modifyvm Node2 -intnet1 testnet $ vboxmanage modifyvm Mgmt -nic1 intnet $ vboxmanage modifyvm Mgmt -intnet1 testnet
- Por último se configuran las interfaces de red de las virtuales dentro de la misma red y usando como puerta de enlace la ip del host.
- Luego entramos en la máquina que va a ser el nodo de administración y tecleamo su – para quedar como root y evitar teclear sudo en cada comando.
- CONFIGURANDO EL NODO DE ADMINISTRACIÓN.
- Crear el texto a continuación en el archivo /etc/mysql/ndb_mgmd.cnf
[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.1.5 # Section for the storage nodes [NDBD] # IP address of the first storage node HostName=192.168.1.6 DataDir=/var/lib/mysql-cluster BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=512M [NDBD] # IP address of the second storage node HostName=192.168.1.7 DataDir=/var/lib/mysql-cluster BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=512M # one [MYSQLD] per storage node [MYSQLD] [MYSQLD]
$ mkdir /var/lib/mysql-cluster/backup $ chown -R mysql:mysql /var/lib/mysql-cluster
[mysqld] ndbcluster # IP address of the cluster management node ndb-connectstring=192.168.1.5
- Luego en el mismo archivo buscar por [MYSQL_CLUSTER] y añadir el texto siguiente:
[MYSQL_CLUSTER] ndb-connectstring=192.168.1.5
- Realizar estas configuraciones en los dos nodos de datos.
- Luego en el nodo de administración se inicia el servicio.
/etc/init.d/mysql-ndb-mgm restart
- Luego se accede a la consola de administración con el comando ndb_mgm.
- En el prompt teclear show; y debe mostrar algo como lo siguiente.
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)
- Luego iniciar el servicio en los nodos de datos.
/etc/init.d/mysql restart /etc/init.d/mysql-ndb restart
- Y de vuelta en el nodo de administración el comando show; debe mostrar algo como:
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)
- Luego para pruebas, se crea la misma base de datos en ambos nodos de datos, pero se crea la tabla solo en uno y se verifica que desde los dos nodos se vean los datos de las tablas creadas en cluster.
mysql> create database clustertest; Query OK, 1 row affected (0.00 sec) mysql> use clustertest; Database changed mysql> create table test (i int) engine=ndbcluster; Query OK, 0 rows affected (0.71 sec) mysql> insert into test values (1); Query OK, 1 row affected (0.05 sec) mysql> select * from test; +------+ | i | +------+ | 1 | +------+ 1 row in set (0.03 sec)

[...] http://aguerrerotoro.wordpress.com/2009/03/26/cluster-mysql-en-ubuntu-con-virtualbox/ [...]
Cluster MySQL en ubuntu con VirtualBox - DbRunas said this on March 26, 2009 at 6:48 pm |
No me ha funcionado el mensaje con show siempre es igual nunca se conectan los otros nodos
Debe validar la cantidad de nodos conectados como en este ejemplo que dice “[ndbd(NDB)] 2 node(s)” ya que en los mensajes posteriores dice que no estan conectados, también debe intentar ingresar un registro en un nodo y validar si lo ingresa también en el otro nodo.
Una pregunta que puede ser si en el administrador se ve la tabla y en el nodo no???, ya me aparecieron los @ en el ndb_mgm segun ya estan conectados…
gracias me funciono
con algunos servicios pero resulto que era las asignaciones de ip’s
muy bueno el tutorial
siga publicando
y colaborando