Articulo de referencia

Herramientas de UPS de red

Arnaud Quette Arjen de Korte Charles Lepple [http://www.networkupstools.org/acknowledgements.html Numerous contributors (...)]"},"released":{"wt":"{{Start date and age|1998|03|0...

Network UPS Tools ( NUT ) es un conjunto de componentes de software diseñado para monitorizar dispositivos de alimentación, como sistemas de alimentación ininterrumpida , unidades de distribución de energía , controladores solares y fuentes de alimentación para servidores . Admite numerosas marcas y modelos, que se visualizan a través de un protocolo de red y una interfaz estandarizada.

Sigue un modelo de tres niveles con docenas de demonios de controladores de dispositivos NUT que se comunican con dispositivos de hardware relacionados con la energía a través de medios seleccionados utilizando protocolos específicos del proveedor, el servidor NUT upsd que representa a los controladores en la red (por defecto en el puerto 3493/tcp registrado por IANA [ 1 ] ) utilizando el protocolo NUT estandarizado, y clientes NUT (que se ejecutan en el mismo localhost que el servidor o en sistemas remotos) que pueden administrar los dispositivos de energía y consultar sus estados de energía y otras métricas para cualquier aplicación, que generalmente abarca desde gráficos históricos y apagados controlados hasta conmutación por error de energía orquestada y migración de máquinas virtuales.

Basándose en el diseño y el protocolo de NUT, la comunidad del proyecto elaboró ​​el "Protocolo de gestión de UPS", RFC informativo 9271, que fue publicado por IETF en agosto de 2022, [ 2 ] y el registro de números de puerto de IANA se actualizó para reflejarlo (aunque este RFC no es formalmente un estándar de Internet ).

Entre los clientes mantenidos en el código fuente de NUT se incluyen upsc , upsrw y upscmd para acciones de línea de comandos, upsmon para una monitorización relativamente sencilla y apagados controlados (teniendo en cuenta la cantidad de unidades de alimentación mínimas requeridas frente al total disponible en el servidor actual), upssched para escenarios de monitorización complejos, upscgi para una interfaz web sencilla, un cliente de escritorio X11 para NUT-Monitor , así como bibliotecas en C, C++ y Python para clientes de terceros. Los proyectos de la comunidad incluyen más clientes y enlaces para otros lenguajes.

Al ser un proyecto multiplataforma, NUT funciona en la mayoría de las plataformas Unix, BSD y Linux con diversas arquitecturas de sistema, desde sistemas embebidos hasta los venerables servidores Solaris, HP-UX y AIX. También hubo compilaciones nativas de Windows basadas en la línea de versiones estables anteriores de NUT, la última fue la 2.6.5. Este esfuerzo se revivió después del lanzamiento de NUT 2.8.0, convirtiéndose en parte del código base principal en septiembre de 2022 (en este momento hay áreas del código base documentadas en el proyecto como marcadores de posición y aún no portadas a la plataforma Windows, y el proyecto aún no produce paquetes). A partir de las versiones de NUT 2.8.1 a 2.8.3, [ 3 ] las compilaciones de NUT para Windows están disponibles como archivos desde la plataforma CI , pero los paquetes correctamente integrados aún no están disponibles.

Historia

El apcd original de Pavel Kořenský sirvió de inspiración para desarrollar el protocolo APC Smart-UPS en 1996. [ 4 ] Este es el mismo software del que se derivó Apcupsd , según el mantenedor de Debian de este último. [ 5 ]

Russell Kroll, autor y coordinador original de NUT, lanzó el paquete inicial, llamado smartupstools , en 1998. El diseño ya contemplaba dos demonios, upsd (que sirve datos) y upsmon (que protege los sistemas), un conjunto de controladores y ejemplos, varios módulos CGI e integración de cliente, y un conjunto de herramientas CLI de cliente ( upsc , upsrw y upscmd ), para la interfaz del sistema con un UPS específico de un modelo determinado. [ 6 ] Para reflejar la compatibilidad con controladores de múltiples proveedores y para evitar posibles conflictos con APC, el nombre del proyecto se cambió a Network UPS Tools a partir de la versión 0.42.0, lanzada el 31 de octubre de 1999.

Arnaud Quette lideró el proyecto desde 2005, aumentando su visibilidad entre los posibles colaboradores mediante la creación de un proyecto en Debian Alioth Forge , lo que redujo su dependencia de una sola persona. Trabajando para MGE UPS Systems y posteriormente para Eaton, también garantizó la colaboración de proveedores en los ámbitos de los sistemas de alimentación ininterrumpida (UPS) y los sistemas embebidos. Como resultado, se desarrollaron numerosos controladores para diferentes protocolos y medios, y se añadieron al proyecto muchas herramientas y enlaces de software de estilo empresarial. Numerosos controladores se rediseñaron para integrarse en un marco más común, lo que facilitó el intercambio de código.

Evgeny "Jim" Klimov, el actual líder del proyecto desde 2020, [ 7 ] se centra primero en las pruebas automatizadas y el aseguramiento de la calidad del código base existente para garantizar una mínima ruptura introducida por nuevas contribuciones, así como para limpiar deudas técnicas antiguas e inconsistencias resaltadas por herramientas modernas de lint y cobertura, [ 8 ] y emitir una nueva versión oficial largamente esperada v2.8.0 finalmente el 26 de abril de 2022. [ 9 ]

La necesidad de probar NUT en muchas más plataformas de las que suelen ofrecer los proyectos de CI en la nube basados ​​en líderes del mercado (Debian/Ubuntu Linux, macOS, Windows) dio lugar a un conjunto de máquinas virtuales y contenedores personalizados que se instanciaron en diferentes proveedores de nube patrocinadores en distintos años, con una granja de CI de NUT basada en Jenkins que cubría muchas de las plataformas menos representadas. Esto también llevó a la creación de una biblioteca compartida de Jenkins , " jenkins-dynamatrix " , para orquestar una matriz de compilación y prueba definida por la población activa de agentes de compilación que declaran sus capacidades de plataforma; si bien actualmente su principal consumidor es NUT, otros proyectos con necesidades similares pueden adaptarla a sus necesidades. Gracias a esta configuración, una iteración típica del código base de NUT ejecuta unos 300 escenarios con diferentes objetivos de compilación y prueba, en numerosas tecnologías de kernel de sistema operativo y distribuciones basadas en ellas, biblioteca del sistema, compilador, shell e implementaciones de programas make , cubriendo numerosas ramas de las últimas dos décadas de evolución de TI, asegurando activamente que todos estos sistemas sean compatibles con cada conjunto de cambios fusionado. [ 10 ]

Su trabajo posterior se centra en guiar a los colaboradores de nuevos controladores y otro código, ampliando la compatibilidad con diversos sistemas operativos, implementaciones de kits de herramientas y revisiones de lenguaje, así como en mantener y documentar la posibilidad de compilar la base de código NUT actual dondequiera que haya funcionado en las últimas décadas, con el lema "¡Si esas máquinas todavía funcionan, merecen protección!".

También se están realizando muchos esfuerzos para mejorar la calidad de vida de los usuarios finales de NUT, como la integración del marco de gestión de servicios del sistema operativo, nuevas opciones de herramientas de línea de comandos, características de intercomunicación de los programas NUT, capacidad de ajuste y apertura a los esfuerzos de resolución de problemas. Cabe destacar la compatibilidad con la compilación de NUT para actualizaciones in situ o pruebas no disruptivas, [ 11 ] lo que permite a los usuarios finales probar una base de código NUT más reciente que la que ofrecen los paquetes de su distribución del sistema operativo, manteniendo la mayor compatibilidad posible con su diseño y configuración, de modo que puedan usar la compilación personalizada como un reemplazo directo si les gusta después de las pruebas previas desde el espacio de trabajo de compilación.

A lo largo de sus dos décadas de historia, el proyecto de código abierto se convirtió en la solución estándar de facto para la monitorización de sistemas de alimentación ininterrumpida (UPS), incluida en las distribuciones de sistemas operativos e integrada en muchas soluciones NAS, algunas configuraciones de hipervisor convergentes y otros dispositivos. Además, contó con las contribuciones y el apoyo de numerosos usuarios finales, así como de representantes de proveedores de hardware de alimentación, que proporcionaron especificaciones de protocolo, muestras de hardware y, en muchos casos, nuevo código de controlador NUT y correcciones posteriores basadas en los comentarios de la comunidad NUT.

Referencias

  1. "3493/tcp" . Consultado el 10 de agosto de 2022 .
  2. Price, Roger (agosto de 2022). Protocolo de gestión de UPS . IETF . doi : 10.17487/RFC9271 . RFC 9271 .
  3. Jim Klimov (22 de mayo de 2024). "NUT para Windows (página wiki de GitHub)" . GitHub .
  4. Russell Kroll (25 de noviembre de 2004). "Herramientas de UPS de red: Agradecimientos" . Recuperado el 9 de junio de 2010 .
  5. Nils Rennebarth (1 de julio de 1997). "apcupsd, genpower y cable PowerChute(TM) "Black" . debian-user (Lista de correo) . Consultado el 9 de junio de 2010. apcupsd deriva de apcd, creado por Pavel Korensky .
  6. El archivo README para smartupstools-0.20.
  7. "Actualizaciones sobre el liderazgo del proyecto NUT" . Nut-upsdev (Lista de correo). 13 de noviembre de 2020.
  8. "Mejoras en la calidad de codificación de NUT" . Nut-upsdev (Lista de correo). 28 de noviembre de 2020.
  9. "NUT v2.8.0 presentado, tras varios años (demasiados) de desarrollo" . Nut-upsdev (Lista de correo). 26 de abril de 2022.
  10. Jim Klimov (2 de octubre de 2022). "Jenkins es la forma de construir NUT multiplataforma, y ​​jenkinsfile-dynamatrix es la forma de encontrar lo que se puede construir hoy" .
  11. Jim Klimov (28 de julio de 2024). "Creación de NUT para actualizaciones in situ o pruebas no disruptivas (página wiki de GitHub)" . GitHub .