Tengo centros de datos de almacenamiento en la nube que ejecutan Ubuntu 16.04 lts y NextCloud / OwnCloud que no necesitan estar disponibles las 24 horas, los 7 días de la semana, y necesitan soluciones de administración de energía. Los servidores son Dell PowerEdge 1950 Gen II y Dell PowerEdge 2950 Gen II
Objetivo general
Los servidores de almacenamiento en la nube de Hibernate pasaron un tiempo de inactividad, por ejemplo, 20 minutos y se deshibernaron con WOL para reducir 6272.09 kilos de dióxido de carbono por año, 6680kw solo desde nuestro centro de datos, métricas logradas en una auditoría energética detallada.
Solución ineficaz probada
Paisaje
Los trabajos horizontales en el entorno / cron solo ofrecen arranques y paradas programadas, por lo tanto, no son efectivos para nuestro logro.
Siesta de poder
powernap parece el camino a seguir, pero el servicio no se inicia en Ubuntu 16.04
XXXXXXX ~ estado de powernap del servicio $ sudo ● powernap.service - PowerNap Cargado: cargado (/lib/systemd/system/powernap.service; deshabilitado; proveedor preestablecido Activo: inactivo (muerto)
ponwernap parece usar servicios depreciados como network.service que ya no están disponibles en Ubuntu 16.04
Objetivos alcanzables
Wake on LAN (WOL)
Habilitar WOL es sencillo siguiendo la configuración manual en este enlace . o con el uso de Powewake
Servidor Hibernación
Hasta ahora, solo he logrado hibernar los servidores usando sudo systemctl hibernate
ysudo systemctl hibernate-sleep
- powernap: estoy presentando informes de errores para eliminar dependencias agotadas
- systemctl - podría conducir a algún lugar
- pm-utils - podría llevar a algún lugar
Actualizaciones de hardware
He actualizado las CPU de la Dell 1950 Gen II dual Xeon E5335 con las CPU Xeon X5365. El X5365 permite la administración de energía y establece la administración de energía desde el BIOS. Honestamente, no estaba a favor de tal actualización, ya que el X5365 consume 70 vatios por CPU más que el E5335, pero lo hice a favor de las pruebas de hibernación.
Actualización 1
En este momento pm-utils
es la única forma de separarse de la configuración wol
del nic. Actualmente estoy explorando la configuración óptima para crear un enlace de alimentación para la configuración de CA durante el tiempo de inactividad.
Cualquier recomendación por favor.
Respuestas:
Arme un pequeño script que puedes ejecutar en un cronjob cada 15 minutos o usando temporizadores systemd:
Primero obtiene el número de usuarios que han iniciado sesión en el sistema y la carga promedio durante los últimos 15 minutos. Debería poder averiguar su carga de sistema promedio inactiva usando
cat /proc/loadavg
. El tercer número de coma flotante da el promedio de los últimos 15 minutos. Este valor es útil para definir un umbral establecido en la variableAvgLoadThresh
. Esto sin duda necesitará ser ajustado. La otra cosa que puede definir es cuántos usuarios pueden iniciar sesión y el sistema va a hibernar de todos modos. Esto se establece enActiveUsersThresh
. Solo para asegurarse de que el sistema no siempre esté hibernando cuando realice tareas de mantenimiento o algo así.Supongo que uno podría tener más controles inteligentes, así que míralo como un primer enfoque simple. Por ejemplo, no sé qué base de datos o servidor web se utiliza en su propia instalación de la nube, pero podría intentar detenerlos con gracia antes del comando de hibernación, para que nadie pierda de repente la conexión.
fuente