Guia cluster

21
INTRODUCCIÓN En este documento se realiza con la intención de dar conocimiento S u b s e c r e t a r í a d e E d u c a c i ó n S u p e r i o r T E C N O L Ó G I C O N A C I O N A L D E M É X I C O I 2 0 1 5 , A ñ o d e l G e n e r a l í s i m o J o s é M a r í a M o r e l o s y P a v ó n I N G E N I E R Í A E N S I S T E M A S C A D M I N I S T R A C I Ó N B A S E D E P R E S E N T A N : NOMBRE NO. CONTROL: BENÍTEZ GASPAR EDUARDO 12200597 CABRERA CRUZ RICARDO LEVI 12200600 C A T E D R Á T I C O : I N 1 1 D E M A Y O D E L R E P O R T E C L U S T E R Carretera México-Pachuca Km. 87.5, Col. Venta Prieta, Pachuca, Hidalgo. C.P. 42080 A. P. 276, Tels. : (01 771) 7113073, 7113596, 7113140, 7115119, www.itpachuca.edu.mx 7115538 Fax (01771)7113399

Transcript of Guia cluster

Page 1: Guia cluster

INTRODUCCIÓN

En este documento se realiza con la intención de dar conocimiento del

proyecto realizado acerca de un clúster, realizado con MySQL

Clúster versión -7.1.34- .

CONCEPTOS

Subsecretaría de Educación SuperiorTECNOLÓGICO

NACIONAL

DE

MÉXICOInstituto Te

“2015, Año del Generalísimo José María Morelos y Pavón”

INGENIERÍA EN SISTEMAS COMPUT

ADMINISTRACIÓN BASE DE DATO

PRESENTAN:

NOMBRE NO. CONTROL:

BENÍTEZ GASPAR EDUARDO 12200597CABRERA CRUZ RICARDO LEVI 12200600DOMÍNGUEZ QUIROZ HERIBERTO 12200607

CATEDRÁTICO: ING

11 DE MAYO DEL 20

7115538 Fax (01771)7113399

A. P. 276, Tels. : (01 771) 7113073, 7113596, 7113140, 7115119,

Carretera México-Pachuca Km. 87.5, Col. Venta Prieta, Pachuca, Hidalgo. C.P. 42080

REPORTE CLUSTER

Page 2: Guia cluster

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.

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.

COMPONENTES

Un Clúster MySQL está compuesto por los siguientes componentes:

Manager (ndb_mgmd): es un servicio encargado de poner en marcha el

clúster, conectar nuevos servidores y ejecutar distintos comandos de

administración mediante el CLI ndb_mgm. Una vez que hemos levantado el

clúster no es necesario ni un requisito indispensable que esté levantado.

Data Nodes (ndbd): son nodos encargados del almacenamiento de los

datos. Se recomiendan al menos dos para disponer de redundancia y alta

disponibilidad. Estas serán las máquinas más potentes del clúster,

almacenarán los índices en memoria y los datos en memoria o disco. Todos

los Data Nodes deben tener el mismo hardware para evitar crear cuellos de

botella.

API nodes (mysqld): aunque el más usado sea mysqld, un API node

puede ser cualquier aplicación que haciendo uso de la API acceda al

clúster. El típico, también conocido como SQL Node, es el demonio mysqld

típico (compilado con soporte nbdcluster). De esta forma podremos escribir

o leer datos de nuestra BBDD como hemos hecho hasta ahora, mediante

comandos SQL.

INSTRUCCIONES PARA REALIZAR EL CLUSTER DE MySQL

Subsecretaría de Educación SuperiorTECNOLÓGICO

NACIONAL

DE

MÉXICOInstituto Te

INGENIERÍA EN SISTEMAS COMPUT

ADMINISTRACIÓN BASE DE DATO

CATEDRÁTICO: ING

11 DE MAYO DEL 20

Page 3: Guia cluster

A continuación se presenta la configuración, la primera parte es tanto para nodos

como para el administrador:

1. Descargar MySQL clúster desde la página oficial que es:

http://www.mysql.com/products/cluster/ la cual su última versión es la

7.4.6 pero aquí se usó la versión 7.1.34.

2. Desactivar los servicios de antivirus y firewall recordando también

desactivar el del sistema operativo en este caso Windows si se tiene

activado.

3. Crear una red para las computadoras (al menos 3), en este caso usamos

un modem, pueden ser útil otros dispositivos como un router.

4. Establecer direcciones IP fijas para lo cual vamos a centro de redes y

recursos compartidos, luego en administrar conexiones de red

seleccionamos la red en la que trabajaremos (propiedades),

seleccionamos protocolo de internet versión.

Page 4: Guia cluster

En seguida asignamos ip´s fijas a los equipos en nuestro caso fueron:

Administrador:192.168.3.7

Nodo 1:192.168.3.5

Nodo 2:192.168.3.4

5. Al hacer esto y para

verificar que la conexión

fue exitosa, abrimos la

consola de comandos

(cmd) y mandamos un

ping a cualquiera de las ip

´s de los equipos para

cerciorarnos de que están conectados.

Page 5: Guia cluster

6. Detener el servicio de MySQL56, para esto busca servicios y buscamos lo

anterior mencionado

7. Nos dirigimos al disco local(C:) creamos dos carpetas con los siguientes

nombres estas tanto para el administrador como para los dos nodos:

my_cluster mysql

Page 6: Guia cluster

8. Ahora entramos a la carpeta my_cluster y crearemos dentro tres

carpetas:

conf

mysqld_data

ndb_data

9. Posteriormente En la carpeta mysqld_data creamos las siguientes dos

carpetas:

mysql

ndbinfo

Page 7: Guia cluster

10.El siguiente paso es descomprimir el archivo .zip que descargamos de la

página oficial, una vez descomprimido procedemos a copiar todos los

archivos que descomprimimos en este caso son 17 archivos a la carpeta

que se llama “mysql” que creamos en la unidad “C:” de nuestro equipo.

Con el uso de la aplicación winrar descomprimimos el archivo.zip en el escritorio.

Después de que se descomprime el archivo copiamos los archivos en este caso son 17 a la carpeta que se llama mysql que se creo en la unidad “C:”.

Page 8: Guia cluster

Con esto terminamos los pasos generales para ambas partes tanto para nodos

como el administrador.

CONFIGURACIÓN DEL ADMINISTRADOREn la carpeta conf crearemos un archivo en bloc de notas y lo guardemos como

config y con extensión .ini, es importante que este escrito de la misma forma tanto

las minúsculas como las mayúsculas deben respetarse por lo que tendrá lo

siguiente:

------------------------------------------------------------------------------------------------------------------------[ndb_mgmd]#opciones de procesosHostName=192.168.3.7#se guardaran acá los logs de admonDataDir=c:\my_cluster\ndb_dataNodeid=1

[Ndbd default]#numero de replicasNoOfReplicas=2#Datadir=c:/mysql/bin/cluster-data#DataMemory=80M#IndexMemory=18M

#nodo 1

[Ndbd]HostName=192.168.3.5DataDir=c:\my_cluster\ndb_dataNodeid=2

#nodo 2

[Ndbd]HostName=192.168.3.4DataDir=c:\my_cluster\ndb_dataNodeid=3

[Mysqld][Mysqld] ------------------------------------------------------------------------------------------------------------------------

Page 9: Guia cluster

Nota: en la parte hostname pondremos las direcciones ip que asignamos a nuestros equipos.

Los nodos de datos se definen bajo el bloque [ndbd] definiendo casi los mismos

parámetros que para el nodo administrador ya que los nodos de datos no definen

el parámetro basedir, se debe definir también un Id para los nodos.

En config.ini se agregan los bloques [mysqld] dependiendo del número de nodos

SQL que se quieran levantar. Al terminar el archivo config.ini al nodo

administrador procede a abrir una nueva terminal cmd (ejecutada como

administrador) para iniciar el nodo administrador, escribimos lo siguiente en este

orden:

cd..

cd..

cd my_cluster

/mysql/bin/ndb_mgmd -f conf/config.ini --initial --configdir=c:\my_cluster\conf\

Al terminar dejamos esta ventana del cmd abierta y abrimos otra, y escribimos lo

siguiente:

cd..cd..cd mysqlcd binndb_mgm

Page 10: Guia cluster

Hasta aquí tenemos el nodo administrador ya levantado.

NOTA: Es importante realizar todos los comandos a mano para evitar errores que

se pueden producir al copiarlos, ya sea falta de una letra o un espacio en blanco

de más.

Dentro del ndb_mgm este escribir show para ver las conexiones existentes de los

nodos, se puede observar que dice not connected, a continuación pasaremos a

trabajar en los nodos dejando lo anterior abierto.

CONFIGURACIÓN DE LOS NODOS

MySQL necesita la base de datos de MySQL con la configuración esencial de

datos procederemos a instalar la base de datos, para esto usaremos los siguientes

comandos.

copy c:\mysql\data\mysql my_cluster\mysqld_data\mysqlcopy c:\mysql\data\ndbinfo my_cluster\mysqld_data\ndbinfo

Page 11: Guia cluster

El primero nos copió 69 archivos

Y el segundo comando nos copió 46 archivos, hay que decir que la cantidad de

archivos que se copian varía en cada versión pudiendo ser mayor o menor a la

que se menciono

Una vez que se realizó esto se dirige a la carpeta my_cluster luego a la carpeta

conf que ahí crearemos un archivo nuevamente con el bloc de notas con el

nombre my y extensión .cnf y se escribirá lo siguiente, solo lo correspondiente a

cada nodo:

Nodo 1

[mysqld]ndbclusterport=4001ndb-connectstring='host=192.168.3.7'[mysql_cluster]ndb-connectstring='host=192.168.3.7'

Nodo 2

[mysqld]ndbclusterport=4002

Page 12: Guia cluster

ndb-connectstring='host=192.168.3.7'[mysql_cluster]ndb-connectstring='host=192.168.3.7'

En la parte ndb-connectstring va la ip del administrador, nuevamente es

importante mencionar que debemos respetar las mayúsculas y minúsculas del

archivo.

Otro punto es que el puerto que indiques debe ser diferente a 3306 ya que este

puerto es ocupado por el servicio de MySQL, es recomendable asignar un puerto

de preferencia mayor a 4000, dependiendo el nodo se asigna un valor que se

empareje con el número de nodo, es decir, nodo1=4001, nodo2=4002, etc.

Una vez realizado para conectarnos con el nodo administrador usamos los

siguientes comandos:

cd..

cd..

c:\mysql\bin\ndbd –c 192.168.3.8:1186

Aquí se muestra cuando se conectaron ambos nodos.

Page 13: Guia cluster

Solo falta levantar los nodos por lo que se realizara el siguiente comando, para lo

cual abrimos una nueva terminal (como administrador) e ingresamos las

siguientes instrucciones, para levantar las APIS de los nodos:

cd..

cd..

cd my_cluster

c: /mysql/bin/mysqld --defaults-file=conf/my.cnf –console

Una vez que tengamos los nodos levantados en la consola del administrador

ponemos un show para verificar que efectivamente los Apis fueron levantados, al

final tiene que mostrarse así:

Page 14: Guia cluster

PRUEBAS

Primero hay que inicializar el MySQL, para esto se abre una nueva consola en uno

de los nodos y escribir lo siguiente:

cd..cd..cd mysqlcd binMySQL –u root –P4001

Una vez dentro podemos crear una base de datos con el comando, create database

1. Creamos una base de datos llamada “createdatabase cluster”

Page 15: Guia cluster

2. Después ingresamos el comando “show databases” para verificar que fue

creada la base de datos cluster.3. Ponemos en uso la base de datos con el comando “use cluster”

4. Ahora mediante el comando “show tables” veremos las tablas que hemos

creado, en este caso como no se ha creado ninguna no nos mostrara

nada.

5. Ahora crearemos dos tablas ingresando los siguientes comandos:

Create table prueba (id int) engine=ndbcluster; Create table levi(id int) engine=ndbcluster;

6. Ahora mediante otro “show tables” verificamos que nuestras tablas

hayan sido creadas.

Page 16: Guia cluster

7. Ahora procedemos a insertar dos registros en las tablas que creamos

mediante los siguientes comandos:

Insert into levi values (1); Insert into prueba values (5);

8. Procedemos a revisar si nuestros registros fueron insertados

correctamente mediante el comando:

Select * from prueba; Select * from levi;

Page 17: Guia cluster

Por ultimo tenemos el segundo nodo que visualiza las base de datos que se

crearon y entre estas bases de datos se encuentra la base de datos cluster que

se creó en el otro nodo así como la tabla que se creo en ese instante en el que

ingreso el nodo 2 la cual fue la tabla prueba.

CONCLUSIONES

Page 18: Guia cluster

El cluster de MySQL es una herramienta que puede ser utilizada para bases de

datos en sistemas distribuidos, MySQL es de distribución libre, resulta ser de

utilidad para crear un sistema distribuido sin tener que hacer muchos gastos en

equipo de cómputo. cluster de MySQL nos permite compartir una base de datos

con distintos clientes y resulta de gran ayuda ya que permite una mejor

administración y mejorar la seguridad de la base de datos. Durante la instalación

y configuración de MySQL en nuestros equipos se tuvieron algunas dificultades en

lo que fue la creación de los archivos de configuración ya que no los escribíamos

correctamente, lo cual ocasionaba errores, por ello es muy importante revisar la

sintaxis de estos comandos y respetar el uso de minúsculas y mayúsculas. Este

tipo de prácticas nos puede ser muy útil cuando realicemos una base de datos

distribuida para un pequeño negocio, además de que nos sirve para obtener

experiencia.

REFERENCIAS http://www.mysql.com/products/cluster/ http://dev.mysql.com/doc/refman/5.0/es/multi-install.html