PEL PROJETO EMPRESA LIVREConhecimento · Tecnologia · Liberdade
Proxmox Backup Server · Prune individual

Cada VM com a retenção que ela merece.

No PBS o prune vale para o datastore inteiro: o banco do ERP e a VM de laboratório guardam os mesmos pontos. O pbs-prune aplica retenção por VM/CT, e é grátis.

01 · O problema

No PBS, a retenção mora no datastore, não na VM.

O prune job é definido para o datastore (ou namespace). Todo grupo de backup lá dentro recebe a mesma regra.

⚖️

Mesma proteção para tudo

O banco do ERP e a VM de laboratório guardam os mesmos 15 pontos de restauração.

📈

Quem muda muito, paga mais

Logs, CI e homologação alteram muitos blocos por dia, e cada ponto retido segura esses blocos no disco.

🗂️

Namespace é contorno

Separar VMs por namespace funciona, mas obriga a reorganizar os backups só para ter uma regra diferente.

Incremental + deduplicação não torna a retenção grátis espaço ≈ tamanho × (1 + (keep − 1) × mudança/dia)

Cada snapshot mantém vivos os chunks que mudaram desde o anterior, e o disco só é liberado quando o Garbage Collection roda. Exemplo: VM de 300 GB com 8% de mudança por dia ocupa 636 GB com keep 15 e 348 GB com keep 3.

02 · A simulação

20 VMs, o mesmo datastore, duas políticas.

A: keep-last 15 para todas (padrão do datastore). B: keep-last de 1 a 15 conforme a criticidade de cada VM. Um backup por dia.

Política A · global—keep-last 15 em todas
Política B · individual—keep-last por VM
Economia——
Snapshots mantidos—prune e GC mais rápidos
VMFunçãoClasseTamanhoMudança/diaKeep AKeep BEspaço AEspaço BComparativoEconomia

Simulação ilustrativa com o modelo acima. Não considera deduplicação entre VMs nem compressão.

O detalhe que importa: as VMs críticas (banco do ERP e fileserver) continuam com 15 pontos. A economia vem de quem nunca precisou de 15: logs, homologação, CI e laboratório respondem por cerca de 1 TB. O que mais pesa não é o tamanho da VM, é a taxa de mudança.

Uma política de backup real, por classe

Crítico15

Banco do ERP, fileserver

Produção7–10

ERP aplicação, AD, e-mail

Serviços5

Web, API, BI

Apoio3

Logs, monitoramento, homologação, VPN

Descartável1–2

Dev, CI, laboratório

03 · Do script ao sistema

De um script de 2022 a um assistente completo.

O v0.1 resolvia uma VM com um comando no cron. Com várias VMs e retenções diferentes, o script virou sistema.

prune-vm.sh · v0.1 · 2022
#!/bin/bash
# Autor: Caio Monteiro · Versão 0.1
export PBS_PASSWORD="SUA_CHAVE_AQUI"
proxmox-backup-client prune vm/ID_VM \
  --quiet 1 --keep-TIPO DIAS \
  --repository root@pam!corte@IP_PBS:STORAGE
  • Credencial no códigoO token ficava em texto puro dentro do script.
  • Uma VM por script20 VMs viravam 20 arquivos e 20 linhas de cron.
  • Sem log nem validaçãoSem dry-run, sem lock, sem timeout, sem histórico.

Como funciona o assistente pbs-prune-setup

  1. 00

    Pré-checagem

    Exige root e confere proxmox-backup-client, openssl, timeout, flock e cron.

  2. 01

    Conexão

    Host, porta, datastore, namespace e token. No próprio PBS, cria o token e a ACL sozinho.

  3. 02

    VMs/CTs e retenção

    Lista os grupos do datastore; você define quantos backups manter de cada um.

  4. 03

    Dry-run

    Mostra o que seria mantido e removido antes de qualquer alteração.

  5. 04

    Agendamento

    Diário, semanal, a cada N horas ou cron próprio. Depois do backup e antes do GC.

  6. 05

    Instalação

    Grava executor, configuração, secret, cron e logrotate. Pode rodar na hora.

/etc/pbs-prune/groups.conf
# grupo   keep-last  (vm/ID = QEMU · ct/ID = LXC)
vm/100    15
vm/105    5
vm/111    3
vm/119    1
ct/200    3
pbs-prune --dry-runSimula, sem apagar nada
pbs-pruneExecuta o prune agora
pbs-prune --listLista grupos e retenções
tail -f /var/log/pbs-prune.logAcompanha a execução
pbs-prune-setup.shMenu de manutenção
pbs-prune-setup.sh --uninstallRemove tudo (mantém o log)
CaminhoFunçãoPerm.
/usr/local/sbin/pbs-pruneExecutor, pelo cron ou manual750
/etc/pbs-prune/pbs-prune.confConexão e agendamento600
/etc/pbs-prune/groups.confA política: uma linha por grupo600
/etc/pbs-prune/secretSecret do token, fora do código600
/etc/cron.d/pbs-pruneAgendamento644
/etc/logrotate.d/pbs-pruneRotação mensal do log, 12 meses644
/var/log/pbs-prune.logHistórico de cada execução (também no syslog)—
Lembrete: o prune só marca os snapshots para remoção. O espaço volta quando o Garbage Collection do datastore roda. Agende o prune depois do backup e antes do GC.
04 · Valor real

Backup como política de negócio.

MSP e vários clientes

Cada cliente com a retenção do seu contrato, no mesmo PBS.

ERP e banco de dados

Banco com 15 pontos, homologação e testes com 3.

Datastore no limite

Libere espaço cortando histórico inútil antes de comprar disco.

Auditoria

A política está no groups.conf e cada execução fica no log.

05 · Presente

O PBS Prune é seu. Grátis.

Assistente, executor, agendamento e logrotate. Use, estude, adapte e compartilhe.

v1.0.0Licença MITBashPVE · PBS · Debian
no seu PBS, como root
# wget https://www.projetoempresalivre.com.br/assets/downloads/pbs-prune-setup.sh
# chmod +x pbs-prune-setup.sh
# ./pbs-prune-setup.sh
Apoio · opcional

Se este conteúdo te ajudou, você pode apoiar.

O script continua grátis para todo mundo. O apoio cobre desenvolvimento, infraestrutura de testes e os próximos vídeos e ferramentas.

Inscrever-se no YouTube

PIX · CNPJ 19.390.203/0001-60