Implementacion de Un Cluster de Alta Disponibilidad

25

Transcript of Implementacion de Un Cluster de Alta Disponibilidad

Page 1: Implementacion de Un Cluster de Alta Disponibilidad
Page 2: Implementacion de Un Cluster de Alta Disponibilidad

Contenido

INTRODUCCIÓN ......................................................................................................................... 2

ANÁLISIS CLÚSTER ALTA DISPONIBILIDAD ........................................................... 3

Configuración activo/activo .......................................................................................... 3

Análisis programa empleados....................................................................................... 5

Ubuntu versión 12.04 .................................................................................................... 5

Apache2.................................................................................................................................. 5

Clúster alta disponibilidad .......................................................................................... 6

CoroSync: .............................................................................................................................. 7

DISEÑO E IMPLEMENTACION DEL CLUSTER ........................................................ 7

Instalación y configuración de corosync pacemaker .................................. 8

Creación del recurso FAILOVER-ADDR .............................................................. 17

Creación del recurso P_APACHE ............................................................................ 19

CONCLUSIONES ....................................................................................................................... 24

BIBLIOGRAFÍAS ...................................................................................................................... 24

Page 3: Implementacion de Un Cluster de Alta Disponibilidad

INTRODUCCIÓN

El objetivo es elaborar un clúster, familiarizarse con los diferentes tipos

que existen y la funcionalidad que estos ofrecen.

Esta solución es cada vez más demandada por las empresas con la

finalidad de cubrir sus expectativas de calidad de servicio y a su vez controlar una importante inversión en sistemas que les permita crecer y,

a la misma vez, ofrecer nuevas soluciones en el mundo de los sistemas informáticos.

Esta solución suele ser más barata que la compra de un único ordenador

individual y suele ofrecer características de rendimiento y/o disponibilidad iguales o superiores.

Los tipos de clústeres eminentemente son los siguientes o

combinaciones de estos:

Alto rendimiento, diseñado para dar altas prestaciones en cuanto a capacidad de cálculo.

Alta disponibilidad, conjunto de dos o más máquinas que comparten servicios y que se monitorizan constantemente entre

sí.

Focalizándonos en nuestro caso particular no tiene sentido analizar el clúster de alto rendimiento puesto que no lo usaremos, así pues nos

centraremos en el análisis del clúster de alta disponibilidad.

Page 4: Implementacion de Un Cluster de Alta Disponibilidad

ANÁLISIS CLÚSTER ALTA DISPONIBILIDAD

La principal característica de un clúster de alta disponibilidad es

mantener una serie de servicios compartidos y que cada uno de los nodos que forman el clúster sepa en todo momento que está haciendo el

otro.

Este clúster debe tener un sistema de comunicación, el software del clúster, entre hosts para su correcta monitorización, así como un

método para abstraer los servicios de un host concreto, cosa que permite que se desplacen entre diversos nodos de manera transparente

para la aplicación y los usuarios.

Las configuraciones más comunes en entornos de clústeres de alta disponibilidad son las configuraciones activo/activo y la configuración

activo/pasivo.

Configuración activo/activo

En esta configuración todos los nodos del clúster pueden ejecutar los

mismos recursos simultáneamente. Los nodos poseen los mismos recursos y pueden acceder a estos independientemente de los otros

nodos del clúster.

Page 5: Implementacion de Un Cluster de Alta Disponibilidad

Si un nodo falla y deja de estar disponible, sus recursos siguen estando

accesibles a través de los otros nodos del clúster.

La principal ventaja de esta configuración es que los nodos en el clúster

son más eficientes ya que pueden trabajar todos a la vez. Pero cuando uno de los nodos deja de estar disponible su carga de

trabajo pasa a los nodos restantes, esto produce una degradación en el servicio ofrecido.

Page 6: Implementacion de Un Cluster de Alta Disponibilidad

Análisis programa empleados

Ubuntu versión 12.04

Principales características

· Entorno de escritorio GNOME 3.2, con algunos paquetes de GNOME

3.4.

· Interfaz Unity personalizable

· 100% accesible

· Centro de control más limpio

· Mejoras a Mozilla Thunderbird

· Reproductor de música Rhythmbox

· Proceso de arranque sin parpadeos

· Mejorada la velocidad del arranque

· Mejorado el soporte para múltiples monitores

· Python 3.2 y 2.7

· Mejorado el soporte para plataformas ARM

· Mejoras a las imágenes nube de cloud-init, cloud-utils

· Mejorado Orchestra

· Implementación de la producción en Juju

· Gestión de la energía en la nube y proyecto Cloud-Live

Apache2

Apache 2 es un servidor web de software libre desarrollado por la

Apache Software Fundación cuyo objetivo es servir o suministrar

páginas web a los clientes web o navegadores que las solicitan.

La arquitectura utilizada es cliente/servidor, es decir, el equipo cliente

hace una solicitud o petición al equipo servidor y éste la atiende.

En el equipo cliente se ejecuta una aplicación llamada 'navegador o

cliente web' que:

Sirve de interfaz con el usuario: atiende sus peticiones, muestra los

resultados de las consultas y proporciona al usuario un conjunto de

herramientas que facilitan su comunicación con el servidor.

Page 7: Implementacion de Un Cluster de Alta Disponibilidad

Se comunica con el servidor web: transmite las peticiones de los

usuarios.

El protocolo utilizado para la transferencia de hipertexto es HTTP que

está basado en el envío de mensajes y establece el conjunto de normas

mediante las cuales se envían las peticiones de acceso a una web y la

respuesta de esa web.

HTTP es un protocolo sin estado, es decir, no recuerda nada relativo a

conexiones anteriores a la actual. La conexión sólo tiene la duración

correspondiente a la transmisión de la página solicitada si la encuentra,

y si no la encuentra devuelve un código de error.

El servidor web Apache 2 proporciona contenidos al cliente web o

navegador como:

Páginas estáticas: es el uso más generalizado que se hace de un

servidor web. De esta forma se transfieren archivos HTML, imágenes,

etc y no se requiere un servidor muy potente en lo que al hardware se

refiere.

Páginas dinámicas: la información que muestran las páginas que sirve

Apache cambia ya que se obtiene a partir de consultas a bases de datos

u otras fuentes de datos. Son, por tanto, páginas con contenido

dinámico, cambiante.

Clúster alta disponibilidad

Pacemaker es una solución de código abierto que gestiona los recursos

de un clúster de alta disponibilidad tanto a nivel de pruebas y entornos pequeños como a nivel de producción y entornos grandes.

Permite configuración de nodos Activa/Activa y Activa/Pasiva. Requiere de heartbeat para funcionar. Este programa es también

llamado CRM o cluster resource manager, permite también la monitorización de los recursos de este.

Page 8: Implementacion de Un Cluster de Alta Disponibilidad

CoroSync:

El motor de Cluster Corosync es un sistema de comunicación de grupo

con características adicionales para la implementación de alta

disponibilidad dentro de las aplicaciones.

DISEÑO E IMPLEMENTACION DEL CLUSTER

Nodo Ip

Nodo1 Sajid 192.168.40.20

Nodo 2 Male 192.168.40.30

Nodo 3 Yumi 192.168.40.40

Además cabe explicar que también aremos uso de una quinta IP: 192.168.40.90 una IP Flotante, que se pasarán entre nodos y a la que

apunta el nombre del dominio, inicialmente se le asignará al primer nodo, y que se pasarán entre sí en caso de fallida de uno de los dos

nodos.

Una vez tenemos los 3 nodos creados con el sistema operativo

Instalado debemos disponer de varios elementos:

3 IPs privadas para asignar a los nodos 1 IP pública flotante que compartirán entre si

Page 9: Implementacion de Un Cluster de Alta Disponibilidad

Ahora asignamos IPs estáticas a ambos nodos de manera que evitemos

el cambio de IP que asigna de manera aleatoria el servidor DHCP. Para esto asemos los siguientes cambios en.

Con los pasos anteriores claros procedemos a elegir un nodo como

principal el cual será sajid, y modificamos el archivo /etc/host para que reconozca el nombre de todos los nodos en el clúster en vez de escribir

por IP.

Procedemos a repetir este proceso en los demás nodos del clúster para que se conozcan entre ellos a través de su nombre. De esta manera se

consigue una configuración mucho más humana y comprensible.

Instalación y configuración de corosync pacemaker

A continuación deberemos instalar pacemaker y corosync en todos los nodos: esta instalación se realiza con el siguiente comando:

#sudo apt-get install pacemaker corosync

PC Sajid

PC Yumi

PC Male

Page 10: Implementacion de Un Cluster de Alta Disponibilidad

Al término de la instalación nos posicionamos en directorio etc, para

poder modificar el nombre de cada usuario como se muestra a continuación y se realiza con los comandos:

#cd etc #nano hostname

PC Sajid

PC Yumi

Page 11: Implementacion de Un Cluster de Alta Disponibilidad

PC Male

Page 12: Implementacion de Un Cluster de Alta Disponibilidad

Procedemos a editar el archivo hosts para colocar las ip estáticas de

cada uno de los nodos, y esto se realizan colocando en la terminal el comando:

#nano hosts

PC Sajid

PC Yumi

Page 13: Implementacion de Un Cluster de Alta Disponibilidad

PC Male

Esto para posteriormente crear la clave de autenticación de corosync en sajid con la implementación del siguiente comando:

corosync-autokey

Copiamos la clave de autenticación de sajid a los demás nodos

Editamos el siguiente fichero en las 3 máquinas modificando los

siguientes parámetros. Colocando la IP que pertenecen todos los nodos:

interface { # The following values need to be set based on your

environment ringnumber: 0

bindnetaddr: 192.168.40.0 mcastaddr: 226.94.1.1

mcastport: 5405 }

Page 14: Implementacion de Un Cluster de Alta Disponibilidad

Para modificar el fichero utilizamos los siguientes comandos como se

muestran a continuación:

#cd /etc/corosync

#nano corosync.conf

PC Yumi

PC Sajid

Page 15: Implementacion de Un Cluster de Alta Disponibilidad

PC Male

Posteriormente editamos el fichero corosync en las 3 máquinas para

que corosync inicie de forma automática, esto se lógrala cambiando en

la sentencia STATR=NO por START=YES, colocando en la terminal los comandos siguientes:

#cd /etc/default #nano corosync

PC Sajid

PC Yumi

Page 16: Implementacion de Un Cluster de Alta Disponibilidad

PC Yumi

PC Male

Page 17: Implementacion de Un Cluster de Alta Disponibilidad

Reiniciamos los servicios de corosync en todos los nodos con el siguiente

comando:

#service corosync restart

PC Sajid

PC Male

Page 18: Implementacion de Un Cluster de Alta Disponibilidad

PC Yumi

Creación del recurso FAILOVER-ADDR

Ahora tan sólo queda editar el crm que no es más que las siglas de gestor de recursos del clúster en inglés. De esta parte se encarga el

pacemaker, aunque no lo mencionemos como la configuración específica de este.

Al editar el archivo de configuración del crm nos encontramos que es un

archivo que tan sólo hemos de añadir información para que nos muestre lo que deseamos a la hora de monitorizar el clúster.

Al acceder al archivo de configuración a través de un comando propio de pacemaker como lo es #crm configure edit debemos dotarle de la IP

flotante pública que será usada para acceder a la web, en nuestro caso 192.168.40.90. Añadimos las siguientes líneas entre secciones nodo del

documento.

Desactivación del mecanismo de Shoot The Other Node In The Head(para parar un nodo que esté dando problemas y así evitar

un comportamiento inadecuado del cluster):

crm configure property stonith-enabled=false

Page 19: Implementacion de Un Cluster de Alta Disponibilidad

Configuración de la ip virtual como recurso:

crm configure primitive FAILOVER-ADDR

ocf:heartbeat:IPaddr2 params ip="192.168.40.90"

nic="eth0" op monitor interval="10s" meta is-managed="true"

Monitorizamos con crm_mon y veremos el recurso FAILOVER-

ADDR asociado en este momento a yumi.

Page 20: Implementacion de Un Cluster de Alta Disponibilidad

Creación del recurso P_APACHE

Primeramente se instaló apache en cada una de las PC´s con el

siguiente comando

#apt-get install apache2

PC Sajid

PC male

Page 21: Implementacion de Un Cluster de Alta Disponibilidad

Después se editó la página que se mostrara como ejemplo de cuando se

cae algún servicio entra en seguida el siguiente, esta modificación se

realiza con los comandos siguientes:

#cd/var/www #nano index.html PC Sajid

PC male

PC Yumi

Page 22: Implementacion de Un Cluster de Alta Disponibilidad

Y de esta forma darle diseño a nuestra página web, como se muestra en

las siguientes pantallas.

PC Sajid

PC male

Page 23: Implementacion de Un Cluster de Alta Disponibilidad

PC Yumi

Y por último reiniciamos el servidor web con el siguiente comando

#service apache2 restart

PC male

Page 24: Implementacion de Un Cluster de Alta Disponibilidad

PC yumi

PC Sajid

ASIGNACIÓN DEL ORDEN DE LOS RECURSOS Y MAQUINAS

Pondremos el orden en el que se mirara el estado

crm configure order START_ORDER inf: FAILOVER-ADDR P_APACHE

Marcaremos ambos nodos como el primero y el segundo para los dos

recursos:

crm configure location L_IP_NODE001 FAILOVER-ADDR 100: sajid

crm configure location L_IP_NODE002 FAILOVER-ADDR 100: yumi crm configure location L_IP_NODE003 FAILOVER-ADDR 100: male

crm configure location L_APACHE_NODE001 P_APACHE 100: sajid crm configure location L_APACHE_NODE002 P_APACHE 100: yumi crm configure location L_APACHE_NODE002 P_APACHE 100: male

Page 25: Implementacion de Un Cluster de Alta Disponibilidad

CONCLUSIONES

Maleni Yarim Ordaz Hernández

A lo largo de la realización de este proyecto observe que con el uso de la

tecnología, somos capaces de efectuar soluciones ante los problemas que puedan surgir dentro de nuestra rama de estudio. El desarrollo de

este trabajo nos permitió visualizar más a fondo la implantación de un clúster y las ventajas que puede aportar el mismo, al momento de

extender su capacidad de procesamiento dentro de una organización, así como el familiarizarnos más con el sistema operativo Ubuntu y las

consecuencias que pueden llegar a surgir al momento de la ejecución de un comando erróneo.

Sajid Salvador Álvarez Juárez

En la elaboración de este cluster pusimos en práctica algunos

conocimientos y algunos otros se reforzaron, llevándonos una muy

buena experiencia la elaboración de cluster. Cabe mencionar que este tipo de investigaciones e implementaciones nos ayudaron en un futuro

como Ing. En sistemas computacionales.

Yumitey Hernández García.

Para poder realizar el proyecto necesitamos de conocimientos adquiridos durante el curso; Tuve que instalar y desinstalar el sistema operativo

Ubuntu que se dañaba al descargar las aplicaciones necesarias, me sirvió de mucho aprendí de esto gracias a la realización de este clúster.

BIBLIOGRAFÍAS

http://albertomolina.wordpress.com/2012/03/04/sencillo-cluster-

de-alta-disponilidad-con-pacemaker-y-corosync/

http://alealvarezt.blogspot.mx/2013/03/seguridad-y-alta-

disponibilidad-cluster.html

Clúster de alta disponibilidad y balanceo de carga sobre un

Servidor web Memoria del proyecto de Ingeniería Técnica en Informática de

Sistemas Realizada por Alfred Gutiérrez Sanmiguel y dirigida por Yolanda

Benítez Fernández.pdf