mattgadient.com

FreeNAS – a powerful file serving solution, but not without its issues

Here’s the deal.

I had a pretty low power machine with an i3, integrated video, etc. It’s life long dream was of course to be our new file server so that I could start shutting off my sauna-in-a-case rig that was serving files 24/7 while out-performing our home furnace in heat output.

The i3 got it’s wish. It’s serving files, the other one’s off, and my room’s 10 degrees colder.

Enough blathering though.

Here’s what I like about FreeNAS:

  1. ZFS – If you don’t know what the ZFS file system is, it’s pretty bloody amazing – look it up. Look up RAIDZ in particular (the RAID5 of ZFS). Yes, FreeNAS supports the other junk (FAT/32, NTFS, HFS+, EXT#, UFS, etc), but ZFS is just… well… so good. It’s not *all* roses, but I’ll explain that later.
  2. Installs to a USB memory stick – This is pretty key. One less hard drive to power, less heat, more room in the case. It’s got a small memory footprint which it also pops into RAM.
  3. Headless administration – once installed, it can be administered through your browser (just like a router). No keyboard, no mouse, no monitor required.
  4. E-mail alerts – This is a biggie. If you decide to run it headless and a hard drive fails… how will you know? I suppose if you’re running a single drive you’ll figure it out when you can’t access it, but when you’re running a headless RAID5/6/etc, a dead drive in your array might be a good thing to know about. You can up FreeNAS to email you alerts (as long as you’ve got an internet connection of course).
  5. Graphical interface (ties in to #3). It does fall short here sometimes, but I’ll rag on it a little further down.
  6. A pile of protocols/services. You’ve got the regular networking options (CIFS/SMB, AFP, NFS), the techie stuff (FTP, SSH, RSync, etc), the fun stuff (iTunes server, BitTorrent), and a few others.

There’s more when you get into the details, but in terms of comparing the major overall features, the above is what really helped it stand out for me (except for #6, many others have a whole slew of services too).

As I said earlier though, it’s not all roses.

FreeNAS ZFS

ZFS, for all it’s sheer awesomeness isn’t perfect. For starters (and this is a FreeNAS thing), only the more recent versions of ZFS have data deduplication. What’s data de-duplication? Well, Windows Home Server has a feature where if you have 2 copies of the exact same file, it’ll only physically store one of them to save space. ZFS goes beyond that, and in addition to that, if you have *parts* of a file that are the same, it’ll only physically store one copy of those parts. All automatically in the background (assuming it’s turned on of course). FreeNAS from what I gather will eventually get this, but it could be a while yet, while other NAS’s like Nexenta and EON already have it.

ZFS also has it’s own issues (unrelated to FreeNAS).

For instance, you can enable various compression levels through gzip, or use lzjb. Depending on your processor power, amount of RAM, and hard drive speeds, this can actually speed up file transfers in addition to saving you space. Sounds good, right? Well… not completely. Enabling compression caused FreeNAS to restart on certain files in my case. If you don’t have enough RAM, you can have problems with ZFS. If you haven’t configured something you needed to, you can have problems.

What this really boils down to is that as powerful and awesome as ZFS is, it’s not always an out-of-the-box-stable-and-it-works sort of thing. You’re supposed to configure different settings for ZFS, first to make it stable with your configuration, and then to tweak it. A 32-bit install may need different settings than a 64-bit install. Compare this to the other file systems that are generally rock-solid out of the box even without a lick of configuration.

For those who’ve run servers, it’s similar to tweaking MySQL. You have to learn, do a little trial and error, and in the end you can have a pretty amazing set-up, utilizing all the power you can harness. It’s not beginner friendly though. It would help if FreeNAS had some built-in GUI goodness to help with this, but it doesn’t.

Installation

As long as you’re comfortable setting up your network configuration (really not much more than your IP address and subnet mask), you’re fine there. The only real issue I had here was that you need to burn a CD first, then use it to install on the memory stick. Since the CD-ROM will presumably never see use again, you’ll end up wanting to take it out again until the next upgrade, when you’ll have to burn a new disk.

There is a way to just download the image, but you can’t install it through the Mac’s Disk Utility (I believe they linked some software to do it with).

It’s not the end of the world, and might seem like a nitpick, but it’s really just an annoyance. I thought we started using USB sticks so we didn’t have to touch CD’s anymore!

Learning Curve and Lack of GUI stuff

Earlier I compared the headless aspect (and GUI) to setting up a router, but someone who’s *just* figured out how to set up their router is in for a bit of a learning curve. To be completely fair, most of the other stuff that acts as a NAS requires you to do just about everything through the command line (ZFS being a big one). FreeNAS does let you do 90% of the stuff through the GUI, but there are a few things there that will completely lose some people. ZFS configuration being one. Another being setting permissions for things that need it (like AFS). The GUI does so well that it’s easy to see the places where it does fall short right now. Someone who’s never had to look at a command prompt / terminal /etc is going to have a really easy time with most things, and then a painfully brutal time with others.

Conclusion

All-in-all, FreeNAS is arguably one of the best solutions out there right now. It does have it’s flaws, but as time goes on it’s almost certain to improve dramatically.

  • Tim

    Hello,
    I’ve been building a FreeNAS box. I have 4 1TB sata drives hooked up without any hardware RAID and FreeNAS x64 embedded booting off a USB stick. I set the IP address, created the RAIDZ, created a CIFS Share, and can see it from my Window and Mac boxes. But I cannot write to the share i’ve created.

    I realize the short coming is that you cannot set the permissions from website and have to edit the smb.conf file by hand. I’ve done conf file editing in the past and for my job, but I’ve never worked with smb.conf settings.

    can you throw me a bone on how to config the samba settings? I’ve seen the man file but am not sure what I need to change.

    Any help would be great, i’m really looking forward to getting the box up and running!

    THanks, Tim

  • fiver

    Tim:

    This is most likely not a a samba problem. It is probably a local file system permissions issue. If your machine is on a trusted network, I would just do a quick and dirty “chmod 777 ‘path to your samba share'” from a console window (use putty and SSH in).

  • Make

    Good article. I have been using zfs on freenas for a while now and I agree completely with everything you said.

  • shetu

    I use it. Is there any good tutorial for install mysql?

  • Derek

    I fought tooth and nail with the freenas set-up (took a crash course in a lot of it), but in the end I found the new version (8.0.0 to 8.0.1) had a little extra in it to help me out, and now I’m happy as can be with it. Have a few adjustments to make but still love it. Great for storing extra files that I use only once and a while, and also I can leave movies on it that my wife can watch when she has time.