Inevitably, something will go wrong: A plan for backup

A while ago, I wrote a piece about the need to backup your home computers.  After tweaking the full-backup script on my desktop today, I thought it would be useful to update the information. 

Before we get into it, I hear you say, “But Steve, I’m not technical.  I don’t understand about scripts and I have a PC.”  For you, I recommend either Mozy or Carbonite.  Both are “set it and forget it” systems that, for about $55 a year, will backup your computer into the cloud and keep that backup current whenever it is connected to the internet. Installation is trivial and both have excellent technical support.

I’m backing up 4 computers with four backup methods:

  • Fedora Linux Desktop
    • backup of my home folder to a Linux server
    • backup of entire file system to external USB drive
  • Apple MacBookPro
    • backup of entire file system to external USB drive using Time Machine
  • Sony Vaio notebook (MS Vista)
    • image backup of hard drive to external USB drive
  • Fedora Linux Server
    • backup of entire file system to external USB Drive

The Sony Vaio image backup uses CloneZilla.  CloneZilla is a free product that works like Symantec Ghost or other commercial image backup programs. I boot the computer from the CloneZilla CD, plug in the external USB drive, and create an image of the hard drive.  I use image backup because I’m protecting this system from a failing hard drive. The most likely restore scenario is a “bare metal restore”, not a file restore.

The Linux systems use a simple rsync script for full file system backups. It’s attached below. The main file, “do-backup”, does the backup.  The companion file, “do-backup-excludes”, excludes certain virtual parts of the file system from the backup. Restores are easy because the file system is duplicated (through 5 iterations) on the backup media.  Files can be restored by a simple copy or by using rsync.

I backup my desktop home directory to the server using a script based on rdiff-backup.  Unlike my do-backup script, rdiff-backup uses a combination of rsync and diff files to produce a backup with multiple increments. Restores from increments other than the most recent backup must use the restore functions of rdiff.

The Apple MacBookPro uses Time Machine for backup and like most things Apple, it just works.

When it’s just out of reach

I spent a frustrating day last week waiting for someone to do something to bring a server in an unknown location back online.  The system was offline for 20 hours and my one contact was unable to explain what had happened. 

Well, Steve, what have we learned from this? 

Now that the system is back online, you can be sure that I'm backing it up to a machine I can touch and see, and I'm building a clone on a VPS at a company that's been immediately responsive to every tech support query I've made and gives me access to the entire virtual machine.  It really comes down to trust and verification. And complacency.  If you know something is wrong, fix it.  Just because the bad thing hasn't happened yet doesn't mean it won't happen a little later today.

A service level agreement is only as good as the counter-party's ability to execute.  If you have no faith in that, there's no SLA, no matter what might be on paper.