RAID is scary nowadays.  What used to be considered a "must-have" for fast storage with redundancy, is now (with today's ever-larger drive densities) becoming a liability in the form of a ticking MTBF time bomb.  Hardware RAID 5 in particular, which was an excellent solution in the days when 73GB enterprise hard drives were considered "large", now gives a very false impression of basic data safety when used with large 1TB+ drives.  The topology itself is a liability, because in the event of a disk failure, the thrashing given to the other disks in the array during rebuild increases the likelihood of a second failure to statistically uncomfortable levels.

While in search for a properly state-of-the-art DIY storage solution for my company, I kept hearing about ZFS.  The "magic silver bullet" B-tree file system, that self-heals silent corruption with end-to-end checksumming and manages disk devices directly for monolithic high-speed software RAID that is controller-independent.  The one that eliminates the RAID5/6 write hole.  The one that supports snapshotting and deduplication, that mixes its RAID metaphors within the same volume, that writes in variable-length stripes.  The one that brings them all, and in the darkness binds them… no wait, that's a different movie. 

Anyway, ZFS is supposed to be hot shit, and has a large contingent of cheerleaders in various corners of the enterprise systems world.  It was the brainchild of the Fishworks team at Sun, whose collective accomplishments are too lengthy to discuss at present, but suffice to say they are generally considered legitimate badasses.  ZFS was developed to be a key competitive advantage for Solaris in the enterprise storage space, and Sun was well on their way to hitting critical mass with sysadmin mindshare generally, which would have seen ZFS (and Solaris) in a great many environments where it may never have ventured previously.  Unfortunately, after Oracle gobbled up Sun they immediately went to work screwing with OpenSolaris and the community development model in ways they shouldn't have, which I won't get into here.  To make a long story short, there's now a completely community-built version based on Illumos, called OpenIndiana.  I decided to use OpenIndiana as the basis for a high performance, low cost NAS server, and see how far I could go with it in terms of performance and stability on a budget.

The Goal

Build an enterprise-grade NAS server using up-to-date hardware with at least 100 MB/s sustained reads and writes across the network, via NFS or SMB/CIFS. Both, if possible.

More >