Llega ZFS 0.8.0 con implementaciones ZFS para Kernel de Linux
Después de casi dos años de desarrollo, se presenta el lanzamiento de ZFS en Linux 0.8.0, la cual es una implementación del sistema de archivos ZFS, diseñado como un módulo para el kernel de Linux.
Como parte de ZFS en Linux, se preparó una implementación de los componentes de ZFS que están relacionados tanto con la operación del sistema de archivos como con la operación del administrador de volúmenes. En particular, se implementan los siguientes componentes: SPA (Storage Pool Allocator), DMU (Unidad de gestión de datos), ZVOL (volumen emulado de ZFS) y ZPL (ZFS POSIX Layer).
Además, el proyecto proporcionó la capacidad de usar ZFS como backend para el sistema de archivos de clusters Lustre.
La base del proyecto se basa en el código ZFS original importado del proyecto OpenSolaris y mejorado con mejoras y correcciones de la comunidad Illumos. El proyecto se está desarrollando con la participación de empleados del Laboratorio Nacional de Livermore bajo un contrato con el Departamento de Energía de los Estados Unidos.
El código se distribuye bajo la licencia gratuita de CDDL, que es incompatible con GPLv2, que no permite la integración de ZFS en Linux en el núcleo principal de Linux, ya que la combinación de códigos bajo las licencias de GPLv2 y CDDL es inaceptable.
Para evitar esta incompatibilidad de licencias, se decidió distribuir el producto completamente bajo la licencia CDDL como un módulo cargable por separado, que se envía por separado del núcleo. Se estima que la estabilidad de la base de código ZFS en Linux es comparable con otros sistemas de ficheros para Linux.
El módulo ha sido probado con Kernels de Linux desde 2.6.32 a 5.1. Los paquetes de instalación listos pronto se prepararán para las principales distribuciones de Linux, incluyendo Debian, Ubuntu, Fedora, RHEL / CentOS.
Principales novedades
Como parte de los cambios añadidos en este lanzamiento se podrá encontrar el soporte incorporado para cifrar los datos almacenados en el nivel del sistema de archivos y particiones. El algoritmo de cifrado predeterminado es aes-256-ccm. Para cargar claves de cifrado, se propone el comando “zfs load-key”.
Así mismo la capacidad de transferir datos cifrados se implementa ejecutando los comandos “zfs send” y “zfs receive ‘.
Cuando se especifica la opción” -w “, los datos ya cifrados en el grupo se transfieren a otro grupo tal como está, sin descifrado intermedio que le permite utilizar este modo para realizar copias de seguridad de sistemas no confiables (en el caso de que el destinatario se comprometa, sin la clave, el atacante no podrá acceder a los datos).
También fue añadido el soporte para las operaciones de asignación de bloques en paralelo a través de la ejecución de procesos “asignadores” separados para cada grupo de metaslab.
En los sistemas convencionales, hay un aumento del rendimiento del 5 al 10%, pero en los grandes (8,128 GB SSD, 24 NUMA de núcleo, 256 GB de RAM), el incremento de las operaciones de asignación de bloques puede alcanzar el 25%.
Otra novedad a destacar es la capacidad de crear scripts Lua para automatizar varios trabajos con ZFS. Los scripts se ejecutan en entornos aislados especiales mediante el comando “zpool program”.
Con ello también llego el soporte para contabilidad y cuotas a nivel de proyecto, complementando las cuotas previamente disponibles a nivel de usuario y grupo.
En esencia, los proyectos son un espacio de objetos separado asociado con un identificador separado (ID de proyecto).
Finalmente otros cambios que se destacan es que se presenta optimizaciones de rendimiento:
- Los comandos “scrub” y “resilver” se aceleran debido a la división en dos fases (se asigna una fase separada para escanear metadatos y determinar la ubicación de bloques con datos en el disco, lo que permite una verificación adicional mediante la lectura secuencial de datos).
- Soporte para las clases de asignación de datos (clases de asignación), que permiten incluir SSD relativamente pequeños en el grupo y usarlos para almacenar solo ciertos tipos de bloques de uso frecuente, como metadatos, datos DDT y bloques pequeños con archivos.
- Se mejoró el rendimiento de los comandos para la administración, como “zfs list” y “zfs get”, al almacenar en caché los metadatos necesarios para su trabajo.
El artículo Llega ZFS 0.8.0 con implementaciones ZFS para Kernel de Linux aparece primero en Llega ZFS 0.8.0 con implementaciones ZFS para Kernel de Linux.