Provisioning NAS4Free

Before you begin provisioning or installing NAS4Free, you may want to read the ZFS best practices guide at the Solaris Internals Wiki:

     http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide

Admittedly, this best practices guide is pitched more towards someone who is setting up a ZFS repository with 50 disks, etc., but it may provide you with some insights that will be helpful. It certainly gives you a good idea about what is possible.

One thing we do learn is that ZFS is potentially a memory hog. It uses a lot of memory to do caching and buffering while it is computing checksums so at least a couple of gigabytes is a good thing. Fortunately, this amount of memory will set you back less than twenty-five bucks, at today's prices.

And speaking of checksums, the processor needs to be relatively snappy to be able to constantly compute checksums, which is a key operation in ZFS. However, computing checksums ain't the same thing as compressing an hour of video data so you can safely consider one of the low-power, moderateperformance single or dual core processors (e.g. a 2.4 GHz Celeron, also cheap at today's prices). Probably the most important consideration is that the processor be a 64-bit processor, since ZFS runs best under the 64-bit version of NAS4Free.

NAS4Free itself can run from the installation CD or a USB stick or, presumably, anything else you can write to (a big enough floppy disk?). It has even been optimzed to not write anything back to the source media, once it has installed itself into memory at boot up, to ensure the longevity of flash memory-based devices such as USB sticks.

Call us traditionalists, but we like to use a small hard disk or SSD for the NAS4Free system itself. This allows us to make changes to the system, add scripts to do various tasks such as backups, etc. A small hard disk or 64GB SSD is cheap and should be reliable enough to run your system for a long time. If the hard disk does crash or something goes wrong with the SSD, the system can be easily reconstructed from backups, since no critical data (except for configuration information) is held on it.

One or two further thoughs on the concept of a separate, small system disk. Installing NAS4Free on one of the disks that will be used for the ZFS pool or trying to use the system disk for data storage is too complicated and is not really recommended. Thus, a separate, possibly low-power, green hard disk or SSD for your system is a good idea. If you wish to preserve all of the SATA ports on an older motherboard (many have four) for the ZFS disks, you should use an IDE drive for the system disk, since most older motherboards still have a single IDE connection which can be employed for a single hard disk as well as a DVD ROM drive for installation, or possibly a DVD R/W drive for installation and backup.

Depending on how you wish to configure the ZFS disk pool, you will probably want to add two or more big disks for data storage. In a mirrored configuration a pair of 1TB or 2TB disks work well. In this configuration, a third disk might be added as a hot spare. If you are going to be using one of the mirrored + striping RAID configurations, you will probably have three or more large disks.

Large SATA drives such as 1TB and 2TB green drives are ideal for the ZFS pool. One disk manufacturer even has a special line of disks designed particularly for NAS use that are low power but which have TLER to allow effective error reporting to ZFS. ZFS knows how to handle advanced format disks which is the format used by many 1TB and 2TB drives. Unless you are going to be pounding the ZFS pool with I/Os, the green drives are more than zippy enough for backing up other systems, supplying realtime video feeds, etc. Their big pluses are that they are easy on the power supply and they run very cool. If you care, most are extremely quiet too. Just be sure that you buy drives that are all exactly the same or nearly the same size, since RAID configurations do not appreciate differently-sized disks.

We now come, in a roundabout way, to the motherboard that you procure to build your NAS4Free system. We could have all sorts of discussions about server-class boards, how many PCI slots and what kind are needed, etc., etc.

Suffice to say that, in a simple NAS4Free system, any motherboard that supports your choice of processor, as much memory as you want to install and that has built-in video should work. If you want to run a lot of disks in your ZFS pool, you might look for one that has a lot of SATA ports or one that will allow you to add one or more SATA controller cards with JBOD arrays.

Probably the most important feature is one or more built-in gigabit ethernet ports. These will allow you to connect the NAS4Free system to your network and handle large volumes of data into and out of it. Incidentally, built-in gigabit ethernet is definitely better than adding gigabit ethernet via a PCI bus adapter, since most built-in gigabit ethernet adapters funnel data directly into and out of the system through its main bus, rather than through the much slower PCI bus. And, fortunately, the later versions of FreeNAS (e.g. 0.7.2) or NAS4Free (e.g. 9.x) now support even the dreaded RTL8111C chipset which seems to be the favorite chipset of many motherboard manufacturers.