I've recently been experimenting with different backup tools in order to find something more effective than Time Machine to use for my daily backup. Backup-Bouncer is an amazing test suit created by Nate Gray for the sole purpose of checking how well backup and file copy tools preserve all of the different types of metadata inherent in Mac OS X. I, as most people do, consider a backup tool to be ineffective if metadata is not preserved or is handled incorrectly. After scouring the tubes for some Backup-Bouncer results for common *nix backup tools, and not finding any, I decided to run my own and came up with some very interesting results:
Ditto (on 10.5):
Verifying: basic-permissions ... ok
Verifying: timestamps ...
Sub-test: modification time ... ok
ok
Verifying: symlinks ... ok
Verifying: symlink-ownership ... FAIL
Verifying: hardlinks ... ok
Verifying: resource-forks ... ok
Verifying: finder-flags ... ok
Verifying: finder-locks ... ok
Verifying: creation-date ... FAIL
Verifying: bsd-flags ... FAIL
Verifying: extended-attrs ...
Sub-test: on files ... ok
Sub-test: on directories ... ok
Sub-test: on symlinks ... ok
ok
Verifying: access-control-lists ...
Sub-test: on files ... FAIL
Sub-test: on dirs ... ok
FAIL
Verifying: fifo ... ok
Verifying: devices ... ok
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... FAIL
FAIL
rdiff-backup 1.1.15:
Verifying: basic-permissions ... ok
Verifying: timestamps ...
Sub-test: modification time ... ok
ok
Verifying: symlinks ... ok
Verifying: symlink-ownership ... ok
Verifying: hardlinks ... ok
Verifying: resource-forks ... ok
Verifying: finder-flags ... FAIL
Verifying: finder-locks ... FAIL (edited: originally ok)
Verifying: creation-date ... ok
Verifying: bsd-flags ... ok (edited: originally failed)
Verifying: extended-attrs ...
Sub-test: on files ... ok
Sub-test: on directories ... ok
Sub-test: on symlinks ... FAIL (edited: originally ok)
ok
Verifying: access-control-lists ...
Sub-test: on files ... FAIL (edited: originally ok)
Sub-test: on dirs ... FAIL (edited: originally ok)
ok
Verifying: fifo ... ok
Verifying: devices ... ok
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... FAIL
FAIL
Note: I have updated the above rdiff-backup rtest result to reflect some new results I've received. I think I must have errored on the previous test, because the above results have been constant through numerous trials. Additionally, I have discovered through some research that rdiff-backup doesn't support (yet) ACL's on Mac OS X with the pylibacl python extension, which would explain the ACL failures. rdiff-backup uses the python xattrs library, which seems to not fully support attributes in symlinks, as well as finder-flags and finder-locks (finder-locks may be on purpose to allow file deletion by the app). It's possible I'm using the xattrs library wrong, so I will conduct further tests and report back. I would really like to use rdiff-backup, but wish its Mac support was stronger!
Rsync-3.0.1 pre2 (Patched):
Verifying: basic-permissions ... ok
Verifying: timestamps ...
Sub-test: modification time ... ok
ok
Verifying: symlinks ... ok
Verifying: symlink-ownership ... ok
Verifying: hardlinks ... ok
Verifying: resource-forks ... ok
Verifying: finder-flags ... ok
Verifying: finder-locks ... ok
Verifying: creation-date ... ok
Verifying: bsd-flags ... ok
Verifying: extended-attrs ...
Sub-test: on files ... ok
Sub-test: on directories ... ok
Sub-test: on symlinks ... ok
ok
Verifying: access-control-lists ...
Sub-test: on files ... ok
Sub-test: on dirs ... ok
ok
Verifying: fifo ... ok
Verifying: devices ... ok
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... ok
ok
rsync (Apple supplied leopard default with -E flag):
Verifying: basic-permissions ... ok
Verifying: timestamps ...
Sub-test: modification time ... ok
ok
Verifying: symlinks ... ok
Verifying: symlink-ownership ... ok
Verifying: hardlinks ... FAIL
Verifying: resource-forks ... ok
Verifying: finder-flags ... ok
Verifying: finder-locks ... FAIL
Verifying: creation-date ... FAIL
Verifying: bsd-flags ... ok
Verifying: extended-attrs ...
Sub-test: on files ... ok
Sub-test: on directories ... ok
Sub-test: on symlinks ... FAIL
FAIL
Verifying: access-control-lists ...
Sub-test: on files ... ok
Sub-test: on dirs ... ok
ok
Verifying: fifo ... ok
Verifying: devices ... ok
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... ok
ok
As these tests show, the standard Apple-provided and modified backup tools, rsync and ditto, fail the test! Ditto performed the worst, not being able to copy 5 different types of metadata. rdiff-backup performs slightly better. However, the champion would have to be rsync 3.1, which passed every single test thrown at it with flying colors - hands down the best performance I've seen from any backup or copy tool!
Note: I didn't test duplicity or rsnapshot, but assume duplicity would perform like rdiff-backup (uses same core) and rsnapshot like rsync (since it uses rsync - just make sure its using rsync 3!) Box-backup is a little more advanced/complicated than I want to delve into at the moment, so I didn't test it.
0 comments:
Post a Comment