LXC 6.0 LTS llega implementado un nuevo binario multillamada, mejoras y mas

abril 07, 2024 0 Comments

Logo de LXD

Logo de LXD

El equipo de LXC dio a conocer mediante una publicación de blog el lanzamiento de la nueva versión de LXC 6.0 LTS. Esta versión es el fruto de dos años de intenso trabajo desde la última versión LTS y trae consigo una serie de mejoras significativas, tales como mejoras de soporte, nuevas funciones, correcciones de errores y más

Para quienes desconocen de LXC, deben saber que este es un entorno que permite ejecutar contenedores con un sistema completo similar a las máquinas virtuales o contenedores de aplicaciones únicas (OCI) sin privilegios. LXC proporciona las herramientas necesarias para administrar contenedores a nivel individual, mientras que LXD, basado en LXC, está diseñado para la gestión centralizada de contenedores en clústeres de servidores.

El aislamiento se logra utilizando los mecanismos nativos del kernel de Linux, como los espacios de nombres para procesos, ipc, red, uts, y cgroups para limitar los recursos. Además, se aplican características del kernel como perfiles de Apparmor y SELinux, políticas de Seccomp, Chroots (pivot_root) y capacidades para reducir los privilegios y restringir el acceso dentro de los contenedores.

Principales novedades de LXC 6.0

En esta nueva versión que se presenta de LXC 6.0 se ha introducido un nuevo binario multillamada que permite reducir el espacio en disco de manera significativa, especialmente útil para plataformas integradas. La capacidad de crear un archivo ejecutable universal lxc, que combina todas las utilidades previamente distribuidas como utilidades «lxc-*» separadas en una sola utilidad. Para habilitar esta función, se propone la opción «tools-multicall=true«. Cuando se configura esta opción, todas las antiguas utilidades individuales se crean como enlaces simbólicos a la utilidad lxc.

Otro de los cambios que se destaca, es la nueva función set_timeout en la estructura principal de la biblioteca lxc_container permite establecer tiempos de espera para cualquier interacción con el monitor LXC, evitando posibles bloqueos y mejorando la estabilidad del sistema y proporciona un mayor control sobre el manejo de tiempo de espera en las operaciones de LXC.

Otra mejora notable es la actualización de la herramienta lxc-checkconfig, la cual ahora solo muestra la versión si el comando lxc-start está presente, proporcionando información adicional sobre el número máximo permitido de cada tipo de espacio de nombres, lo que facilita la configuración y optimización del entorno de contenedores.

Además, ahora es posible controlar qué UID y GID resultantes desea usar el usuario, pues se han agregado las opciones «-u» y «-g» a lxc-usernsexec, permitiendo cambiar los identificadores de usuarios y grupos (UID y GID) según sea necesario.

En LXC 6.0, también se destaca que se ha habilitado IPv6 en el puente de red lxcbr0 de forma predeterminada, utilizando una subred ULA de IPv6 asignando direcciones desde la subred IPv6 ULA (Unique Local Address para una mayor compatibilidad y seguridad de red.

Asimismo, se ha incorporado soporte para la plantilla imágenes de contenedores en formato OCI, utilizando Squashfs FS para comprimir información, mejorando la eficiencia y la gestión del almacenamiento.

Para las interacciones con systemd a través de D-Bus, se ha cambiado de dbus de systemd la biblioteca libdbus-1 separada en lugar de libsystemd, con lo cual se ha ganado una mayor flexibilidad y disponibilidad para compilaciones estáticas.

De los demás cambios que se destacan:

  • Se ha eliminado el soporte para el sistema init Upstart, lo que simplifica la configuración y optimiza la gestión del sistema.
  • Soporte de tiempo de espera en LXC_CMD_GET_STATE
  • Cambio en el nombre de las funciones que chocan con las de libsystemd
  • Se registra los espacios de nombres heredados anteriormente para que estén disponibles para la configuración de rootfs con idmapping
  • Solucion al error uno por uno al crear opciones de montaje
  • Almacenar opciones de montaje en la variable correcta
  • Se corrigió la llamada de inicio de la API para dividir las cadenas entre comillas en el comando de ejecución o inicio.
  • Actualizar los permisos de la consola a 0600
  • Eliminar referencias a LXD
  • Se añadió el soporte para loongarch64
  • Se añadió x32 a la lista de arquitecturas reconocidas

Finalmente, cabe mencionar que esta nueva rama LTS de LXC 6.0 será compatible hasta junio de 2029 y la versión LTS LXC 5.0, ahora cambiará a un ritmo de mantenimiento más lento y solo obtendrá correcciones de errores críticos y actualizaciones de seguridad.

Si estás interesado en poder conocer más al respecto, puedes consular los detalles en el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.