¿Cómo puedo apagar los nodos del clúster durante una carga baja?

¿Cómo puedo apagar los nodos del clúster durante una carga baja?

Estoy desarrollando software para el negocio de consultoría energética y al monitorear el uso de energía en centros de datos, he notado que el "patrón" de carga eléctrica típico de un centro de datos es simplemente una línea plana, porque todos los equipos funcionan las 24 horas del día, los 7 días de la semana. Si compara esto con el patrón de uso real (carga de red, uso de CPU, etc.), como hicimos nosotros, normalmente tendrá períodos prolongados con poco uso pero con toda la capacidad disponible.

Estos patrones son muy predecibles en muchos casos y para ahorrar energía sería genial apagar parte del equipo (servidores, conmutadores, almacenamiento) periódicamente o en condiciones de baja carga. Sin embargo, se me ocurren varios aspectos que habría que considerar, entre ellos

  • Manejo de cargas máximas o picos repentinos.
  • consistencia de datos entre nodos
  • tiempos de inicio (y, posiblemente, sincronización) prolongados en comparación con el tiempo de actividad promedio de un nodo

Probablemente haya más. ¿Existe software que maneje tal escenario y qué más se debe tener en cuenta? ¿Es esta una sugerencia viable?

Para mis propósitos, un clúster no significaría necesariamente agrupar máquinas en el nivel del sistema operativo; también contarían los hosts idénticos que reciben solicitudes a través de un equilibrador de carga (es decir, agrupación a nivel de aplicación). No estoy seguro de cómo funciona el clúster MySQL o similar, pero probablemente también los contaría.

Busco consejo para cualquier sistema operativo.

Ver también mipost sobre eficiencia energéticaen Stack Overflow que planteó esta pregunta.

Respuesta1

Fuerza

UsarPDU conmutadaspara que pueda encender y apagar servidores y conmutadores fuera de banda. Esto es independiente del sistema operativo y del dispositivo, lo que simplificará enormemente la configuración y la lógica que enciende y apaga las cosas. Si todos sus servidores tienen interfaces IPMI habilitadas para red, puede usarlas en su lugar. Recomendaría no intentar encender y apagar cosas usando elementos de nivel superior como Wake-on-LAN.

Lógica de encendido/apagado

Esto podría adoptar muchas formas. Algunos software de agrupación (comoMoab) tiene una solución para esto incorporada. De lo contrario, puede escribir algún script con el siguiente pseudocódigo:

  1. Verifique la carga general del clúster
  2. Si la carga del clúster > umbral1, active algunos nodos
  3. Si la carga del clúster <umbral2, apague algunos nodos

Ponlo en cron y haz que se ejecute cada media hora.

Pila de software de agrupación en clústeres

Obviamente, deberá asegurarse de que su pila de software de agrupación en clústeres pueda manejar estos dispositivos que suben y bajan todo el tiempo. Haga muchas pruebas aquí, considere problemas de sincronización oscuros (el arranque lleva tiempo) y cualquier condición de carrera que pueda aparecer en la lógica de encendido/apagado que utiliza.

Respuesta2

VMware

La última versión de su producto empresarial, VSphere 4, puede apagar los hosts que no son necesarios para alcanzar la capacidad y reactivarlos cuando sea necesario mediante la distribución de las máquinas virtuales en tiempo real. Combine esto con los ahorros de energía que obtiene al consolidar su hardware en una plataforma virtualizada y podrá obtener un ahorro de energía significativo.

Respuesta3

Esto se mencionó hoy en Planet Ubuntu. La publicación se puede encontrar.aquí. Habla del desarrollo de una solución práctica para encender/apagar máquinas bajo demanda en una nube usandoSiesta de poder.

Respuesta4

Bueno, para los servidores, el comando SHUTDOWN.EXE se puede utilizar para apagar de forma remota una caja de Windows. Lo mismo se podría hacer fácilmente en Unix con un script telnet/ssh.

El problema más importante sería cómo reiniciarlos. necesitaríasActivación de la LANo algo similar para eso.

La parte difícil de hacer esto es verificar que las máquinas que está apagando en realidad no estén haciendo algo importante. Como ese trabajo cron del que nadie estaba realmente seguro de dónde se suponía que debía ir, así que simplemente lo pusieron en uno de los servidores web agrupados. Ahora apagas esa máquina y el trabajo ya no se ejecuta como se suponía.

Sin embargo, si el entorno está estrictamente controlado y sabes exactamente qué está haciendo cada máquina, tendría mucho sentido.

información relacionada