Brian Behlendorf, el principal desarrollador de ZFS en Linux, dio a conocer hace ya varias semanas la nueva versión 2.0 de OpenZFS en su cuenta de GitHub.
El proyecto ZFS en Linux ahora se llama OpenZFS y en esta nueva versión 2.0 Linux y FreeBSD ahora son compatibles con el mismo repositorio, lo que hace que todas las funciones de OpenZFS estén disponibles en ambas plataformas.
ZFS comúnmente conocido por su comunidad como OpenZFS es un sistema de archivos de código abierto con licencia CDDL (Licencia de desarrollo y distribución común).
Utilizado en sistemas operativos como: FreeBSD, Mac OS X 10.5 y distribuciones Linux, se caracteriza por su gran capacidad de almacenamiento. Es un sistema de archivos liviano y conveniente para configurar plataformas de administración de almacenamiento.
OpenZFS en realidad sería un proyecto para reunir a personas y empresas que utilizan el sistema de archivos ZFS y están trabajando para mejorarlo. Esto es para hacer que ZFS sea popular y desarrollarlo de forma de código abierto. OpenZFS reúne a desarrolladores de plataformas illumos, Linux, FreeBSD y macOS, el proyecto también reúne a una amplia gama de empresas.
Sobre la nueva versión 2.0
Una de las características más atractivas de ZFS es su caché de lectura avanzada, conocida como ARC. La persistencia de nivel 2 de ARC (L2ARC) se implementa escribiendo periódicamente metadatos en el dispositivo L2ARC para permitir que las entradas del encabezado del búfer L2ARC se restauren en ARC al importar un grupo o poner en línea un dispositivo L2ARC, lo que reduce el impacto del tiempo de inactividad en el rendimiento del sistema de almacenamiento. Por lo tanto, ZFS es un sistema de archivos popular para plataformas de almacenamiento.
Los sistemas con conjuntos de tareas muy grandes también pueden implementar un caché de lectura basado en SSD, llamado L2ARC, que se llena de los bloques del ARC que se están expulsando.
Históricamente, uno de los mayores problemas con L2ARC es que, si bien el SSD subyacente es persistente, el L2ARC en sí no lo es; se queda en blanco cada vez que se reinicia (o exporta e importa desde el grupo). Esta nueva funcionalidad permite que los datos L2ARC permanezcan disponibles y viables entre los ciclos de importación/exportación del grupo (incluidos los reinicios del sistema), lo que aumenta enormemente el valor potencial del dispositivo L2ARC.
Otra de las novedades de esta nueva versión de OpenZFS 2.0 es que ofrece una compresión en línea perfecta, ya que el algoritmo de compresión Zstd (tradicionalmente, el algoritmo más utilizado es lz4) ofrece una relación de compresión relativamente baja, pero una carga de CPU muy ligera. OpenZFS 2.0.0 ofrece soporte para zstd, un algoritmo diseñado por Yann Collet (autor de lz4) que tiene como objetivo proporcionar una compresión similar a gzip, con una carga de CPU similar a lz4.
Al comprimir (escribir en el disco), zstd-2 sigue siendo más eficiente que gzip-9 mientras mantiene un alto rendimiento. En comparación con lz4, zstd-2 logra un 50% más de compresión a cambio de una pérdida del 30% en el rendimiento. En cuanto a la descompresión (reproducción del disco), la tasa de bits es ligeramente superior, alrededor del 36%.
Además de las características principales descritas anteriormente, OpenZFS 2.0.0 presenta páginas de manual mejoradas y reorganizadas, asi como también un rendimiento significativamente mejorado al destruir, enviar y recibir zfs y gestión de memoria más eficiente y rendimiento de cifrado bien optimizado.
Otro cambio importante es que se implementó el modo de ejecución secuencial del comando «resilver» (resilver secuencial), que reconstruye la distribución de datos teniendo en cuenta los cambios en la configuración de la unidad.
El nuevo modo permite reconstruir un espejo vdev fallido mucho más rápido que un recuperador tradicional: primero, la redundancia perdida en el arreglo se restaura lo más rápido posible, y solo entonces se inicia automáticamente la operación de «limpieza» para verificar todas las sumas de verificación de datos.
El nuevo modo comienza cuando agrega o reemplaza una unidad con los comandos «zpool replace | attach» con la opción «-s».
Finalmente si estás interesado en conocer más al respecto de esta nueva versión, puedes consultar los detalles en el siguiente enlace.