You are on page 1of 15

TECNOLGICO NACIONAL DE MXICO

INSTITUTO TECNOLGICO DE ACAPULCO

INGENIERA EN SISTEMAS COMPUTACIONALES

MATERIA: COMPUTO DISTRIBUIDO

CATEDRATICO: ING. DAGOBERTO URZUA

SEMESTRE: 8

HORA: 12:00 02:00 PM

Alumnos:
Daz Navarrete Tania
12320712
Garibay Alejandro Alan Rafael
12320736
Mariscal Escobar Ral Axel
12320775
Martnez Albinez Jos Carlos
12320776
Martnez Jurez Yashua Alejandro 12320782
Meja Reyes Reyna Luz
12320784

Contenido
INTRODUCCION................................................................................................... 3
MARCO TEORICO................................................................................................. 4
DESARROLLO...................................................................................................... 5
RESULTADOS..................................................................................................... 10
CONCLUSION GENERAL..................................................................................... 10
CONCLUSIONES PERSONALES...........................................................................10
BIBLIOGRAFA.................................................................................................... 11

INTRODUCCION
Para la realizacin de esta prctica nuestro equipo contaba con cuatro equipos de
cmputo con el sistema operativo CentOs y de la cual utilizaremos principalmente
su terminal para realizar la configuracin del cluster, un modem el cual
utilizaramos con sus respectivos cables UTP como medio de comunicacin entre
las cuatro mquinas a utilizar para llevar a cabo dicha prctica.
Esta prctica tiene como objetivo poner en prctica los conocimientos que hemos
adquirido de manera terica por medio de las clases que se nos han impartido,
como sabemos la tecnologa de clsteres ha evolucionado en apoyo de
actividades que van desde aplicaciones de supercmputo y software para
aplicaciones crticas, servidores web y comercio electrnico, hasta bases de datos
de alto rendimiento, por mencionar algunos.
Los clsteres ofrecen las siguientes caractersticas a un costo relativamente bajo:

Alto rendimiento

Alta disponibilidad

Alta eficiencia

Escalabilidad

MARCO TEORICO
(STALLINGS, 2005) Define un clusters como un grupo de computadores
completos interconectados que trabajan conjuntamente como un nico recurso de
cmputo, crendose la ilusin de que se trata de una sola mquina.
(Marta Beltrn Pardo, 2010) Define un cluster es una arquitectura de memoria
distribuida compuesta por un conjunto de nodos de cmputo independientes y
conectados por una red controlada de altas prestaciones
(Mnera, 2009) El concepto de Cluster naci cuando los pioneros de la
supercomputacin intentaban difundir diferentes procesos entre varios
computadores, para luego poder recoger los resultados que dichos procesos
deban producir. Con un hardware ms barato y fcil de conseguir se pudo perfilar
que podran conseguirse resultados muy parecidos a los obtenidos con aquellas
mquinas mucho ms costosas.
Se enumeran cuatro beneficios que pueden conseguirse con un cluster. Estos
beneficios tambin pueden contemplarse como objetivos o requisitos de diseo:

Escalabilidad absoluta: Es posible configurar clusters grandes que incluso


superan las prestaciones de los computadores independientes ms
potentes. Un cluster puede tener decenas de mquinas, cada una de las
cuales puede ser un multiprocesador.

Escalabilidad incremental: Un cluster se configura de forma que sea


posible aadir nuevos sistemas al clusters en ampliaciones sucesivas. Asi,
un usuario puede comenzar con un sistema modesto y ampliarlo a medida
que lo necesite, sin tener que sustituir el sistema de que dispone por uno
nuevo que proporcione mayores prestaciones.

Alta disponibilidad: Puesto que cada nodo del cluster es un computador


autnomo, el fallo de uno de los nodos no significa la prdida del servicio.
En muchos casos, es el software el que proporciona automticamente la
tolerancia a fallos.

Mejor relacin precio-prestaciones: Al utilizar elementos estandarizados,


es posible configurar un cluster con mayor o igual potencia de cmputo que
un computador independiente mayor, a mucho menos costo.

DESARROLLO
Preparaciones
Definir IP esttica, y hostname en todos los nodos.

IP esttica: configuracin
Muestra las conexiones con las que cuenta el computador
# nmcli d
DEVICE
TYPE
STATE
CONNECTION
virbr0
bridge
connected virbr0
virbr0-nic
tap
connected
virbr0-nic
enp5s0
ethernet
unavailable -lo
loopback
unmanaged
-Ahora definimos la ip de acuerdo a la conexin que deseamos usar. El
equi
# nmcli c modify (conection) ipv4.addresses 192.168.1.1/24
# nmcli c modify (conection) ipv4.gateway (192.168.1.254
# nmcli c modify (conection)ipv4.dns 192.168.202.254
# nmcli c modify (conection) ipv4.method manual
Ya definidas las ip ahora reiniciamos la conexion
# nmcli c down (conection); nmcli c up (conection)
Verificamos los cambios viendo los parmetros de la conexin
# nmcli d show (device)

Hostname: configuracin
Cambiamos el hostname
# hostnamectl set-hostname nuevo hostname
Restauramos el hostnamed para forzar que hostnamectl se d cuenta
del cambio
# systemctl restart systemd-hostnamed
Verificamos el cambio
# hostname

Ping entre hosts mediante hostname.


Al inicio no se podr hacer ping mediante hostname, solo mediante IP,
por lo cual configuraremos /etc/hosts de la siguiente manera:
El siguiente comando nos dar la opcin de editar el documento.
# vi /etc/hosts

Ahora, en una lnea nueva, escribiremos la IP esttica y el hostname


de cada uno de los nodos como se muestra en la imagen:

Salvamos los cambios, y ahora ya podremos hacer ping, de un nodo a


otro, mediante el hostname con el siguiente comando:
# ping -c1 (hostname con cual desea hacer ping)
Con esto finalizamos las preparaciones

Firewall
Antes de que tomemos alguna accin para nuestro cluster,
necesitamos permitir trfico del cluster por el firewall. Los siguientes
comandos permitiran esto:
# sudo firewall-cmd --permanent --add-service=high-avaliability
#sudo firewall-cmd --add-service=high-availability

Instalacin
Despus de tener lo bsico, necesitamos instalar los paquetes para
los componentes que planeamos usar en cada uno de los nodos:
# sudo yum install corosync pcs pacemaker
Para poder configurar los nodos del cluster, usaremos PCS. Esto nos
permitir tener una sola interface para manejar todos los nodos del
cluster. Antes de poder usar PCS, tendremos que configurar
tendremos que autentificar las claves pblicas o darle al usuario una
clave en cada uno de los nodos. (favor de usar la misma contrasea,
para evitar alguna falla).
# sudo passwd hacluster
Ahora iniciamos el servicio PCS en cada uno de los nodos.
# sudo systemctl start pcsd
Ya que configuraremos todos los nodos de un solo punto, necesitamos
autentificar en todos los nodos antes de que se nos permita cambiar
la configuracin. Usar el usuario hacluster y la clave que se configuro
previamente para hacer esto: (el siguiente comando solo se pondr en
el nodo01)

# sudo pcs cluster auth (poner los hostname de los nodos participantes,
separados por espacio)
ejemplo:# sudo pcs cluster auth node01 node02

Crear el cluster y agregar los nodos:


# sudo pcs cluster setup --name cluster_web (poner los hostname de los nodos
participantes, separados por espacio)
El comando anterior crea la configuracin de nodos del cluster en
/etc/corosync.conf.
Despus de haber creado el cluster y agregado los nodos, podemos
iniciarlo. El cluster no har mucho ya que an no se configura ningn
recurso.
# sudo pcs cluster start --all
Podemos visualizar el estado del cluster despus de encenderlo con el
siguiente comando:
# sudo pcs status cluster
Podemos visualizar el estado de los nodos del cluster con los
siguientes comandos:
# sudo pcs status nodes
# sudo corosync-cmapctl | grep members
#sudo pcs status corosync

Configuracin del cluster


Vemos la configuracin para ver si hay errores, los cual si habra,
usamos el siguiente comando:
# sudo crm_verify -L -V
Nos mostrara que los errores tienen que ver con STONITH (Shoot The
Other Nodes In The Head), el cual es un mecanismo para asegurarse
que no termines con dos nodos que piensen que ambos estn activos
y que reclamen que son los dueos del servicio e IP virtual, tambin
llamada situacin de cerebro dividido. Ya que tenemos un cluster
simple, desactivaremos la opcin de stonith:
# sudo pcs property set stonith-enabled=false
Mientras configuramos el comportamiento del cluster, podemos
tambin configurar las propiedades del quorum. El quorum describe el
mnimo nmero de nodos en el cluster que deben estar activos para
que el cluster pueda estar disponible. Esto puede ser algo prctico en
una situacin donde muchos nodos proveen poder computarizado
simultneo. Cuando el nmero de nodos disponibles es muy bajo, es
mejor parar el cluster, en vez de enviar un servicio no activo. Por
defecto el quorum es considerado muy bajo si el nmero total de los
nodos es menor que el doble de la mitad del nmero de nodos activos.
Para un cluster de 2 nodos significa que ambos nodos necesitan estar

disponibles para que el cluster pueda estar disponible. En este caso se


destruira el propsito del cluster.
Para ignorar el quorum:
# sudo pcs property set no-quorum-policy=ignore
Verificamos el cambio:
# sudo pcs property

Virtual IP address
El siguiente paso es actualmente dejar que nuestro cluster haga algo.
Agregaremos una IP virtual a nuestro cluster. Esta IP virtual es la
direccin IP que se conectara para poder alcanzar los servicios ( el
servicio web en nuestro caso). Una IP virtual es un recurso. Para
agregar el recurso:
#
sudo
pcs
resource
create
virtual_ip
ocf:heartbeat:Ipaddr2
ip=192.168.202.100 cidr_netmask=32 op monitor interval=30s
Verificamos si se cre:
# sudo pcs status resources
Como pueden ver, lo que nos muestra el segundo comando, es el
recurso marcado como iniciado. As que la nueva, direccin de IP
virtual debera poder ser alcanzada:
# ping -c1 192.168.202.100
Para ver a quien le pertenece en este momento el recurso/IP virtual:
# sudo pcs status|grep virtual_ip

Configuracion del servidor web Apache


Una vez que nuestra IP virtual esta activa, instalaremos y
configuraremos los servicios que queremos para hacer de alta
disponibilidad ambos nodos: Apache. Para empezar, instalar Apache y
configurar una simple pgina web esttica en ambos nodos que sea
diferente. Esto es solo temporalmente para ver la funcionabilidad de
nuestro cluster. Despus las pginas web en el nodo01 y nodo02(o la
cantidad de nodos que se usen), deberan sincronizarse para servir la
misma website sin importar el nodo que este activo.
Instalar Apache en todos los nodos:
# sudo yum install httpd
Ahora hacemos que el firewall permita trfico mediante TCP-port 80:
Primero, vemos que zona debe ser accesada:
# firewall-cmd --get-active-zones
Ahora permitimos trfico permanente en la zona deseada:
# sudo firewall-cmd --zone=public --permanent --add-service=http
Verificamos:
# sudo firewall-cmd --zone=public --permanent --list-services
Para poder ver si Apache an est activo y respondiendo en un nodo
activo del cluster, debemos crear un pequeo mecanismo de prueba.
Para ello, agregaremos una pgina de estados que ser regularmente

consultada. La pgina no estar disponible a los de afuera para evitar


tener estados incorrectos.
Crear un documento /etc/httpd/conf.d/serverstatus.conf con lo
siguiente en todos los nodos:
# vi /etc/httpd/conf.d/serverstatus.conf
Listen 120.0.0.1:80
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
Deshabilitamos en todos los nodos la sentencia Listen en la
configuracion de Apache para evitar intentar escuchar mltiples veces
en el mismo puerto.
# sudo sed -i 's/Listen/#Listen/' /etc/httpd/conf/httpd.conf
Inicia Apache en todos los nodos y verifica si la pgina de estados est
trabajando:
# sudo systemctl restart httpd
# wget http://127.0.0.1/server-status
Crea una simple pgina web en todos los nodos, en el documento raz
del servidor Apache que contiene el nombre del nodo para poder
saber que nodo es el nodo que est tomando control sobre el servidor.
Esto es solo temporal.
# vi /var/www/html/index.html
<html>
<h1>node01</h1>
</html>

Dejar que el cluster controle Apache


Ahora detendremos el servidor web en todos los nodos. Desde ahora,
el cluster es responsable de iniciarlo y detenerlo. Primero necesitamos
habilitar Apache a que escuche el mundo de afuera nuevamente
(recuerda, deshabilitamos la sentencia Listen en la configuracion
inicial). Ya que queremos nuestro sitio web que sirva en la IP virtual,
configuraremos Apache para que escuche esa direccin IP.
Primero detenemos Apache en todos los nodos:
# sudo systemctl stop httpd
Ahora configuramos donde escuchar en todos los nodos:
#
echo
Listen
192.168.202.100:80|sudo
tee
/etc/httpd/conf/httpd.conf

--append

Ahora que Apache est listo para ser controlado por nuestro cluster,
agregaremos recursos al servidor web. Recuerda que solo debemos de

hacer esto desde un solo nodo, ya que todos los nodos estn
configurados por PCS.
#
sudo
pcs
resource
create
webserver
ocf:heartbeat:apache
configfile=/etc/httpd/conf/httpd.conf statusurl=http://localhost/server-status
op monitor interval=1min
Por defecto, el cluster intentara balancear el recurso dentro del
cluster. Eso significa que la IP virtual, la cual es el recurso, empezare
en un nodo diferente que el recurso del servidor web. Iniciar el
servidor web en un nodo diferente al que controla la IP virtual en ese
momento, causara que falle ya que configuramos Apache que escuche
en la IP virtual. Para cerciorarnos que la IP virtual y el servidor web
siempre se queden juntos, podemos agregar una restriccin:
# sudo pcs constraint colocation add webserver virtual_ip INFINITY
Para evitar la situacin donde el servidor web iniciara antes de que la
IP virtual inicie o pertenezca a un cierto nodo, necesitamos agregar
otra restriccin que determine el orden de habitabilidad de ambos
servicios:
# sudo pcs constraint order virtual_ip then webserver
Cuando el cluster y los nodos no son mquinas con las mismas
capacidades, y prefieres que los recursos estn disponibles en la
maquina con mejor capacidad, puedes agregar otra restriccin para la
localizacin:
# sudo pcs constraint location webserver prefers node01=50
Despus de configurar el cluster con las restricciones deseadas,
reiniciarlo y mirar el estado.
# sudo pcs cluster stop --all && sudo pcs cluster start --all
# sudo pcs status
Si todo est configurado de la manera correcta podrn accesar a la IP
virtual.

Activar los componentes del cluster para que


comiencen al inicio.
Para iniciar la configuracion del cluster y los componentes
relacionados a este, simplemente se habilitan los servicios en todos
los nodos, para que inicien cuando la maquina se encienda:
# sudo systemctl enable pcsd
# sudo systemctl enable corosync
# sudo systemctl enable pacemaker

RESULTADOS

CONCLUSION GENERAL

CONCLUSIONES PERSONALES
Tania Daz Navarrete
Al concluir la practica puedo decir que resulto bastante interesante el saber cmo conectar un
pequeo clster, siento que esto es muy importante pues un clster de un conjunto de

computadoras independientes, interconectadas entre s, de tal manera que funcionan como un solo
recurso computacional. A cada uno de los elementos del clster se le conoce como nodo. Que este
caso fueron las mquinas de cada uno de los integrantes del equipo. Tambin otro componente
bsico en un clster es la interfaz de la red, la cual es responsable de transmitir y recibir los
paquetes de datos, que viajan a travs de la red entre los nodos. Finalmente el lograr que todos
estos elementos funcionen como un solo sistema, es la meta a la que se quiere llegar, y bueno en
los clster existe una maquina (computadora Sony Vaio) que es la que funciona como nodo
maestro y se encarga de administrar, controlar y monitorear todas las aplicaciones y recursos del
sistema, por lo cual decidimos que fuera la computadora ms eficaz, y con mejor rendimiento, en
tanto el resto de los nodos estn dedicados al procesamiento de los datos o a ejecutar operaciones
aritmticas, estos equipos son los nodos esclavos.
Al principio me pareci todo confuso, pues como ya lo haba dicho antes, no haba trabajado con
Centos 7, y al momento en que todos mis compaeros interactubamos trabajando y ayudndonos
en todas las instrucciones que no iba dando el equipo que era el encargado de esta prctica, se
generaron diversos problemas, pues al principio no tenamos controladores en lo equipo, lo cual
procedimos a instarlos, y con forme fuimos avanzado en la elaboracin, faltaban algunas
paqueteras que eran fundamentales para poder seguir al pie de la letra las instrucciones, despus
tuvimos problemas porque todos estbamos conectados por medio de wifi, a lo que el profesor nos
aclar que para hacer un clster obviamente se deba de tener la conexin por medio de cables.
Dando solucin a todos los problemas pudimos terminar la prctica, adquiriendo muchsima ms
experiencia en clustering y por supuesto sobre la manipulacin d

BIBLIOGRAFA
Marta Beltrn Pardo, A. G. (2010). Diseo y evaluacin de arquitecturas de
Computadoras. MAdrid: PEARSON EDUCACIN, S.A.
Mnera, A. M. (2009). Mtodo para el manejo del balanceo de carga en
sistemas de computo distribuido de alto desempeo.
STALLINGS, W. (2005). Organizacin y Arquitectura de Computadores 7a
Edicion . Madrid: PEARSON EDUCACION, S.A.

You might also like