Monday, January 08, 2007


ZFS and committing data to stable storage

I ran across a couple of blog entries that might be of interest to anyone using ZFS on an NFS server or using ZFS on a storage array with a battery-backed cache.

WRT NFS over ZFS, this entry discusses why you might see worse performance with NFS over ZFS when compared to NFS over UFS (at least for a singly-threaded load.) The article points out that it's actually an apples-to-oranges comparison, as ZFS implements the correct behavior WRT NFS semantics -- NFS COMMITs are guaranteed to be on stable storage (via the ZFS intent log (ZIL)), regardless of whether the disk cache is enabled. With UFS (or other filesystems), NFS COMMITs are considered successful once they've hit the disk cache, which is decidedly not stable storage.

On a similar note (and linked from the above, also), this entry discusses ZFS performance problems with storage arrays using battery-backed cache. In this case, the cache can be considered stable storage, but ZFS still forces a flush of the cache after every write to the ZIL. The article discusses a couple of ways to handle this problem. One of these is definitely a bad idea (disabling the ZIL), but the other has merit (instructing the storage array to ignore the flush commands from ZFS.)

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?