stringtranslate.com

Herramientas de red UPS

Network UPS Tools ( NUT ) es un conjunto de componentes de software diseñados para monitorear dispositivos de energía, como sistemas de alimentación ininterrumpida , unidades de distribución de energía , controladores solares y unidades de suministro de energía para servidores . Se admiten muchas marcas y modelos y se exponen a través de un protocolo de red y una interfaz estandarizada.

Sigue un modelo de tres niveles con docenas de daemons 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 los controladores en la red (por defecto, el puerto registrado por IANA 3493/tcp [1] ) utilizando el protocolo NUT estandarizado, y clientes NUT (que se ejecutan en el mismo host local 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 van desde gráficos históricos y apagados elegantes hasta conmutación por error de energía orquestada y migración de VM.

Basándose en el diseño y el protocolo NUT, la comunidad del proyecto creó 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).

Los clientes que se mantienen en la base de código de NUT incluyen upsc , upsrw y upscmd para acciones de línea de comandos, upsmon para monitoreo relativamente simple y apagados elegantes (considerando la cantidad de unidades de fuente de energía mínimamente requeridas vs. totales disponibles en el servidor actual), upssched para escenarios de monitoreo complejos, upscgi para una interfaz web simple, un cliente de escritorio NUT-Monitor X11, así como bibliotecas 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 varias arquitecturas de sistema, desde sistemas integrados 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 de las cuales fue la 2.6.5. Este esfuerzo se reanudó después del lanzamiento de NUT 2.8.0, y se convirtió en parte de la base de código principal en septiembre de 2022 (en este momento, hay áreas de la base de código documentadas en el proyecto como marcadores de posición y aún no trasladadas a la plataforma Windows, y el proyecto aún no produce paquetes). A partir de las versiones 2.8.1 y 2.8.2 de NUT, [3] las compilaciones de NUT para Windows están disponibles como archivos de la plataforma CI, pero los paquetes perfectamente 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, el autor y coordinador original de NUT, lanzó el paquete inicial, llamado smartupstools , en 1998. El diseño ya preveía dos daemons, upsd (que sirve datos) y upsmon (que protege los sistemas), un conjunto de controladores y ejemplos, una serie de módulos CGI e integración de clientes, y un conjunto de herramientas CLI de cliente ( upsc , upsrw y upscmd ), para interconectar el sistema con un UPS específico de un modelo dado. [6] Para reflejar el soporte de controladores de múltiples proveedores y para evitar posibles disputas 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 dirigió el proyecto desde 2005, aumentando su visibilidad para los posibles colaboradores mediante la creación de un proyecto en Debian Alioth Forge , lo que lo hizo menos dependiente de una sola persona. Trabajando para MGE UPS Systems y más tarde para Eaton, también aseguró la colaboración de los proveedores en los mundos de UPS y sistemas integrados. Como resultado, se desarrollaron muchos controladores para diferentes protocolos y medios, y se agregaron al proyecto muchas herramientas de estilo empresarial y enlaces de software. Se rediseñaron numerosos controladores en un marco más común, lo que permitió un mejor intercambio de la base de código.

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

La necesidad de probar NUT en muchas más plataformas que las que suelen ofrecer los proyectos de integración continua en la nube basados ​​en los líderes del mercado (Debian/Ubuntu Linux, MacOS, Windows) condujo a un conjunto de máquinas virtuales y contenedores a medida que se instanciaron en diferentes proveedores de nube patrocinadores en diferentes años, con una granja de integración continua de NUT basada en Jenkins que cubría muchas de las plataformas menos representadas. Esto también condujo 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 actualmente activa de agentes de compilación que declaran las capacidades de su plataforma; si bien actualmente su consumidor principal es NUT, otros proyectos con necesidades similares pueden adaptarla a sus necesidades. Gracias a esta configuración, una iteración típica de la base de código de NUT ejecuta unos 300 escenarios con diferentes objetivos de compilación y prueba, en numerosas tecnologías de núcleo de SO y distribuciones basadas en ellas, bibliotecas de sistema, compiladores, shell y programas de creación , que cubren numerosas ramas de las últimas dos décadas de evolución de TI, garantizando activamente que todos estos sistemas sean compatibles con cada conjunto de cambios fusionado. [10]

Su trabajo posterior se centra en orientar a los colaboradores de nuevos controladores y otros códigos, ampliar la compatibilidad con varios sistemas operativos, implementaciones de kits de herramientas y revisiones de lenguaje, así como mantener y documentar la posibilidad de construir la base de código NUT actual dondequiera que haya funcionado en las últimas décadas, con el lema "¡Si esas cajas 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 SO, nuevas opciones de herramientas de línea de comandos, funciones de intercomunicación de los programas NUT, capacidad de ajuste y apertura a los esfuerzos de resolución de problemas. Cabe destacar especialmente el soporte para la creació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 nueva que la que ofrecen sus paquetes de distribución del SO, sin dejar de ser lo más compatible posible con su diseño y configuración, de modo que puedan utilizar la creación personalizada como un reemplazo directo si así lo desean después de realizar pruebas previas desde el espacio de trabajo de creació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 el monitoreo de UPS proporcionada con distribuciones de SO e incorporada en muchas soluciones NAS, algunas configuraciones de hipervisor convergente y otros dispositivos, y disfrutó de contribuciones y soporte de numerosos usuarios finales, así como de representantes de proveedores de hardware de energía que proporcionaron especificaciones de protocolo, hardware de muestra y, en muchos casos, nuevo código de controlador NUT y correcciones posteriores basadas en los comentarios de la comunidad NUT. [ cita requerida ]

Referencias

  1. ^ "3493/tcp" . Consultado el 10 de agosto de 2022 .
  2. ^ Price, Roger (agosto de 2022). Protocolo de gestión de UPS. doi : 10.17487/RFC9271 . RFC 9271.
  3. ^ Jim Klimov (22 de mayo de 2024). "NUT para Windows (página wiki de GitHub)".
  4. ^ Russell Kroll (25 de noviembre de 2004). "Herramientas de UPS en red: agradecimientos" . Consultado el 9 de junio de 2010 .
  5. ^ Nils Rennebarth (1 de julio de 1997). "apcupsd, genpower y el cable "negro" PowerChute(TM)". debian-user (lista de correo) . Consultado el 9 de junio de 2010. apcupsd se deriva de apcd de Pavel Korensky .
  6. ^ El archivo README para smartupstools-0.20.
  7. ^ "Actualizaciones de la dirección del proyecto NUT". Nut-upsdev (lista de correo). 13 de noviembre de 2020.
  8. ^ "Mejoras en la calidad de la codificación NUT". Nut-upsdev (lista de correo). 28 de noviembre de 2020.
  9. ^ "Se dio a conocer NUT v2.8.0, que tardó solo unos pocos años (demasiados) en desarrollarse". Nut-upsdev (lista de correo). 26 de abril de 2022.
  10. ^ Jim Klimov (2 de octubre de 2022). "Jenkins es la forma de crear NUT multiplataforma, y ​​jenkinsfile-dynamatrix es la forma de descubrir lo que se puede crear hoy".
  11. ^ Jim Klimov (28 de julio de 2024). "Creación de NUT para actualizaciones locales o pruebas no disruptivas (página wiki de GitHub)".

Enlaces externos