XFS vs ZFS Might Not be a Fair Fight

I somehow got sucked into reading more about ZFS tonight.

What’s interesting is some of the design decisions they made for this filesystem that while increasing overall stability probably decrease performance.

For example:

All operations are copy-on-write transactions, so the on-disk state is always valid.

I assume that internally this does a read and then another write of that block on another section of the disk. This requires two seeks instead of just one. Of course having to avoid fsck and then having the ZFS snapshot support might easily justify this functionality.

Another stability feature they added might seem to slow down the filesystem:

Once we had ditto blocks, then next question is: Where should we put the extra copies? The answer seems pretty obvious: As far apart as possible.

In a storage pool with only a single disk, we spread the blocks physically across the disk. Our policy aims to place the blocks at least 1/8 of the disk apart. This way, if there is a localized media failure (not all that uncommon on today’s drives), you still have a copy elsewhere on that disk.

I would assume the writes here are rare since these blocks are critical and earlier in the filesystem and probably won’t be updated very often.

I’d expect XFS to still come in a little faster than ZFS but the added stability that ZFS provides might e worth the hit in performance.



%d bloggers like this: