FERRAMENTAS LINUX: O Bcachefs publicou os patches para a reescrita de contabilidade de disco

segunda-feira, 26 de fevereiro de 2024

O Bcachefs publicou os patches para a reescrita de contabilidade de disco

Kent Overstreet postou na noite de sábado um conjunto de 21 patches para revisar o código de contabilidade de disco para o sistema de arquivos Bcachefs. 

Essa mudança quebra a compatibilidade com o formato existente de contabilidade de disco em disco e, portanto, exigirá uma atualização ao migrar para a nova versão, que pode chegar ao Kernel Linux v6.9.

Overstreet está trabalhando nessa reescrita da contabilidade do disco Bcachefs há algum tempo e neste fim de semana publicou a série inicial de patches. Ele explicou sobre esta reescrita:

O antigo esquema de contabilidade de disco era rápido, mas tinha algumas limitações:

- falta de escalabilidade: era baseado em contadores percpu adicionalmente fragmentados por buffer de diário pendente e, logo antes da gravação do diário, acumularíamos os contadores e os adicionaríamos ao entrada de diário. Mas isso significava que todos os contadores eram adicionados a cada gravação do diário, o que significava que ele nunca seria capaz de suportar contadores por instantâneo.

- foi difícil estender este foi o motivo pelo qual, até agora, não tínhamos uma contabilidade compactada adequada, e obter a taxa de compactação exigia uma varredura completa do btree.

No novo esquema:

- cada conjunto de contadores é uma chave b, uma chave em um btree (BTREE_ID_accounting). isso significa que eles não estão fixados no diário

- a chave tem estrutura e é extensível disk_accounting_key é uma união marcada e é apenas unida por bpos

- os contadores são deltas, até serem liberados para o btree subjacente, isso significa que as atualizações do contador são normais atualizações do btree; o buffer de gravação btree torna as atualizações do contador eficientes.

Como a leitura de contadores do btree seria cara - seria necessária uma liberação do buffer de gravação para obter contadores atualizados - também mantemos um conjunto paralelo de contabilidade na memória, um pouco como o esquema antigo, mas sem o por diário -fragmentação de buffer. Os contadores na memória são indexados em uma árvore eytzinger por disk_accounting_key/bpos, com os próprios contadores sendo percpu u64s.

Isso quebra o formato em disco do sistema de arquivos e, portanto, precisa regenerar a contabilidade ao atualizar (ou fazer downgrade) após esta nova versão. Isso deve acontecer de forma transparente via kernel fsck, mas existem algumas limitações conhecidas para usuários do Kernel Linux 6.7 no momento. A esperança é potencialmente ter esta reescrita de contabilidade de disco pronta para Bcachefs no Linux v6.9.

Mais detalhes sobre este novo código através dessa série de patches .





Fonte 

Até a próxima !!


Nenhum comentário:

Postar um comentário