08 June 2019

Over the last six years I’ve tried out a variety of synchronization, mirroring, and backup software looking for one that does not preclude application of the 3-2-1 backup strategy while supporting multiple operating systems and I’m happy to report I’ve found an ideal solution.

My data loss story

In 2013, I had four computers that continually synced of data using SyncThing. The data was approximately 400 GB in size and was comprised of astronomy data, photos, music, and video. Two of the four computers used btrfs RAID 1 mirroring whereas the other two machines had single ext4 disks. The btrfs disks were scrubbed weekly. The most critical data was backed up on DVD whereas the vast majority relied on SyncThing’s file versioning capability which I configured to keep 10 copies of modified files. Unfortunately, the hard disk controller the drive in a single disk machine started to fail. This produced which produced erroneous metadata and checksums on some of the files. As one would expect, SyncThing propagated these corrupt files to the other machines.

By the time I caught the issue, approximately 28% of my images and 10% of my music files were corrupt. Fortunately my DVD backups had most of the images and all of the music, so no data was lost.

Lesson: Synchronization services are not a backup. Use them to move files. Do not rely on them for backups or long-term storage.

Needs and desires

After much experimentation with many backup products, I eventually derived the following list of desires and requirements for my backup software.

Category Desire Requirement
Hosting method Self hosted Yes
Operating systems Windows, Linux, Android Yes
Destinations local, remote Yes
Multiple destinations Yes Yes
Encryption Yes No
Deduplication Yes Yes
Compression Yes No
Interface cli No
Scheduling Method Any Yes

Backup strategy and software

After the aforementioned debacle, I decided to implement the 3-2-1 backup strategy. This technique proposes that one should keep 3 copies of important files on 2 different storage media with 1 copy being off-site. Although some advocate a 3-2-2 strategy instead, the United States Computer Emergency Readiness Team regards 3-2-1 as sufficient for most most cases.

To implement this solution, I evaluated 13 potential software solutions: five options were synchronization software paired with disk snapshots and eight were dedicated backup software. Below I’ve provided some brief commentary about each product and my conclusions about its use.

Synchronization software

As stated above, synchronization software is NOT a backup solution. However, if the sync software is used to get data onto a machine with appropriate backup, this may be sufficient to meet your needs. These products have been extensively reviewed elsewhere, so I won’t comment on them further here.

Software Interface OS
rsync cli Windows, Mac, Linux
DropBox gui, web Windows, Mac, Linux
Google Drive gui, web Windows, Mac
SyncThing web Windows, Mac, Linux
Resilio gui Windows, Mac, Linux
     

Backup software

In total, I evaluated about 20 backup products over the last six years. For the vast majority of products, the evaluation period was rather short as I discovered desirable features that the products were missing. For those products that offered a sufficient number of features, I ran most for at least a month to investigate their (quasi) long-term use.

In the table below, I summarize the salient features of each product. I intend on re-reviewing each of these products in the near future to provide more detailed information, backup/restore benchmarks, anti-tampering information, and general opinions on the software’s operation.

Software Interface Client OS Destinations Encryption Compression Deduplication Multi-Site Mountable
Deja Dup gui Mac, Linux local, remote, cloud Y Y N N N
CrashPlan cli, gui Windows, Mac, Linux local, remote, cloud Y Y Y Y N
Bacula cli, gui Windows, Mac, Linux server Y* Y Y* N N
UrBackup gui, web Windows, Mac, Linux server N Y* Y N N
Duplicity cli Mac, Linux local, remote, cloud Y Y N N* N
Duplicati gui, web Windows, Mac, Linux local, remote, cloud Y Y N N N
Borg Backup cli Mac, Linux local, remote Y Y Y Y* Y
restic cli Windows, Mac, Linux local, remote, cloud, server Y Y Y Y* Y

The final (?) solution

The backup solutions which best fit my use cases were Borg Backup, CrashPlan, and restic. I evaluated these products for a period of period of at least two years and subjected them to ever-increasing quantities of data. After CrashPlan ended its support for home users in 2018 Borg and restic became my primary backup options.

Due to its cross-platform backup support, restic is now my backup tool of choice. In forthcoming blog posts, I’ll describe how to set up a dedicated restic server and the restic clients.