Hay un término muy usado en el mundo del web hosting y los servidores cuando estamos adentrándonos en lo que refiere a alta disponibilidad y replicación de datos, hablamos del servidor espejo, o servidores en espejo.
Hoy en día muchas empresas, startups y agencias necesitan tener seguridad de que sus datos estarán replicados ante eventos de catástrofes naturales, cortes en la red o problemas de hardware.
Para estas empresas es necesario montar una solución que brinde lo que se llama mirroring o servidor espejo, es decir, un servidor adicional al que tienen que es una copia exacta del original.
Dependiendo de la carga de trabajo que tengamos, así como de cuan críticos sean los datos y la demanda de ellos, será necesario pensar en servidor en espejo + alta disponibilidad, o bien solo la replicación de datos.
Contenido
¿Qué es un Servidor Espejo?
Como mencionábamos antes, los servidores en espejo son justamente eso, una copia fiel del original, es decir que incluyen estos mismos ítems:
- Sistema operativo (Linux, Unix o Windows)
- Servicios de sistema
- Aplicaciones
- Configuraciones
- Archivos
- Bases de Datos (MySQL, PostgreSQL, MongoDB, etc)
- Emails
Teniendo todo esto replicado en un segundo servidor hace que se pueda tener una cierta «seguridad» respecto a si el servidor primario es presa de una catástrofe natural, hay una rotura de hardware crítica que lleva muchas horas solucionar, hackeo y pérdida de datos, etc.
Servidores Cloud rápidos y seguros con Asistencia 24×7 desde $24,90/mes
¿Necesito realmente servidores espejados?
¿Afecta que puedas sufrir una hipotética caída de tus servicios a tu bolsillo? ¿Cuál sería el impacto económico? ¿Se afecta la reputación de mi empresa tener mi aplicación caída?
Si la respuesta a estas preguntas es que te afectaría pero no de forma crítica o económicamente, quizás no sea necesario un servidor en espejo. Quizás tu mismo haces backup de todo y no necesitas tener la información replicada, y te da igual si tu proveedor de hardware y red se toma 2 horas o 24 hs en arreglar el fallo.
Si no haces backups de la información, y hospedas aplicaciones de clientes o hay dinero de por medio en juego ante cada minuto offline, entonces seguramente necesites un servidor en espejo pero además también un balanceo de carga, pues son tecnologías que van de la mano.
Cuando tienes páginas institucionales, corporativas, un foro o blog, no se suelen necesitar estos servicios, salvo que tengas un gran caudal de visitas que lo amerite (arriba de 30 mil visitas diarias únicas).
Requerimientos de Hardware y Red para configurar un Servidor en Espejo
Estos son los requerimientos mínimos para montar servidores en espejo bajo sistemas operativos Linux, que son los que más estabilidad y fiabilidad brindan para casos donde la replicación de datos es necesaria.
- CPU: E3-1230v3 y superiores
- Memoria RAM: 8GB
- Red interna y pública: 1Gbps
- Distribución Linux: CentOS/RHEL, Debian/Ubuntu
Si bien se puede lograr montar un servidor mirror con menos RAM, e incluso usando tarjetas de 100Mbps, los requerimientos que hemos expuesto aquí son los ideales para asegurar un rápido tránsito de datos en la red, así como para que los niveles de CPU y RAM se mantengan estables, sin comprometer el rendimiento en general del sistema operativo.
Tipos de Servidor Espejo
¿Qué clases de servidores en espejo existen? ¿Todos trabajan de la misma forma? Exploremos este tema ahora.
Servidor en Espejo sin balanceo
Como comentamos antes, un servidor en espejo es simplemente aquel que es una copia idéntica del servidor original en cuanto a sistema operativo, archivos, configuraciones, bases de datos, etc.
Ese es el concepto básico de copia en espejo en servidores.
Un servidor en espejo puede no usar ningún tipo de balanceo de carga ni servicios de alta disponibilidad cuando sólo se necesita una copia de los datos.
Eso se da mucho en centros de datos o empresas que tienen este servidor de backup listo para usarse en caso de fallas críticas de hardware en el server original, simplemente le asignan la misma IP que el server viejo, y todo sigue funcionando.
Este tipo de servidores suelen trabajar con tecnologías como DRDB, heartbeat, etc, donde ante la caída del server viejo, las IPs se mueven de forma automática al server copia y todo sigue de forma normal.
Servidor Espejo balanceado con software
Si al server espejado le sumamos un balanceo de hardware ahí ya estamos haciéndolo un poco más inteligente.
Originalmente muchas empresas piensan en replicación de datos para tener su información segura, pero si se le añade un balanceo también se logra al mismo tiempo equilibrar la carga de los sistemas, acelerar las peticiones y lograr una mayor estabilidad de las aplicaciones en general.
El balanceo pude hacerse de forma inteligente con failover o bien repartiendo el tráfico equitativamente mediante round robin DNS, algo que hemos hecho muchas veces para algunos de nuestros clientes, o también con Nginx o Haproxy.
El mínimo de servidores necesarios para tener un balanceo es de 2 equipos, utilizando un balanceador por software operando desde fuera de ellos (aplicación, DNS, etc).
Servidor Espejo balanceado con hardware
La otra alternativa que hemos implementado muchas veces en Infranetworking es utilizar un balanceador de carga de hardware, es decir, un equipo especializado que hace cambios trabajos, balanceo y alta disponibilidad.
Se puede configurar el método de balanceo (equitativo, repartido por el que menos carga tenga, round robin, etc) que necesitemos, y el hardware hará todo el trabajo por nosotros, detectando cuando un servidor no esté disponible y redireccionando todo el tráfico hacia el otro servidor restante.
Una vez el servidor original vuelve a estar online, el balanceador restaura el tráfico de forma original y se vuelve a repartir según tengamos configurado.
Este tipo de balanceadores requieren de dos servidores como mínimo, y un hardware adicional que se encarga del balanceo (Cisco, Kemp Load Balancer, F5 LB, etc).
Suele ser la opción más cara, pero la más efectiva ante fallos.
¿Cuanto cuesta tener servidores en espejo?
Esta es una de las preguntas más comunes a la hora de cotizar una solución con servidores replicados con el mismo contenido. Al necesitar tener la información en diferentes nodos, se requiere de un mínimo de dos equipos, lo cual muchas veces sube los costos considerablemente.
Si hablamos de replicar una web estática con HTML, JS, o archivos PHP que no hagan llamado a base de datos se debe pensar en dos servidores. Si el tráfico es bajo, se podría pensar también en ubicar las bases de datos en esos dos servidores mediante un master-master o master-slave.
Sin embargo, si el uso de bases de datos es intenso a nivel escritura/lectura, y donde la arquitectura de la aplicación ha sido diseñada para que trabajen por separado del servidor web, entonces no estaremos hablando de dos servidores web, sino que además se deberán sumar dos o tres servidores de base de datos.
Esto suele elevar los costos de soluciones de servidores en espejo a un mínimo de $500-$700 dólares/mes para dos servidores (si queremos adicionales un balanceador de carga inteligente, las soluciones pueden llegar hasta $1200-$1400 USD/mes), a $1300-$1500 dólares/mes cuando hablamos de un total de cuatro para también replicar bases de datos.
Resumen
Tener un servidor en espejo es algo que muchas empresas quieren lograr, pero que pocas llegan a tener al final. Los costos de implementación suelen ser altos y requieren de un conocimiento determinado que pocas empresas de tecnología y proveedores ofrecen en el presente.
Como vimos antes, la elección del hardware y el proveedor de red son fundamentales para poder tener realmente un entorno a prueba de fallos y con los datos consistentes, a sufrir caídas repentinas, así como ataques u otras formas de degradación del servicio.
En Infranetworking venimos montando servidores balanceados y replicados en espejo desde hace más de 15 años, utilizando diferentes métodos para lograr lo que el cliente quiere: alta disponibilidad y garantizar que los datos estén espejados en todo momento.
¿Buscas alta disponibilidad y balanceo de carga?
Mira nuestro Servicio de Balanceo de Carga
Replicación y balanceo inteligente garantizado