OpenZFS 2.4.0-rc1 é lançado com ZIL em “special vdevs” e grandes melhorias de performance

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

RC1 traz ZIL em special vdevs, quotas padrão e novo alocador para menos fragmentação e mais desempenho.

OpenZFS 2.4.0 chegou à sua primeira Release Candidate — uma versão de testes pensada para a comunidade colocar a mão na massa, validar mudanças e reportar ajustes antes do lançamento estável. A história aqui é simples: o sistema de arquivos open source mais robusto do mercado ficou mais esperto na administração, mais consistente no uso prolongado e mais rápido em cenários de escrita síncrona. E, sim, agora dá para direcionar o ZIL e blocos de ZVOL para special vdevs — exatamente o que administradores vinham pedindo para afinar I/O em SSDs de baixa latência.

Além disso, a RC1 declara compatibilidade com Linux (4.18 a 6.16) e FreeBSD (13.3+ e 14.0+). Em outras palavras: dá para testar hoje em praticamente qualquer ambiente de homologação moderno.

Melhorias para administradores de sistemas

“Explore o OpenZFS 2.2.5, com suporte para Linux 6.9 e bits do Linux 6.10. Descubra as melhorias e novas funcionalidades que vão revolucionar a sua experiência Linux.

Quotas padrão que “se aplicam sozinhas”. Em ambientes multiusuário (laboratórios, universidades, servidores de arquivos, hospedagens), definir quota usuário a usuário é repetitivo e sujeito a erro. A partir do OpenZFS 2.4.0, você pode estabelecer quotas padrão para usuários, grupos ou projetos, e todo novo objeto já nasce obedecendo a esse limite — economia real de tempo e padronização de políticas.

Novo alocador para combater a fragmentação. Com o passar dos meses, pools com cargas mistas (muitos arquivos pequenos intercalados com grandes) tendem a se fragmentar e perder vazão. O novo algoritmo de unified allocation throttling atua justamente aí, suavizando a pressão de alocação por vdev e mantendo o desempenho previsível por mais tempo — é como organizar o trânsito antes que o congestionamento se forme.

Ferramentas de rotina mais práticas. Pequenas sutilezas fazem diferença no dia a dia: há opções para “varrer tudo de uma vez” em pools importados (scrub/trim/init), iniciar scrubs por janelas de tempo específicas e reduzir o tamanho de streams incrementais ao preservar o “logical birth time” em reescritas. Tradução: menos digitação, menos janelas de manutenção e replicações menores.

Grandes ganhos de performance

ZIL em special vdevs: tchau gargalo em escrita síncrona
Se seu workload depende de fsync() — pense em bancos de dados, NFS com sync=always, sistemas de mensagens — o ZIL no special vdev é um divisor de águas. Você move o log de intenção para um SSD rápido (o special vdev), reduz a latência nas confirmações e libera os HDDs para throughput sequencial. É como tirar as motos da faixa de caminhões: todo mundo flui melhor.

ZVOL com blocos em special vdevs: VMs e iSCSI mais ágeis
Quem entrega discos virtuais (ZVOLs) para hipervisores ou iSCSI vai gostar: agora os blocos de ZVOL também podem “pousar” no special vdev conforme o limiar configurado (via special_small_blocks). Isso concentra metadados e blocos pequenos em SSDs — acelerando boot de VMs, catálogos de bancos e outras operações sensíveis a IOPS.

Criptografia mais veloz e I/O direto mais inteligente
Para quem usa AES-GCM, a implementação com AVX2 traz um fôlego extra em CPUs compatíveis. E, quando o Direct I/O não consegue alinhar buffers, o ZFS recorre a um caminho “sem cache” mais leve, evitando quedas abruptas de desempenho. É aquele polimento que você percebe no gráfico de latência quando a carga aperta.

Como testar

Antes de tudo: é uma Release Candidate. Teste em ambiente de homologação, com backup, e planeje rollback. O objetivo é descobrir comportamentos inesperados antes da versão final.

  1. Planeje o special vdev
    Se sua estratégia é acelerar escrita síncrona e blocos pequenos, prepare SSDs para o special vdev e ajuste o limiar de special_small_blocks de acordo com o seu perfil de I/O. Em workloads com muitos metadados e arquivos pequenos, um limiar maior tende a ajudar; em pools com SSDs limitados, seja conservador para não saturá-los.
  2. Valide workloads críticos
    — Bancos de dados e NFS síncrono: compare latência de fsync(), tempos de commit e Throughput sob picos.
    — Virtualização/iSCSI (ZVOL): meça tempo de boot de VMs, jitter de latência e desempenho sob mixes de 4–64K.
    — Cargas mistas: observe o comportamento do novo alocador ao longo de dias de uso, especialmente em pools próximos da capacidade.
  3. Aproveite as melhorias operacionais
    Automatize scrubs/trim em todos os pools importados e experimente os scrubs por janela de tempo para investigações pós-incidente. Ao revisar políticas, experimente as quotas padrão para reduzir trabalho manual em novos datasets/usuários.

Principais novidades (resumo)

  • Quotas padrão para usuários, grupos e projetos
  • ZIL em special vdevs para cortar latência de escrita síncrona
  • ZVOL com blocos elegíveis ao special vdev via special_small_blocks
  • Novo alocador que reduz fragmentação e mantém o desempenho estável
  • Criptografia AES-GCM mais rápida com AVX2
  • I/O direto com fallback “uncached” mais leve em desalinhamentos
  • Qualidade de vida: scrub/trim/init em todos os pools, scrubs por intervalo de tempo e streams incrementais menores
  • Compatibilidade ampliada: Linux 4.18–6.16 e FreeBSD 13.3+ / 14.0+

Observação editorial: por se tratar de RC1, evite produção. O momento é de benchmarking, validação de compatibilidade e feedback aos mantenedores — o que você reporta agora vira qualidade na versão final.

Compartilhe este artigo