Like most, I learn a lot more by doing things wrong before doing them right. Maybe, I can save someone some of my learning pain, I mean curve!

Wednesday, August 26, 2009

NAS - OS selection

To ZFS or not to ZFS; To Windows SIS or not to Windows SIS; to use a dedicated NAS appliance OS or not to .... Well you get the point. This has been what I have spent most of my brain cycles, yes all three of them, thinking about for this project.

In general, I want a solution that at a least can automagically de-duplicate files (Windows SIS) but would love block level de-duplication. My primary use for this server will be to serve up files to Windows clients (CIFS/SMB) with some potential for FTP or other solutions. And with a little time, I'll probably put some type of streaming solution in place.

As of now, I have decided to use FreeNAS 0.7rc1 with ZFS support. I believe it is the best combination of ease, performance and flexibility for me. (If something else works better for you, good. I'm happy for you. :)

With the initial install things are working well booting from my SD card. Setup was pretty simple though the FreeNAS documentation for ZFS is pretty non-existant at this time. In short, the procedure is:
  1. Format all of your drives
  2. Create a virtual device (RAIDZ in my case) using all of the drives (whole disks are preferable to slices)
  3. Create a management object (there is probably a better name for this)
  4. Create a single ZFS share for CIFS.
I then enabled Active Directory support and connected the FreeNAS server to my home AD domain. I then created the two directories needed in the ZFS share and created their CIFS Shares and shared them out. Additionally, I enabled the SSH service so that I could log in remotely since this will be a headless system. Voila! Done! All is great!

Well actually, all is good. I ran into some limitations of the existing interoperability between FreeNAS 0.7rc1 (based on FreeBSD 7.2 RELEASE) which contains ZFS Version 6 and Samba used for CIFS. Currently, you cannot administer access control using the Windows tools. This will apparently be addressed with FreeBSD 7.3 which will provide ZFS Version 13 and a new version of CIFS which will support the zfsacl module as a Samba vfs object. For my relatively simple home setup, this is not a major problem. I logged into my FreeNAS server using SSH and modified the permissions using chown and chmod to do what I need and things are working fine now. So while a bit of an aggrevation, this does not impact functionality.

The following are a few brain droppings on other OSes that I considered. Please note, you will not find any religious zeal or bias here as it relates to Windows vs *nix vs Linux vs a Hamilton Beach Toaster. They are all good "tools" and should be used as appropriate. If you aren't intelligent enough to figure out "as appropriate", well then ....

Windows Server 2008 R2 - Given my desire to integrate with my home AD, currently running on a tried and reliable Windows 20083 Server and my current files server, this makes sense. Howevever, I don't want to invest this kind of money, even if I get an MS employee friend to buy a copy for me. SIS works reliably and would certainly meet my needs.

Windows 7/Vista/XP - Honestly, these desktop OSes could be configured to meet my needs but not my want to have de-duplication.

OpenSolaris & eon - These two solutions provide probably the pinnacle from a ZFS perspective; however, it wasn't clear that OpenSolaris provided full support for my hardware and my Solaris skills are not what they used to be. So laziness kept me from pursuing this one too much.

Linux (any thing from Fedora to ClarkConnect to OpenFiler) - there are a wealth of solutions out there based upon Linux. But not having kernel level ZFS support (FUSE is an interesting approach but not for me) or an alternative ready (like BTRFS) makes Linux unattractive to me.

Nexenta (Hybrid Solaris kernel & GNU user space) - This caught my eye and I gave it a spin. You have the originator in ZFS running the kernel and user space commands that I am current on. This sounded great, until I installed NexentaCP 2 and had problems with installing it to my SD card and then problems trying to get the network configured properly. I'm sure that both of these issues could be addressed with some knowledge; however, the documentation for Nexenta was practically non-existant. This made me seriously question if I wanted to go this route.

Hence in the end, my decision to go with FreeNAS. It has ZFS, though still in the early stages. It provides de-duplication. A base install gives me reasonable performance, which I hope to improve with tuning. The WebGUI is pretty well thought out. The only need that I have had for the command line was setting up directory permissions. So my lack of experience with FreeBSD shouldn't be too much of a problem.

Stay tuned for more advice, err stories about errors, to come!

NAS - Hardware Assembled with Error, of course!

OK, I got all the pieces in and put them together. Voila, they all fit. Kind of. Sort of ....

The Chenbro case is a nice little case; however, I have not figured out how to remove the front cover. The online manual depicts a cover that is slightly different from my physical cover. However, regardless of the manual that says you need to remove the cover to install the motherboard and SD card reader, one does not. You need to release the cover and get it open enough to remove the blank in the slim optical device slot and remove the SD card reader holder, but that is it. There is plenty of play to do so. This gives full access to the mounting points for the mother board.

While installing the motherboard, I realized an oversight, yes an error, that I made. The MS-9832 motherboard contains only one internal USB header block. So it is not possible to plug in both the the up front USB ports as well as the the SD card reader. Furthermore, I am missing a cable to connect the card reader at all. So for now, I connected the two USB ports on the front of the chassis to the internal USB header and have put my SD card in a nifty SD to USB converter. I will use the SD for the OS.

The WD drives easily mounted in the hot swap trays and slid in wihtout a problem.

I am not installing a CD or DVD reader in this unit to keep the overall power consumption down. I have added a PATA CD/DVD reader/writer from LG sitting on top of the case with the cable going through the open side access. I will use this to load the operating system on the SD card and will then remove it and button it up for the long run.

All in all, the hardware came up fine!

Tuesday, August 18, 2009

NAS - Hardware Requirements

My hardware requirements are very few:
  • Low power consumption - +/- 30W full load, <10w>
  • High Efficiency PSU
  • Quiet Case - fanless if possible
  • Minimum of 4 hot swap 3.5" drive bays
  • 3 Gbps SATA II Drives for the storage array
  • OS to be loaded on solid state device (SD)
  • GigE Network Interface
  • USB HID and minimal video support for OS installation

My selected hardware is:

  1. 1 - Chenbro ES34069
    Mini-ITX Case with 4-Hot Swappable Drive Bays, 120W PSU

  2. 1 - Chenbro E434440
    4-in-1 Card Reader - Card reader - 4 in 1 ( MMC, SD, miniSD )

  3. 3 - WD WDxxxxx
    1.5TB 7200RPM SATA II Hard Disk

  4. 1 - MSI MS-9832-05S
    Industrial IM-945GC Mini-ITX Mainboard with 1.6 GHz dual core Atom 330 processor, 2GB DDR2 667 RAM, on-board 4 x SATA II (3 Gbps), 2 - GigE NICS

Total Cost to date - $751.21

    I expect to add an 8GB Class 6 SD card (approximately $18) to the card reader upon which I will install the OS once selected.

    That's all for now.


    NAS - Getting Started

    Over the years, I have mused about taking the time to share some of the things that I have designed, built and/or implemented to share back with the Internet community from which I have stolen, errr adopted, I meaned learned so much. In the past, I decided not to do so because of all kinds of excuses. I am going to try to change that now!

    For the past year, I have been musing in the background about buying or building a NAS server for home. I have made a decision to build and have selected the hardware and will soon finalize the OS decisions. I have searched the "whole" Internet, every little corner, ever bit, maybe even a qubit or two. And remarkably, I have failed to find a solution that meets what I personally want. That isn't to say I haven't found a lot, but just not the whole enchilada. So I have decided to start here.

    Stay tuned!


    About Me

    Houston, Texas, United States
    Geek, sometimes its biting the head off of a chicken, sometimes its getting hit in the head while working on something :)