Los que llevamos mucho tiempo en esto del IT hemos sufrido todos en mas o menos medida los problemas de los sistemas de ficheros, que si las carísimas tarjetas RAID, la monitorización, el md de los linux...etc.

Por aquellos tiempos, en Linux había un verdadero dilema con los sistemas de archivos, lo mas normal era el sistema ext3 propio de Linux que requería fsck que tardaba mucho tiempo y se corría el riesgo de corromper el propio sistema.

La verdad que trabajar con ZFS parece magia, no se echa de menos nada, aunque gracias al proyecto OpenZFS se han seguido mejorando aspectos varios como la encriptación, ampliación de una RAIDZ...etc.
Por supuesto hay una cara oculta del ZFS, cuando Oracle compró Sun Microsystem internalizó el proyecto, pero antes de la compra Sun publicó bajo licencia Opensource CDDL el proyecto en cuestión, pero con la mala suerte que esta licencia no es compatible con la licencia de Linux, la famosa GPL y eso impide incluir el modulo de ZFS dentro de la distribución oficial del Kernel.
Pero ya hace 20 años apareció este sistema de ficheros llamado Zetabyte File System con la abreviatura ZFS, la compañía que lo desarrolló fue la desaparecida (comprada por Oracle) Sun Microsystem, quien no la conoce es la empresa que estuvo detrás de cosas tan importantes como el Java.
Igualmente aparecieron otros sistema como reiserfs que resultó ser uno de los primeros sistemas de ficheros que soportaba el journaling en su forma de funcionar.
A lo que a mi me afecta, acabé optando por XFS, un sistema de ficheros robusto desarrollando por SGI (Silicon Graphics), este sistema todavía sigue en desarrollo y es uno de los mas estables y solidos que hay en Linux.
Pero claro, una cosa es el sistema de ficheros y otro bien diferente es el gestor de volúmenes, tener un buen servidor requería tanto de lo uno como de lo otro, y la cosa se complicaba si queríamos redundancia y optar por tarjetas RAID carísimas y opacas en su funcionamiento, o usar el modulo md de Linux para hacer una RAID por software, interesante opción pero se hacía uso de los recursos locales para la gestión del almacenamiento.

Y entonces apareció el ZFS, la verdad que uno no puede imaginar las bondades de este sistema hasta que lo necesita, parece que alguien se puso a pensar como crear un sistema de ficheros perfecto y empezó a implementarlo, las bondades son (entre otras)
- Sistema de ficheros y gestor de volúmenes al mismo tiempo,
- La capa de abstracción entre el sistema de ficheros y los volúmenes, parece magia.
- Todo tipo de redundancia, mirror, strip y raidz ( una especie de RAID5)
- No requiere fsck, por supuesto,
- Checksum para todo
- Compresión, varios tipo, lz4, zstd...etc
- Snapshots y clones 100% funcionales, una time machine real y instantánea.
- Replicación y transferencia
- Un sin fin personalización, tamaño de registro, atime...etc.
- Soporte nativo de cache, a varios niveles,
- De duplicación.
Llevo mas de 15 años usando este sistema en exclusiva, esto me ahorró mucho tiempo si manejas muchos datos, (varios centenares de terabytes)
Por supuesto no es el único sistema de archivos con estas características, pero sinceramente hay pocos que llegan a la altura de este.
Que yo conozca, estos son algunos.
- Btrfs, un sistema desarrollado por Oracle para Linux, pretende ser una alternativa ( que no lo es ) a ZFS.
- Bcachefs, incluido en Linux a partir de 6.7, todavía es reciente, hay que darle tiempo a que madure.
- Hammer2 un sistema de ficheros prometedor pero es exclusivo de DragonFlyBSD, y ahí radica su limitación.
También tuve la oportunidad de experimentar con NILFS2, tiene una característica única y es la de los snapshots automáticos, el sistema continuamente genera snapshots con cada modificación, había que poner alguna tarea para poder limpiar si no, el disco se llenaba enseguida, lo malo, cuanto mas se acerca al 100% de capacidad ocupada se volvía todo muy lento, tan lento que no se podía avanzar, quizás haya mejorado en los últimos años pero eso hacía que usarlo fuese muy arriesgado, aunque detrás estaba la nipona NTT, quizás este sistema sea adecuado en sistemas con pocas modificaciones que no era mi caso.
Pero la verdad y gracias al proyecto OpenZFS, instalarlo es muy facil y se publican regularmente actualizaciones para nuevas versiones del Kernel.
Para quien maneja muchos datos entre muchos servidor, esta solución es muy recomendable.
Comentarios