abbbi / abbbi/virtnbdbackup

Only use full backups as base for differential backups

Abierto
#273 7 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Python
Estrellas
518
Forks
57
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### Each diff backup should save all changes that have occurred since the last full backup.
`Full → Inc₁ → Inc₂ → Diff (all changes after Full) → Inc₃ → Diff (again all changes after Full)`

libvirtnbdbackup/virt/checkpoints.py
```
if args.level == "diff":
parentCheckpoint = checkpoints[0] #for take ONLY full backup
# ...
```

virtnbdrestore
```
dataFiles: List[str] = []
if args.sequence is not None:
logging.info("Using manual specified sequence of files.")
logging.info("Disabling redefine and config adjust options.")
args.define = False
args.adjust_config = False
dataFiles = args.sequence.split(",")

if "full" not in dataFiles[0] and "copy" not in dataFiles[0]:
logging.error("Sequence must start with full or copy backup.")
sys.exit(1)
else:
dataFiles = lib.getLatest(args.input, "*.data")
dataFiles = [f for f in dataFiles if '.diff.' not in os.path.basename(f)] #SKIP take diff for restoring by util
if not dataFiles:
logging.error("No data files (excluding diff backups) found in directory: [%s]", args.input)
sys.exit(1)
```

**Example workflow**
* Monday: `Full` (original copy).
* Tuesday: `Inc₁` (changes after `Full`).
* Wednesday:` Inc₂` (changes after `Inc₁`).
* Thursday: `Diff₁` (all changes from `Full`, including `Inc₁` + `Inc₂`).
* Friday: `Inc₃` (changes after `Diff₁`).
* Saturday: `Diff₂` (all changes from Full, including `Inc₁` + `Inc₂` + `Inc₃`).

**Restore to Saturday:**
* `Full` (Monday) + `Diff₂` (Saturday).

* `Inc₁`, `Inc₂`, `Inc₃` are not required - their changes are already in `Diff₂`.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.