Mar 17, 2013

Backups with a ReadyNAS Ultra 4 Plus and CrashPlan

After a long vacation full of photography, you load all of your photos up in Picasa.  You spend hours tweaking colors, cropping, tagging faces, and plopping down geo-tags onto a big map.  The very next day and your computer won't start.  The drive is dead.

Despite the fact that the value of those photos and all of your other digital memories are priceless to you, you have never spent the effort to set up a reasonable backup.  It was something you planned to do, but never got around to.  Three years of photos are now locked away in a lifeless hard drive.



You consult your friends.  You get 5 different recommendations for 5 different pieces of software that will attempt to recover the disk.  The platters won't spin though, so no software will help.  Next you try to find an exact duplicate of that disk and swap the platters.  This isn't remotely easy and has a very low chance of success.  Maybe you care about your photos enough that you even send the drive off to a professional drive recovery service.  Perhaps that works and 30% of your files are recovered, but the cost ends up sky high.

Most of my geek friends at least claim to have a backup system in place for the files that they care the most about.  These systems usually have one or more of the following flaws:

  • Technically complex, ie: cron jobs, command lines, shell scripts.  (guilty)
  • Cost fairly large sums of money (the cheapest online backups I see usually start at $5/mo)
  • Require regular human action (swap out thumb drives, burn a CD).
These flaws generally aren't fatal for geeks, but they are for non-geeks (ie: family).  So, how do geeks approach the family tech support backup problem?  I'll share my solution with you, though I'm sure there are alternatives.

For software, we are going to install CrashPlan.  CrashPlan is a client/server backup system with a number of really handy features that we want:
  1. Unless you want to back up to CrashPlan's servers, it's free to use.
  2. It's a Java app that runs on multiple systems (windows, mac, linux).
  3. It has a decent graphical UI that is non-technical.
  4. You can offer to be a backup destination for a friend.  The process is very simple for both of you, Crashplan gives you a 6 character code.  If the friend enters that code in their client, they can backup to you.  Firewalls, dynamic ip addresses, etc are all negotiated for you keeping things simple.  Backups are encrypted before being sent, so there is no privacy risk.

This last feature is what I use for my family backups.  However, on my side things get a little more geeky/technical.

I don't like leaving my machines on when not in use, due to power consumption.  However, by default this would make backups challenging as there will only be transfer when both me and my family member's machines are up.

Instead, I use a Network Attached Storage device (NAS) to store my backups.  It's low-power-ish and always on, which saves me money over leaving a energy hungry computer on all the time.  For CrashPlan, you'll need a NAS with an x86 processor and which allows you to run software on it.  I use the ReadyNAS Ultra 4 Plus.

On my NAS, I install the Community Plugin that enables Root SSH Access and reboot.  Now, I have root access to my NAS with the admin password used to setup the NAS.  Simply ssh root@nas

Now I need to add to /etc/apt/sources.list a new source: deb http://archive.debian.org/debian-backports etch-backports main non-free by adding that source line to the end of the file.

Next update our package list: apt-get update

Next we need to install Java.  We first reconfigure our dialog so we can accept the terms and conditions:  dpkg-reconfigure debconf
Select [1] for dialog and [3] for medium

Install Java: apt-get install sun-java6-jre
Select 'yes' for everything

You can reconfigure again (optional):  dpkg-reconfigure debconf

Select [6] for noninteractive and [3] for medium.

Finally, we can install Crashplan on the ReadyNAS.
wget http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_3.2.1_Linux.tgz

tar -xvf CrashPlan_3.2.1_Linux.tgztar -xvf CrashPlan_3.2.1_Linux.tgz

cd CrashPlan-install

./install.sh


Defaults work for most questions except backup location.  I used /backup/crashplan.

Once installed, you can log out of your SSH connection.  Crashplan is running as a server.
Of course, you still need to do some configuration which can only be done from the Crashplan client UI.  From your computer, install Crashplan and follow these instructions for connecting to your server's headless client:
http://support.crashplan.com/doku.php/how_to/configure_a_headless_client

Once you have that set up, you'll be able to generate a Crashplan backup code, something like FJSW3X.  Send this to your family, ask them to install Crashplan and use your backup code.  The first backup may take awhile, but after that Crashplan should keep up to date incrementally with no intervention or hassle from your family.

No comments: