Six years evaluating backup software
2019 Jun 08 - Brian Kloppenborg
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.