Os servidores Btrfs com muitas instantâneas evitam o esgotamento dos metadados protegendo uma margem de blocos não alocados e limitando a alteração dos metadados antes de surgir o ENOSPC.
Este artigo preventivo pressupõe que o sistema de ficheiros ainda está saudável e permite escrita. O objetivo é monitorizar atempadamente a alocação de metadados, o espaço não alocado no dispositivo, o número de instantâneas e a alteração dos objetos, para que o servidor nunca chegue ao estado de recuperação abordado num guia de reparação de ENOSPC. A frequência das instantâneas, por si só, não é o problema; a duração da retenção, os padrões de atualização, as escritas de atime, os milhões de objetos do sistema de ficheiros e a manutenção mal calendarizada determinam em conjunto a rapidez com que a pressão sobre os metadados aumenta.
Acompanhe em conjunto os metadados e o espaço não alocado
Registe btrfs filesystem usage num dia normal e depois do período mais intenso de instantâneas ou cópias de segurança. Acompanhe os metadados alocados, os metadados utilizados, a alocação de dados e o espaço não alocado no dispositivo, em vez de depender apenas de df.
Um guia sobre armazenamento Btrfs explica que o espaço não alocado financia novos blocos quando o sistema de ficheiros necessita de capacidade adicional para metadados.
Crie um alerta em torno de um limite mínimo de margem conservador, adequado à sua carga de trabalho, em vez de utilizar uma percentagem universal. O sinal útil não é simplesmente “os metadados estão 70% utilizados”, mas sim se o Btrfs ainda dispõe de espaço não alocado suficiente para criar o próximo grupo de blocos de metadados necessário.
Alerta antes de o ENOSPC se tornar autorreforçado
O esgotamento dos metadados pode dificultar a limpeza, porque a eliminação de instantâneas e ficheiros também requer atualizações de metadados. Trate a redução do espaço não alocado como um aviso antecipado e intervenha enquanto os comandos de manutenção normais ainda têm espaço para funcionar.
Uma referência específica sobre ENOSPC explica que o ENOSPC começa com falta de margem, e não apenas quando todos os bytes aparentes do sistema de ficheiros foram consumidos.
Quando o limite é ultrapassado, suspenda primeiro a criação de novas instantâneas e as tarefas que exigem muitos metadados. Não inicie uma rebalanceação abrangente apenas porque o alerta foi acionado; confirme qual é a classe de espaço sob pressão e preserve espaço de trabalho suficiente para a menor ação corretiva.
Limite a retenção de instantâneas, não apenas a frequência
As instantâneas horárias podem ser práticas quando as antigas são eliminadas de forma previsível e a alteração dos dados é moderada. O padrão perigoso é uma cronologia em crescimento contínuo que preserva muitas gerações de ficheiros alterados com frequência.
Uma configuração prática do Snapper demonstra como a retenção limita o histórico de instantâneas, evitando que a automatização acumule pontos de restauro sem limites.
Escolha a retenção com base no valor de recuperação: mais pontos de curto prazo para configurações ativas, menos pontos de longo prazo para imagens de máquinas virtuais ou dados de contentores com elevada alteração, e cópias de segurança independentes para tudo aquilo cujo horizonte de recuperação exceda a capacidade de instantâneas locais.
Reduza a alteração dos metadados durante as janelas de instantâneas
Procure cargas de trabalho que reescrevem metadados sem alterar conteúdo útil dos ficheiros: atualizações frequentes dos tempos de acesso, árvores de pacotes ou contentores com um número enorme de objetos, caches rotativas e aplicações que tocam em muitos diretórios durante cada análise.
A análise da LWN sobre instantâneas Btrfs observa que as atualizações de atime amplificam a alteração das instantâneas, embora as instantâneas normais partilhem inicialmente os dados e metadados existentes.
Utilize definições de montagem e da aplicação adequadas à carga de trabalho, evitando, quando for seguro, alterações desnecessárias dos tempos de acesso. Não desative funcionalidades de metadados globalmente sem compreender os requisitos das aplicações; comece por reduzir as escritas que não têm valor de recuperação.
Monitorize o crescimento dos metadados como uma tendência
Recolha as estatísticas de utilização dos metadados e de erros do Btrfs no mesmo painel que a capacidade do conjunto de armazenamento. Compare o crescimento diário e semanal com o número de instantâneas, as implementações de contentores, as tarefas de cópia de segurança e as grandes alterações nas árvores de ficheiros.
O coletor Btrfs atual do Netdata expõe a utilização dos metadados, que pode ser monitorizada, em vez de deixar a pressão sobre os metadados visível apenas durante uma sessão interativa de resolução de problemas.
Crie alertas tanto para a tendência como para um limite absoluto. Um servidor que ganha vários gigabytes de metadados por dia após a introdução de uma nova política de cópias de segurança precisa de ser investigado muito antes de a margem restante atingir um nível crítico.
Teste cargas de trabalho com muitas instantâneas antes de aumentar a retenção
Ao aumentar a frequência das instantâneas ou adicionar um novo contentor, ferramenta de cópia de segurança ou carga de trabalho com muitos ficheiros pequenos, meça o crescimento dos metadados durante um ciclo representativo antes de aplicar a política a todo o servidor.
Um artigo recente sobre os componentes internos do Btrfs explica que os metadados acompanham a estrutura do sistema de ficheiros, em vez de constituírem uma sobrecarga fixa determinada apenas pelo total de bytes dos ficheiros.
A política de prevenção está a funcionar quando o crescimento dos metadados é previsível, a retenção faz a limpeza conforme o programado e a margem não alocada recupera após a manutenção normal. O artigo relacionado da ZimaSpace sobre a recuperação de ENOSPC de metadados Btrfs é o caminho adequado quando as escritas começam a falhar ou o sistema de ficheiros já esgotou o espaço de trabalho de alocação.
Suporte e Dicas
Mais para Ler

O Plex pode partilhar uma GPU com outro contentor Docker?
O Plex e outro contentor conseguem frequentemente aceder à mesma GPU, mas é necessário testar o suporte dos controladores, o mapeamento de dispositivos, a...

Como saber se um erro do Plex vem do cliente ou do servidor
Reproduza o mesmo item noutro cliente, compare o percurso da sessão e, em seguida, recolha provas do servidor apenas depois de o âmbito lhe...

Como configurar a cache do Plex e o armazenamento temporário de transcodificação
Proteja o estado persistente do Plex enquanto coloca os ficheiros temporários de transcodificação num armazenamento local adequado e, em seguida, verifique a limpeza, o...

