CAPITULO III 3 DESARROLLO DE LA PROPUESTA
3.3 Fase 2 y 3 Análisis de las herramientas e Implementación.
3.3.1 Alta Disponibilidad
La Alta disponibilidad consiste en trabajar de manera garantizada en los servicios (Web) de la institución sin depender de un solo equipo (Servidor) y que brinde este servicio incluso cuando estos sistemas se bloqueen o se cuelguen, o en otros casos que a estos servidores estén en mantenimiento. La disponibilidad dispone de agrupaciones que serán diseñadas para superar estos problemas y darle la posibilidad de llegar a un 100% de tiempo de actividad de sus servicios.
Para tener una idea más clara de lo que se pretende realizar en esta institución, la disponibilidad se lo realizará por medio de un segundo nodo (Equipo servidor) que también tendrá todos los servicios web que ofrece el primero nodo.
Para alcanzar un servicio óptimo ofrecido por nuestros sistemas se creará una Ip Virtual que represente a los 2 servidores reales de nuestro sistema. El usuario solo necesitara saber la dirección IP del equipo Virtual sin preocuparse de saber las Dirección IP de los otros equipos.
70
Grafico Nro. 3.6 Implementación host principal de Servidor Web Fuente: Desarrollo propio del Autor
Un usuario que está ingresando a nuestros sistemas web a través de 10.30.23.238 será atendido desde el servidor web que se ejecuta en el Servidor Web (nodo 01) con la IP 10.30.23.230. mientras que el segundo Servidor Web (nodo 02 IP 10.30.23.234) solo está a la espera para el nodo 01 falle y tomar el relevo. Este escenario se llama activo-pasivo. En caso de que algo pasa al nodo 01, el sistema se bloquea, el servidor se bloqueó o el servidor web no responde más (ejemplo falla eléctrica), el nodo 02 se convertirá en el propietario de la dirección IP virtual e iniciar su servidor web para proporcionar los mismos servicios que se ejecutan en nodo 01.
IP Virtual
10.30.23.238
Nodo 1
10.30.23.230
Servidor Web en Ejecución en puerto 80
Nodo 2
10.30.23.234
71
Grafico Nro. 3.7 Implementación host de Servidor Alta disponibilidad Fuente: Desarrollo propio del Autor
Para el usuario, esto es transparente, ya que la IP virtual sigue siendo la misma. El cliente no sabe que el primer nodo (Servidor) ya no es accesible y ve el mismo sitio web que está acostumbrado a ver.
Verificamos el estado del firewalld y Modificamos el archivo host en el Servidor Web
Grafico Nro. 3.8 Visualización de Archivo host de Servidor Web
Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos IP Virtual
10.30.23.238
Nodo 1
10.30.23.230
Servidor Web Detenido
Nodo 2
10.30.23.234
72
Servidor de Alta disponibilidad Modificación del host
Grafico Nro. 3.9 Visualización de Archivo host de Servidor Web Alta Disponibilidad Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Grafico Nro. 3.10 Comprobación de la comunicación entre los 2 Servidores Web Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Instalación de los componentes de alta disponibilidad Pacemaker y Corosync en ambos nodos
73
Grafico Nro. 3.11 Instalación dePacemaker y Corosync Servidor Web principal Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Servidor de alta disponibilidad
Grafico Nro. 3.12 Instalación dePacemaker y Corosync Servidor Alta Disponibilidad Fuente: Desarrollo propio del Autor a partir del Servidor de Alta Disponibilidad
.
La instalación de PCS no permite disponer de una interfaz única para administrar todos los nodos (equipos servidores) que trabajaran con alta disponibilidad en la Red (clúster). También se creó un usuario, hacluster, que puede ser utilizado en conjunto con el PCS que ver la configuración de los nodos del clúster.
Para utilizar PCS, tenemos que configurar la autenticación de clave pública o dar al usuario hacluster una contraseña en ambos nodos. Este paso lo realizamos mediante:
sudo passwd hacluster
Iniciamos el servicio pcds en ambos nodos mediante: sudo systemctl start pcds
Configuración de cada uno de los nodos de nuestro sistema de alta disponibilidad. Nos autenticamos Utilizando el usuario y contraseña hacluster previamente configurado.
74
Grafico Nro. 3.13 Autentificación de los Servidores Web y Alta disponibilidad Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Mediante el comando pcs cluster auth comandospodemos controlar el clúster mediante PCS del nodo01 (Servidor Web). Este se puede hacer en un solo nodo, no es necesario repetir todos los comandos en los dos nodos.
Adiciónanos los dos nodos a un clúster denominado cluster_web. La configuración del nodo de clúster se almacenará dentro de /etc/corosync.conf
Grafico Nro. 3.14 Adición de los Servidores Web y Alta disponibilidad al cluster Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Luego de crear el Cluster y añadir los nodos, iniciamos este servicio.
Grafico Nro. 3.15 Proceso Inicio del servicio del Cluster de Servicios Web Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
75
Comprobación del estado del Cluster
Grafico Nro. 3.16 Comprobación del estado de servicio del Cluster Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Realizamos la comprobación del estado de los Nodos mediante:
sudo pcs status nodes
Realizamos la comprobación del estado de corosync mediante:
sudo pcs status corosync
Configuración del Cluster
Primero verificamos la existencia de errores iniciales.
Grafico Nro. 3.17 Verificación de errores en el servicio del Cluster Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Luego Ignoramos el parámetro de quorun el cual nos permite determinar el número de nodos que se necesitan que estén activos para que nuestro cluster esté disponible. Para nuestro proyecto el número de nodos disponibles es demasiado bajo; para un clúster de 2 nodos que
76
significa que ambos nodos deben estar disponibles para que el clúster a estar disponible. En nuestro caso, esto destruiría completamente el propósito de la disponibilidad.
Grafico Nro. 3.18 Ingreso de Parámetros para corrección de errores en el Cluster Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Creación de la IP virtual
Para efecto de este proyecto la dirección IP virtual que vamos a utilizar para la implementación de la Alta disponibilidad será la 10.30.XX.XX . Esta IP virtual la creamos mediante:
sudo pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.30.23.238 cidr_netmask=24 op monitor interval=30s
Verificamos cual el nodo (Servidor) propietario de la IP virtual
Grafico Nro. 3.19 Verificación del Servidor propietario de la Dir IP Virtual Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Verificamos el estado de nuestro servidor Web con: service httpd status
En cada uno de nuestros Nodos, habilitamos y ejecutamos los servicios de PCDS, Corosync, y Pacemaker.
77
En lo que respecta a la configuración de APACHE, en ambos nodos procedemos a modificar el archivo /etc/httpd/conf/http.conf agregando la nueva dirección IP del nodo virtual: listen 10.30.23.238:80.
Con esto conseguimos que ambos servidores escuchen a la dirección IP virtual,
Grafico Nro. 3.20 Modificación del Archivo http.conf
Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
En cualquiera de los 2 nodos procedemos agregar recursos para nuestro servidor. Mediante:
sudo pcs resource create webserver ocf:heartbeat:apache
configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=1min
Luego agregamos los parámetros específicos para que la dirección IP virtual trabaje juntos de manera indeterminada con los servidores reales. Como ya tenemos configurado el Apache, el resultado de este parámetro permitirá escuchar al otro servidor real en caso de que el primero falle o sea inaccesible. Esto lo realizamos mediante:
sudo pcs constraint colocation add webserver virtual_ip INFINITY
Indicamos la prioridad de los servidores reales el cual tomara la dirección Ip virtual. Esto hace que el equipo real no se inicie antes que el equipo virtual.
sudo pcs constraint order virtual_ip then webserver
Adding virtual_ip webserver (kind: Mandatory) (Options: first-action=start then- action=start)
78
Si en el caso que uno de los 2 nodos falles, la Ip virtual debe tomar los datos del otro nodo en un tiempo no mayor a los 50s.
sudo pcs constraint location webserver prefers c7serv.mdvlosrios.gob.ec=50
Revisamos los parámetros configurados
Grafico Nro. 3.21 Verificación de los parámetros establecidos
Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Una vez finalizada la configuración del clúster con los parámetros correctos, lo reiniciamos y comprobamos el estado:
Grafico Nro. 3.22 Reinicio de los Servicios pcs en el Cluster
Fuente: Desarrollo propio del Autor a partir del Servidor Web del Miduvi Los Ríos
Se realizan las pruebas correspondientes. En nuestro caso en un navegador digitaremos la dirección IP virtual que configuramos previamente 10.30.XX.XX
79
Grafico Nro. 3.23 Archivo Index.html del Servidor Web visualizado desde la Dir. IP virtual
Fuente: Desarrollo propio del Autor a partir del Servidor Web Virtual Miduvi Los Ríos
El Grafico Nro. 3.23 hace referencia a la visualización del archivo index.html el cual toma la información en este caso del servidor Web del Servidor Web principal.
Dentro de la configuración de nuestro servidor Apache modificamos el archivo index.html para distinguir a que servidor estamos apuntando preliminarmente. Como se aprecia en la imagen anterior la IP virtual hace referencia al servidor 1 (Nodo 1) con la IP 10.30.XX.XX. Ahora vamos a asumir que la comunicación con este servidor se ha cortado mediante
Service network stop
Y nuevamente desde el navegador web ingresamos a la dirección IP virtual y se visualiza el contenido del archivo Index.html del nodo 2 (Servidor 2) 10.30.XX.XX
80
Grafico Nro. 3.24 Archivo Index.html del Servidor de Alta Disponibilidad visualizado desde Dir. IP virtual
Fuente: Desarrollo propio del Autor a partir del Servidor Web Virtual Miduvi Los Ríos