Wednesday, June 3, 2009

Networking around Time Machine's stupidity

Time Machine, the integrated backup system that ships with Mac OS X 10.5.x (aka Leopard), is notionally a great tool.

  1. it allows unattended backups to occur
  2. its free
  3. it does incremental backups
  4. it occurs in the background
  5. its got this kick-ass trippy restore interface
  6. its easy enough for the average Mac user to get it

So whats the problem ?

  1. it doesn't allow the backups it makes to be encrypted
  2. you can't limit how much space it'll consume (i.e. it'll consume everything, meaning you have to either have a dedicated partition or disk to make it work properly)
  3. if you have encrypted DMG on your file system, it'll mount it and store those unencrypted in your backup
  4. you can't tell it how frequently to run
  5. exclusion criteria are limited to file systems, not files or directories
  6. if you backup across the network, and you change the network interface (e.g. from WiFi to Ethernet), your backups will not transparently resume

To get around this, I decided to store Time Machine backups on a FreeBSD-based workgroup file server. I was going to use a CIFS-based Samba server, but thought that is a bit too open. Rather use Netatalk, an open-source AppleTalk and afp server implementation (it does tons more, but I'm only interested in the afp component).

It is obscurity, but access to the network is locked by a WPA2 key, user account and physical proximity (the WiFi doesn't propogate very far). That is a lot better than a drive on my desk, me thinks.

PS. You need to issue the magic command
defaults write TMShowUnsupportedNetworkVolumes 1
to get Time Machine to see your new share as a valid destination. I also found creating the backups a pain; this blog post was very helpful.

Now to get a 802.11n WiFi access point; candidates are the Airport Extreme, a lousy, expensive and underperforming device which hardly ever works, or a Belkin Vision N1, which just looks cool (but has also gotten some rave reviews for performance).