Building a NAS with OpenSolaris and ZFS

Adam Retter has a post about his storage server based on Solaris with ZFS:

In deciding to build my own NAS, after having identified my requirements in Part 1, I set about searching for the perfect hardware and software combination…

There are plenty of open source operating systems available that offer multiple options for reliable storage, including both hardware and software supported RAID. To avoid getting into the situation of outdated/unsupported hardware again, I have decided not to use any sort of hardware assisted RAID, instead I will use the software RAID support provided by the operating system itself.

Many of these operating systems support a vast array of system hardware, however I did not want to just reuse a standard PC/Server because of its large power requirements and physical size when compared to commercial NAS systems aimed at the SMB (Small and Medium Business) Market.

Software
Linux, FreeBSD and OpenBSD all offer options for software RAID. There are also a number of distributions specifically designed for NAS appliances such as OpenFiler (based on Linux) and FreeNAS (based on FreeBSD), however I have settled on OpenSolaris because of ZFS and its RAIDZ feature. Also worthy of a mention is the very interesting and well suited looking NexentaStor (based on OpenSolaris), but the added goodness is not open source, so I will consider it no further.

A few reasons why I chose OpenSolaris and ZFS:

  • OpenSolaris is based on Solaris (it feels solid, just like Solaris)
  • OpenSolaris has CIFS and NFS support built in
  • ZFS RAIDZ and RAIDZ2 provide better than RAID functionality
  • ZFS has 256 bit checksumming and self healing
  • ZFS does not suffer from the RAID-5 write holeZFS snapshots

Looking at ZFS and the reliability of disk failures I decided to go for a RAIDZ2 approach, which requires at least 4 disks.
RAIDZ2 is an advancement of the traditional RAID-6. It writes a double-parity and parity is distributed across the disks. In this configuration approximately 50% of your total disk space is available for file storage and the other 50% is used for parity information. In RAIDZ2 with four disks, continuous operation is ensured even with the failure of two of the disks.

Read Adam’s whole post here (adamretter.org)