FSociety.pt

Infraestrutura Empresarial Segura | Four-Legged Firewall

View on GitHub

🔧 Manutenção do PBS

Guia de manutenção do Proxmox Backup Server, incluindo prune, garbage collection e monitorização.


📋 Tarefas de Manutenção

Frequência Tarefa
Diária Verificar backups executados
Semanal Garbage Collection
Mensal Verificação de integridade
Trimestral Atualizações do PBS

🗑️ Prune (Remover Backups Antigos)

Política de Retenção Configurada

No PBS 4.x, a retenção é configurada através de prune-jobs automáticos.

Período Quantidade Descrição
Diários 7 Últimos 7 dias
Semanais 4 Últimas 4 semanas
Mensais 6 Últimos 6 meses

Configurar Prune-Job (PBS 4.x)

No PBS 4.x, use prune-jobs para automatizar a limpeza:

# Criar prune job
proxmox-backup-manager prune-job create pve-store-prune \
  --store pve-store \
  --schedule daily \
  --keep-daily 7 \
  --keep-weekly 4 \
  --keep-monthly 6

# Listar prune jobs
proxmox-backup-manager prune-job list

# Ver detalhes de um prune job
proxmox-backup-manager prune-job show pve-store-prune

# Remover prune job (se necessário)
proxmox-backup-manager prune-job remove pve-store-prune

Configurar Política de Retenção (Método Alternativo)

# Configurar política no datastore
proxmox-backup-manager datastore update pve-store \
  --keep-last 7 \
  --keep-daily 7 \
  --keep-weekly 4 \
  --keep-monthly 6

Executar Prune Manual

# Via CLI no PBS
proxmox-backup-client snapshot prune \
  vm/102 \
  --keep-last 7 \
  --keep-daily 7 \
  --keep-weekly 4 \
  --keep-monthly 6 \
  --repository root@pam@localhost:pve-store

# Via Web UI
# Datastore → pve-store → Prune & GC → Prune

🗄️ Garbage Collection

Remove chunks órfãos e liberta espaço em disco.

O Que é Garbage Collection?

Garbage Collection (GC) identifica e remove:

Executar GC Manual

# Executar GC no datastore
proxmox-backup-manager garbage-collection start pve-store

# Ver status do GC
proxmox-backup-manager task list | grep garbage

# Via Web UI
# Datastore → pve-store → Prune & GC → Garbage Collect

Agendar GC Automático

# Configurar GC semanal no datastore
proxmox-backup-manager datastore update pve-store --gc-schedule weekly

# Ou definir dia/hora específico (domingo 03:00)
proxmox-backup-manager garbage-collection schedule update pve-store \
  --schedule "sun 03:00"

# Ver agenda de GC
proxmox-backup-manager garbage-collection schedule show pve-store

Resultados de GC - Exemplo Real

Após executar GC no projeto FSociety:

proxmox-backup-manager garbage-collection start pve-store

Resultados:

Benefícios:

Monitorizar GC

# Ver último GC
cat /backup/pve-store/.gc-status

# Logs do GC
journalctl -u proxmox-backup -f | grep gc

# Estatísticas do datastore
proxmox-backup-manager datastore status pve-store

✅ Verificação de Integridade

Verificar Backup

# Verificar backup específico
proxmox-backup-client snapshot verify \
  vm/102/2024-12-01T02:00:00Z \
  --repository root@pam@localhost:pve-store

# Verificar todos
proxmox-backup-client snapshot verify-all \
  --repository root@pam@localhost:pve-store

Agendar Verificação

# Mensal (1º domingo 04:00)
proxmox-backup-manager verify-job create monthly-verify \
  --datastore pve-store \
  --schedule "sun 1 04:00"

📊 Monitorização

Espaço em Disco

# Verificar espaço
df -h /backup/pve-store

# Alertar se > 90%
USAGE=$(df -h /backup/pve-store | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $USAGE -gt 90 ]; then
    echo "ALERTA: Datastore ${USAGE}% cheio!"
fi

Status do PBS

# Status geral
proxmox-backup-manager status

# Status de datastores
proxmox-backup-manager datastore list

# Tasks recentes
proxmox-backup-manager task list --limit 20

🔄 Atualizações

Atualizar PBS

# SSH para o PBS
ssh root@192.168.1.30

# Atualizar
apt update
apt dist-upgrade -y

# Verificar versão
proxmox-backup-manager version

# Reiniciar se necessário
reboot

💾 Expansão de Disco

Quando Expandir

Expandir o disco do PBS quando:

Procedimento Completo

1. Expandir no Host Proxmox VE

# No host Proxmox VE (via SSH)
# Verificar tamanho atual
qm config 101 | grep scsi0

# Expandir disco (exemplo genérico: adicionar 400GB)
# Ajustar +SIZE conforme necessário (ex: +800G para expansão maior)
qm resize 101 scsi0 +400G

# Confirmar mudança
qm config 101 | grep scsi0

2. Expandir no PBS (VM 101)

# SSH para o PBS
ssh root@192.168.1.30

# 1. Instalar ferramenta growpart
apt update && apt install cloud-guest-utils -y

# 2. Verificar layout atual
lsblk
df -h /

# 3. Expandir partição (exemplo: /dev/sda3)
growpart /dev/sda 3

# 4. Expandir Physical Volume (LVM)
pvresize /dev/sda3

# 5. Expandir Logical Volume (usar todo espaço livre)
lvextend -l +100%FREE /dev/pbs/root

# 6. Expandir filesystem (ext4)
resize2fs /dev/pbs/root

# 7. Verificar resultado
df -h /
lsblk

Exemplo Real - Projeto FSociety

Situação Inicial:

Filesystem      Size  Used Avail Use% Mounted on
/dev/pbs/root    41G   41G     0 100% /

Comandos Executados:

# No Proxmox VE
# Nota: Comando mostrado é um exemplo do processo de expansão
# O disco foi expandido até atingir 850GB total
qm resize 101 scsi0 +400G

# No PBS
apt update && apt install cloud-guest-utils -y
growpart /dev/sda 3
pvresize /dev/sda3
lvextend -l +100%FREE /dev/pbs/root
resize2fs /dev/pbs/root

Resultado Final:

Filesystem      Size  Used Avail Use% Mounted on
/dev/pbs/root   834G   41G  762G   5% /

Métricas:

Nota: O filesystem ext4 reserva ~4% para o root (≈31 GB neste caso), por isso 41G + 762G ≠ 834G exato.


🐛 Troubleshooting

Problema: Disco Cheio (ENOSPC)

Sintomas:

Error: unable to start garbage collection job - ENOSPC: No space left on device
unable to create backup - ENOSPC: No space left on device

Diagnóstico:

# Verificar espaço
df -h /

# Verificar utilização do datastore
du -sh /backup/pve-store/

Solução:

# 1. Verificar espaço atual
df -h /

# 2. Expandir disco no host (ver secção "Expansão de Disco" acima)
# No Proxmox VE:
qm resize VMID scsi0 +SIZE

# 3. Expandir no PBS
apt update && apt install cloud-guest-utils -y
growpart /dev/sda 3
pvresize /dev/sda3
lvextend -l +100%FREE /dev/pbs/root
resize2fs /dev/pbs/root

# 4. Executar GC para recuperar espaço
proxmox-backup-manager garbage-collection start pve-store

# 5. Verificar resultado
df -h /

Problema: GC Não Liberta Espaço

Causas possíveis:

Solução:

# 1. Executar prune primeiro
proxmox-backup-client snapshot prune \
  vm/102 \
  --keep-last 7 \
  --repository root@pam@localhost:pve-store

# 2. Depois executar GC
proxmox-backup-manager garbage-collection start pve-store

# 3. Verificar backups protegidos
proxmox-backup-client snapshot list \
  --repository root@pam@localhost:pve-store

Problema: Backup Lento

Diagnóstico:

# Verificar I/O do disco
iostat -x 2

# Verificar load
uptime

# Verificar logs
journalctl -u proxmox-backup -f

Soluções:

Problema: Prune-Job Falha

Verificar configuração:

# Listar prune jobs
proxmox-backup-manager prune-job list

# Ver detalhes
proxmox-backup-manager prune-job show pve-store-prune

# Ver logs
journalctl -u proxmox-backup | grep prune

Recriar job:

# Remover job problemático
proxmox-backup-manager prune-job remove pve-store-prune

# Criar novo
proxmox-backup-manager prune-job create pve-store-prune \
  --store pve-store \
  --schedule daily \
  --keep-daily 7 \
  --keep-weekly 4 \
  --keep-monthly 6

📊 Estado do Datastore - Configuração Final

Campo Valor
Nome pve-store
Path /backup/pve-store
Capacidade 834 GB
Utilizado 41 GB (5%)
Disponível 762 GB
GC Schedule weekly
Prune Schedule daily
Notification notification-system

🎓 Informação Académica

Campo Informação
Instituição ESTG - Instituto Politécnico do Porto
Unidade Curricular Administração de Sistemas II
Ano Letivo 2025/2026
Autores Ryan Barbosa, Hugo Correia, Igor Araújo

**[⬅️ Anterior: Restore](/fsociety-infrastructure/07-proxmox-backup/05-restore.html)** | **[Índice](/fsociety-infrastructure/07-proxmox-backup/)** | **[Voltar à Documentação Principal ⬆️](/fsociety-infrastructure/)**

Última atualização: Dezembro 2025