Clúster sencillo y barato mediante DNS

Actualmente nuestra empresa ofrece entre otros muchos servicios hosting para nuestros clientes.

Al ser una empresa pequeña carecemos de grandes recursos, no obstante esta desventaja la cubrimos con creces en precios y en un servicio personalizado.

A dí­a de hoy poseemos tres potentes servidores dedicados para los hostings, ubicados en tres lugares distintos: uno en el CPD de nuestro proveedor de acceso a Internet (Alemania), otro en nuestras oficinas de Madrid y otro en mi propio domicilio.

Los tres sistemas (a los que hemos llamado Nexus, Proteus y Orion) cuentan con dirección IP fija, conexión a Internet empresarial, sistemas de alimentación ininterrumpida (SAI) y discos duros en configuración RAID.

Estos tres sistemas permiten tener una cierta tolerancia a fallos, ya que si se cae el servidor de Alemania rápidamente se puede pasar todo al de nuestras oficinas o al de mi domicilio.

Esta solución tiene el inconveniente de ser manual, además de que el cambio conlleva unas cuatro horas para volverlo a poner todo operativo (pasar las webs, cambiar DNS, crear los nuevos correos, etc.), con la consiguiente molestia para nuestros clientes.

Una posible solución serí­a tener dos lí­neas a Internet redundantes en el CPD principal de Alemania, dos tarjetas de red en configuración «Team» y dos «switches redundantes», todo ello apuntando a un «cluster por Failover» entre dos ordenadores.

Técnicamente sería la solución más elegante, pero su coste es muy elevado y la configuración de todo el sistema bastante compleja.

Además nos gustarí­a que todo el sistema estuviera en ubicaciones geográficas distintas por si ocurre una catástrofe, como por ejemplo, un incendio o inundación en el CPD de Alemania.

Después de mucho pensar en el problema he creado un sistema bastante sencillo, económico y seguro, el cual paso a relatar.

Clúster DNS, Clúster WEB estático y clúster FTP

La idea que subyace bajo el anterior tí­tulo es permitir tener un servicio de DNS, webs estáticas y FTPs redundantes entre las tres ubicaciones de nuestra empresa. De esta forma, si uno de los nodos del clúster se cae el otro entrará automáticamente en funcionamiento (Clúster Activo – Pasivo).

Para ello realizaremos las siguientes tareas, asegurándonos de cumplir ciertos requisitos:

  1. El servicio de DNS primario ha de estar corriendo en el servidor principal, así­ como el servicio web (APACHE, IIS, etc.) y el servicio FTP.
  2. El servicio de DNS secundario ha de estar corriendo en el servidor secundario, así­ como el servicio web (APACHE, IIS, etc.) y el servicio FTP.
  3. Ídem para el tercer servidor.

Por lo tanto, lo primero que tenemos que hacer en los tres servidores es instalar el sistema operativo, el servidor DNS y el servidor web.

Cabe señalar que es indiferente si utilizamos Windows en uno de los servidores y en los otros sistemas LINUX, BSD, etc., ya que esta solución es multiplataforma.

No es objetivo de este artí­culo explicar cómo se instala un servicio de DNS, web o FTP. Se da por hecho que el lector sabe manejar estos conceptos.

Configuración del DNS en la máquina principal

Independientemente del sistema operativo que usemos (Windows, LINUX, MAC OSX Server, etc.) el concepto es el mismo:

En primer lugar configuraremos el DNS en nuestro primer servidor (en este caso el de nuestro CPD). Para ello, voy a poner como ejemplo el dominio que da servicio a nuestra web, correo electrónico, FTP, etc.

Servidor DNS de Windows Server

Servidor DNS de Windows

Crearemos una nueva zona principal llamada (costoso.com) y añadiremos ahora los siguientes registros de tipo «A»:

www.costoso.com  (en nuestro caso la IP es) 87.106.221.110
ftp.costoso.com  (en nuestro caso la IP es) 87.106.221.110

Una vez configurado el DNS pasamos a configurar nuestro servidor web virtual y FTP con el programa que deseemos (IIS, APACHE, PROftpd, Filezilla Server, etc”¦)

Ya tenemos finalizados los trabajos en el primer servidor; vamos con el segundo y el tercero.

Configuración del DNS en la máquina secundaria (de réplica)

Repetiremos en esta máquina todos los pasos anteriores pero con una salvedad: los registros de tipo «A» tendrán las IPs que correspondan a este servidor:

www.costoso.com  (en nuestro caso la IP es) 213.37.32.123
ftp.costoso.com  (en nuestro caso la IP es) 213.37.32.123

Obviamente para que todo esto funcione hemos de decir a nuestro registrador de dominio que nuestro servidor DNS principal es 87.106.221.110 y nuestro servidor DNS secundario 213.37.32.123.

Ahora probaremos a abrir en un navegador nuestra web: www.costoso.com comprobando que se carga correctamente. Comprobado esto apagaremos el primer servidor y comprobamos otra vez la web y.. Todo correcto.

Si queremos, repetiremos todo los pasos en el tercer servidor para tener una tercera réplica.

Ya tenemos un DNS, servidor web y servidor FTP redundante. Sencillo, ¿no?

Ahora sólo tenemos que solucionar un problema, la sincronización de las webs.

Sincronización de las webs entre los tres ordenadores

El contenido de la web y del servidor FTP ha de estar replicado en ambos servidores ya que sino las webs mostrarán información diferente si uno de los servidores se «cae». Para ello, vamos a realizar el sincronizado de las mismas:

Para esta tarea podemos utilizar múltiples programas en función del sistema operativo instalado. Nosotros trabajamos mayoritariamente con Windows y por ello hemos elegido un programa denominado AUTO FTP Manager que nos permite descargar por FTP el contenido de un servidor a otro o sincronizar carpetas remotas a la hora especificada.

Este programa es gratuito; no obstante, si queremos la versión comercial que permite hacer múltiples automatizaciones desatendidas en vez de una, debemos adquirirlo (unos 30 €).

Hay que señalar que existen múltiples programas para realizar esta función tanto para el mundo LINUX como para el mundo Windows: RSYNC, WS-FTP, etc.

Ya tenemos nuestras webs sincronizadas!!!!

Siguiente desafí­o: sincronizar webs dinámicas (con bases de datos).

Obviamente la solución anterior nos permitirá replicar un servidor web y un servidor FTP pero no nos permitirá replicar bases de datos complejas con MYSQL, SQLServer u ORACLE.

Por desgracia no existe una solución sencilla para replicar bases de datos en tiempo real y por lo tanto tendremos que recurrir a las soluciones que nos ofrezca cada fabricante.

En un próximo artí­culo abordaremos esta problemática.

3 Comentarios

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Privacidad y cookies

Utilizamos cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mismas Enlace a polí­tica de cookies y política de privacidad y aviso legal.

Pulse el botón ACEPTAR para confirmar que ha leído y aceptado la información presentada


ACEPTAR
Aviso de cookies