Los ingenieros de Google han publicado para discusión de los desarrolladores del núcleo Linux un conjunto de parches con la implementación del subsistema Live Update Orchestrator (LUO), destinado a actualizar el núcleo en modo Live. A diferencia de mecanismos como livepatch, Ksplice, kpatch y kGraft, el nuevo sistema no se limita a la aplicación de correcciones individuales al núcleo de Linux en funcionamiento, sino que permite reiniciar y actualizar completamente el núcleo sin detener el funcionamiento de dispositivos individuales. El proyecto se basa en un conjunto de parches KHO (Kexec HandOver) para el mecanismo kexec, que se utiliza para cargar un nuevo núcleo desde un núcleo de Linux ya en funcionamiento sin reinicio físico.
La principal área de aplicación de LUO son entornos en la nube, donde se habilitará la posibilidad de actualizar el hipervisor KVM sin interrumpir el funcionamiento de los procesos en ejecución. máquinas virtualesEn particular, se podrá suspender máquinas virtuales temporalmente la reinicialización del núcleo con el hipervisor, manteniendo en funcionamiento todos los dispositivos conectados a las máquinas virtuales.
Para hacer posible esta capacidad, LUO ofrece opciones para guardar el estado de los dispositivos antes de cambiar al nuevo núcleo y restaurar el estado inmediatamente después de activar el nuevo núcleo de manera que las operaciones continuas del sistema y las aplicaciones en el espacio del usuario con dispositivos no se vean interrumpidas. Durante el proceso de reinicialización del núcleo, también se garantiza la continuidad de las operaciones realizadas con DMA y la actividad relacionada con el manejo de interrupciones.
Para coordinar la conservación del estado y el cambio al nuevo núcleo, LUO proporciona una API que permite a otros subsistemas del núcleo conectar controladores para rastrear y participar en el proceso de reinicialización en vivo. Entre los subsistemas que pueden integrarse con LUO se encuentran el hipervisor KVM, iommu, el sistema de interrupciones y los controladores. Para la transmisión del estado de la memoria del antiguo núcleo al nuevo se utiliza KHO (Kexec HandOver). El control se realiza a través de los archivos sysfs “/sys/kernel/liveupdate/{state, prepare, finish}”.
Fuente: opennet.ru
