INTRODUCCIÓN
En este reporte
hablaremos de los pasos necesarios para realizar una práctica, como su nombre
lo dice, acerca del clúster. Pero antes que nada tenemos que tener claro a que
se refiere el término clúster
MySQL Clúster (del inglés cluster,
"grupo" o "racimo"), es una tecnología que permite el clustering de bases
de datos en memoria en un ambiente de no compartición. La arquitectura de
no compartición permite que el sistema gestor de base de datos (SGBD) funcione utilizando
hardware no muy costoso y con requerimientos mínimos tanto de software como
de hardware.
Como todo sistema de clustering,
está diseñado para no tener un sólo punto de falla, cada componente tiene su
propia porción de disco y memoria para trabajar y se aplica
a los conjuntos o conglomerados de computadoras construidas mediante la
utilización de hardware común y que se comportan como si fueran una única
computadora.
DESARROLLO
Materiales:
Para esta práctica
vamos a utilizar:
·
4 computadoras
·
1 router
·
Software mysql-cluster
·
Software mysql
Configuración general:
Los pasos que a
continuación se mencionan, las realizan tanto el nodo administrador como en los
nodos de datos.
De la pagina http://dev.mysql.com/downloads/cluster/,
descargamos el mysql-cluster-gpl-noinstall-7.1.34-win32 (para equipos de 32
bits) y el mysql-cluster-gpl-noinstall-7.1.34-win64 (para equipos de 64 bits).
Una vez realizado lo
anterior procedemos a:
Ø Desactivar
los servicios del Firewall y Antivirus.
Ø Creamos
una red entre las 4 computadoras.
Ø Establecemos
las direcciones IP (fijas) y verificamos que exista conexión entre ellas.
ü Nodo
administrador à
192.168.1.50
ü Nodo
de datos A à
192.168.1.51
ü Nodo
de datos B à
192.168.1.52
ü Nodo
de datos C à
192.168.1.53
NOTA:
Nodo de administración (Nodo
MGM)
Este tipo de nodo
cumple con la función de manejar, controlar y coordinar los otros nodos dentro
del clúster. Implementa funciones de configuración de datos, Iniciar o detener
otros nodos dentro del clúster, ejecutar respaldos, u otras tareas administrativas.
Debido a que controla y configura el resto de los nodos, debe iniciarse antes
que cualquier otro tipo de nodos utilizando el comando ndb_mgmd.
Nodo de datos
Este tipo de
nodo almacena los datos. La cantidad de nodos de este tipo dentro del
clúster es igual a la cantidad de réplicas por la cantidad de fragmentos. Es
decir, si se manejan 4 réplicas de los datos con 2 fragmentos, se necesitarían
8 nodos de datos. No es necesario manejar más de una réplica. Este tipo de nodo
se levanta utilizando el comando ndbd.
Ø El siguiente paso es Detener el servicio de
MySQL56 en Servicios:
Ø Ahora
descomprimimos el archivo .zip que descargamos de la página mencionada
anteriormente (en el disco local C y lo renombramos como mysql).
ü my_cluster
Ø Dentro
de la carpeta my_cluster creamos
tres carpetas con los siguientes nombres:
ü conf
ü mysqld_data
ü ndb_data
Ø Y
en la carpeta mysqld_data creamos
dos carpetas con los siguientes nombres:
ü mysql
ü ndbinfo
Nodo administrador:
v Dentro
de la carpeta conf creamos un archivo al cual llamamos config con la extensión .ini,
dicho documento contendrá lo siguiente:
Los nodos de datos se
definen bajo el bloque [ndbd], se debe definir también un Id para cada uno de
los nodos.
Nota:
En config.ini se
agregan los bloques [mysqld] dependiendo del número de nodos sql que se quieran
levantar.
v Ahora procedemos a levantar el nodo
administrador, para lo cual abrimos una terminal cmd como administrador y escribimos los siguientes comandos:
v Ejecutamos y nos aparece la siguiente línea:
v Si
nos aparece la línea antes mencionada dejamos la ventana del cmd abierta y abrimos
otra ventana cmd (ejecutándola como administrador) y escribimos los siguientes comandos:
v Por
el momento dejamos el nodo administrador y seguimos con los nodos de datos.
Nodo de datos:
MySQLD necesita la
base de datos de Mysql con la configuración esencial de datos por lo cual
procederemos a instalar la base de datos.
v Abrimos una terminal cmd como administrador y escribimos los siguientes comandos:
Nota: Esta instrucción copiara 69 archivos:
v Dentro de la misma terminal escribimos el
siguiente comando:
Nota: Esta instrucción copiara 46 archivos:
v Realizado lo anterior, en la carpeta conf que
está en my_cluster creamos un
archivo con el nombre my con la extensión
.cnf, dicho documento contendrá lo
siguiente:
Nota: el número de port cambiara según el número
de nodo de datos.
Nodo
de datos B:
Nodo
de datos C:
v Realizado lo anterior procedemos a conectar los
nodos de datos con el nodo administrador
mediante el siguiente comando (en la misma terminal cmd):
Nota: solo se
muestran imágenes de un nodo a manera de ejemplo, pero los demás nodos se
configuran de la misma manera.
Como se puede observar la conexión ha sido exitosa, cabe
señalar que en la conexión de los nodos de datos cambiara el nodeid=?.
v Por el momento dejamos la pantalla de nodo de
datos (sin cerrarla).
Nodo administrador:
v Regresando
al nodo administrador volvemos a ingresar el comando show en la consola cmd del
nodo administrador, y como podemos ver ya tenemos los 3 nodos de datos
conectados.
v Desde el nodo de datos se procede a levantar
el api.
Nodo de datos:
v Abrimos una nueva consola mcd (como administrador) y escribimos
los siguientes comandos para levantar el api de los nodos de datos:
v Con
los pasos anteriores quedan levantados los nodos.
Nodo
administrador:
v Realizado lo anterior nuevamente ingresamos show en el nodo administrador para verificar
que han sido levantadas las apis.
Con
todos los pasos mencionados anteriormente el cluster de MySQL a quedado
configurado correctamente, y solo resta hacer las pruebas pertinentes para ver
su funcionamiento.
PRUEBAS
v En todos los nodos de datos hay que inicializar
el MySQL, para esto se abre una nueva consola cmd en los nodos de datos y
escribimos los siguientes comandos:
v Con el paso anterior se ha iniciado
correctamente MySQL
v Con el comando show databases verificamos las bases de datos que contiene MySQL:
v Ahora
vamos a crear una base de datos que llamaremos “cluster” con el comando create database ejemplo;
v Verificamos
que se halla creado la base de datos con el comando show databases
v Ahora ponemos en uso la base de datos con el
comando use cluster; y mediante el
comando show tables; podemos ver las
tablas que contiene nuestra base de datos:
v Con
el comando select * from cluster; podemos
visualizar los datos ingresados por otro nodo:
Con
la realización del clúster cualquier nodo de datos que esté conectado podrá ver
las bases de datos, crearlas, eliminarlas; además eliminar y modificar las
tablas, así como introducir datos a las tablas, eliminar datos, etc., los
cuales se verán reflejados en los demás nodos del clúster.
CONCLUSIONES
MySQL Clúster es una base de datos de alta disponibilidad usando una arquitectura basada en no compartir nada y una interfaz SQL estándar.
MySQL Clúster es tolerante a fallos de varios de los nodos de almacenamiento
y se reconfigura en el aire para enmascarar los fallos. Las capacidades de auto
curación, como distribución de los datos y particionamiento de la aplicación,
dan como resultado un simple modelo de programación que permite a los
desarrolladores incluir fácilmente en sus aplicaciones sin código complejos de
bajo nivel.
Al realizar este
proyecto adquirimos nuevos conocimientos y situamos los que ya teníamos para
realizarla, lo difícil de este proyecto fue levantar los nodos puesto que por
momentos fallaba la conexión y por lo tanto
tuvimos algunos problemas con las computadoras.
Como lo hicimos en
los proyectos anteriores, trabajamos en equipo lo cual es una combinación de comunicación,
coordinación y el equilibrio de los aportes de cada miembro. Hay diversas
ventajas de usar el trabajo en equipo. Estos beneficios incluyen la velocidad,
la satisfacción, el apoyo, la eficiencia, la innovación, la unidad y la
creatividad.
Además, estos
beneficios del trabajo en equipo pueden ayudar a alcanzar y lograr los
objetivos con mayor eficacia. Y gracias a ello logramos el objetivo principal
que es la realización del clúster.
FUENTES DE INFORMACIÓN
Ø MySQL. (2015). Capítulo 18 MySQL Cluster NDB 7.3 y
MySQL Cluster NDB 7.4. 10 de Junio de 2015, de ORACLE Sitio web: http://dev.mysql.com/doc/en/mysql-cluster.html
Ø Desconocido. (2014). MySQL Cluster. 10 de Junio de
2015, de WIKIPEDIA Sitio web: http://es.wikipedia.org/wiki/MySQL_Cluster
Ø Miguel Ángel Nieto. (2012). Introducción a MySQL
Cluster . 10 de Junio de 2015, de Atom Feed Sitio web:
http://miguelangelnieto.net/?action=view&url=introducci%C3%B3n-a-mysql-cluster


























