Un gestor de arranque basado en menús e instantáneas para Linux con raíz en ZFS.
La próxima versión menor de OpenZFS está casi lista, y ZFSBootMenu hace que sea fácil arrancar Linux desde ella, a través de una solución inteligente.
El avanzado sistema de archivos OpenZFS se está acercando a su próxima versión, la 2.2, con la versión candidata 3 (el año pasado por estas fechas, OpenZFS 2.1 llegó a rc8, así que aún puede tardar un poco). La versión 2.2 mejorará el soporte para contenedores Linux, con soporte para sistemas de archivos superpuestos (a veces también llamados sistemas de archivos de unión), soporte para Linux 6.3 IDmapped mounts (que se explican en esta charla), y la delegación de espacios de nombres de conjuntos de datos a los contenedores.
Puede leer también | La nueva versión de OpenZFS 2.1 ya esta disponible
La clonación de bloques debería mejorar la eficacia a la hora de marcar bloques idénticos como compartidos por diferentes archivos, o incluso partes del mismo archivo. El nuevo algoritmo BLAKE3 se puede utilizar para generar sumas de comprobación ZFS, que también se utiliza en la nueva herramienta CdC Veilid P2P de la que hablamos recientemente, y se ha mejorado la gestión de la caché de disco.
Todo esto es bueno, y debería funcionar con núcleos Linux desde la versión 3.10 de 2013 hasta la 6.4, y FreeBSD 12.2 de 2020 en adelante. ZFS sigue siendo más o menos el estado del arte en el diseño de sistemas de archivos de código abierto. Tanto SUSE como Oracle siguen entusiasmados con Btrfs, pero Red Hat no. Mientras tanto, el nuevo bcachefs todavía podría no llegar al kernel 6.5.
Puede leer también | Linus Torvalds expone su punto de vista sobre ZFS y Linux
El gran problema con ZFS, sin embargo, es que no es parte del núcleo Linux, y no lo será pronto. Es bastante fácil añadirlo. Existe la versión de espacio de usuario, ZFS-FUSE, y Ubuntu, por ejemplo, incluye los módulos para el soporte del kernel como estándar. Sin embargo, Canonical parece estar dando marcha atrás en la integración del soporte ZFS. El módulo ZSys de Ubuntu para integrar el manejo de ZFS en el sistema operativo ha visto poco mantenimiento en los últimos dos años, y algunos usuarios ahora recomiendan evitarlo.
Pero no todo está perdido. Los equipos detrás de un puñado de distribuciones Linux están trabajando activamente en el soporte completo y nativo de ZFS. En particular, NixOS tiene soporte de primera clase, y el equipo de Void Linux está trabajando en ello, aunque todavía requiere algo de trabajo manual adicional en este momento. El hipervisor Proxmox y el host contenedor también lo soportan. Como todo en Arch Linux, con algunos pasos manuales, también es posible en Arch y sus derivados.
Un problema central es que GRUB sólo tiene soporte muy limitado para ZFS - Sun liberó sólo suficiente código ZFS bajo GPL 2 para permitir a GRUB arrancar OpenSolaris, como LWN describió en 2010.
Puede leer también | ZFS llega a Debian GNU/Linux
Afortunadamente, hay una forma totalmente separada, cross-distro para mantener el sistema de archivos raíz de un sistema Linux en ZFS, y arrancar desde él: ZFSBootMenu. Esto soporta múltiples distribuciones, incluyendo Alpine, Debian, Ubuntu, Fedora y openSUSE (aunque actualmente sólo Leap 15.4). Hay scripts adicionales disponibles para ayudarte a instalar la distribución de tu elección en un pool ZFS, como para Ubuntu Server. Para que funcione con la mayoría de las distribuciones, las instrucciones de instalación requieren que tu ordenador arranque a través de UEFI, aunque la instalación en MBR utilizando SYSLINUX para arrancar es posible, y está documentado para Void Linux.
La forma en que funciona ZFSBootMenu es inteligente. En efecto, es una pequeña distro Linux que arranca otras distros. De su propia descripción:
ZFSBootMenu es un pequeño y autónomo sistema Linux que sabe como encontrar otros kernels Linux e imágenes initramfs dentro de sistemas de ficheros ZFS. Cuando se identifica un kernel e initramfs adecuados (ya sea a través de un proceso automático o una selección directa del usuario), ZFSBootMenu lanza ese kernel usando el comando kexec.
Esto significa que, como en FreeBSD, ZFSBootMenu puede ver dentro de las instantáneas ZFS, y presentar un menú de diferentes entornos de arranque. Por ejemplo, puedes volver a una versión anterior de tu sistema operativo, si una mala actualización ha hecho que algo deje de funcionar.
Puede leer también | ZFS nativo para Linux
Sería una gran noticia si Canonical adoptara ZFSBootMenu y siguiera adelante con el soporte de ZFS, ya que los problemas legales parecen ser superables - pero mientras tanto, si estás dispuesto a hacer un poco de trabajo manual bien documentado, gracias a esta pequeña herramienta ingeniosa, es posible instalar la mayoría de las distros en lo que Sun llamó [PDF] "la última palabra en sistemas de archivos".