Guia cluster
-
Upload
feraldus-levy -
Category
Engineering
-
view
102 -
download
0
Transcript of 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
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
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.
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.
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
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
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:”.
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] ------------------------------------------------------------------------------------------------------------------------
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
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
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
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.
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í:
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”
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.
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;
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
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