Delay's Blog is the blog of David Anson, a Microsoft developer who works with C#, XAML, HTML, and Azure.
I've seen a few references to backup strategies on blogs and discussion
lists lately and thought I'd write a bit about the strategy I recently decided on and implemented. Of course, everyone
has their own
approach to file management, their own comfort
level for security, and their own ideas about
what's "best". That's life and I'm not going to try to persuade anyone that my way is better than their way - but I will outline my way in case it's useful for others, too. :)
The setup: My machine is running Windows 2003 Server and I try to
keep as much unnecessary stuff off it as possible (no games, no P2P programs, no weird drivers, etc.). Along the
same lines, all user accounts on the server are
members of the restricted access
Users group, not the Administrators group. The machine has one hard drive
for storing the operating system and all programs (60 GB) and another hard drive
for storing all data (320 GB). The data drive has a Mirror directory
under which all data to be backed up is stored. The Mirror directory is ACLed to allow the
Users group read/write access. Non-private subdirectories of it are shared out for read-only
access by Users. I have an external USB 2.0 drive enclosure for backing up to (200
GB) that is normally powered off and that I mirror the Mirror directory to every
couple of days or so. The external drive
is ACLed to allow only members of the Backup Operators group to make changes. My data consists of the usual personal stuff (email, source
code, etc.), all digital photos I've ever taken, all digital video I've ever taken,
sentimental stuff (like wedding videos, baby's ultrasound video, etc.), and some
of my music collection in WMA Lossless format. Very little data changes day-to-day, so
a simple tool like RoboCopy (free with the Windows 2003 Resource Kit) is more than
enough to keep the backup directory in sync (use RoboCopy's /MIR switch to
make this easy). Along with the rest
of the data is a file that records the MD5 hash of every file in the backup. As my data storage
needs increase (which they do each time I take a picture or shoot a video!), I'll eventually
buy a new large hard drive and swap it for the smallest of the two data drives currently in use.
As long as my storage needs don't grow too rapidly, I'm figuring
the cost of
upgrading to be about $100 each year (that's the cost of a mid-sized drive like the 320 GB
I purchased a few months ago). I'm counting on storage capacity to continue increasing like it
has so that I'll always be able to buy $100 drives when I need to increase
the storage space.
Benefits provided by this approach:
Problems this approach does not solve:
I think this overview touches on pretty much all of the key points of this strategy.
It's obviously not a perfect solution, but it meets most of my requirements
and I'm pretty happy with how it's been working out so far. However, I'm always
open to improvements - if you have any suggestions, I'd love to hear them!