Promoção do Bcachefs para o núcleo do Linux

Kent Overstreet, autor do sistema de cache para unidades de blocos em SSDs BCache, em sua apresentação na conferência LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit), resumiu os resultados do trabalho para promover o sistema de arquivos Bcachefs ao núcleo principal do Linux e falou sobre os planos para o desenvolvimento futuro deste sistema de arquivos. Em maio, um conjunto atualizado de patches foi proposto para revisão e inclusão no núcleo principal do Linux com a implementação do sistema de arquivos Bcachefs. O sistema de arquivos Bcachefs está em desenvolvimento há cerca de 10 anos. O anúncio da prontidão para revisão da implementação do Bcachefs antes da inclusão no núcleo foi feito no final de 2020, e na versão atual dos patches foram consideradas as observações e melhorias detectadas durante a revisão anterior.

O objetivo do desenvolvimento do Bcachefs é alcançar o nível do XFS em desempenho, confiabilidade e escalabilidade, ao mesmo tempo em que oferece funcionalidades adicionais típicas do Btrfs e ZFS, como inclusão de múltiplos dispositivos em uma partição, layouts de armazenamento em camadas, replicação (RAID 1/10), caching, compressão de dados transparente (modos LZ4, gzip e ZSTD), snapshots, verificação de integridade através de somas de verificação, a capacidade de armazenar códigos de correção de erros de Reed-Solomon (RAID 5/6) e armazenamento 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, demonstrando uma velocidade de operação próxima ao Ext4 e XFS.

Entre as últimas conquistas no desenvolvimento do Bcachefs, destaca-se a estabilização da implementação de snapshots que estão disponíveis para gravação. Comparado com o Btrfs, os snapshots no Bcachefs agora escalam significativamente melhor e estão isentos dos problemas típicos do Btrfs. Na prática, a funcionalidade dos snapshots foi testada na organização de backups do MySQL. O Bcachefs também passou por um extenso trabalho para melhorar a escalabilidade — o sistema de arquivos teve um bom desempenho em testes em armazenamentos de 100 TB, e a implementação do Bcachefs em um armazenamento de 1 PB está prevista para breve. Um novo modo nocow foi adicionado para desativar o mecanismo de 'copy-on-write' (nocow). Durante o verão, planeja-se estabilizar a implementação dos códigos de correção de erros e RAIDZ, além de resolver problemas de alto consumo de memória durante a recuperação e verificação do sistema de arquivos com a ferramenta fsck.

Entre os planos futuros, há a intenção de utilizar a linguagem Rust no desenvolvimento do Bcachefs. Segundo o autor do Bcachefs, ele prefere programar a depurar código, e agora considera insensato escrever em C quando há uma alternativa melhor disponível. O Rust já está sendo utilizado no Bcachefs na implementação de algumas utilidades executadas no espaço do usuário. Além disso, está sendo idealizado um projeto gradual para reescrever completamente o Bcachefs em Rust, pois o uso dessa linguagem economiza tempo considerável na depuração.

No que diz respeito à promoção do Bcachefs para a linha principal do núcleo do Linux, o processo de aceitação pode ser prolongado devido ao tamanho considerável das mudanças (2500 patchs e cerca de 90 mil linhas de código), que são difíceis de revisar. Para acelerar a revisão, alguns desenvolvedores sugeriram dividir a série de patchs em partes menores e logicamente separadas. Durante a discussão, alguns participantes também observaram o desenvolvimento do projeto por um único desenvolvedor e o risco de que o código fique sem suporte caso algo aconteça com seu criador (dois funcionários da Red Hat estão interessados no projeto, mas seu trabalho até agora se limita a correções de bugs).

O Bcachefs está em desenvolvimento utilizando tecnologias já testadas na criação do dispositivo de bloco Bcache, destinado a cache de acesso a discos rígidos lentos em SSDs rápidos (incluído no kernel a partir da versão 3.10). O Bcachefs utiliza o mecanismo Copy-on-Write (COW), onde as alterações não resultam na sobrescrição de dados — o novo estado é gravado em um novo local, após o qual o ponteiro do estado atual é alterado.

A característica do Bcachefs é o suporte à conexão em camadas de dispositivos de armazenamento, onde o armazenamento é composto de várias camadas - na camada inferior, são conectados os dispositivos mais rápidos (SSD), que são utilizados para armazenar em cache os dados frequentemente acessados, enquanto a camada superior consiste em discos mais baratos e de maior capacidade, que fornecem armazenamento para dados menos frequentemente utilizados. O cache pode ser aplicado entre as camadas no modo de gravação atrasada (writeback). Os dispositivos podem ser adicionados ou removidos dinamicamente da partição sem interromper o uso do sistema de arquivos (os dados migram automaticamente).

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