ZFS
I’ve just been talking to Chris Gerhard who is one of the high-level engineers that work in the same area as us. The conversation started with Mooktakim’s idea to use an E450 as a storage server, but then shifted towards Solaris’ big new feature: ZFS.
ZFS is now available in the latest Solaris 10 update (u2), which was released recently. I overheard a conversation he was having a while ago about why using ZFS with hardware RAID controllers was bad, and decided to chase this up. The reason hardware RAID won’t work well with ZFS is because a hardware RAID controller hides faults from ZFS (i.e. ZFS doesn’t know that there is an error on one disk, or when a disk has failed). This is straightforward enough, but I was confused as to how ZFS performance could ever be close to a hardware solution.
The answer, it turns out, is that ZFS benefits greatly from a hardware RAID controller with plenty of cache—one of the answers is to use the expensive hardware controller to present the disks to Solaris as JBOD, but at the same time leaving the cache enabled. This is an all-round win: the expensive investment is still used, the performance is retained and the data integrity is even better protected thanks to ZFS’ copy-on-write architecture.
CPU speeds have massively outstripped disk speeds, so using compression also provides all-round benefits: in many cases it is now faster to read a smaller amount of data and uncompress it than it is to read all of the uncompressed data direct from the disk.
ChrisG suggested that soon it will be beneficial for Solaris to have a single partition/slice for the whole OS. This includes even swap, which will also be able to benefit from the improved integrity.
It’s also fairly interesting to note that because of the copy-on-write design of ZFS, snapshots and clones are “free”. It also means that ZFS performs faster with a snapshot than without.
Cool stuff for sure. Looks like tonight will be install Solaris on laptop and desktop day. Good job Solaris has great netinstall support!
Tags: UNIX
August 25th, 2006 at 10:48 pm
It is not actually that the hardware raid device hides an error but that if you are unlucky enough to suffer a data corruption and you are relying on the hardware raid to give you redundancy then there is nothing ZFS can do to recover.
If on the other hand ZFS has control of the redundancy, be that via mirroring or RAIDZ when it detects an error it can not only report it but also recover and repair.