Kent Overstreet publicou a versão 1.37.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 utilidade bcachefs executável no espaço do usuário, que implementa comandos para criação (mkfs), montagem, recuperação e verificação do FS. Os pacotes foram compilados para Debian, Ubuntu, Fedora, openSUSE, NixOS e Arch Linux. O módulo DKMS suporta núcleos Linux a partir da versão 6.16.
Na nova versão:
- Apoio a códigos de correção de erros foi estabilizado e declarado pronto para uso geral, permitindo a recuperação de dados corrompidos, similar ao RAID 5/6. A implementação é baseada na codificação de Reed-Solomon, capaz de corrigir até N erros em um stripe na presença de N blocos redundantes. O restabelecimento automático de stripes degradados foi assegurado. Adicionada a possibilidade de usar códigos de recuperação em configurações com unidades de tamanhos diferentes.
- Suporte para o kernel Linux 7.0 em desenvolvimento foi adicionado.
- Novos comandos foram implementados: 'subvolume list' para listar subvolumes com filtragem e ordenação; 'subvolume list-snapshots' para mostrar snapshots em formato de árvore; 'subvolume reflink-option-propagate' para aplicar parâmetros de entrada/saída de arquivo, como compressão, checksum, número de réplicas e lista de dispositivos de destino, a extensões de arquivo.
- A operação de retrocesso (rewind) do log foi estabilizada.
- A recuperação automática foi assegurada ao usar dispositivos com suporte incorreto para os comandos de descarregamento de operações de gravação em cache (flush e FUA).
- A recuperação após uma terminação inesperada foi acelerada.
- A performance do FS cobrindo múltiplos dispositivos foi aumentada.
- As utilitários bcachefs executados no espaço do usuário foram reescritos na linguagem Rust. No futuro, planeja-se reescrever também os componentes do FS que funcionam a nível de kernel em Rust. O trabalho começou utilizando a ferramenta Verus para verificação formal do código em Rust.
O projeto Bcachefs está desenvolvendo um sistema de arquivos que visa combinar a funcionalidade avançada característica do Btrfs e ZFS com o nível de desempenho, confiabilidade e escalabilidade típico do XFS. O Bcachefs suporta recursos como a inclusão de vários dispositivos em uma partição, arranjos de armazenamento em camadas (camada inferior com dados de uso frequente em SSDs rápidos, e camada superior com dados menos exigidos de hard disks), replicação (RAID 1/10), cache, compressão de dados transparente (modos LZ4, gzip e ZSTD), snapshots, verificação de integridade por somas de verificação, códigos de correção de erros, e armazenamento de informações de forma criptografada (utilizando ChaCha20 e Poly1305).
Fonte: opennet.ru
