Lançamento da versão 1.33.0 do sistema de arquivos Bcachefs

Kent Overstreet publicou a versão 1.33.0 do sistema de arquivos Bcachefs. O lançamento abrange dois pacotes: bcachefs-kernel-dkms com um módulo de kernel compilado usando o sistema DKMS (Dynamic Kernel Module Support), e bcachefs-tools com a ferramenta bcachefs, executada no espaço do usuário, que implementa comandos para criação (mkfs), montagem, recuperação e verificação do sistema de arquivos. Os pacotes foram compilados para Debian, Ubuntu, Fedora, openSUSE, NixOS e Arch Linux. O módulo DKMS oferece suporte para kernels Linux a partir da versão 6.16.

A nova versão acrescenta a funcionalidade 'reconcile' (rebalance_v2), considerada a maior mudança no sistema de arquivos nos últimos dois anos. Diferente do modo 'rebalance' disponível anteriormente, o mecanismo 'reconcile' permite realizar o rebalanceamento não apenas dos dados (por exemplo, replicação de várias cópias em diferentes dispositivos), mas também dos metadados no sistema de arquivos (por exemplo, para mover metadados após a adição de um novo dispositivo ao pool). Além disso, o reconcile agora é aplicável a todas as opções de entrada/saída, e não apenas a operações de cópia em segundo plano e compressão. As mudanças nas opções ou configurações dos dispositivos são automaticamente consideradas no reconcile, e os dados e metadados degradados são imediatamente re-replicados.

No reconcile, são utilizados índices separados para: operações de alta prioridade; otimização do processamento de dados em dispositivos de armazenamento; dados programados para processamento que, no momento, não podem ser executados (por exemplo, devido à falta de espaço). Foi adicionada a suporte para a criação de um sistema de arquivos em um único dispositivo no modo de replicação dupla (replicas=2) — nessa configuração, a adição de um segundo dispositivo resultará na replicação automática dos dados para o disco adicionado, sem a necessidade de quaisquer ações por parte do usuário.

Entre outras alterações:

  • Foram adicionados os comandos 'reconcile status' e 'reconcile wait'. Novas opções de montagem 'mount_trusts_udev' e 'writeback_timeout' foram incluídas. Os comandos 'data rereplicate' e 'data job drop_extra_replicas' foram classificados como obsoletos.
  • Foi adicionado o modo de recuperação 'merge_btree_nodes', que realiza a verificação de todos os nós nas estruturas btree que estão envolvidos em operações de mesclagem.
  • A preparação do código para a transição para o uso da linguagem Rust foi concluída. O número de operações goto utilizadas no código foi reduzido de 2500 para 600. Em vez de vetores codificados em aberto, foi utilizado o macro DARRAY(), que fornece uma funcionalidade semelhante a arrays dinâmicos em C++ e Rust. Para tratamento de erros, foi implementado o macro try(), copiado de Rust.
  • Na equipe, o comando 'bcachefs fs usage' agora fornece informações precisas sobre dados degradados.
  • O processamento dos contadores exibidos pelo comando 'bcachefs fs top' foi reformulado. A adição de novos contadores foi simplificada e a possibilidade de converter pontos de rastreamento (tracepoints) em buffers de saída (printbufs) foi implementada.
  • A qualidade das mensagens de erro foi aprimorada, agora incluindo informações sobre os tipos de falhas (de software ou hardware), as ações para resolver o erro (como iniciar um processo de recuperação), os códigos de erro de entrada/saída recebidos dos dispositivos de bloco e dispositivos ausentes. Durante a varredura das estruturas btree, foram fornecidos dados sobre a possibilidade de recuperação de nós problemáticos.
  • Ao registrar no log, foi adicionada a possibilidade de definir separadamente os limites de intensidade de saída para diferentes tipos de erros. Esses limites ajudam a evitar a perda de mensagens sobre problemas de hardware isolados em meio a um grande número de mensagens de erros de software.
  • Indicadores de progresso foram adicionados para todas as etapas de recuperação.

O projeto Bcachefs desenvolve um sistema de arquivos voltado para combinar a funcionalidade avançada apresentada pelo Btrfs e ZFS, com o nível de desempenho, confiabilidade e escalabilidade característico do XFS. O Bcachefs suporta recursos como a agregação de múltiplos dispositivos em um único volume, layouts em camadas de armazenamento (a camada inferior com dados de uso frequente em SSDs rápidos, e a camada superior com dados menos demandados provenientes de discos rígidos), replicação (RAID 1/10), caching, compressão transparente de dados (modos LZ4, gzip e ZSTD), snapshots, verificação de integridade por meio de somas de verificação, a capacidade de armazenar códigos de correção de erros de Reed-Solomon (RAID 5/6) e armazenamento de informações em formato criptografado (usando ChaCha20 e Poly1305). Em termos de desempenho, o Bcachefs supera o Btrfs e outros sistemas de arquivos baseados na mecânica Copy-on-Write, apresentando velocidades de operação próximas ao Ext4 e XFS.

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