Instalar el último kernel de Linux solía significar un reinicio, hasta que se desarrolló la "actualización del kernel sin reinicio", un método que parchea los servidores sin reiniciarlos. Ahora que la técnica tiene poco más de 10 años, este artículo analiza brevemente sus orígenes y su estado actual.
2001–2010:El rastro de las patentes
Si rastrea los archivos de patentes con palabras clave como hot patching o actualización de sistemas en vivo, encontrará muchas aplicaciones y rechazos que muestran que la idea de actualizar un sistema informático sin detenerlo no es nada nuevo. Las fechas significativas, rastreando la idea de lo general a lo específico, son las siguientes:
- 2001:Hewlett Packard patenta un método para actualizar dinámicamente el software para evitar la falta de funcionalidad del hardware.
- 2002:Microsoft se une al juego con un enfoque para actualizar un sistema (Windows) sin interrumpirlo. (Su solicitud inicial se rechaza sobre la base del "estado de la técnica" de HP.)
- 2008:Jeff Arnold anuncia Ksplice, software para actualizar (parchar) un kernel de Linux sin interrupción (es decir, sin reiniciar).
- 2010:la patente de Microsoft finalmente se concede en apelación.
Lo interesante de estos es que comparten la aspiración de rectificar, con una actualización de software, una falla en el software o hardware central de un sistema sin afectar el funcionamiento continuo de ese sistema y sin alterar el hardware. ¿Suena familiar? (Pistas:Fusión, Espectro.)
2009:El nacimiento de Rebootless
Jeff Arnold era un estudiante del MIT que cuidaba uno de sus servidores. Necesitaba un parche de seguridad, pero lo retrasó porque un reinicio incomodaría a sus usuarios. Antes de que el sistema pudiera actualizarse, fue pirateado. La desgracia y (irónicamente) las molestias sufridas inspiraron a Jeff a encontrar el tema de su tesis de maestría en el problema de realizar una actualización del sistema sin demora y sin reiniciarlo. La historia puede ser apócrifa, pero nos recuerda que las técnicas de parches en vivo surgieron de una preocupación no por la conveniencia sino por la seguridad, y es en ese papel en el que deben ser apreciadas.
Jeff Arnold se asoció con tres colegas estudiantes para estudiar el problema de cómo actualizar el kernel de un servidor Linux, sin demora y sin interrumpir los procesos del sistema. La solución llegó en forma de software llamado Ksplice, cuyos fundamentos técnicos se establecieron en un artículo académico de 2009. El título del documento incluía la palabra sin reinicio, ahora familiar abreviatura de Linux para "actualización ininterrumpida", pero acuñada por primera vez por Microsoft en 2005 para aplicar a las actualizaciones de controladores de Windows.
Después de graduarse, Jeff y sus colegas del MIT fundaron Ksplice Inc., y en mayo de 2009 ganaron el premio MIT $100K Entrepreneurship Competition. La empresa lanzó un servicio comercial en 2010; las cosas iban bien.
2011–2016:Oracle y la nueva ola
El 21 de julio de 2011, Oracle adquirió Ksplice, Inc., integrando el software en su propia marca de Linux, un derivado de Red Hat. A pesar de esa herencia, Oracle dejó de dar soporte a Red Hat. La adquisición de Ksplice por parte de Oracle inició una oleada de actividad entre otros proveedores clave de Linux que quedaron en la estacada.
Entre 2011 y 2014, SUSE y Red Hat trabajaron de forma aislada (e ignorando los objetivos de cada uno) para lanzar sus propias soluciones de actualización del kernel en vivo, lo que hicieron en Kgraft y Kpatch respectivamente. (A pesar de su ligera ventaja inicial, Kgraft de SUSE solo se hizo GA (es decir, adecuado para sistemas de producción) en 2016).
Red Hat compartió su código Kpatch con la comunidad y lo integró como una característica compatible de Red Hat Enterprise Linux.
La diferencia entre las dos encarnaciones se puede deducir del mensaje estampado en la página del proyecto de la versión de código abierto:
ADVERTENCIA:¡Utilícelo con precaución!
¡Se pueden producir bloqueos del kernel, reinicios espontáneos,
y pérdida de datos!
A lo largo del mismo período, y en paralelo con los esfuerzos de SUSE y Red Hat, los fundamentos básicos de ABI para admitir parches en vivo se integraron en el código fuente de la versión 4.0 del kernel de Linux. La idea era tomar las mejores ideas de Kpatch y Kgraft y... parchearlas e injertarlas en un enfoque común para la línea principal. Esto se llamó livepatch, y en octubre de 2016, Canonical anunció que estaban introduciendo su propio servicio comercial de actualización del kernel basado en él, previsiblemente llamado Canonical Livepatch Service. Primero solo disponible para Ubuntu 16.04 LTS, luego se amplió para cubrir también 14.04 LTS. En Ubuntu 18.04 LTS Livepatch es una opción de instalación y se puede configurar desde la herramienta de gestión de software integrada, una señal de su creciente importancia en la distribución de software estándar.
2014:Nuevo chico en el bloque
Mientras los principales proveedores luchaban por ser los primeros en lanzar soluciones viables de parches en vivo, CloudLinux, un jugador importante en los sistemas operativos de alojamiento web basados en Linux, lanzó KernelCare en mayo de 2014, luego de una versión beta exitosa en marzo.
Sorprendieron al mercado al ofrecer el conjunto de funciones más amplio en la mayor cantidad de plataformas Linux, lo que lo respaldó con una sólida reputación en el desarrollo del kernel de Linux y la atención al cliente. Otra sorpresa fue la asequibilidad, lo que atrajo a los alojadores de sitios web que consideran que los costos por servidor de KernelCare son más manejables y escalables que los costos por sitio de su principal competidor.
Más recientemente, la combinación de KernelCare con Imunify360 hizo que apareciera en el radar de un nuevo escuadrón de administradores de sistemas de alto vuelo y preocupados por la seguridad.
Conclusión:El problema central en 2019
A medida que el mundo avanza hacia la seguridad automatizada, verá que el software de administración automática de parches de kernel en vivo se integra cada vez más en las distribuciones populares de Linux. Actualmente solo hay cinco proveedores distintos en el mercado. Una tabla de comparación de características enumera sus principales puntos de venta. En la sección de lecturas adicionales, encontrará fuentes de documentación y artículos de fondo.
Jugar con un kernel activo puede ser complicado. No es algo que una empresa, o cualquier persona que ejecute servidores, quiera confiar en un software no probado y sin soporte. Cuando se hace en nombre de la seguridad, es una de varias aplicaciones en Linux por las que vale la pena pagar, una de las pocas que debe hacerse absolutamente bien.
Debido a la solicitud de patente de Microsoft de 2002, las discusiones en ese momento revelan preocupación sobre la viabilidad a largo plazo de la tecnología. Consulte lkml.org de abril de 2008 y lwn.net de julio de 2011.
MIT News:"Brindando al mundo actualizaciones sin reiniciar" (2014).
Desde enero de 2016, Ksplice ha estado disponible solo como parte de los productos UEK de Oracle y Oracle Linux 6 y 7. En noviembre de ese año, eliminaron el código Kpatch ascendente de Red Hat.
Servicios de actualización en vivo del kernel de Linux:tabla de comparación de funciones
Característica | Ksplice | Kgraft | Kpatch | Parche en vivo | Cuidado del núcleo |
Fácil instalación/configuración | Sí | N/D | Sí | Sí | Sí |
Retroceder | Sí | Sí | Sí | Sí | Sí |
Parches fijos | Sí | No | No | No | Sí |
Compatible con cortafuegos | Sí | No | No | No | Sí |
Actualizaciones sin conexión | Sí | No | No | No | Sí |
Control de acceso a parches | Sí | No | No | Sí | Sí |
Totalmente automatizado | Sí | No | No | No | Sí |
GUI de administración | Sí | No | No | Sí | Sí |
Soporte gratuito 24/7 | No | No | No | No | Sí |
Nº de plataformas | 2 | 1 | 1 (4) | 1 | 9 |
Parcheado instantáneo | Sí | No | Sí | Sí | Sí |
Prueba gratuita (días) | 30 | 60 | No | No | 30 |
API (RESTO) | Sí | No | No | No | Sí |
Anulación no más reciente | Sí | No | No | No | Sí |
Núcleos personalizados | No | No | Sí | No | Sí |