Para evitar longos intervalos sem cópias de segurança do Borg, execute a limpeza da retenção após uma cópia de segurança bem-sucedida, mas agende a compactação do repositório com menos frequência e fora da janela principal de cópia de segurança. O Borg 1.4 separa a eliminação de arquivos da recuperação física de espaço, pelo que não é necessário executar borg compact após cada borg prune.
Este guia destina-se ao modelo de comandos estável atual do Borg 1.4.x. O Borg 2 altera a semântica dos repositórios e dos arquivos em vários aspetos, por isso verifique a versão instalada antes de copiar automatismos de outra versão principal.
Confirmar a versão do Borg e o repositório
borg --version
borg info /mnt/backup/borg-repo
borg list /mnt/backup/borg-repo
As perguntas frequentes do Borg referem que o Borg utiliza um bloqueio ao nível de todo o repositório e que apenas um processo pode ter acesso de escrita de cada vez. Se uma compactação longa coincidir com a próxima cópia de segurança agendada, esta aguardará pelo bloqueio ou falhará quando o tempo limite do bloqueio expirar.
Definir a retenção primeiro com uma simulação
borg prune é destrutivo para o histórico de arquivos. A documentação do Borg prune recomenda vivamente testar com --dry-run e --list.
borg prune --dry-run --list --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --glob-archives '{hostname}-*' /mnt/backup/borg-repo
Se um repositório contiver cópias de segurança de várias máquinas ou conjuntos de dados, o filtro de arquivos é essencial. Sem um filtro restritivo, o Borg 1.4 considera todos os arquivos do repositório como candidatos às mesmas regras de retenção.
Executar o prune apenas após uma cópia de segurança bem-sucedida
#!/bin/sh
set -eu
REPO=/mnt/backup/borg-repo
ARCHIVE='{hostname}-{now:%Y-%m-%d_%H-%M}'
borg create --stats "$REPO::$ARCHIVE" /srv/data
borg prune --list --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --glob-archives '{hostname}-*' "$REPO"
Não execute o prune porque o agendador foi acionado; execute-o porque uma nova cópia de segurança foi concluída com êxito e a política de retenção já foi validada.
Compreenda por que motivo o prune não liberta espaço imediatamente
Desde o Borg 1.2, a compactação está separada dos comandos normais de escrita no repositório. As notas sobre a compactação separada do Borg explicam que eliminar ou executar o prune em arquivos não recupera imediatamente todo o espaço em disco do repositório.
borg create
|
novo arquivo consolidado
|
borg prune
|
arquivos antigos removidos do conjunto de retenção
|
borg compact
|
espaço não utilizado dos segmentos recuperado
Isto é útil para o agendamento, porque as cópias de segurança diárias não precisam de suportar o custo total da reescrita de segmentos do repositório parcialmente utilizados.
Agende a compactação com menos frequência do que o prune
- backup: todas as noites;
- prune: após cada cópia de segurança concluída com êxito ou algumas vezes por semana;
- compactação: uma vez por semana, durante um período tranquilo;
- verificação completa do repositório: num agendamento separado e menos frequente.
# Cópia de segurança diária + prune
0 1 * * * /usr/local/sbin/borg-backup
# Compactação semanal
0 4 * * 0 /usr/local/sbin/borg-compact
Se as cópias de segurança forem executadas frequentemente durante várias horas, afaste mais a compactação ou utilize um temporizador com dependências explícitas.
Utilize o limiar de compactação predefinido antes de forçar o máximo de reescritas
A documentação atual do compact utiliza um limiar predefinido de 10%.
borg compact --progress /mnt/backup/borg-repo
Essa predefinição é um bom ponto de partida quando a sua prioridade é uma janela de manutenção curta. Evite utilizar automaticamente --threshold 0; reescreve sempre que for possível libertar algum espaço e pode ser significativamente mais lento num repositório grande.
Impeça que a manutenção colida com a próxima cópia de segurança
Se uma tarefa puder legitimamente aguardar por outro processo Borg, defina um tempo de espera limitado para o bloqueio:
borg --lock-wait 1800 create /mnt/backup/borg-repo::'{hostname}-{now}' /srv/data
Não utilize uma espera de bloqueio demasiado longa como substituto de um bom agendamento. Monitorize quando a cópia de segurança começa e termina efetivamente.
Se vários clientes partilharem um repositório, distribua os respetivos agendamentos. As FAQ do Borg indicam que vários repositórios podem reduzir a contenção do bloqueio quando a deduplicação entre clientes não é importante.
Utilize estatísticas rápidas quando os relatórios estiverem a tornar o prune mais lento
Adicionado no Borg 1.4.5 --quick-stats para criar, eliminar e executar prune, evitando estatísticas mais lentas de todo o repositório quando não são necessárias.
borg prune --quick-stats --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --glob-archives '{hostname}-*' /mnt/backup/borg-repo
Mantenha espaço livre disponível antes de precisar de compactar
Não espere até que o sistema de ficheiros do repositório fique sem espaço livre. O Borg não consegue executar de forma fiável operações normais de escrita no repositório quando o sistema de ficheiros está completamente cheio.
df -h /mnt/backup
borg info /mnt/backup/borg-repo
Para um plano de cópia de segurança NAS mais abrangente, o guia de cópia de segurança 3-2-1 do ZimaOS é um lembrete útil de que a retenção do repositório é apenas uma camada do planeamento de cópias de segurança.
Valide o agendamento antes de confiar nele
- Cada cópia de segurança criou um novo arquivo?
- O prune foi executado apenas depois de cópias de segurança bem-sucedidas?
- O conjunto de retenção correspondeu ao plano de execução simulada?
- A compactação semanal terminou antes da cópia de segurança seguinte?
- O espaço livre aumentou depois de compact?
- Alguma tarefa passou inesperadamente tempo à espera do bloqueio do Borg?
Se compact se sobrepuser repetidamente à cópia de segurança seguinte, reduza a frequência da compactação, mantenha o limiar predefinido, mude compact para um período mais tranquilo ou divida as cargas de trabalho não relacionadas em repositórios separados.
Um padrão de manutenção Borg com pouca sobreposição
DIARIAMENTE
01:00 borg create
|
+-- sucesso --> borg prune
|
+-- falha --> manter os arquivos antigos, emitir um alerta
SEMANALMENTE
04:00 borg compact
PERIÓDICO
borg check
testar o restauro de ficheiros selecionados
A regra central é simples: prune protege a política de retenção; compact recupera espaço de armazenamento; não precisam de ser executados com a mesma frequência.
Suporte e Dicas
Mais para Ler

O Home Assistant funciona por Wi-Fi, mas falha através de Ethernet ou VPN
Teste cada caminho de rede separadamente, verifique o estado da interface e do encaminhamento, distinga o IP direto da descoberta e repare apenas a...

Como desativar o Home Assistant sem deixar dados desprotegidos
Comprove a substituição ou o arquivamento, revogue todos os caminhos de confiança, higienize cada dispositivo que contenha dados e conserve apenas cópias de recuperação...

Deve utilizar atualizações automáticas do Home Assistant num servidor doméstico?
Escolha atualizações manuais, apenas de notificação ou automáticas faseadas, tendo em conta o impacto no agregado familiar, o risco de compatibilidade, o tempo de...

