BorgBackup

From miki
Revision as of 10:25, 1 October 2024 by Mip (talk | contribs) (→‎References)
Jump to navigation Jump to search

References

Mentioning bup and restic as possible alternatives, or Bacula for extreme reliability at very high backups size.
Mentioning restic, kopia, rustic as possible alternative. Note that Borg 2.X is still beta.
Also mentioning Hetzner storage box, 4€ / month for 1TB data.

To Do

Benchmarks:

  • DONE - Client/server zavcvl0005, storage on lacie-cloudbox via CIFS.
  • DONE - Client zavcxl0005, server griffin, storage on lacie-cloudbox via CIFS.
  • Client zavcxl0005, server lacie-cloudbox, local storage.
  • Client zavcxl0005, server raspberry-pi, storage on lacie-cloudbox via CIFS.

Config:

  • How best configure Borg for multiple clients backing up to same repo (see ticket #2313).
  • How sync. backup time on multiple client? Triggered by server? or triggered by client? How prevent concurrent session?
  • Collect stats on client and server. Report these stats via email or such.

To Do:

  • Install borg on lacie-cloudbox, collect bench and stats.

Install on Ubuntu 16.04

sudo apt install python3 python3-dev python3-pip python-virtualenv libssl-dev openssl libacl1-dev libacl1 liblz4-dev liblz4-1 build-essential
sudo apt install libfuse-dev fuse pkg-config    # optional, for FUSE support
sudo pip3 install "borgbackup==1.1.0b5"

Since Ubuntu 18.04 Bionic:

sudo apt install borgbackup        # v1.1.5-1 on Bionic

Tips

Multiple client

Implements #916, and Borgception.

Foresee disk full

Reference:

BorgBackup doesn't always handle disk full scenarios. To overcome this:

  • Create a dummy file on the repo volume that can be deleted when necessary (to run purge commands, etc).
dd if=/dev/zero of=DELETE_ME_IF_DISK_FULL bs=1M count=512
  • Tell borg to leave some free space
borg config REPO additional_free_space 2G

See snapshot disk usage

export BORG_REPO=...
python3 borg_ncdu_analyzer.py ::some_snapshot --full-path

Troubleshoot

Fix Corrupted segment reference count

We have this error:

AssertionError: Corrupted segment reference count - corrupted index or hints

This may be due to an old version bug [1]. To fix:

# On all clients and all repos, delete the cache
borg delete --cache-only REPO

# For all repos:
borg check --repair REPO