Deduplicação e Incrementais

BackupAlly usa técnicas avançadas para otimizar espaço e tempo de backup.

Deduplicação

O que é?

Deduplicação identifica e elimina dados duplicados, armazenando apenas cópias únicas.

FastCDC

BackupAlly usa FastCDC (Fast Content-Defined Chunking):

┌──────────────────────────────────────────────────────┐
│                    Arquivo Original                  │
│ [  chunk 1  ][  chunk 2  ][  chunk 3  ][  chunk 4  ] │
└──────────────────────────────────────────────────────┘
                           ↓
┌──────────────────────────────────────────────────────┐
│                   Chunks Únicos                      │
│ chunk 1: abc123 (novo)                               │
│ chunk 2: def456 (existente → referência)            │
│ chunk 3: ghi789 (novo)                               │
│ chunk 4: def456 (existente → referência)            │
└──────────────────────────────────────────────────────┘

Por que FastCDC?

Algoritmo Método Vantagem
Fixed Chunks de tamanho fixo Simples, rápido
FastCDC Chunks por conteúdo Resiste a inserções/deleções

Com chunks fixos, inserir 1 byte no início desloca todos os chunks. Com FastCDC, apenas chunks afetados mudam.

Configuração

[global]
chunk_algo = "fastcdc"
avg_chunk_mb = 8
Opção Valores Descrição
chunk_algo fastcdc, fixed Algoritmo de chunking
avg_chunk_mb 1-64 Tamanho médio de chunk (MB)

Economia de Espaço

Cenário típico com FastCDC:

Tipo de Dado Economia
Código fonte 60-80%
Bancos de dados 30-50%
Logs 70-90%
Imagens/vídeos 5-20%

Backups Incrementais

O que é?

Backups incrementais armazenam apenas dados que mudaram desde o último backup.

Como Funciona

┌─────────────────┐
│   Full Backup   │  ← Backup completo inicial
│   (domingo)     │
└────────┬────────┘
         │
┌────────┴────────┐
│  Incremental 1  │  ← Apenas mudanças de segunda
│   (segunda)     │
└────────┬────────┘
         │
┌────────┴────────┐
│  Incremental 2  │  ← Apenas mudanças de terça
│    (terça)      │
└────────┬────────┘
         │
        ...

Detecção de Mudanças

BackupAlly detecta mudanças por:

  1. Timestamp: mtime do arquivo
  2. Tamanho: size do arquivo
  3. Hash (opcional): Checksum do conteúdo

Configuração

[collector]
incremental = true
signature_path = "/var/cache/backupally/signatures"

Restore de Incrementais

Para restaurar, BackupAlly combina automaticamente:

Full + Incremental 1 + Incremental 2 + ... = Estado atual

Comparação

Aspecto Full Incremental
Tempo de backup Maior Menor
Espaço usado Maior Menor
Complexidade restore Simples Requer cadeia
Independência Total Depende de anteriores

Estratégias Recomendadas

Dados Críticos

- Full semanal (domingo)
- Incremental diário (segunda-sábado)
- Retenção: 4 fulls + 30 incrementais

Dados Volumosos

- Full mensal
- Incremental diário
- Retenção: 3 fulls + 90 incrementais

Dados Pequenos

- Full diário (sem incremental)
- Retenção: 30 dias

Exemplo de Configuração

Full + Incremental

Task full (semanal):

[task]
id = "mysql-full"
schedule = "0 2 * * 0"  # Domingo 2 AM

[collector]
incremental = false

Task incremental (diária):

[task]
id = "mysql-incremental"
schedule = "0 2 * * 1-6"  # Segunda-Sábado 2 AM

[collector]
incremental = true
base_task = "mysql-full"

Cache de Signatures

Signatures são armazenadas localmente para comparação:

/var/cache/backupally/signatures/
├── mysql-prod/
│   ├── current.sig
│   └── previous.sig
└── website-files/
    ├── current.sig
    └── previous.sig

Limpeza

Signatures antigas são removidas automaticamente com a política de retenção.

Performance

Deduplicação

Operação Overhead
Chunking ~10-20% do tempo
Hash comparison ~5% do tempo
Economia de upload 30-80%

Incremental

Operação Overhead
Scan de mudanças ~5-10% do tempo
Economia de upload 50-95%
By Borlot.com.br on 11/02/2026