An Introduction to FreeNAS – The Do-It-Yourself NAS OS

by Greg King on February 29, 2012 in Networking, Software, Storage

Despite the importance of keeping our personal data safe, many forego setting themselves up with a solid solution that can come to the rescue in the event of a disaster. NAS boxes can be a bit pricy, however, and not to mention restrictive. That problem is solved with FreeNAS, a perfect start to your DIY storage solution.

FreeNAS Capabilities & Final Thoughts

Setting up FreeNAS is simple but does require a basic understanding of networks. The FreeNAS team has made the process as simple as possible but with any system setup, user interaction is required. Another benefit of FreeNAS is its low system requirements. Almost any x86 or x64 CPU will work and according to the FreeNAS team, but a builders primary focus should be on maximizing system memory. If a user decides that they want to use the ZFS file system, it is recommended that they have at least 6GB of usable memory. When FreeNAS boots up, it loads the operating system into system memory, using up 2GB. Because of this, 8GB of total RAM is recommended.

Data redundancy is an important feature to account for when building a FreeNAS box. With this in mind, FreeNAS supports the following RAID configurations:

  • RAID 0: uses data striping to store data across multiple disks. It provides zero fault tolerance, meaning if one disk fails, all of the data on all of the disks is lost. The more disks in the RAID 0, the more likely the chance of a failure.
  • RAID 1: all data is mirrored onto two disks, creating a redundant copy should one disk fail. If the disks are on separate controllers, this form of RAID is also called duplexing.
  • RAID 5: requires a minimum of 3 disks and can tolerate the loss of one disk without losing data. Disk reads are fast but write speed can be reduced by as much as 50%. If a disk fails, it is marked as degraded but the system will continue to operate until the drive is replaced and the RAID is rebuilt. However, should another disk fail before the RAID is rebuilt, all data will be lost. If your FreeNASâ„¢ system will be used for steady writes, RAID 5 is a poor choice due to the slow write speed.
  • RAID 6: requires a minimum of 4 disks and can tolerate the loss of 2 disks without losing data. Benefits from having many disks as performance, fault tolerance, and cost efficiency are all improved relatively with more disks. The larger the failed drive, the longer it takes to rebuild the array. Reads are very fast but writes are slower than a RAID 5.
  • RAID 10: requires a minimum of 4 disks and number of disks is always even as this type of RAID mirrors striped sets. Offers faster writes than RAID 5. Can tolerate multiple disk loss without losing data, as long as both disks in a mirror are not lost.
  • RAID 60: requires a minimum of 8 disks. Combines RAID 0 striping with the distributed double parity of RAID 6 by striping 2 4-disk RAID 6 arrays. RAID 60 rebuild times are half that of RAID 6.
  • RAIDZ1: ZFS software solution that is equivalent to RAID5. Its advantage over RAID 5 is that it avoids the write-hole and doesn’t require any special hardware, meaning it can be used on commodity disks. If your FreeNASâ„¢ system will be used for steady writes, RAIDZ is a poor choice due to the slow write speed. Requires a minimum of 3 disks though 5 disks is recommended (over 3, 4, or 6 disks). It should be noted that you cannot add additional drives to expand the size of a RAIDZ1 after you have created it. The only way to increase the size of a RAIDZ1 is to replace each drive with a larger drive one by one while allowing time for restriping between each drive swap out. However, you can combine two existing RAIDZ1’s to increase the size of a ZFS volume (pool).
  • RAIDZ2: double-parity ZFS software solution that is similar to RAID-6. It avoids the write-hole and doesn’t require any special hardware, meaning it can be used on commodity disks. Requires a minimum of 3 disks. RAIDZ2 allows you to lose 1 drive without any degradation as it basically becomes a RAIDZ1 until you replace the failed drive and restripe. At this time, RAIDZ2 on FreeBSD is slower than RAIDZ1.

Most home users will who are using ZFS will want to consider using RAIDZ1 or RAIDZ2. With any build, this option must be considered. The only downside that I see to using RAIDZ1 and 2 is that a volume cannot be expanded. Drives can be added and new volumes can be created but a 4TB volume cannot be expanded to a 6TB volume by adding an additional disk or two.

The easiest method of installation is to burn a CD using the .iso file downloaded from the FreeNAS site. From there, it’s as simple as booting from the CD and following the installation procedures. One thing to note is that whatever drive you install 8.0.x onto, you lose the remainder of that drive’s available space. The boot drive cannot be used when creating a volume. Because of this, it is recommended to install FreeNAS onto a Compact Flash drive or USB stick.


Once installed, administration of FreeNAS is straight forward and shouldn’t present too many issues. Volume creation is simple with the help of a baked-in wizard and can be done in 4 simple steps. Once the drives are added to the machine, something that most users will do when they are building their FreeNAS, they will need to be formatted. After this, a mount point will need to be created and then the volume can be created. From there it’s simple to setup the volume to be shared. FreeNAS supports the following protocols for sharing, offering a significant amount of options for home and business users alike. The following was obtained from the FreeNAS administration guide for 8.0.3.

  • AFP Shares: the Apple File Protocol (AFP) type of share is the best choice if all of your computers run Mac OS X.
  • CIFS Shares: the Common Internet File System (CIFS) type of share is accessible by Windows, Mac OS X, Linux, and BSD computers, but it is slower than an NFS share due to the single-threaded design of Samba. If your network contains only Windows systems, this is a good choice. However, it is a poor choice if the CPU on the FreeNASâ„¢ system is limited; if your CPU is maxed out, you need to upgrade the CPU or consider another type of share.
  • NFS Shares: the Network File System (NFS) type of share is accessible by Mac OS X, Linux, BSD, and the professional/enterprise versions (not the home editions) of Windows. It is a good choice if there are many different operating systems in your network. Depending upon the operating system, it may require the installation or configuration of client software on the desktop.

Once you decide which protocol you want to use – this again takes planning – you can begin sharing your volume(s) and accessing your data across the network. It’s as simple as that. With shares setup, you are free to roam around your network and use your new FreeNAS box as you see fit.

Final Thoughts

I know this wasn’t much of an in-depth look at FreeNAS. It wasn’t much of anything really. This of this more as an introduction to FreeNAS and its intent is to plant the seed of inquiry. We want to make everyone aware that there are valuable open source solutions available in the world of shared storage.

However; we are currently in the middle of a FreeNAS build and are working on a write up, from beginning to end. I am confident that we will address most any questions that one might have after reading this introduction. With that said, if there are any questions that you might have concerning what you would like to see covered, please post in our forums. This is a new kind of project for me here at Techgage and one that I would like to see grow organically with feedback from our readers. I am excited to continue work on this and look forward to hearing your ideas and questions.

Discuss this article in our forums!

Have a comment you wish to make on this article? Recommendations? Criticism? Feel free to head over to our related thread and put your words to our virtual paper! There is no requirement to register in order to respond to these threads, but it sure doesn’t hurt!