ZFS NAS with the Intel Atom

I've been looking to build a network attached storage (NAS) device for some time to store all my music, photos, films, etc. in one global location. I had a few specific requirements that were as follows:

  • Supports two disks (2TB RAID mirroring preferable)
  • Supports UPnP server (media sharing)
  • Low power (always on)
  • Bonus points: ZFS, SSH, Samba, etc.

    There are a few ready-to-go NAS solutions available on the market that are compatible with my demands. The Linksys NAS200, at $130, supports two disks with Twonky Media server for UPnP and is low power. The downside is that reviews indicate it being very slow and it comes with no gigabit ethernet. On the high-end side, however, the QNAP TS-209 Pro also comes with the two disk slots, UPnP support, is fast, along with a bunch of extra goodies like samba and an Itunes server. The price tag at $400 makes it a bit too much for a diskless system, so I decided on a different solution... why not build it myself?

    I had a Thermaltake LANBOX Lite Mini-ITX/ATX case lying around along with a 200W power supply, so all I needed to do was find some cheap, low power hardware to support it. Intel recently released a new type of processor called the Atom, which is aimed at bringing x86 into the embedded market. I'm not so sure how successful they will be at this venture, but it fits my needs perfectly. According to their specs, it draws 2W TDP for the 1.6ghz version which is pretty amazing. The power output turns out to be a bit of marketing hype, but considering it is now being used in the ASUS Eee desktop and laptops, it should prove to be a viable candidate. To encourage the hobbyist market, Intel created a combo of motherboard + Atom (BOXD945GCLF) that is available on Newegg for $75. After getting it along with a pair of 1TB drives at $170, I had a workable system shipped to me for under $500.

    My first reaction when I got all the parts is that the Intel board is TINY. I can fit my hand around entire thing. Even in the media center case that I use, it has quite a bit of extra room.

    The LANBOX Lite is fully modular which makes installation much easier. If you have ever built a computer from scratch, then you probably understand how tedious it can be to screw in motherboards, install drives, etc. This case allows you to pull every section out to make installation a breeze. It also comes with a nice silo to install both the terabyte drives.

    The next step is to turn this into a fully functional NAS. After installing FreeBSD 7.0, I wanted to setup both my disks to mirror. Since the BSD family has such a friendly license, ZFS is included in the distribution. And ZFS mirroring makes things incredibly simple to setup.
    [root@bojangles ~]# zpool attach tank ad4s1d ad6s1d
    And that's it! Now to ensure that things went as expected.
    [root@bojangles ~]# zpool list
    NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
    tank                    928G   72.9G    855G     7%  ONLINE     -
    [root@bojangles ~]# zpool status
      pool: tank
     state: ONLINE
     scrub: none requested
    	tank        ONLINE       0     0     0
    	  mirror    ONLINE       0     0     0
    	    ad4s1d  ONLINE       0     0     0
    	    ad6s1d  ONLINE       0     0     0
    errors: No known data errors
    Now with ports, I can get Samba and Ushare up and running in no time.
    [root@bojangles ~]# cd /usr/ports/net/samba3 && make install clean
    [root@bojangles ~]# cd /usr/ports/net/ushare && make install clean
    The final product in my closet in a makeshift cabinet.

  • Comments:

    did you try it with OpenSolaris?

    Posted by observer on July 25, 2008 at 02:17 AM MDT #

    I'm looking to switch to OpenSolaris once I figure out how to get Ushare compiled. The support for UPnP on Solaris right now is not good at all. FreeBSD with ZFS is going well right now, but considering it is still highly experimental, I'd like to move my NAS to a more stable solution.

    Posted by Paul Johnson on July 25, 2008 at 04:51 AM MDT #

    What is the power consumption for this box?

    Posted by henry D on July 25, 2008 at 06:57 AM MDT #

    Cool article.

    The issue with these first generation atom motherboards is that while the CPU has indeed a 2-4W TDP, the chipset probably draws around 20W...

    I guess that's the next issue for Intel to work on.

    Posted by spicyhotpot on July 29, 2008 at 09:34 PM MDT #

    The chipset is in fact a disappointment. With the two drives, the total power consumption is about 45W idle / 48W load. It's still much better than with a conventional x86 processor and the performance hit isn't as bad as I was expecting.

    Posted by Paul Johnson on July 30, 2008 at 12:32 AM MDT #

    Hey, 48W for the whole system is still pretty good!

    With that kind of low consumption you might want to check the efficiency at these levels of the 200W PSU you use.
    It looks like a V8 on a lawnmower ;-)

    Posted by spicyhotpot on July 30, 2008 at 06:34 AM MDT #

    What's the max sustained I/O throughput from your configuration? What type of content are you streaming (if at all)? How many clients do you have connected to the server?

    Posted by tkrip on July 31, 2008 at 04:00 AM MDT #

    On large file copies per disk (across zfs mirror) iostat reports an average of 64MB/s throughput. The content that I'm streaming is mostly high definition films and music. The HD content averages about 10-15GB per file and is streamed across a 802.11n wireless network to an Xbox 360 with no hiccups. Only three clients (xbox, desktop, laptop) access the NAS at any given time so I can't really test against that type of scalability performance other than to say that three clients don't interfere with overall resources.

    Posted by Paul Johnson on July 31, 2008 at 08:02 AM MDT #

    Just a quick one - looking at the Atom motherboards, they all seem to have 10/100 Mbps ethernet, which in theory would limit you to ~12MB/s. How were you able to get 64MB/s?

    Posted by Sacha on August 08, 2008 at 11:29 AM MDT #

    The test was a local disk copy, not over the network, which is why the number is so high. In either case, as you can see in the third picture, I bought a gigabit nic for the NAS.

    Posted by Paul Johnson on August 11, 2008 at 01:08 AM MDT #

    According to George Ou's blog (http://www.formortals.com/Home/tabid/36/EntryID/84/Default.aspx). Your whole system should eats about 30W, considering 80% efficency of PSU, you should get a <100W PSU, then you should measure 40W power usage. However your measurement of 48W is not bad.

    945G 20W TDP is just for thermal design. It does not mean it needs 20W. It would be much less than 10W if you measure it. George's measurement is less than 10W net for MB+CPU+RAM.

    Posted by Roy on August 13, 2008 at 05:21 PM MDT #

    I have the same board but installed with FreeBSD 6.3. I noticed that when I enable powerd, the system hangs (totally unresponsive) and needs a hard reset. Have you seen this?

    Posted by tkrip on August 19, 2008 at 09:25 AM MDT #

    I gave powerd a try and didn't see get a crash. It could be a difference between 6 and 7.

    Posted by Paul Johnson on August 21, 2008 at 03:19 AM MDT #

    Post a Comment:
    • HTML Syntax: NOT allowed

    Hiya, my name is Paul Johnson and I'm a software engineer working on the Oracle ZFS Storage Appliance .


    « June 2016