Reporte cluster

17
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

Transcript of Reporte cluster

Page 1: Reporte cluster

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

Page 2: Reporte cluster

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

Page 3: Reporte cluster

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.

Page 4: Reporte cluster

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.

Page 5: Reporte cluster

Pág. 4

7. Posteriormente checamos si la conexión es correcta haciendo un ping entre

las máquinas.

Page 6: Reporte cluster

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.

Page 7: Reporte cluster

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.

Page 8: Reporte 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

Page 9: Reporte cluster

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]

Page 10: Reporte cluster

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

Page 11: Reporte cluster

Pág. 10

Page 12: Reporte cluster

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

Page 13: Reporte cluster

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.

Page 14: Reporte cluster

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!

Page 15: Reporte cluster

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

Page 16: Reporte cluster

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.

Page 17: Reporte cluster

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.