I have several personal computers that store documents, pictures, music, and videos that I need to backup regularly. Google Drive, Google Picasa, and Google Play Music provide offsite storage for my most critical files, and while these cloud-based file copies are convenient, I do not completely trust the files to Google. What if the services are compromised or the files are corrupted?
The general recommendation is to have at least three copies of your important files and data: a primary online copy, a local backup, and an offsite backup.
I debated between the need for a local backup and researched several secondary cloud-based options including Amazon S3, Backblaze, and Crashplan. The catch with any cloud backup solution is bandwidth. A full backup or restore of a terabyte can take weeks, and it’s often faster to load the files onto an external hard drive and ship them to/from the cloud storage vendor.
After ruling out a cloud-based backup solution due to prohibitively long backup and restore times, I looked into a few different local backup solutions. Most of my experience has revolved around commercial solutions including Netbackup, CommVault, and EMC Networker. Given that the commercial solutions are overpriced and overly complicated for home backup needs, I looked into Amanda and Bacula as open source solutions. Either one works fine, and Amanda has a few more enterprise class options, but I decided to go with Bacula because it is included in the Ubuntu repositories.
After selecting Bacula as the backup software solution, I researched a few different small servers. The backup server needed to be able to support at least 3 disks and RAID5, and I ended up purchasing an HP ProLiant N40L MicroServer. The base server comes with 2GB of memory, a single 250GB hard drive, and a 4-port SATA RAID controller. I had two 1TB hard drives laying around, so I purchased two more for a total of 4TB of raw storage. The MicroServer has space for a 5.25″ optical drive, so I opted not to install an optical drive and instead purchased a 5.25″ to 3.5″ bay adapter to hold the included 250GB hard drive. Beyond the storage, I upgraded the memory to 2x4GB memory sticks and bought a remote access card for headless administration.
If you are interested in buying the same components, you can check them out on Amazon. 2TB hard drives are probably a better choice if you need the capacity. I just wanted to make use of the two 1TB drives I already had.
After the hardware arrived, I installed Ubuntu 12.04 LTS Server (64-bit) on the 250GB drive mounted in the optical bay. The OS drive is not redundant, but I figure the OS can be rebuilt on a new drive in a pinch. Then I installed the ZFS on Linux kernel module and configured the 4x1TB drives as a ZFS file system. Finally, I installed the Bacula server and configured all of the clients.
Overall, the MicroServer fits nicely in my home media center, and the Bacula software has been doing a good job of consistently backing up my files for the past couple of months.