Tras 11 meses de desenvolvemento, lanzouse o proxecto OpenZFS 2.4.0, que desenvolve a implementación do sistema de ficheiros ZFS para Linux e FreeBSD. O proxecto pasou a coñecerse como "ZFS en Linux" e anteriormente limitábase a desenvolver un módulo para o núcleo Linux, pero despois de fusionala con código de FreeBSD, foi recoñecida como a principal implementación de OpenZFS e renomeada.
Verificouse o funcionamento de OpenZFS con núcleos Linux 4.18 até a 6.18 e todas as ramas de FreeBSD que comezan pola 13.3. O código distribúese baixo a licenza CDDL libre. OpenZFS xa se usa en FreeBSD e está incluído nas distribucións. Debian, Ubuntu, Gentoo, NixOS e ALT LinuxOs paquetes coa nova versión estarán preparados para as distribucións principais en breve. Linuxincluíndo Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS ofrece unha implementación de compoñentes ZFS relacionados tanto co sistema de ficheiros como co xestor de volumes. Compoñentes implementados: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) e ZPL (ZFS POSIX Layer). O proxecto tamén permite que ZFS se use como backend para o sistema de ficheiros agrupados Luster. O traballo de OpenZFS baséase no código ZFS orixinal, importado do proxecto OpenSolaris e ampliado con melloras e correccións da comunidade Illumos. O proxecto estase a desenvolver coa participación de empregados do Laboratorio Nacional de Livermore baixo un contrato co Departamento de Enerxía dos Estados Unidos.
O código distribúese baixo a licenza libre CDDL, que é incompatible coa GPLv2, o que impide que OpenZFS se integre no kernel principal. Linux, xa que mesturar código baixo as licenzas GPLv2 e CDDL é inaceptable. Para evitar a incompatibilidade de licenzas, decidiuse distribuír o produto para Linux Licenciado integramente baixo a CDDL como un módulo cargable por separado, distribuído separadamente do kernel. A estabilidade da base de código OpenZFS considérase comparable á doutros sistemas de ficheiros para Linux.
Principais cambios:
- Implementouse a capacidade de establecer cotas predeterminadas para usuarios, grupos e proxectos. Nas versións anteriores, as cotas só se podían establecer individualmente para cada ID de usuario. A nova versión agora permite establecer un valor predeterminado que se aplicará se non se estableceu ningunha cota para un usuario específico.
- Engadiuse a capacidade de retroceder desde o modo de E/S directa (O_DIRECT, Direct I/O) ao mecanismo lixeiro de E/S sen caché para solicitudes non aliñadas cun límite de páxina de memoria, que non son compatibles con Direct I/O.
- Proponse un novo algoritmo unificado para limitar a velocidade das operacións de escritura e a colocación de bloques, que reduce a fragmentación de vdev (dispositivos virtuais) agregando múltiples operacións de escritura e usando áreas libres contiguas máis grandes para elas en lugar de colocar os resultados de operacións de escritura individuais en áreas libres pequenas.
- O rendemento do cifrado mellorou mediante o uso de instrucións AVX2 na implementación do algoritmo AES-GCM. Nas nosas probas, a aceleración alcanzou o 80 %.
- Os bloques ZIL (ZFS Intent Log) agora pódense colocar non só en vdevs normais ou nun dispositivo SLOG separado, senón tamén en vdevs dedicados. Se un vdev normal está asociado a un disco duro e un vdev dedicado a un SSD, este cambio evita situacións nas que os datos se escriben no SSD e os bloques ZIL asociados se escriben no disco duro, o que provoca unha latencia innecesaria.
- A propiedade special_small_blocks agora pódese configurar para particións (ZVOL) en lugar de só para sistemas de ficheiros, o que permite asignar bloques pequenos a un vdev dedicado separado, como un SSD.
- Engadiuse o modo de reescritura "zfs rewrite -P", que deixa o tempo de creación lóxica sen cambios sempre que sexa posible, o que permite distinguir os bloques que simplemente se moveron ao grupo dos bloques que realmente foron modificados polo usuario.
- Os comandos "zpool trim", "zpool scrub" e "zpool initialize" agora teñen a opción "-a" (--all), que permite executar estes comandos en todos os grupos importados á vez.
- Engadiuse o comando "zpool scrub -S -E" para realizar unha comprobación da suma de comprobación dos datos que se atopan dentro dun intervalo de tempo especificado.
- Engadíronse novas optimizacións ao proceso de deduplicación.
Fonte: opennet.ru
