ZFS on Linux: my story and HOWTO you can have it too
Have you heard about ZFS? It’s a generation-defining stable high-performance high-end filesystems, created by Jeff Bonwick at Sun, and ported over to Mac OS X and the BSD family. Oh, and for Linux, using the FUSE (Filesystem in userspace) kernel abstraction. Here’s my ZFS story.
I’m using Kubuntu Hardy, and my computer has two 400 GB SATA hard disks. Yes, that’s all the storage I have at hand; as of three days ago, it was RAIDed using the multipath devices (md) kernel module, split in two LVM volumes: /and /home. Oh, and two same-size byte-aligned swap partitions, one on each disk, swapon‘ed pri=0.
I had been salivating over the thought of using ZFS in my workstation because of several killer features:
* The first one that comes to mind is end-to-end data integrity thanks to checksumming — I’ve already had many disks go bad on me, while others corrupted my data silently (which is, believe it or not, the most insidious thing ever, because after you’ve noticed it, backups won’t help you with that — you’ve probably already papered over your backups with new, bad data).
* The second one is compression. Together with tightly packed data, compression promises to increase performance and reduce disk utilization.
* The third one is the advanced transactional algorithm that yields an always-consistent disk structure. Unlike log-based filesystems, ZFS does copy-on-write and ripples the changes up through the filesystem tree; before the topmost node is updated, the changes don’t affect consistency; when the topmost node is updated, the disk is consistent as well. Never fsck again!