Lançamento do OpenZFS 2.4.0, implementações do ZFS para Linux e FreeBSD

Após 11 meses de desenvolvimento, foi lançado o projeto OpenZFS 2.4.0, que desenvolve a implementação do sistema de arquivos ZFS para Linux e FreeBSD. O projeto ganhou notoriedade como "ZFS no Linux" e anteriormente era limitado ao desenvolvimento de um módulo para o núcleo do Linux, mas após a fusão com o código do FreeBSD, foi reconhecido como a implementação principal do OpenZFS e renomeado.

O OpenZFS foi testado com núcleos Linux de 4.18 a 6.18 e todas as ramificações do FreeBSD, começando pela versão 13.3. O código é distribuído sob a licença CDDL. O OpenZFS já é utilizado no FreeBSD e faz parte das distribuições Debian, Ubuntu, Gentoo, NixOS 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 uma implementação dos componentes do ZFS, relacionados tanto ao funcionamento do sistema de arquivos quanto ao funcionamento do gerenciador de volumes. Estão implementados os componentes: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) e ZPL (ZFS POSIX Layer). O projeto também permite o uso do ZFS como backend para o sistema de arquivos em cluster Lustre. As contribuições do OpenZFS são baseadas no código original do ZFS, importado do projeto OpenSolaris e ampliado 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 free CDDL, que não é compatível com a GPLv2, o que impossibilita a integração do OpenZFS na ramificação principal do kernel Linux, uma vez que a mescla de código sob as licenças GPLv2 e CDDL não é aceitável. Para contornar a incompatibilidade de licenças, foi decidido distribuir o produto para Linux completamente sob a licença CDDL na forma de um módulo separado, fornecido independentemente do kernel. A estabilidade da base de código do OpenZFS é considerada comparável a outros sistemas de arquivos para Linux.

Principais mudanças:

  • Implementada a possibilidade de definir cotas padrão para usuários, grupos e projetos. Nas versões anteriores, as cotas podiam ser configuradas apenas individualmente para cada identificador de usuário. Na nova versão, foi adicionada a possibilidade de definir um valor padrão que será aplicado se uma cota específica não for estabelecida para um usuário.
  • Adicionada a capacidade de reverter o modo de entrada/saída direta (O_DIRECT, Direct I/O) para o uso de um mecanismo leve de entrada/saída não armazenada em cache (Uncached I/O) para solicitações que não estão alinhadas com a fronteira da página de memória, não suportadas no Direct I/O.
  • Proposto um novo algoritmo unificado de limitação da taxa de operações de gravação e alocação de blocos, que reduz a fragmentação do vdev (Dispositivo Virtual) por meio da agregação de várias operações de gravação e utilizando áreas livres contínuas maiores em vez de alocar os resultados de operações de gravação individuais em pequenas áreas livres.
  • Aumentada o desempenho da criptografia com o uso de instruções AVX2 na implementação do algoritmo AES-GCM. Nos testes realizados, a aceleração alcança 80%.
  • Permitida a alocação de blocos ZIL (ZFS Intent Log) não apenas em vdev normais ou em dispositivos SLOG dedicados, mas também em vdev especiais. Se um vdev normal estiver conectado a um disco rígido e um vdev especial a um SSD, essa mudança permite evitar situações em que dados são gravados na SSD, enquanto os blocos ZIL associados são gravados no disco rígido, evitando assim atrasos desnecessários.
  • Agora é permitido definir a propriedade special_small_blocks para seções (ZVOL), e não apenas para sistemas de arquivos, permitindo organizar o armazenamento de pequenos blocos em um vdev especial separado, por exemplo, em um SSD.
  • Adicionado o modo de reescrita "zfs rewrite -P", que, sempre que possível, mantém a data de criação lógica inalterada, permitindo diferenciar blocos que foram apenas movidos para o pool de blocos que realmente foram alterados pelo usuário.
  • Para os comandos "zpool trim", "zpool scrub" e "zpool initialize", foi implementada a opção "-a" (—all), que permite executar esses comandos simultaneamente para todos os pools importados.
  • Adicionado o comando "zpool scrub -S -E" para realizar a verificação dos checksums dos dados que caem dentro dos intervalos de tempo especificados.
  • Novas otimizações foram adicionadas ao processo de desduplicação.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster