How I Backup My Systems
Horror stories about losing photos, homework, or source code to a hard drive crash abound. I’m no stranger to the problem. About 7 years ago I had a drive crash with crucial information that cost me $2000 to have recovered. Ever since then I’ve been anal about having backups of my data. A few months ago I reviewed my backup methodology and decided I needed to improve my redundancy. A proper backup solution has at least one local (external HD, burned DVDs, etc) and one remote (eg online backup service) copy. This gives you 3 copies of the file. That way if your house burns down or your data center explodes you don’t lose anything.
I was using my media PC / home server for local backup and an online service for remote. After replacing my ThinkPad with a MacBook Pro automatic incremental network backup was no longer as simple as it was in Windows. Thanks Apple. I also wasn’t happy with my online provider. Their customer service was lacking and they didn’t do delta backups meaning every time a file changed the whole thing needed to be uploaded. I started investigating other services and software to find a good, redundant solution. Here’s what I ended up using.
One of the first things I did when I got my MacBook was swap in an SSD and replace the DVD drive with the 500GB HD that came in it. I then setup Time Machine to backup the SSD to the big drive. This gives me an easy-to-access backup in case I delete or overwrite something. I would never consider this a primary backup since it would be easy to lose both drives at the same time (laptop stolen, bursts into flames, etc) but it’s great for convenience and travel. Consider this local backup #1.
After looking at a lot of software and services I found CrashPlan. CrashPlan provides both cross-platform backup software written in Java and an online backup service. The standard version of CrashPlan is free and allows you to backup to any other computer running the software. Along with this they offer CrashPlan+ with online storage on their servers. The family plan, which currently costs $119.99 per year, allows unlimited online backup for up to 10 computers (non-commercial). This was the only solution I could find that allows both hosted and computer-to-computer backup. So how did it turn out? Fantastic.
My most important files are on my laptop so backing them up properly was the highest priority. I have the usual array of photos, documents, source code, and music. Along with my home server I also have a dedicated server with a lot of free space. I ended up using both servers plus CrashPlan Central. You can’t have too many backups right?
- Local backup #1: Time Machine to 2nd drive (mentioned above)
- Local backup #2: Home server (using CrashPlan)
- Remote backup #1: CrashPlan Central (hosted backup service)
- Remote backup #2: Dedicated server (using CrashPlan)
My home server has TBs of media, far too much to backup online with my 1Mbit uplink. I decided to skip the media and backup everything else. These are low priority files which aren’t crucial so I only use CrashPlan Central. The important files are on my laptop as well.
I use my dedicated server to host some personal sites, test things, and general hackery (in the classical sense). I also host a low traffic image gallery for a local car forum. I backup all the web-related files to CrashPlan Central. All the code is already on my laptop so a single backup is fine. If this were to host commercial sites or needed DB backups I’d go with a different solution since CrashPlan+ doesn’t allow commercial use. They do offer CrashPlan Pro for commercial use which is considerably more expensive, but I don’t need it for this server.
It’s Not All Roses
As with everything CrashPlan isn’t perfect. It only does one task at a time so it won’t upload while scanning files for changes. It takes a long time to scan large files, such as Virtual Machines. I found that it will start scanning a large VM file and half way through switch to another backup location, forcing the scan to start over when it switches back. If it hops between backup locations frequently enough it could result in no data being sent to one or more locations. Pausing 2 of my 3 backups for 24 hours will allow the other to finish but this requires me to keep an eye on it.
What’s Your Solution?
I’m curious what other easy to implement solutions are available that allow for this level of redundancy. What do you do for backup?