Bcachefs é um sistema de arquivos copy-on-write para sistemas operacionais baseados em Linux.
recentemente aids Kent Overstreet, o autor de bcachefs, em seu discurso na conferência LSFMM 2023 sintetizou os resultados do trabalho no Promoção do sistema de arquivos Bcachefs no ramo principal do kernel do Linux e discutiu planos para o desenvolvimento do kernel.
Bcachefs é desenvolvido usando tecnologias já comprovadas no desenvolvimento do dispositivo de bloco Bcache, projetado para armazenar em cache o acesso a discos rígidos lentos em unidades SSD rápidas (incluído no kernel desde a versão 3.10). Bcachefs usa o mecanismo Copy-on-Write (COW), em que as alterações não levam à substituição de dados: o novo estado é gravado em um novo local, após o qual o indicador do estado atual é alterado.
Uma característica do Bcachefs é a suporte para conectar unidades multicamadas, em que o armazenamento é composto por várias camadas: unidades mais rápidas (SSDs) são anexadas à camada inferior, que são usadas para armazenar em cache os dados usados com frequência, e a camada superior forma unidades de maior capacidade e mais baratas que armazenam dados menos demandados. O cache write-back pode ser usado entre as camadas. As unidades podem ser adicionadas e desconectadas dinamicamente de uma partição sem interromper o uso do sistema de arquivos (os dados migram automaticamente).
Sobre o projeto, é mencionado que o objetivo de desenvolvimento do Bcachefs é atingir o nível do XFS em termos de desempenho, confiabilidade e escalabilidade.
Ao fornecer recursos adicionais inerentes ao Btrfs e ZFS, como vários dispositivos em uma partição, layouts de armazenamento multicamada, replicação (RAID 1/10), cache, modos LZ4, gzip e ZSTD, segmentos de estado, verificação de integridade de soma de verificação, a capacidade para armazenar códigos de correção de erros Reed-Solomon, armazenamento de informações criptografadas.
Em termos de desempenho, o Bcachefs está à frente do Btrfs e de outros sistemas de arquivos baseados no mecanismo Copy-on-Write, demonstrando desempenho próximo ao Ext4 e XFS.
Das últimas conquistas no desenvolvimento de Bcachefs, destaca-se a estabilização da implementação de snapshots disponíveis para escrita. Em comparação com o Btrfs, os instantâneos no Bcachefs agora são dimensionados significativamente melhor e estão livres dos problemas inerentes ao Btrfs.
Na prática, o trabalho dos instantâneos foi testado ao organizar os backups do MySQL. O Bcachefs também trabalhou muito para melhorar a escalabilidade: o sistema de arquivos teve um bom desempenho em testes de armazenamento de 100 TB e espera-se que o Bcachefs seja implantado em armazenamento de 1 PB em um futuro próximo.
Além disso, destaca-se também que adicionado um novo modo nocow para desabilitar o mecanismo "cópia na gravação". Durante o verão, eles planejam trazer a implementação de códigos de correção de erros e RAIDZ para um estado estável, bem como resolver problemas com alto consumo de memória ao restaurar e verificar sistemas de arquivos com o utilitário fsck.
de planos para o futuro o d é mencionadoQuero utilizar a linguagem Rust no desenvolvimento de Bcachefs. Segundo o autor de Bcachefs:
Ele gosta de codificar, não depurar código, e agora é uma loucura escrever código em C quando há uma opção melhor. Rust já está envolvido no Bcachefs na implementação de alguns dos utilitários do espaço do usuário. Além disso, a ideia de reescrever completamente Bcachefs em Rust gradualmente está sendo idealizada, pois o uso dessa linguagem economiza significativamente o tempo de depuração.
Sobre mover Bcachefs para o ramo principal do kernel do Linux, o processo de adoção pode ser adiado devido ao grande tamanho das mudanças (2500 patches e cerca de 90 mil linhas de código), o que é difícil de revisar. Para acelerar a revisão, alguns desenvolvedores sugeriram dividir a série de patches em partes menores e mais logicamente separadas.
Durante a discussão, alguns participantes também chamaram a atenção para o desenvolvimento do projeto por um desenvolvedor e o perigo de o código ficar sem manutenção caso algo acontecesse com seu desenvolvedor (dois funcionários da Red Hat estão interessados no projeto, mas seu trabalho ainda está pendente ). correções limitadas de bugs).
Em maio, foi proposto que fosse revisado e incluído na parte principal do kernel do Linux. A prontidão para rever a implementação do Bcachefs antes da sua inclusão no Kernel foi anunciada no final de 2020, sendo que a versão atual dos patches tem em conta o feedback e as deficiências identificadas durante a revisão anterior.
fonte: https://lwn.net/