it-swarm-es.com

¿Cómo puedo cambiar automáticamente el DNS un registro para apuntar mi sitio a un servidor secundario en caso de fallo?

Mi hosting me está cobrando una tarifa de $ 50 por mes para poner mis servidores en la misma VLAN para que cree un clúster utilizando la función de equilibrio de carga de red.

Realmente no necesito dividir la carga entre los servidores, estaba buscando una manera fácil de crear un escenario de conmutación por error para protegerse contra las fallas de los servidores. Sin embargo, considero que esta tarifa es poco cara.

¿Hay alguna forma de crear un clúster sin usar el NLB? Tal vez algo que monitorea mi servidor principal y cambia el DNS para el dominio cuando baja?

6
holiveira

DNS es una mala elección para simular la conmutación por error. Las razones son

  • DNS registra una válida por un período de tiempo, para lograr una conmutación por error en tiempo real, tendría que bajar el TTL en una entrada de DNS para que sea tan baja que cada solicitud a su sitio dará como resultado un DNS Búsqueda. Que lento seriamente la experiencia de tus visitantes.
  • Hay algunas sospechas que incluso hoy DNS se relacionan con muy bajas TTL valores no son respetados por los servidores de nombres de rotos de ISP y más antiguos.
  • El uso de REDOND ROBIN DNS no proporcionará una conmutación por error, ya que en promedio el 50% de las solicitudes irá a cada IP listado. Esto realmente funcionaría si los protocolos de nivel superior de HTTP se habían vuelto incorporados.

Mis sugerencias serían

  • Si su segundo servidor está en la misma compañía de alojamiento, busque alquilar un balanceador de carga real, ya sea para su propio uso, o la mayoría de las compañías de alojamiento pueden alquilarlo parte de su infraestructura de equilibrio de carga compartida
  • Use algo como Spread o Linux Ha servidores para asignar el servicio a una IP virtual flotante que se pasa entre sus servidores físicos. Los servidores en el clúster monitorean entre sí y deciden quién es el propietario actual de la IP virtual.

Recomiendo encarecidamente lectura Arquitecturas de Internet escalables por THEO Schlossnagle Como cubre esto con gran detalle

9
Dave Cheney

Una forma sería tener su sitio en dos servidores diferentes, luego tener un monitor de sitio en una tercera ubicación que controla la conexión con el servidor principal (donde suele apuntar su DNS). Si detecta que el sitio está abajo, haga que el monitor ejecute un script o presione la URL de actualización de un proveedor dinámico DNS (como DTDNS [que opero], o DYNDNS.com ) Con la dirección IP de su servidor de respaldo especificado para su dominio/nombre de host. Esto actualizará el registro DNS y el tráfico directo a su servidor web de respaldo. Cuando el sitio principal está de nuevo en línea, el monitoreo puede ejecutar otro script o URL que pondrá la dirección IP "real".

Una clave aquí es tener DNS alojada en un proveedor que tenga una API en su sistema para que su dominio pueda actualizarse rápidamente, y que mantiene el TTL lo suficientemente bajo para que los visitantes sean redirigidos relativamente rápidamente.

Otra es que el sitio debe ser monitoreado desde una ubicación externa y objetiva. No puede ejecutar monitoreo en el mismo servidor web a medida que el sitio está activado. Si todo el servidor baja, el método de monitoreo/actualización se reducirá con él.

1
Justin Scott

SimpleFailover hace más o menos lo que quiere. Recuerde que DNS se almacena en caché, por lo que no es una solución perfecta.

Con respecto a múltiples registros, he visto la discusión recientemente con respecto a Vista y Win Server Server 2008 implementando RFC3484 , lo que significa que no puede confiar en Round-Robin y es probable que obtenga una carga de servidor desigual de estos clientes .

1
John McC

DNS se hizo fácil Le permite configurar su DNS para que si el servidor está abajo, le señala en otro lugar. En nuestro caso, tenemos una página estática que dice el sitio está abajo, intente nuevamente más tarde.

Si usa DNS de esta manera, debe configurar un relativamente corto TTL para evitar el problema de almacenamiento en caché.

1
Brent