Borg Backup

 

 

"The holy grail of backup software"

 

 

Thomas Waldmann @ 32c3 (Dec 2015)

Borg - a fork of Attic

  • Attic: about 5y old, good design, proven code

  • but:

    • going very slowly, main dev has little time

    • not very open to new developers

  • Borg Backup: fork of Attic stable codebase

  • and:

    • a community project, bus_factor++

    • has a lot of fixes and good PRs merged

    • open and inviting to new contributors

    • we want your ideas, feedback, contribs!

    • faster paced

Feature Set (1)

  • easy and fast
  • content-defined chunking (*)
  • chunk deduplication (*)
  • lz4, zlib, lzma compression
  • encryption with AES256

  • authentication with HMAC-SHA2

  • simple backend (k/v, fs, via ssh)

Feature Set (2)

  • FOSS (BSD license)

  • good docs

  • good platform / arch support

  • xattr / acl support

  • mount a backup via FUSE

  • Python 3.x + a little Cython & C

  • good test coverage, CI

Deduplication (1)

  • No problem with:
    • VM images (sparse file support)
    • (physical) disk images
    • renamed huge directories
    • inner deduplication of data set
    • historical deduplication
    • dedups different machines

 

Deduplication (2)

  • Content defined chunking:
    • "buzhash" rolling hash
    • cut data when hash has specific bit pattern,
      yields chunks with 2^n bits target size
    • n + other chunker params configurable now
    • seeded, to avoid fingerprinting chunk lengths
       
  • Store chunks under id into store:
    • id = HASH(chunk)
    • id = MAC(mac_key, chunk)

Borg Backup - Links

github.com/borgbackup
 

#borgbackup on chat.freenode.net

Questions / Feedback?

  • Just grab me at the conference (Python assembly)!

  • Thomas J Waldmann @ twitter

Made with Slides.com