Está en la página 1de 40

Manual Para Realizar Un Clster En Ubuntu 9.

04 Instituto Tecnolgico De Tapachula Materia: Base de Datos Distribuida Catedrtico (a): Teresa del Carmen Cabrera Gomez Alumno: Rodolfo Ramirez Vazquez +SAT+ Carrera: Lic. Informtica

Introduccin
El presente manual, contiene informacin sobre conceptos bsicos con respecto a un Clster as como sus componentes, esto para tener una idea de lo contenido en este manual.

El presente manual, se elabor gracias a la informacin de algunos sitios de internet, y de ayuda de compaeros quienes brindaron informacin con respecto al tema.

Para dar comienzo al trabajo, hay que mencionar que el clster est elaborado en mquinas virtuales, pero, la forma de instalacin, as como de configuracin, en las PCs (fsicamente) es de igual forma a como se muestra en este manual.

Esperando esto sea de utilidad para la comunidad, comenzar con el tema.

Definicin de Clster
El trmino clster se aplica a los conjuntos de computadoras construidos mediante la utilizacin de componentes de hardware comunes y que se comportan como si fuesen una nica computadora. Simplemente, un Clster es un grupo de mltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un nico ordenador, ms potente que los comunes de escritorio. Los clsteres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima de la que es provista por un solo computador tpicamente siendo ms econmico que computadores individuales de rapidez y disponibilidad comparables.

Caractersticas de un Clster
Las aplicaciones paralelas escalables requieren: buen rendimiento, baja latencia, comunicaciones que dispongan de gran ancho de banda, redes escalables y acceso rpido a archivos. Un cluster puede satisfacer estos requerimientos usando los recursos que tiene asociados a l. Los clusters ofrecen las siguientes caractersticas a un costo relativamente bajo:

Alto rendimiento Alta disponibilidad Alta eficiencia Escalabilidad

La tecnologa cluster permite a las organizaciones incrementar su capacidad de procesamiento usando tecnologa estndar, tanto en componentes de hardware como de software que pueden adquirirse a un costo relativamente bajo.

Definicin de MySQL Clster


MySQL clster es una tecnologa que permite el clustering de bases de datos en memoria en un ambiente de no comparticin. La arquitectura de no comparticin permite que el sistema gestor de base de datos (SGBD) funcione utilizando hardware no muy costoso y con requerimientos mnimos tanto de software como de hardware. Como todo sistema de clustering, est diseado para no tener un slo punto de falla, cada componente tiene su propia porcin 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.

Arquitectura bsica de un clster MySQL

En su implementacin ms sencilla, un clster MySQL integra un servidor MySQL estndar y un motor de almacenamiento en memoria llamado NDB clster, funcionando en un conjunto de una o ms computadoras. Cada una de estas computadoras ejecutando uno o ms procesos, que pueden consistir en procesos de MySQL server, nodos de almacenamiento de datos, servidor administrador del clster, o programas especializados para acceder a los datos. Las tablas de la base de datos se almacenan utilizando el motor NDB en los nodos de almacenamiento. La manera de acceder a los datos almacenados en el clster es a travs de cualquiera de los nodos MySQL. Los nodos de datos funcionan utilizando un esquema de espejado, permitiendo soportar sin impacto la cada de nodos individuales de datos dentro de clster. La nica consecuencia que tendra un suceso como la cada de un nodo de datos, es que un pequeo conjunto de transacciones relacionadas al nodo cado sern abortadas. Estas transacciones deben cumplir con el esquema transaccional, tal y como si estuvieran trabajando directamente con un servidor no clusterizado de MySQL.

Conceptos principales
Motor de almacenamiento NDB Este es un motor de almacenamiento en memoria que ofrece alta disponibilidad y persistencia de datos. Es altamente configurable ofreciendo un gran nmero de opciones para manejar el balanceo de cargas y la tolerancia a fallas.

Nodo de administracin (Nodo MGM) Este tipo de nodo cumple con la funcin de manejar, controlar y coordinar los otros nodos dentro del clster. Implementa funciones de configuracin de datos, Iniciar o detener otros nodos dentro del clster, 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 clster es igual a la cantidad de replicas por la cantidad de fragmentos. Es decir, si se manejan 4 replicas de los datos con 2 fragmentos, se necesitaran 8 nodos de datos. No es necesario manejar ms de una rplica. Este tipo de nodo se levanta utilizando el comando ndbd. Nodo SQL (MySQL server) A travs de este tipo de nodos se accede a los datos clusterizados. Bsicamente, consiste en un servidor MySQL Server que utiliza el motor de almacenamiento NDB. Se inicia utilizando el comando ndbcluster, especificando el archivo de configuracin necesario para este servidor . Clientes MySQL Para conectarse a un clster MySQL remotamente, se debe utilizar el mismo cliente utilizado para conectarse a un servidor MySQL no clusterizado. El clster es transparente para los clientes. Clientes administrativos Existen otro tipo de clientes que se comunican con el servidor de administracin y proveen las mismas funcionalidades que un nodo de este tipo. A diferencia de los nodos administrativos, los clientes permiten ejecutar las tareas de administracin remotamente. Algunas tareas que pueden realizarse con estos clientes incluyen iniciar o detener nodos, administrar el seguimiento de mensajes de depuracin, mostrar el estado de otros nodos y sus respectivas versiones, realizar respaldos, etc.

Iniciando La Elaboracin
En este ejemplo, se han instalado 3 mquinas virtuales las cuales corresponden: 1era. Nodo Administrador & clster 2da. Nodo Cliente (cliente1) 3ra. Nodo Cliente (cliente2) Una vez que se tiene instalado los respectivos nodos se pasa a instalar los paquetes a cada uno de ellos.

Instalacin de paquetes para el nodo administrador y clientes


Para el nodo administrador, ser necesario instalar el MySQL en este caso se utilizo la versin 5.0, para ello podemos hacerlo de dos formas tanto de consola, como desde la paquetera de synaptic, en este caso lo realizaremos desde la consola. 1.- Abrimos una consola, y escribimos la siguiente instruccin: sudo apt-get install mysql-server-5.0

En este paso, nos pedir la contrasea de nuestro usuario, as que la escribimos y continuamos, despus nos preguntar si deseamos continuar, decimos que si [S/N], y empezara la descarga e instalacin de los paquetes.

2.- Durante este proceso, nos aparecer una nueva ventana en la cual nos pide que asignemos una contrasea para lo que viene siendo el root del MySQL, as que escribimos la contrasea deseada y tecleamos un ENTER en este ejemplo, la contrasea ser administrador

3.- Nos pedir que repitamos la contrasea, esto con la finalidad de comprobar que la contrasea escrita primeramente, sea la correcta. As que la escribimos y tecleamos un ENTER.

Una vez que se realiza esta operacin, se empezar a marcar automticamente los dems complementos de MySQL, esto para que todo funcione correctamente. As que solo esperamos a que termine el proceso.

NOTA: Esta instalacin se realizara de igual forma en los nodos clientes.

Configuracin del virtual Box


Terminada la instalacin de los paquetes de los nodos, se configura cada mquina virtual de la siguiente manera. Para ello, es mejor que apaguen las mquinas virtuales, una vez hecho esto, es necesario configurar los nodos con respecto a la red, para hacer una red interna. Para ello es ir, a la maquina virtual, y seleccionar Configuracin, Red y despus dejar las opciones tal cual se muestra en la siguiente imagen:

Esto con el fin de que las mquinas virtuales tengan comunicacin unas con otras por medio de las IP que a continuacin se pondrn.

Configuracin de las IPs de los nodos.


Una vez que se configuro las mquinas virtuales, se realiza lo siguiente: Primero que nada se asigna una IP fija para el nodo de administrador, esto para poder identificar con facilidad y tener comunicacin de los nodos clientes con lo que es el nodo administrador. Para asignar esta IP hacemos lo siguiente: 1.- Nos dirigimos al la barra de tareas de Ubuntu, y localizamos el icono de una PC, ah daremos clic derecho y seleccionamos la opcin de Editar las conexiones.

2.- Seleccionamos la red eth0 y seleccionamos la opcin de Editar. En este paso nos pedir la autentificacin para poder modificar, as que solo basta con poner la contrasea de nuestro usuario para poder continuar.

3.- Despus de habernos autentificado, se nos mostrar una ventana como la siguiente, en la cual tendremos que posicionarnos en la pestaa de Ajustes de IPv4 y damos clic en la parte que dice Mtodo para seleccionar la forma en que se ajustara la IP, que en este caso ser de manera Manual.

4.- Una vez que se accede a esta configuracin, pasamos a dar clic en la pestaa que dice aadir, y agregamos lo siguiente: Direccin: 192.168.1.1 Mascara de red: 255.255.255.0 Puerta de enlace: 192.168.1.254

DNS: 192.168.1.254
Este ltimo, DNS sirve para tener conexin con lo que es el internet. Quedando agregado como se muestra en la siguiente imagen:

Nota: para hacer el Clster, basta con solo dejar la direccin IP y la mscara de red, la puerta de enlace y el DNS son extras, no forzosamente tienen que ponerlo, al menos que deseen tener acceso a internet.

5.- Cliqueamos donde dice aplicar, para aplicar lo que hemos realizado, una vez hecho esto, podemos verificar si los cambios se han realizado con rotundo xito, para ello, basta con abrir una consola o Terminal, y escribimos ifconfig (sin comillas), este comando muestra las IP que se estn usando, tanto alambrica como inalmbrica.

NOTA: Esto mismo se hace para los nodos clientes, por obviedad la direccin IP cambiar una se le asignar la IP 192.168.1.2 y la otra 192.168.1.3, lo dems se pone de igual forma que en el nodo administrador.

Configuracin de archivos para los nodos.


1.- Una vez que se ha terminado el proceso de asignacin de IP, se pasar a crear el archivo para la conexin entre el nodo administrador con los nodos clientes, para esto, escribimos en consola del nodo administrador lo siguiente: sudo nano /etc/mysql/ndb_mgmd.cnf

Una vez que aparezca el editor, pasaremos a copiar lo siguiente:

[NDBD DEFAULT] NoOfReplicas=2 DataMemory=80M IndexMemory=18M #Configuracion correspondiente al cluster [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] [NDB_MGMD] #Direccion IP del nodo administrador HostName=192.168.1.1 [NDBD] #direccion IP del nodo cliente1 HostName=192.168.1.2 DataDir=/var/lib/mysql-cluster BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=128M [NDBD] #direccion IP del nodo cliente2 HostName=192.168.1.3 DataDir=/var/lib/mysql-cluster BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=128M #Las siguientes instrucciones, por cada nodo cliente se pone esa instruccin, en este caso solo contamos con 2 [MYSQLD] [MYSQLD]

2.- Una vez copiado lo anterior, pasamos a guardar el documento. Para ello con solo tecleamos. Ctrl + O aparecer el nombre con el que se quiere guardar y la ruta, se deja tal cual est y se teclea un Enter Ya que se guardo solo presionamos Ctrl +X para salir del archivo.

NOTA: Este mismo archivo se crear en todos los nodos (cliente1 y cliente2).

3.- Una vez realizado esto se pasa a editar un archivo de configuracin correspondiente al MySQL del nodo administrador, esto para comentar una lnea que contiene una direccin. Esto para que no exista conflicto con las direcciones que estamos manejando. Para acceder al archivo escribimos lo siguiente: sudo nano /etc/mysql/my.cnf Tecleamos un ENTER y nos debe arrojar una ventana como la imagen 2:

Imagen 2

4.- Una vez aqu, pasamos a buscar la siguiente lnea: bin-address = 127.0.0.1 Una vez localizada, se comenta, para ello se le antepone el smbolo de Gato o Numero # tal como se muestra en la imagen.

5.- Una vez comentada la lnea guardamos los cambios realizados y cerramos el archivo de configuracin.

Configuracin del nodo cliente 1 y 2.


Ahora en esta parte se supone que ya debe de estar instalado el paquete que se instalo en el nodo administrador de igual forma debe estar creado el archivo ndb_mgmd.cnf, por lo cual, solo pasaremos a configurar los archivos necesarios. 1.- Se abre una terminal y se escribe lo siguiente: sudo nano /etc/mysql/my.cnf

2.- Una vez que est abierto el archivo de configuracin, se pasa a buscar la siguiente lnea: *mysqld+ Una vez que esta lcalizada pasaremos a escribir debajo lo siguiente: ndbcluster ndb-connectstring=192.168.1.1

#La direccin anterior corresponde a la IP del nodo administrador Quedando como se muestra en la siguiente imagen:

3.- Ahora pasamos a buscar la siguiente lnea bin-address = 127.0.0.1dentro de este mismo archivo de configuracin. Y la pasamos a comentar, anteponiendo el smbolo de gato o numero #.

4.- Despus buscamos otra lnea de instruccin *MYSQL_CLUSTER+, una vez localizada pasamos a des comentarla y de igual forma descomentamos ndb-connectstring=127.0.0.1y en la direccin que tiene se cambia por la IP correspondiente al nodo administrador. Quedando como se muestra en la siguiente imagen:

5.- Ahora se pasar a crear una carpeta Backup, para ello se escribe la siguiente instruccin: sudo mkdir /var/lib/mysql-cluster/backup

6.- Despus de haber hecho lo anterior, pasamos a darle los permisos para el usuario de la carpeta que se acaba de crear para ello basta con escribir lo siguiente: sudo chown mysql:mysql /var/lib/mysql-cluster

NOTA: La configuracin del cliente 2 es igual a la de este primer cliente.

Reinicio de demonios
Ahora pasamos a reiniciar los servicios que se han instalado. Para ello se reinicia el servicio en el administrador.

Nodo administrador: sudo /etc/init.d/mysql restart

Nodo administrador: sudo /etc/init.d/mysql-ndb-mgm restart

Nodo cliente1: sudo /etc/init.d/mysql restart

Nodo cliente1: sudo /etc/init.d/mysql-ndb restart

Nodo cliente2: sudo /etc/init.d/mysql restart

Nodo cliente2: sudo /etc/init.d/mysql-ndb restart

Demostrar la conectividad:
Para demostrar la conexin de los nodos clientes con el nodo administrador, basta con escribir en consola la siguiente instruccin. Nodo administrador: ndb_mgm

Para visualizar los nodos es con: show;

NOTA: Si aparece como se muestra en la imagen de abajo, es porque la conexin es satisfactoria.

Si no existiera conexin en alguno de los nodos, por ejemplo el nodo dos, aparecera algo como esto:

Y si en ningn nodo Hubiera conexin con el Administrador ser algo como esto:

NOTA: Esto difcilmente les suceda hicieron bien los pasos, obviamente, yo desconecte los nodos, para poder mostrar las imgenes que pudieran aparecer, encaso de que no existiera conexin alguna. Si les marcara error, chequen los archivos de configuracin, y si las mquinas estn conectadas en red, porque puede pasar que se desconecten y eso hace que no se encuentren en conexin con el administrador, y si hacen un cambio, reinicien los demonios, empezando siempre con el administrador, luego cliente1 y por ultimo cliente2.

Creacin de la base de datos


Para comprobar que el clster a quedado, pasaremos a crear una pequea base de datos, muy sencilla, para ello la crearemos en el nodo Administrador. 1.- Primero abrimos una terminal. Y accederemos al MySQL, para ello basta con escribir lo siguiente: sudo mysql u root p nos pedir la contrasea tanto del usuario del administrador, como tambin la que se le asigno al MySQL en este nodo, escribimos las contraseas y tecleamos Enter.

2.- Crearemos una base de datos con el nombre de prueba1, para ello escribimos lo siguiente: create database prueba1;

3.- Para comprobar que la base de datos se cre, basta con escribir la siguiente instruccin; show databases;

Una vez que se realiz esto, se pasa a crear la misma base de datos, en cada uno de los nodos clientes que existan, en este caso solo son 2.

Verificacin de replicas.
Una vez que se cre la base de datos en todos los nodos, pasaremos a reiniciar nuevamente los demonios. Despus pasaremos a crear una tabla dentro de la base de datos prueba1. 1.- Primero abrimos la base de datos que fue creada, para ello abrimos una terminal y escribimos lo siguiente: sudo mysql u root p

2.- Despus de esto seleccionaremos la base de datos donde ingresaremos la primera tabla, para ello escribimos: use prueba1

3.- Ahora crearemos la primera tabla, la cual llevara el nombre de tabla1 la cual contendr los siguientes campos: Ncontrol, Nombre, Apellidop, Apeillodom para ello escribimos lo siguiente: create table tabla1 (Ncontrol int (13), Nombre varchar (10), Apellidop varchar (10), Apellidom varchar (10)) engine=ndbcluster;

4.- Para verificar que la tabla ha sido creada, basta con solo escribir la siguiente instruccin: show tables;

5.- Ahora insertaremos un registro dentro de tabla1, para ello escribimos lo siguiente: insert into tabla1 values (1234, jose, Perez, Gomez);

6.- Para visualizar la tabla que se acaba de crear escribimos lo siguiente: select *from tabla1;

7.- Terminado esto, pasaremos a ver en el cliente 2 si la rplica se ha hecho con xito, para ello, verificamos la tabla y checamos los registros si estn agregados.

8.- Para hacer una prueba del cliente 2 al cliente 1, agregaremos un nuevo registro en el cliente 2.

9.- Verificamos en el cliente 1 si se realizo la rplica.

Listo el Clster est terminado y funcionando correctamente.

Agradecimientos
Agradezco a estas personas, que tal vez, algunos desconocen que me apoyaron, pero gracias a ellos encontr informacin y en otros casos me brindaron informacin para poder realizar esto. Gracias a la banda. De parte del +SAT+ Juan Pablo Rizo Argueta Rachel Espinosa Palomeque Yair Delfin Gomez Conde Juan de la Cruz Cruz Roberto Cristian Arvalo Robles Charlie Germn Morales Martnez

También podría gustarte