Why True Blade uses the ZFS filesystem

Several years ago, True Blade started using ZFS for the filesystem on some of our Linux systems. I'll explain why we think ZFS is so great.

™/®OpenZFS, Public domain, via Wikimedia Commons

Like Linux RAID, ZFS uses normal disks and does not use special RAID disk controller hardware. The advantage of not using special RAID hardware is in a failure scenario: if you're using a RAID controller and it fails, you'll need to procure that same controller (sometimes even with the same firmware) in order to recover the server. This is often difficult, time consuming, and expensive; and sometimes it's even impossible if the controller can no longer be purchased. If you really want to go this route, we suggest that you have a spare RAID controller on hand.

Instead, ZFS uses "Just a bunch of disks", or JBOD. The advantage of using JBOD is that you can use any disk controller you want, and you can even move the disks to another system and continue to use them as a ZFS array. This is extremely helpful when you have hardware failures, as you can recover the system on new or different hardware.

Unlike traditional RAID systems, ZFS combines the filesystem plus the volume manager. This lets ZFS make more intelligent use of your drives. A normal filesystem like EXT4 is not aware of what physical disks are in your system. Instead, it will talk to a volume manager, which is aware of the disks, but is unaware of the filesystem. While this layering of system functionality is very useful, by combining the two subsystems together ZFS can do things like know which physical drives a file lives on.

ZFS has a focus on data integrity and preventing silent file corruption. It does this through a sophisticated series of checksums. If you're using the recommended parity drive configuration, ZFS can recover from most types of disk errors.

ZFS uses a copy-on-write system. This allows for features such as very cheap point-in-time snapshots. It takes very little disk space to make a snapshot of an entire filesystem. As new writes to the filesystem occur, additional disk space is used to hold both the new and old copies of your data. Since the vast majority of files are not modified, all of the unmodified files are only on the disk once, no matter how many snapshots they're present in.

Copy-on-write also enables ZFS's remote snapshot facility. You can send a snapshot to a remote server, and only the incremental changes from the last snapshot need to be sent over the network. We use this feature extensively for backups in the data center and for remote backups.

Our favorite ZFS sytem is TrueNAS. TrueNAS is a FreeBSD operating system with native ZFS support. In addition to supporting all ZFS command line functionality, ZFS also includes a GUI interface which is helpful for monitoring and administering the filesystems. We then attach this storage to our Linux systems using NFS or iSCSI.

Like the vast majority of the software that True Blade uses, ZFS and TrueNAS are open source projects. This removes many of the hassles associated with proprietary closed source software, such as license management. Removing Windows licensing from any deployment is a win. In addition to no license hassles, you're not locked into a single vendor's solution.