Skip to content

Instantly share code, notes, and snippets.

@alem0lars
Last active July 26, 2017 15:17
Show Gist options
  • Save alem0lars/b7f4d5b015d2b0b522f5 to your computer and use it in GitHub Desktop.
Save alem0lars/b7f4d5b015d2b0b522f5 to your computer and use it in GitHub Desktop.
Backup solutions compared

Important notes

The underlying document tries to group comparisons/opinions for the available backup solutions.

The generic guidelines being used are:

  • Easy-to-use: life is too short to lose time with Amanda-like brain-dead solutions.
  • Open format: solutions tend to become obsolete, we don't want to throw backups away just for changing the backup software.
  • No SSH communication, for security reasons. In addition, SSH protocol isn't natural and shaped for file transfers; FTP (FILE TRANSFER protocol) is instead the right protocol. Yes, people tend to be dumb using wrong protocols for wrong reasons (this-over-this-over-this sucks!, in fact it comes from the shitty web world).
  • Data encryption (real backups almost always contain sensitive data).
  • Incremental and space-saving backups.
  • Modern solutions are welcome, but plugins aren't that great in the backup world since they offer third-party non-core developers to handle your backup files with both security and reliability concerns.

Comparison

  • BURP:
    • Verdict: TODO
    • Pros: TODO
    • Cons: TODO
  • Backupninja:
    • Verdict: TODO
    • Pros: TODO
    • Cons: TODO
  • Zbackup:
    • Verdict: TODO
    • Pros: TODO
    • Cons: TODO
  • DAR:
    • Verdict: TODO
    • Pros: TODO
    • Cons: TODO
  • Duplicity:
    • Verdict: TODO
    • Pros: TODO
    • Cons: TODO
  • bup:
    • Verdict: TODO
    • Pros: TODO
    • Cons: TODO
  • Git Annex:
    • Verdict: TODO
    • Pros: TODO
    • Cons: TODO
  • Attic:
    • Verdict: Rejected, no FTP support.
    • Pros:
      • Sourcecode is on Github.
      • More than 600 commits and 700 stars.
      • Space efficient storage: Variable block size deduplication is used to reduce the number of bytes stored by detecting redundant data. Each file is split into a number of variable length chunks and only chunks that have never been seen before are compressed and added to the repository.
      • Optional data encryption: All data can be protected using 256-bit AES encryption and data integrity and authenticity is verified using HMAC-SHA256.
      • Off-site backups: Attic can store data on any remote host accessible over SSH as long as Attic is installed.
      • Backups mountable as filesystems (FUSE): Backup archives are mountable as userspace filesystems for easy backup verification and restores.
    • Cons:
      • No FTP support, only SSH.
      • No ebuild in the official Gentoo tree.
  • Obnam:
    • Verdict: Rejected: nice ideas but when it comes to use it, lacks important features like FTP support, it has proprietary format and unusable encryption.
    • Pros:
      • Lightweight solution, needs just a few commands to get started.
      • Ebuild available in the Gentoo official repository.
      • Incremental backups, via generations.
      • Mount generations using FUSE.
      • Works without having remote server available.
    • Cons:
      • No FTP support: WTF backups via SSH is really dumb.
      • Proprietary format: if you change the backup solution, you have to throw your backups away.
      • Encryption seems to be just a draft, never found a way to configure it properly.
      • Community seems dead, slow development and known missing features are not going to be implemented (cuz no time / contributors available ? dunno).
      • It started and it seems to still be a personal project.
  • Bacula and its fork BareOS:
    • Verdict: Rejected: Too much enterprise, definetly full-of-hassles.
    • Pros:
      • Company-backed solution, it's not going to die anytime soon.
      • Used by many enterprises.
      • Ebuild available in the Gentoo official repository.
      • Comes with a ton of features, probably the most-feature-full solution.
      • (BareOS only) Extensibility due to the available plugin-based architecture.
      • (BareOS only) Sourcecode is on Github.
      • (BareOS only) More than 900 commits.
    • Cons:
      • Complexity to configure - Bacula is just too complicated. It has four separate main components, each with their own configuration files.
      • Complexity to code/debug - Kern Sibbald, the main author of Bacula admits that there is a distinct lack of community contribution to the code. I believe that this is partly due to the difficulty in understanding its complexity. They also have the need to continue to support, or provide continuity with the way things have gone before, which makes for slow development.
      • Works badly with disk storage - Bacula's mentality is very highly geared towards tape usage and therefore it works poorly with disks.
      • Stores the catalog separately to the backups - This causes a massive maintenance headache. For example, you now have to think about backups of your catalog. Additionally, changes to your configuration files might not take effect because some of the previous configuration gets written to the catalog, and then it is not easy to make the changes take effect. Furthermore, you end up needing to be a mysql or postgres database expert.
      • Does not do delta differencing - Bacula backs up the whole file even if only a few bytes in it have changed.
      • Relies far too heavily on clock accuracy - Bacula goes very badly wrong if your computer's clock somehow gets skewed. In fact, it relies so heavily on the clock and timestamps that it does not actually track which backup another was based on.
      • Laptop backups are difficult to schedule.
      • Cannot resume an interrupted backup.
      • Retention configuration - it is just impossible to configure a sensible retention policy.
      • (Bacula only) No Windows EFS support - EFS files are silently ignored.
      • (BareOS only) Just 100 stars on Github.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment