Jeremy Zawodny is running some interesting tests and comparisons using Amazon’s S3 storage service for remote backup of his personal computers. Read the comments, too.
For me, a good backup solution has one more requirement: versioning. I wrote about the problem in my first book, Strategies for Web Hosting and Managed Services. I refered to the problem as Propagation of Corrupted Data:
Consider what happens if the original version of file becomes corrupted–perhaps due to faulty hardware or software–but the corruption goes undetected. The corrupted version of the file will be copied to the archive server at the next backup interval. That’s okay, as long as there’s still at least one other, older archive that contains an uncorrupted copy of the file. Otherwise, the corrupted copy will replace the only remaining uncorrupted version.
There are three backup use cases. First is the one we think about most often, catastrophic failure, in which you probably want to recover an entire drive. This is infrequent but high value. Second, much more frequent, is recovering a file because of human error. Like everyone else, I sometimes delete a file (or directory — aargh!) by accident and I need to get it back.
But what happens when a file is damaged for one reason or another? Most backup systems will simple replace the good copy of the file with the “new” damaged copy, so there’s no way to recover the good copy. If you run rsync or other backup once a day, you’ve got a 24-hour (or less) window to discover the corruption and recover from your backup. That’s why I always use rotating backups. I don’t overwrite one backup with another. I create a new copy or image. I’ll then keep a weekly, monthly and annual version of everything, so there’s a good chance I can recover pre-corrupted versions. It’s not as robust as a fully versioned system (like svn) but it has saved my butt.
My ideal remote-backup soultion would be (a) automatic, (b) unattended, and (c) one that included at least some form ove versioning to keep different versions of modified files.