Cuando escribí sobre mi nuevo Intel NUC y la (nada extraña) elección de Fedora, hice alusiones sobre evolucionar mi uso de Linux adoptando adecuadamente tecnologías avanzadas como Btrfs. Si bien este formato de archivos ya no es un extraño, Fedora ha sido el ariete definitivo para asentar un concepto que, cuando lo conocemos, podemos admirar su maestría técnica y cómo sacarle partido. Para más inri, la gestión que hace de la RAM también es muy importante. Así pues, ¿por qué no entender mejor qué ofrece Fedora en esos apartados y por qué es tan potente cuando los une por defecto en su instalación?

Antes yo era un usuario totalmente acomodado al concepto de instalación clásica de Linux: varias particiones en el fiable EXT4 y ya está. En los últimos años había abandonado la mítica partición SWAP porque me parecía anticuada, pero no había pensado en la importancia de zRAM y cómo era el sucesor espiritual para los tiempos modernos.
Estas tecnologías están entre nosotros muy maduras, pero las había pasado por alto completamente. O, más bien, no había profundizado en ellas. Tanto que, cuando adopté Btrfs por primera vez en el NUC del salón, traté sus particiones como si fuesen EXT4. Error: me perdí un montón de oportunidades que son oro para la gestión del sistema y de los archivos en nuestro SSD.
Sobre zRAM, ya lo conocía vagamente: cuando estuve involucrado en Chakra Linux, el equipo de la distro había decidido adoptarla. No me di cuenta de lo visionarios que eran y cómo ahora, una década después, Fedora lo exprime para convertirlo en auténtico queroseno para nuestro PC.
Veámoslo con calma, pero con detalle, para entender por qué esta combinación es un caballo ganador para nuestro hardware actual.
1. Btrfs: la biblioteca de cristal
Aunque Btrfs comparte ideas con el alabado formato ZFS, éste nunca llegó a usarse masivamente por ser considerado demasiado técnico y, sobre todo, por cierta incompatibilidad de licencias con Linux. Btrfs no sólo se inspiró en ese concepto y lo potenció, sino que lo hizo accesible.
Intentaré explicarlo de manera sencilla. Btrfs se desarrolla con los SSD en mente; su objetivo es aprovechar su potencial y cuidarlos ante posibles fallos. Como no funcionan igual que los discos mecánicos, era importante adaptarse a la novedad cuanto antes. Los SSD, sobre todo al inicio, se percibían menos duraderos que los HDD. También, su sistema de almacenamiento es más cercano a una memoria RAM que a un disco en sí: son más rápidos con un menor consumo, pero tienden a degradarse cuantas más escrituras hacemos en ellos porque circula energía en sus circuitos. Con cada operación hay un coste de desgaste que se resta de la vida útil, como una moneda de cambio.
De ahí se pensó en la utilidad del CoW (Copy-on-Write, «copiar al escribir»), y que cambiaría la forma de almacenar archivos. En vez de borrar y escribir en el mismo bloque se escribiría uno nuevo, manteniendo la otra versión hasta que ya no fuera necesaria. Esto evita complicaciones y posibles riesgos de pérdida de datos.
Con esto hay varias ventajas:
- Al escribir un nuevo bloque, el sistema tiene una mejor organización y resuelve ciertos problemas
- Eso permite tener dos o más referencias del mismo archivo (que se aprovechan para copias de seguridad)
- Para trazar esos cambios genera metadatos, así que tenemos una especie de Git para el sistema y para nuestros archivos personales
Estas características hacen posibles los snapshot, o capturas de archivos, una forma peculiar de copia de seguridad. En vez de trabajar con dos copias enteras, Btrfs simplemente «le saca una foto» a la anterior versión y con sus metadatos recuerda cómo volver atrás. Por tanto, cuando restauras algo, literalmente vuelves sobre tus pasos. Eso es un movimiento magistral para las actualizaciones fallidas, ya que podrías volver a la versión anterior de tu SO antes de que se estropease, como en una máquina del tiempo.
¿Alguien recuerda cómo a finales de los 2000 Apple lo petó con la espectacularidad de Time Machine? Pues voilà: podemos imaginar Btrfs como algo similar. Simplemente rebobinamos.
2. Los subvolúmenes: no es magia, son «capas»
Otro enorme paso adelante son los subvolúmenes, o si queremos describirlos de forma estúpidamente simple, como «particiones dinámicas».
Formatos como EXT4 son muy robustos y altamente probados, pero estaban muy anclados a la naturaleza mecánica de los HDD. Para hacer todo más ordenado y no alterar la física del disco, hacíamos las particiones de toda la vida. Por ejemplo: 30 GB para la partición root, 120 para el /home, 600 MB para otra, etc. Desde el principio delimitábamos físicamente esas partes, y con frecuencia en una se acababa el espacio antes que en otra, así que estábamos atados a ese sistema.
Con los SSD y Btrfs la cosa cambia, y no tenemos límites físicos. Por ejemplo, si queremos todo nuestro sistema en Btrfs, solo tendremos que crear una partición de ese tipo. A partir de ahí añadiremos diferentes puntos de montaje para los subvolúmenes, que actúan como «sub-particiones». Lo mejor de esto es que los subvolúmenes no tienen espacio fijo asignado, sino que todos usan el de la partición Btrfs de la que proceden. De este modo todas consumen espacio del tronco común, y no corremos el riesgo de la mala planificación.
Y aquí entra de nuevo la utilidad de los snapshot: se pueden capturar subvolúmenes enteros para volver atrás. Por ejemplo, podríamos restaurar el sistema sin perder nuestros archivos de hoy… o al revés, y entonces volver a un estado anterior de nuestro /home manteniendo el sistema sin cambios. Las copias de seguridad adquieren otra dimensión. Todo parece modular.
Por tanto, aunque no sea una analogía exacta, imaginemos que Btrfs escribe en cuaderno, hoja tras hoja, tras hoja, tras hoja… pero podemos pasar las páginas hacia atrás para volver a un punto concreto.
3. zRAM: velocidad x2
El siguiente punto estratégico es la gestión de la RAM, o más bien, la falta de ella. Antes, y teniendo en mente las limitaciones físicas de los HDD, les asignábamos espacio para una partición SWAP. La SWAP era una parte del disco físico complementaria a la RAM para ciertos casos… pero tenía un gran problema…
Los HDD eran más lentos, y además escribían muchos bloques en el disco si la SWAP se activaba. Como recordaréis, comenté que el talón de Aquiles del SSD es la reescritura continua. Si usáramos una SWAP en ellos sería más rápido que un HDD, pero estaríamos haciendo escrituras un tanto innecesarias. Por tanto, no es lo más eficiente. La estrategia fue usar la propia RAM.
Actualmente los procesadores son más rápidos y poseemos mayor RAM. La utilidad de zRAM (un módulo presente en el kernel) reside en comprimir bloques enteros en la propia RAM para ahorrar espacio. A cambio requiere un mejor procesador para esa tarea, aunque las potencias actuales pueden absorber el impacto sin problema. No lo hacen con toda la memoria, solo asignan una parte de ella, pero aumenta mucho su capacidad. Si en algún momento nos quedamos cortos, simplemente empezará a comprimir y descomprimir a lo bestia, como si fuera el trabajador japonés más aplicado.
Cuando entendemos esto, podemos intuir que encaja muy bien con Btrfs y el SSD. Guardaremos un poco de RAM «por si acaso», y llegado el momento el procesador se encarga del trabajo duro. La carga de trabajo se reparte mejor.
4. Fedora: tecnología punta
Fedora no inventó nada en sí, pero es bien conocida por estar en el ajo. Como siempre, escogió la mejor tecnología con futuro empresarial para Red Hat y la puso al servicio del usuario común. Cuando esa distro se ha ganado la fama de vanguardista es por algo, y además siempre apoyó proyectos upstream. Su contribución al desarrollo y expansión de tal tecnología permitió su estabilidad, adoptándola por defecto.
Si no fuera por ella quizás no habría profundizado en esas decisiones, y no me habría llevado a dominar mejor Btrfs como salto cualitativo en mi experiencia Linux. A todos los usuarios comunes les recomiendo adentrarse en esta combinación y, quizás, instalar Fedora para comprobar el enorme potencial de esta distro para cualquier uso. En mi opinión, la mejor distribución amigable.
Imagen: Unsplash
Hola, muy interesante lo que comentas. Sólo añadir que quizá la mejor distribución que de fábrica permite configurar btrfs con subvolúmenes es OpenSuse. Tiene una herramienta denominada Snapper que permite gestionar las instantáneas de los subvolúmentes de manera sencilla y lo integra directamente en grub para poder arrancar ( y restaurar ) una instantánea de forma cómoda si una actualización falla, lo cual en OpenSuse Tumbleweed, dada su naturaleza Rolling Release, es casí obligado.
Arch Linux también la ha integrado para configurarse de forma bastante amigable en el script archinstall.
Y para concluir, aquí hay una instalación de Debian Trixie que propone una instalación de vanguardia con varias tecnologías configuradas, entre ellas btrfs.
https://github.com/r0b0/debian-installer
Me gustaLe gusta a 1 persona
Estoy tan despegado de openSuse que me olvidé completamente de ella y me centré en Fedora.
No conocía esas dos cosas que comentas, tendré que echar un vistazo.
Muchas gracias por el aporte!
Me gustaMe gusta
[…] refrescar cómo funciona Btrfs y los subvolúmenes dejo el artículo que le dediqué. Además, doy por supuesto que la mayoría de máquinas actuales tienen UEFI, así que me centraré […]
Me gustaMe gusta