¿Cómo configurar UPS para reiniciar los servidores en la secuencia correcta?

12

Aquí tenemos algunos servidores y casi cada uno de ellos tiene un UPS dedicado. Hay dependencias entre ellos, por lo que deben activarse en la secuencia correcta. En última instancia, estamos experimentando serios problemas con la fuente de alimentación, por lo que los servidores se apagan y luego se reinician en un orden aleatorio cuando se restablece la alimentación. No es un problema si los servidores se apagaron durante un apagón, es importante que funcionen correctamente sin intervención humana una vez que se restablezca la energía.

Nuestros UPS son bastante baratos y el único parámetro de configuración útil para mi objetivo es power the load xx seconds after power is restored. En teoría, poniendo los retrasos correctos en cada UPS, puedo arreglar el orden de reinicio del servidor, pero no confío en que el UPS se comportará como se esperaba.

¿Es el camino correcto a seguir?
¿Los UPS de alto nivel ofrecen otras opciones para arreglar la secuencia de reinicio?
Una nota final: mis Ups están en el rango de 1000 - 2200 VA

Filippo
fuente
1
Esta es una de las cosas buenas que ofrece systemd: la capacidad de definir dependencias adecuadas en el proceso de inicio. Espere hasta que el servicio X esté disponible antes de intentar iniciar el servicio Y.
MSalters
1
La administración de dependencias de @MSalters AFAIK systemd solo funciona cuando las unidades son manejadas por la misma systemdinstancia y no para servicios que se ejecutan en servidores completamente diferentes ...
HBruijn
1
@HBruijn: una especie de montajes de red, por ejemplo, funcionan en servidores. Es decir, si el servidor1 monta un sistema de archivos alojado por el servidor2, los servicios de serve1 que dependen del montaje se pausarán hasta que el servidor2 haya iniciado esos servicios. Y IIRC también puede hacer que los servidores esperen DHCP (no me pregunte por qué un servidor usa DHCP, pero se mencionó en una respuesta)
MSalters

Respuestas:

25

La respuesta estándar para esto es "en absoluto". Arregle el software para manejar reinicios en orden aleatorio. Si realmente necesita ALGUNOS servidores para comenzar primero (ejemplo: Active Directory) póngalos en los USV que posiblemente sobrevivan MUCHO más. Un servidor basado en un átomo de baja potencia es lo suficientemente bueno como controlador de Active Directory y sobrevivirá un día en un pequeño USV.

¿Los UPS de alto nivel ofrecen otras opciones para arreglar la secuencia de reinicio?

No. Diría que en general se supone que los programadores son lo suficientemente competentes como para solucionar el problema adecuadamente.

Lo que PODRÍAS hacer es:

  • Haga que los servidores se inicien "al azar". Excepto por DHCP / Active Directory, no hay nada que realmente exija un pedido que no pueda ser reparado.
  • Tenga un servidor de control después de un tiempo (5 minutos) para iniciar los servicios en las distintas máquinas en el orden correcto.

Yo diría que este tipo de configuración es mucho más común. Llamaría a cualquier software que REQUIERA que el servidor se inicie en un orden particular (fuera de la infraestructura pura) como defectuoso y no apto para los negocios.

Como nota: nuestra propia configuración es un USV de bajo costo de 20 kva (bajo costo porque tenemos uno usado) para los servidores, con un USV esclavo de 2000 VA para una máquina que sirve como "raíz" de la red (y máquina de respaldo). Esclavo significa que el USV está detrás del grande, por lo que solo cambia a la batería cuando el grande (que dura entre media hora y 8 horas, dependiendo de cuánto de nuestra red informática esté en línea) va a apagar el terminal.

TomTom
fuente
2
Creo que esto a veces es más fácil decirlo que hacerlo (AD, como usted dice, es un ejemplo obvio) pero estoy de acuerdo. La solución correcta es trabajar para eliminar las dependencias para cosas como el orden de inicio de los servidores o servicios. Por lo menos, debería ser posible en una aplicación web, por ejemplo, escribir un código que diga "Si no puedo conectarme a mi back-end, 'duerme' e intente nuevamente más tarde en lugar de estrellarse horriblemente".
Rob Moir
El problema con AD ni siquiera es AD: es principalmente IPv4 DHCP que no está preparado para que las computadoras estén en línea antes del servidor dhcp. Ipv6 maneja esto;)
TomTom
Es verdad. IPv4 es una molestia ... y todavía tengo gente aquí preguntándome por qué tenemos que molestarnos con "esta nueva basura IPv6".
Rob Moir
1
"En general, se supone que los programadores son lo suficientemente competentes como para solucionar el problema". ¡No debe hacer mucha programación! No, con toda seriedad, hay una gran cantidad de razones por las que un sistema puede necesitar aparecer en un orden específico. Sí, el software debe "fallar con gracia" y volver a intentar las conexiones que están rotas, pero no siempre es posible. Por lo que recuerdo, algunas de las buenas PDU tienen la capacidad de iniciar / detener puertos individuales, por lo que tal vez se pueda hacer algo allí.
SnakeDoc
1
Tuve que buscar "USV" y encontré "Vehículo de superficie no tripulado". Sé que esto está mal, pero quiero que sea correcto.
Braiam
14

Las unidades de distribución de energía administrada (en lugar del UPS) a menudo admiten demoras personalizadas para habilitar salidas individuales después de que se reanuda la energía.

Por lo general, esto es para evitar que se disparen los interruptores automáticos cuando un gabinete lleno de sistemas se enciende al mismo tiempo inmediatamente después de que se restablece la alimentación, pero eso también se puede usar para preservar el orden de arranque de las dependencias de su sistema.

HBruijn
fuente
Si, correcto. Esta es una funcionalidad avanzada y no se supone que el USV esté realmente conectado a los servidores, pero está alimentando racks que luego usan PDU para manejar los detalles.
TomTom
6

Tuve este problema exacto. La única diferencia es que invertimos en unidades de potencia APC resistentes montadas en bastidor (por ejemplo, APC SmartUPS 3000 ). Con el software de apagado de red APC PowerChute (software de apagado de red PowerChute) , puedo apagar y abrir servidores en un orden específico. Otra característica útil del software fue configurar los servidores para que se apagaran en el último minuto, es decir, calcular cuánta energía de la batería les quedaba a las unidades APC y apagar los servidores con el tiempo suficiente para que se apagaran correctamente en lugar de apagarse.

El software no es fácil de usar, pero no es nada difícil si te tomas un tiempo para resolverlo. Si está interesado en invertir más en su infraestructura, este es definitivamente el camino a seguir.

Winski Tech
fuente
1
También tenemos Apc Smart Ups, algunos de ellos son relativamente viejos y quizás tienen baterías débiles. Es difícil hacer algunas pruebas en ellos porque están en producción. Además de que carecemos de una carga anormal, me refiero a una carga que puede soportar un apagado repentino sin problemas. Dicho esto, cada vez que simulé un apagón, el UPS se comportó de manera diferente de lo esperado, podría deberse a una configuración incorrecta, pero creo que esos UPS no son muy confiables.
Filippo
@Filippo ciertamente YMMV, pero tengo una combinación de SmartUPS 3000 y 3000XLM en varios sitios que usan el software PowerChute durante 3 años y después de descubrir el software, ciertamente hay una curva de aprendizaje y se necesitan algunas pruebas, ha sido bastante sólido.
Winski Tech
2

Parece que las unidades UPS son de bajo costo y no pueden configurarse para un tiempo de espera de salida específico después de que se restablezca la alimentación (algunas unidades de extremo superior lo son). Para obtener la misma funcionalidad, debe elegir un host específico para que siempre se encienda de inmediato (tal vez el sistema que se pueda iniciar en cualquier momento) y dejar todos los demás servidores en un estado apagado (configurado en BIOS para volver a encender) apagado cuando se aplica CA, y para honrar el paquete mágico Wake On Lan para encender cuando se le indique que lo haga). Luego, en el host principal que arranca, ejecute un script / utilidad para cronometrar la transmisión del paquete mágico WOL a cada host.

Jeff Meden
fuente