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:
- Timestamp: mtime do arquivo
- Tamanho: size do arquivo
- 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 atualComparaçã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 incrementaisDados Volumosos
- Full mensal
- Incremental diário
- Retenção: 3 fulls + 90 incrementaisDados Pequenos
- Full diário (sem incremental)
- Retenção: 30 diasExemplo de Configuração
Full + Incremental
Task full (semanal):
[task]
id = "mysql-full"
schedule = "0 2 * * 0" # Domingo 2 AM
[collector]
incremental = falseTask 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.sigLimpeza
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