I often mention in my writing just how important it is to back up your data. I worry that people will think that if they make their storage more reliable, then they don’t have to worry about backing anything up. I worry even more when I explain how to make things more reliable, because it might be my fault that people think they won’t need backups anymore!

Every time I reference my blog about my current backup strategy, I notice that I wrote it in 2013. That can’t still be the way I’m doing things in 2019, can it?! For the most part, it is. The hosting arrangement has changed, so my off-site backup has gotten even farther away. The computers I use every day have changed. Even so, the basic strategy is pretty much exactly the same.

We’ve been reconfiguring my wife’s home office, and this happens to involve an SSD upgrade on her desktop. Since we’re moving her data around, we’re moving her to the Seafile hosting service that I’ve been using in Europe. Since this is all fresh on my mind, I figured it’d be a good time to write about it!

Real-time off-site backups in the cloud with Seafile

Seafile is like Dropbox. It keeps files synchronized between all my computers and a server in the cloud. In the past, Dropbox would only sync one folder: your dropbox folder. Seafile has a concept called libraries. Each library is like your dropbox folder, except you can create as many as you like, and you can store them anywhere on your computer.

My Seafile libraries

This lets me divide up my data. I need my blog posts to be stored on my desktop, laptop, and my Chuwi tablet so I can work on them anywhere. I’d like all my DSLR photos to be stored in all three of these places, but they’re too big. They just won’t fit on my Chuwi tablet.

Since they take up so much space, my DSLR photos live in their own Seafile library. This lets me easily decide which machines sync a copy of this data.

Sync is not a backup

This is true. File synchronization alone isn’t a proper backup. If I delete a file on my desktop, it will be removed from the backup copies on my laptop and tablet. The file will be gone forever!

DIY NAS Build

If I were using Syncthing or Resilio Sync, this would be something to really worry about–at least in their default configurations! The Seafile server lets you configure how much history to keep for each library, and I believe the default is 90 days. In the event that I make a mistake like this, I can connect to the server’s web interface and download a copy of that file from the history.

Seafile doesn’t have any sort of snapshot schedule. Every change that gets synced will become part of your file history.

Sync buys you nearly real-time backups

As long as I have an Internet connection, and I can access the server, Seafile tends to synchronize my files within 30 seconds of saving. I don’t have to wait for a snapshot to be taken in ten minutes, an hour, or a day. I don’t have to wait for an hourly or daily backup job to run.

Everything is pushed up to the server almost immediately after I hit the save button. My text editor saves what I’m working on in temporary files that I can recover later, and those are synced, too.

If I spill my coffee on my laptop, there is a good chance my data is already backed up!

Sync is a must-have feature

It isn’t 2006 anymore. If we wanted to comfortably work on the same files in multiple locations, we used to have to map a drive on a NAS. Then Dropbox arrived. We had bidirectional file-sync software before Dropbox, but Dropbox was the first to do it well enough that you barely noticed it was doing anything at all.

Why should I access remote files at Internet speeds? My SSD is four or five times faster than Gigabit Ethernet. Waiting for a NAS is something you shouldn’t have to do, even if it is in the same building or the same room!

When you lose the connection to your NAS, you lose access to your files. With cloud sync, you can continue to work even when the network blips or the NAS just has to be rebooted. You don’t have to wait. You don’t experience a slowdown. Whether your loss of connection is the result of your router being rebooted or a three-hour plane ride, you still get to work.

I feel like we are living in the future!

Seafile hosting

Seafile isn’t the only choice for cloud sync. I zeroed in on Seafile a long time ago. Seafile is open source, and the client encrypts your data locally. Your data is not only safe in transit, but the server has no way to access the contents of your files. The client is available in the repositories of most Linux distributions, and you can peruse the source code if you’re paranoid.

Up until about a year ago, I hosted my own Seafile server. I had a 1U server colocated about 20 miles away in downtown Dallas. I had hardware problems, did some math, and realized that it might finally be cheaper and easier to split my hosted services up among multiple cloud providers.

Pat's Virtual Machine Host's Motherboard

Seafile was the most difficult service to replace. Most providers I was finding in my search would cost a good bit more than Dropbox or Google Drive, and that seemed like a terrible value. I was close to just buying extra storage on my Digital Ocean VM and running my own Seafile server. In fact, this possibility was one of the reasons that I chose Digital Ocean for my VPS that hosts my Nginx instance!

Then I found Prometeus. They have all sorts of hosting options in different parts of Europe, but the part I was interested in was their inexpensive Seafile hosting in Romania.

Google Drive can do better on pricing. I’m not going to do the euro-to-dollar conversion, but Prometeus’s Seafile hosting is roughly comparable to Google Drive at 200 GB. Then Google Drive jumps to 2 TB, and I don’t need 2 TB. The 400 GB plan from Prometeus has me covered, and it costs about half as much as the 2 TB plan from Google.

Sure, Google wins on total price per gigabyte, but that would only work in my favor if I had more data!

I trust Dropbox and Google to exist for five years or more

What about these Prometeus guys? I’ve never heard of them? What if they disappear overnight?

To tell you the truth, I assumed this was a distinct possibility when I migrated to Prometeus more than a year ago. I figured that if they were around for four or five months, I had gotten my money’s worth. They’re still here, and they’re still a good value. Not as good a value as they were last year, but still priced just fine!

If their Seafile server died overnight, what would happen to me? Do you think they even have more than one Seafile server?

Not much would happen to me. My remote backup would be gone. My sync would stop working. My data would be safely stored in at least two places, and my most important data would still be stored at least in three places.

I’d have to start shopping for a new host, and I’d have to upload my data again. It would be a bummer if my house burned down the same day, but the odds of that happening aren’t high!

Google Drive isn’t an option for me

Google Drive’s sync client doesn’t support Linux. There are ways of syncing your data with Google Drive on Linux, but I don’t want to mess around with any of it.

Dropbox’s Linux support has been getting worse lately. Dropbox only works on plain EXT4.

Hey Pat! You’ve written a lot that has nothing to do with backups!

Let’s get back on track. Why use sync software as your backup solution? What does sync buy you that an old-school backup solution doesn’t?

It buys me a local copy of my data on up to three different devices. My laptop and desktop are usually powered up 24/7. When I hit save on this blog post right now, I know a copy will end up on my laptop in less than a minute. I can open my laptop, pick up where I left off, and not miss a beat.

If the SSD in my desktop decides to die as I’m typing this paragraph, I am confident that a copy will be there on my laptop. When I replace the SSD in my desktop tomorrow, I won’t have to wait for 300 GB to download from Romania. I have a copy of all my data right here on my laptop.

If I walk outside to check my mail, and a meteorite destroys my house, I know that my data will be safe and sound 6,000 miles away. Not only will it be safe, but everything I did right up until I hit save should be there!

Cloud sync is (usually!) an out-of-band backup

Backing up your data to a local or mapped drive can be dangerous. If your computer has direct write access to your backup, bad things can happen.

If you get infected with some sort of malware, and your backups are available on a USB drive or a mapped network drive, that malware can delete your backups. That malware can corrupt your backups.

Ransomware would be able to encrypt those backups. There are ways to mitigate this. You could use automated ZFS snapshots on your NAS.

You won’t be mapping Seafile, Dropbox, or Google Drive as a network drive, although you can mount Seafile via webdav. A random piece of malware isn’t likely to know how to access your cloud sync storage. It may delete, corrupt, or encrypt your local copy. Seafile or Dropbox might sync that bad copy to the cloud. Fortunately, the malware won’t likely be able to delete the good copy of your data from your history.

Malware doesn’t have to be malware. The malware might just be you accidentally running rm -rf or del *.* in the wrong place!

What sort of accidents, disasters, and bad luck am I protected from?

Let’s make a list!

  • Hard drive failure
  • Hard drive controller failure
  • Total computer failure
  • Accidental deletion or corruption of a file
  • Theft of my desktop, laptop, and tablet
  • Tornados
  • Fires
  • Floods
  • Godzilla

I was a little less safe when my Seafile server was 20 miles south of here in downtown Dallas. Now that my Seafile server is 6,000 miles away with the Atlantic between here and there, I’m protected from much more dangerous natural disasters.

You don’t have to use Seafile

I like Seafile. It has been doing a bang up job for me since 2013. I like that it encrypts the data on my end. It syncs quickly. It is open source. It works on Windows, Mac, and Linux. This is all great news for me.

Dropbox has been getting more and more problematic on Linux, so that’s not a good option for me. Google doesn’t have a Linux sync client for Google Drive, though there are third-party alternatives. These may not be the best choices for me, but Dropbox and Google Drive might work well for you!

Conclusion

I don’t want to go back to a world before cloud sync. Having all my files instantly accessible on all my computers is such an amazing luxury. Having my work backed up to the cloud seconds after saving is amazing, too!

How do you handle your backups and disaster recovery? Are you relying on cloud sync like I am? Are you backing data up to your NAS, then also backing up your NAS to the cloud like Brian? Are you manually swapping backup hard drives around? Are you sending tapes off site? Let me know in the comments, or stop by [our Discord server][bwd] to chat about it!