Foi lançado o projeto OpenZFS 2.1, que desenvolve a implementação do sistema de arquivos ZFS para Linux e FreeBSD. O projeto ganhou notoriedade como "ZFS on Linux" e anteriormente se limitava ao desenvolvimento de um módulo para o kernel do Linux, mas após a inclusão do suporte ao FreeBSD, foi reconhecido como a implementação principal do OpenZFS e teve a referência ao Linux removida do seu nome.
O funcionamento do OpenZFS foi testado com kernels do Linux de 3.10 a 5.13 e em todas as versões do FreeBSD, começando pela 12.2-RELEASE. O código é distribuído sob a licença livre CDDL. O OpenZFS já é utilizado no FreeBSD e faz parte das distribuições Debian, Ubuntu, Gentoo, Sabayon Linux e ALT Linux. Pacotes com a nova versão serão preparados em breve para as principais distribuições Linux, incluindo Debian, Ubuntu, Fedora, RHEL/CentOS.
O OpenZFS fornece a implementação de componentes do ZFS relacionados tanto ao funcionamento do sistema de arquivos quanto ao funcionamento do gerenciador de volumes. Em particular, foram implementados os componentes: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) e ZPL (ZFS POSIX Layer). Além disso, o projeto garante a possibilidade de usar o ZFS como backend para o sistema de arquivos em cluster Lustre. O trabalho do projeto é baseado no código original do ZFS, importado do projeto OpenSolaris e aprimorado com melhorias e correções da comunidade Illumos. O projeto está em desenvolvimento com a participação de funcionários do Laboratório Nacional de Livermore sob contrato com o Departamento de Energia dos EUA.
O código é distribuído sob a licença livre CDDL, que não é compatível com GPLv2, o que impede a integração do OpenZFS na principal ramificação do kernel Linux, uma vez que a mistura de código sob as licenças GPLv2 e CDDL não é aceitável. Para contornar essa incompatibilidade de licenciamento, foi decidido distribuir o produto inteiramente sob a licença CDDL na forma de um módulo separado carregável, que é fornecido separadamente do kernel. A estabilidade da base de código do OpenZFS é considerada comparável a outros sistemas de arquivos para Linux.
Principais mudanças:
- Adicionada a tecnologia dRAID (Distributed Spare RAID), que é uma variante do RAIDZ com processamento distribuído integrado para recuperação a quente (hot spare). O dRAID herdou todas as vantagens do RAIDZ, mas permitiu um aumento significativo na velocidade de reconstrução do armazenamento (resilvering) e na recuperação de redundância no array. O armazenamento virtual dRAID é formado por vários grupos internos de RAIDZ, cada um contendo dispositivos para armazenamento de dados e dispositivos para armazenamento de blocos de paridade. Esses grupos são distribuídos entre todos os discos para otimizar o uso da largura de banda disponível. Em vez de um disco separado para recuperação a quente, o dRAID utiliza o conceito de distribuição lógica de blocos para recuperação a quente em todos os discos do array.

- Implementada a propriedade "compatibility" ("zpool create -o compatibility=off|legacy|file[,file…] pool vdev"), que permite ao administrador escolher o conjunto de recursos a ser ativado no pool, visando a criação de pools portáteis e a manutenção da compatibilidade entre diferentes versões do OpenZFS e diferentes plataformas.
- Possibilidade de salvar estatísticas sobre o funcionamento do pool no formato do banco de dados InfluxDB, otimizado para armazenar, analisar e manipular dados na forma de séries temporais (amostras de valores de parâmetros em intervalos definidos). Para exportar no formato InfluxDB, foi proposta o comando "zpool influxdb".
- Adicionada a funcionalidade de adição a quente de memória e CPU.
- Novos comandos e opções:
- "zpool create -u" — proíbe a montagem automática.
- «zpool history -i» — reflete na história das operações a duração de cada comando.
- «zpool status» — adicionado aviso sobre discos com tamanhos de bloco subotimizados.
- «zfs send —skip-missing|-s» — ignora snapshots ausentes durante o envio do fluxo para replicação.
- «zfs rename -u» — renomeia o sistema de arquivos sem remontagem.
- Suporte adicionado no arcstat para estatísticas L2ARC, com as opções «-a» (todas) e «-p» (parsable).
- Otimizações:
- Desempenho de entrada/saída interativa aprimorado.
- Desempenho do prefetch acelerado para cargas relacionadas ao acesso paralelo aos dados.
- Escalabilidade melhorada através da redução de conflitos de bloqueio.
- Tempo de importação do pool reduzido.
- Fragmentação dos blocos ZIL reduzida.
- Desempenho de operações recursivas aprimorado.
- Gerenciamento de memória melhorado.
- Carregamento do módulo do kernel acelerado.
Fonte: opennet.ru

