Open-Source SAN – Part 2: FreeNAS


FreeNAS is a very great stable working product, well documented and has a big active and motivated community. By the way, I also contributed my part by doing the German translation for the (yet un)official FreeNAS 8 FAQ. You can find it in my wiki, which will hopefully grow from time to time with useful knowledge articles for the categories of storage and virtualization.

Unfortunately it is not Linux-based, but runs on a specially minimized version of FreeBSD. This minimization makes it fit on a plain USB pen drive you can directly boot it from.

This is a huge advantage, as it allows you to use all your hard disks for storage only and you don't lose space for a system partition. Specially in my case this would be a great solution as I only have old hardware with quite a lot but small disks (6x 320 GB SATA). So I'm very happy for any MB I can use for storage and don't have to reserve for an OS.

But this is also a disadvantage. Not only that FreeNAS is no Linux, it is also very limited due to a maximum size to fit on an USB stick. This makes it quite difficult to install additional packages you might need for your server. There's not even an automatic update function available.



Still, there is another point that clearly speaks for FreeNAS. ZFS was developed by SUN Microsystems (now Oracle) and soon available for their own operating system Solaris. Some time later, ZFS has been ported to FreeBSD and seems to be working very well on this system now, too. For Linux this is not that easy and ZFS is not yet natively available for any Linux distribution.

So why is ZFS so important for me? It is simply a very promising file system (FS) and logical volume manager (LVM), including data integrity verification against data corruption modes, snapshots and copy-on-write clones, continuous integrity checking and automatic repair and is implemented as open-source software. Additionally, RAIDz offers a great new solution for setting up clever and secure mirrors or arrays.

In my opinion, the biggest advantage are ZFS snapshots, and FreeNAS does not only offer this functionality, but also introduces automatic snapshot and replication tasks. The FreeNAS 8.0.2 User Guide says:

FreeNAS supports the secure replication of ZFS snapshots to another remote FreeNAS system (or any other system running the same version of ZFS and a listening SSH server). This allows you to create an off-site backup of the storage data.

So it's creating snapshots of the whole system regularly however often you want it to and enables you to do a restore of the full system state. And with the replication tasks, you can additionally save the snapshots on another machine to have double the security.

Unfortunately, I've never been able to set up such a replication between two FreeNAS boxes. I'm not affirming that it's not possible, all I'm saying is that it's really difficult and I was just not able to get it up and running. You have to configure SSH keys to enable mutual authentication between the two servers. This is very well documented in the user guide, but although I was exactly following all the steps, it was just never working.



I had two FreeNAS boxes running for a while and had the chance to test all the functions I need. I also tested iSCSI. First of all, what do I need iSCSI for?

It is an IP-based storage networking standard for linking data storage facilities. By carrying SCSI commands over IP networks, iSCSI is used to facilitate data transfers over intranets and can be used to transmit data over LANs. So it can enable location-independent data storage and retrieval. This makes it a SAN protocol, allowing organizations to consolidate storage into data center storage arrays while providing hosts (in my case virtual machine hosts) with the illusion of locally-attached disks. Unlike traditional Fibre Channel, which requires mostly expensive special-purpose cabling, iSCSI can use existing network infrastructure [Wikipedia].

I was able to set up an iSCSI target on FreeNAS on top of ZFS and successfully installed a VM on it. Still, there were some major issues I was a little bit concerned about. The user guide says:

type of device: choices are disk, DVD, tape, or pass (choose pass in a virtual environment)

under iSCSI Target Settings.

As I want to use the server for VM storage, I chose pass. Unfortunately it is not possible to start the iSCSI service then, which makes the target inaccessible. Therefore I selected disk and well, it still was working, so who cares? You know, I do somehow, if it gives you an option you should but can not choose, this is somehow strange for me.

Multipath I/O (MPIO)

Also it was not easy to set up link aggregation on FreeNAS, I finally got it running after several tries, but had to do it directly via the console, as I lost connection to the web interface. There was another thing I thought that would not be working correctly, but now I know that it was my own fault.

When setting up link aggregation, you're not able to use iSCSI MPIO, as also described in the user guide:

NOTE: LACP and other forms of link aggregation generally do not work well with virtualization solutions. In a virtualized environment, consider the use of iSCSI MPIO through the creation of an iSCSI Portal as demonstrated in section 8.14.6. This allows an iSCSI initiator to recognize multiple links to a target, utilizing them for increased bandwidth or redundancy.

I wanted to have redundancy and load-balancing on network level, but obviously I was just thinking in a wrong direction. So you can use FreeNAS very well for iSCSI and VM storage!



Besides the fact that FreeNAS is not Linux-based, there is another very big disadvantage for me, why I won't use it for my system. There is just no clustering, high availability or reliability functionality available, except you change to TrueNAS, the commercially developed, non-open-source version of FreeNAS.

What you can use and is also recommended by the user guide, is called rsync:

Rsync is a utility that automatically copies specified data from one system to another over a network. Once the initial data is copied, rsync reduces the amount of data sent over the network by sending only the differences between the source and destination files. Rsync can be used for backups, mirroring data on multiple systems, or for copying files between systems.

So that says what it is all about - a passive backup solution. It's great and very useful though, but you still have the problem of a single point of failure (SPoF). So if your first FreeNAS box crashes, you would still have your data on the other one, but would have to reconfigure all clients to access the new server now. So it's more a kind of a passive standby that needs some manual work to get it up and running.


Web interface

The web interface looks nice, but is not really working with Internet Explorer, as there are some major display errors which make it impossible to configure everything as you want. This is no big deal, in Firefox it is working just fine.

Occasionally, a GUI would not really be required, but as I'm not that Linux and console pro (yet ;-)) it just makes my life much more easy. Also it enables you to do simple settings much quicker when it only needs two clicks rather than typing config files and complex commands. Also I have to admit that the interfaces of the appliances I have tested so far are not really intuitive. So you need some time to get comfortable with them, too.



What is S.M.A.R.T and what do I need it for? Wikipedia says:

S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) is a monitoring system for computer hard disk drives to detect and report on various indicators of reliability, in the hope of anticipating failures. When a failure is anticipated by S.M.A.R.T., the user may choose to replace the drive to avoid unexpected outage and data loss.

This makes it a great tool to monitor your disks for temperature, corrupted cylinders and so on. It will automatically send email notifications when preconfigured limits are reached or other problems are detected. It doesn't necessarily have to be S.M.A.R.T., FreeNAS also offers SNMP and email notifications for RAID events, but also networking and storage statistics.

first: Part 1: Introduction next: Part 3: OpenFiler last: Part 4: Solaris-based Appliances

7 Gedanken zu „Open-Source SAN – Part 2: FreeNAS

  1. Pingback: Open-Source SAN – Part 1: Introduction | Christian Zartl, BSc

  2. Pingback: Open-Source SAN – Part 3: OpenFiler | Christian Zartl, BSc

  3. Pingback: Open-Source SAN – Part 4: Solaris-based Appliances | Christian Zartl, BSc

    1. Christian

      Thank you very much for the link again, this is indeed very interesting.

      I use OpenFiler now and have some VMs running on it already, so I may not be able to really test this. Still I have one FreeNAS server for backup reasons running too, so maybe I have the chance to set up another one and try to make it highly available.

      Best regards,


  4. Plugin explodes blog visits

    I have been exploring for a bit for any top quality articles or blog posts in this sort of area. I am very impressed with what I have seen so far on your site. It's actually a great and useful piece of info. Anyway, keep up the nice excellent writing, it's uncommon to see a nice blog like this one these days. If you are looking for new content for your site evaluate Content Gorilla the innovative WP blog content plugin collection tool to sky rocket your blog to SEO Domination and huge profits.


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>