David Sterba, da SUSE, enviou nesta semana as atualizações do sistema de arquivos Btrfs para o kernel Linux 5.18 que está em desenvolvimento. Segundo as primeiras informações, a SUSE atualiza Btrfs com E/S codificada e melhorias no desempenho do Fsync. “Esta atualização contém atualizações de recursos, melhorias de desempenho. Isso é resultado do trabalho preparatório e principal e algumas atualizações de VFS relacionadas.”, afirma Sterba.
Então, com a adoção do Btrfs aumentando dia a dia, esse kernel está trazendo um trabalho mais empolgante para esse sistema de arquivos Linux de “próxima geração”. Há a adição dos ioctls de E/S codificados, várias melhorias no manuseio do fsync do Btrfs, preparações para o novo layout das árvores de extensão e muito mais.
SUSE atualiza Btrfs com E/S codificada e melhorias no desempenho do Fsync. Veja a seguir as principais mudanças e atualizações:
- Aceleração do Fsync, incluindo até 90% menos tempo de execução durante o registro de diretório. Há também o trabalho de fsync para evitar registrar todas as alterações de diretório durante as renomeações, o que pode economizar até 60% em tempo de execução. Também há trabalho para evitar o registro de inode durante a renomeação e vinculação, além de reduzir o tempo de execução em até 60%. Existem outras mudanças para também aumentar a taxa de transferência e outros aprimoramentos;
- Interfaces de leitura/gravação codificadas. Essa E/S codificada por Btrfs permite que o espaço do usuário leia/grave dados brutos diretamente em extensões como dados compactados agora e suporte a dados criptografados no futuro;
- Continuação do trabalho nas mudanças da árvore de extensão do Btrfs v2;
- O código Btrfs VFS agora permite reflinks e desduplicação de duas montagens diferentes do mesmo sistema de arquivos;
- O modo zoneado Btrfs agora funciona com DUP de metadados;
- Mensagens de erro aprimoradas para o driver do sistema de arquivos.- Correções e outras melhorias de baixo nível.
Recursos:
- ioctls de leitura/gravação codificados, permite que o espaço do usuário leia ou grave dados brutos
diretamente para extensões (agora compactadas, criptografadas no futuro), serão
usado por enviar/receber v2 onde economiza tempo de processamento - o modo zoneado agora funciona com metadados DUP (o padrão mkfs.btrfs)
- atualizações do cabeçalho da mensagem de erro:
- estado de erro de impressão: aborto de transação, outro erro, erros de árvore de log
- imprimir estado transitório do sistema de arquivos: remontar, substituir dispositivo, ignorado
verificações de soma de verificação - verificador de árvore: verifique o id da transação do sujo a ser escrito
buffer de extensão
Melhorias de desempenho:
- acelerações fsync
- acelerações de log de diretório (até -90% de tempo de execução)
- evite registrar todas as alterações de diretório durante as renomeações (até -60% de execução
Tempo) - evite o log de inode durante a renomeação e link quando possível (até -60%
tempo de execução) - preparar extensões a serem registradas antes de bloquear um caminho de árvore de log
(rendimento +7%) - pare de copiar extensões de arquivos antigos ao fazer um fsync completo ()
- registro aprimorado de extensões antigas após truncar
Kernel, correções:
- identificação de dispositivos obsoletos aprimorada por dev_t e não apenas caminho (para
dispositivos que estão atrás de outras camadas, como mapeador de dispositivos) - trabalho preparatório contínuo da árvore de extensão v2
- desativar recursos que ainda não funcionarão
- adicione wrappers e abstrações para novas raízes de árvores
- tratamento de erros melhorado
- adicionar anotações de gravação de super bloco ao redor do grupo de blocos de fundo
recuperar - corrigir mensagens de varredura de dispositivo potencialmente acessando ponteiro obsoleto
- limpezas e refatoração
VFS:
- permitir reflinks/desduplicação de duas montagens diferentes do mesmo
sistema de arquivo - exportar e adicionar auxiliares para verificação de intervalo de leitura/gravação, para o
ioctls codificados
Veja esta solicitação de pull para obter a lista completa de alterações de recursos do Btrfs para Linux 5.18.
Via Phoronix