Recientemente se lanzó una nueva versión estable de ZFSonLinux, un proyecto que ahora es central en el mundo del desarrollo de OpenZFS. Adiós, OpenSolaris, hola al feroz mundo de Linux incompatible con GPL-CDDL.

A continuación, una revisión de las cosas más interesantes (como no podría ser de otra manera, 2200 ¡de los commits!), y de postre, un poco de intriga.
Nuevas características
Por supuesto, la más esperada es el cifrado nativo. Ahora puedes cifrar solo los conjuntos de datos necesarios con el cifrado integrado en ZFS, y (en mi opinión, lo más importante) puedes enviar datos cifrados a través de zfs send y SIN descifrar verificar la integridad de los datos con las herramientas integradas, ¡todas las capacidades para mantener la integridad de los datos de ZFS estarán contigo!
A continuación, en importancia, se debe mencionar el esperado TRIM. Sí, tardó mucho en llegar a producción. En parte porque el problema del desgaste de SSD no es tan crítico para sistemas de archivos CoW. Pero ahora estamos todos tranquilos — zpool trim salvará nuestras delicadas unidades flash.
Ahora puedes eliminar los arrays vdev añadidos por error del pool (pero solo si son sparse o mirror). Un pequeño detalle útil.
A continuación en nuestra lista de éxitos — puntos de control del pool. En resumen, son instantáneas para todo el estado del pool, PERO que permiten revertir cambios no solo de datos, sino también de las características habilitadas en el pool y cambios en la estructura. Otra opción para asegurarte.
Inicialización del pool — llena el almacenamiento subyacente con ceros. Útil para trabajar en entornos con discos de thin provisioned para una asignación explícita de espacio y para evitar caídas inesperadas en el rendimiento en el futuro.
Contabilidad y cuotas del proyecto — en el mecanismo ya existente de cuotas ahora es posible usar la segmentación por proyectos.
Programas de canal — la capacidad de llevar a cabo tareas administrativas de manera atómica mediante scripts de Lua. Hay límites en el tiempo de ejecución y la memoria. Si te dedicas a la automatización, esto es para ti.
Direct IO — para simplificar, se incorporó el trabajo de Direct IO, internamente nada cambió (simplemente las llamadas pasan al máximo evitando la caché), pero ahora el software que desea trabajar en este modo no tendrá problemas.
Proyecto Pyzfs se incluyó en el repositorio principal y se tomó bajo el ala del proyecto ZFSonLinux. Ahora hay más herramientas para gestionar desde Python (y será más tranquilo el soporte del módulo). También muchos scripts de Python se han adaptado a Python3.
Y ahora lo delicioso: el rendimiento
Ahora, durante las operaciones de scrub y resilver, primero se leen los metadatos y solo después los datos en su forma más secuencial. De esta manera, la recuperación del arreglo y la verificación de integridad se realizan a la máxima velocidad. secuencial posible.
Clases de asignación — los arreglos vdev ahora tienen un tipo de medio, y ahora se puede trasladar el almacenamiento de metadatos/tablas de deduplicación (DDT)/bloques de datos de menos de X Kbytes a un arreglo vdev separado de discos más eficientes. ¡Más velocidad para el dios de la velocidad! (y, de hecho, esta función será muy útil en el futuro ).
Muchos comandos administrativos ahora funcionan más rápido gracias al almacenamiento en caché específico de los metadatos (por ejemplo, zfs list, zfs get).
El proceso de asignación de datos se ha paralelizado, ahora se crea un número de allocators para cada sección de espacio libre (metaslab). Con NVME no se podrá exprimir al máximo, pero será mejor.
La recuperación diferida de la integridad del arreglo permitirá no sobrecargar el arreglo con la reconfiguración simultánea de varios discos, sino que se realizará de manera secuencial. De esta manera, se reducirá tanto el impacto en el rendimiento como el tiempo de reconstrucción.
Al importar grupos con un gran número de volumes se ha aumentado la velocidad de su registro en el sistema.
También QAT ahora permite descargar el cálculo de cifrado y sums de verificación a él.
Y para el postre — intrigas
Aunque ZFSonLinux agrega rápidamente soporte para las nuevas versiones del kernel de Linux (actualmente soporta versiones de 2.6.32 a 5.1*), los mantenedores del kernel muestran una clara falta de interés en ayudar a módulos externos (“ — greg k-h”). Así, las llamadas al kernel requeridas para un funcionamiento eficiente en la rama 5.0 . En los kernels con este parche, el rendimiento de ZFS será significativamente peor. Lo que salva es que esta funcionalidad se puede implementar del lado del módulo, lo cual seguramente se hará. Mientras tanto, pueden tomar como ejemplo a NixOS — ellos 🙂
Además, el proyecto también cuenta ahora con un Código de Conducta, lo que provocó una ola de debates. Pero hemos resistido 🙂
¡A todos les deseamos copias de seguridad funcionales y versiones estables!
Enlaces útiles:
—
—
Fuente: habr.com
