reporte cluster
TRANSCRIPT
MYSQL CLUSTER
Integrantes del equipo: Casimir Helene
Espinosa Chamorro S. Daniela
González Ruiz Beny Román
Jiménez Rosas Antonio Hazael
Ing. Arrieta Zuñiga Juan Alejandro
Junio-2015
Administración Bases de Datos
Instituto Tecnológico de Pachuca
eadadministrativa.itpachuca.edu.mx
Carretera México-Pachuca Km. 87.5
Colonia Venta Prieta, Pachuca de Soto, Hidalgo. C.P. 42080
Teléfonos: (01)771713140,(01)7717113140, 7111203 Extensión 103
Pág. 1
Contenido Para comenzar… ¿Qué es un clúster? ........................................................................................2
Conceptos principales de un clúster MySQL ...........................................................................2
¿Cuáles son los pasos para hacer un clúster de MySQL? ........................................................3
Configuración de todos los nodos .................................................................................................5
Configuración del nodo Administrador. ........................................................................................8
Configuración de los 3 nodos de datos. .....................................................................................11
Pruebas del Cluster MySQL ........................................................................................................15
CONLCUSION ...............................................................................................................................16
Pág. 2
Para comenzar… ¿Qué es un clúster? El término clúster se aplica a los conjuntos o conglomerados de computadoras
unidos entre sí normalmente por una red de alta velocidad y que se comportan como
si fuesen una única computadora.
La tecnología de clústeres ha evolucionado en apoyo de actividades que van desde
aplicaciones de supe cómputo y software para aplicaciones críticas, servidores web
y comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.
En este caso requerimos un clúster para base de datos y para esto es necesario un
complemento de MySQL, que es el SGBD con el que estamos trabajando, además
de que es con el que estamos familiarizados.
MySQL Clúster
MySQL Clúster es una versión de alta disponibilidad, alta redundancia de MySQL
adaptada para el entorno de computación distribuida.
MySQL clúster 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. Bajo
este esquema no se recomienda el uso de mecanismos de almacenamiento
compartido como carpetas compartidas por red, sistemas de archivos de red, etc.
Los sistemas en los que está disponible son Linux, Solaris y Windows.
Conceptos principales de un clúster MySQL Mecanismo de almacenamiento NDB: Utiliza un mecanismo de almacenamiento
en memoria que ofrece alta disponibilidad y persistencia de datos. Es altamente
configurable ofreciendo un gran número de opciones para manejar el balanceo de
carga y la tolerancia a fallos.
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.
Pág. 3
¿Cuáles son los pasos para hacer un clúster de MySQL? Antes que nada tenemos que tener el complemento necesario ya mencionando,
para realizar esta práctica.
1. Como ya se mencionó se debe descargar MySQL Clúster de la página oficial
http://mysql.com/downloads/cluster/. Una vez que estemos en la página
descargamos de acuerdo a nuestro sistema operativo. (En este caso
usaremos la versión 7.1.34 para computadoras de 64 bits).
En esta práctica usaremos 4 computadoras, 3 de ellas corriendo el sistema
operativo Windows 8.1 y la otra con Windows 7.
2. Establecer una conexión de red entre las 4 máquinas.
3. Establecer también direcciones IP fijas para cada una de las máquinas.
192.168.1.30 (Administrador “Daniela”)
192.168.1.31 (Nodo de datos “Hazael”)
192.168.1.32 (Nodo de datos “Beny”)
192.168.1.33 (Nodo de datos “Helene”)
4. También debemos utilizar una máscara de subred, que puede ser
configurada o utilizar las que nos da por defecto.
5. Y la puerta de enlace, que cabe aclarar no es necesaria pero en esta ocasión
usamos la 192.168.1.1
6. Como siguiente paso debemos desactivar Firewall, Antivirus y el servicio de
MySQL (en servicios locales) en todas nuestras computadoras.
Pág. 4
7. Posteriormente checamos si la conexión es correcta haciendo un ping entre
las máquinas.
Pág. 5
Configuración de todos los nodos En este punto, la configuración de todos los nodos (Administrador y nodos de datos)
es la misma.
Una vez que tenemos el archivo comprimido de nombre: mysql-cluster-gpl-noinstall-
7.1.34-winx64.zip, lo descomprimimos en la raíz C:\. Para posteriormente renombrar
la carpeta resultante como mysql.
Pág. 6
Esta carpeta contiene todos los archivos necesarios para correr el clúster. (En
esta versión tenemos 17 archivos en total).
Hecho lo anterior, tenemos que hacer una carpeta en el disco local C:\ que
llamaremos my_cluster.
Pág. 7
Y dentro de esta carpeta crearemos las siguientes carpetas.
conf
mysqld_data
ndb
Dentro de la carpeta mysqld_data crearemos otras dos subcarpetas
mysql
ndbinfo
Pág. 8
Configuración del nodo Administrador. En este punto, las instrucciones solo serán para la máquina que va a configurarse
como administrador del clúster.
Nodo administrador: Daniela
Como primer paso vamos a crear un archivo en block de notas que se llame
config.ini y lo guardaremos en la ruta C:\my_cluster\conf que ya hemos creado
anteriormente. Este archivo contiene lo siguiente:
[ndb_mgmd]
#opciones de procesos.
HostName=192.168.1.70
#se guardaran acá los logs de admon
DataDir=c:\my_cluster\ndb_data
Nodeid=1
[Ndbd default]
#número de replicas
NoOfReplicas=3
#DataDir=C:/mysql/bin/cluster-data
#DataMemory=80M
#IndexMemory=18M
[Ndbd]
HostName=192.168.1.71
#se guardaran acá los logs del nodo a
DataDir=c:\my_cluster\ndb_data
Nodeid=3
[Ndbd]
HostName=192.168.1.72
#se guardaran acá los logs del nodo b
DataDir=c:\my_cluster\ndb_data
Nodeid=4
[Ndbd]
HostName=192.168.1.73
#se guardaran acá los logs del nodo c
DataDir=c:\my_cluster\ndb_data
Nodeid=5
[Mysqld]
[Mysqld]
[Mysqld]
Pág. 9
Para diferenciar los nodos de datos estos se van a definir bajo el bloque [Ndbd],
definiendo casi los mismos parámetros que para el nodo administrador como lo son
el HostName y el Noteid.
En config.ini se agregan los bloques [mysqld] dependiendo del número de nodos sql
que se quieran levantar.
Una vez definido este archivo el archivo ini lo guardamos como todos los archivos y
procedemos a arrancar el nodo administrador.
Para lo cual debemos abrir una terminal de cmd (Ejecutándola como administrador)
y ejecutamos los siguientes comandos:
cd.. cd.. cd my_cluster /mysql/bin/ndb_mgmd -f conf/config.ini --initial --configdir=c:\my_cluster\conf\
Luego abrimos otra terminal y escribimos lo siguiente:
cd..
cd..
cd mysql
cd bin
ndb_mgm
show
Pág. 10
Pág. 11
Configuración de los 3 nodos de datos.
El mismo procedimiento que en el administrador se realiza en las tres
computadoras, cambiando únicamente ciertos valores como el puerto en el
contenido del archivo my.cnf y la forma en la cual se levantas las Apis. Cabe
mencionar también que cada ventana de cmd que vamos a utilizar será
ejecutada como administrador.
Primero y ya descompreso el archivo descargado, copiado y modificado el
nombre en disco local c:, vamos a mover algunos archivos necesarios en la
carpeta my_cluster con los siguientes comandos en la ventana de cmd:
copy c:\mysql\data\mysql my_cluster\mysqld_data\mysql
copy c:\mysql\data\ndbinfo my_cluster\mysqld_data\ndbinfo
Pág. 12
1).- Crear el archivo my.cnf en la ruta C:\my_cluster\conf con los siguientes datos
(en cada nodo el único valor que cambia es número de port=400x, se recomienda
utilizar los puertos con valor superior a 4000.
2).- Una vez establecidos esos parámetros en cada nodo, vamos a conectar cada
uno con el administrador con el siguiente comando en una nueva ventana de cmd
c:\mysql\bin\ndbd -c 192.168.1.65:1186
A este proceso de le conoce como levantamiento de Ángel:
En cada nodo podremos observar una pantalla como la de arriba variando el valor del
nodo, en el ejemplo anterior el número 4.
Pág. 13
3).- Ya que todos los nodos de datos mantengan la conexión con el administrador
es momento de levantar los nodos SQL, para ello a través de otra consola de cmd
nos posicionamos en la ruta my_cluster y escribimos el siguiente comando para
levantar las Apis:
c: /mysql/bin/mysqld --defaults-file=conf/my.cnf --console
¡Nodos levantados correctamente!
Pág. 14
3.1).- Ahora le corresponde al administrador verificar que este procedimiento ha
sido realizado exitosamente, para ello volvemos a escribir en la consola el
comando show:
En este momento ya tenemos finalizado el cluster en la plataforma de Windows,
solo es necesario realizar algunas pruebas para verificar que todo valla
correctamente.
NODOS LEVANTADOS
CORRECTAMENTE
Pág. 15
Pruebas del Cluster MySQL Primeramente hay que inicializar el MySQL en cada nodo, para ello se abre una nueva consola en los nodos de datos y escribir ubicados en la carpeta de mysql: mysql –u root –P400x
Nota: en cada nodo se coloca el número de puerto que se estableció en el archivo
my.cnf y de esta manera procederemos a crear una base de datos y diferentes tablas
y registros en ellas de manera habitual como en el entorno gráfico y verificamos que
estos datos se puedan visualizar en el resto de los nodos de datos.
Pág. 16
Y con esto solo faltara hacer las pruebas deseadas en la consola, utilizando el
lenguaje de mysql como normalmente se hace. Permitiendo con esto que los nodos
puedan visualizar en su maquinas las modificaciones, actualizaciones e ingreso de
datos que todos los nodos aplican sobre una base de datos especifica.
CONLCUSION En esta práctica comprendimos la importancia de los sistemas de información y sus
relaciones con las bases de datos. Con los cluster es mucho más sencillo compartir
información en un sistema informático, facilitando conexiones y programación.
Cabe aclarar que es de suma importancia escribir los comandos y archivos de
configuración de la manera correcta, ya que existe una distinción notable en los
comandos escritos con mayúsculas o minúsculas.
Finalmente concluimos que el cluster es de gran ayuda para balancear las tareas
en un sistema, ya que es flexible, además es económico y fácil de implementar.