The littlest Thumper: OpenSolaris NAS on an MSI Wind PC
Thursday, February 26th, 2009I recently started to really need more disk around the house. More specifically, reliable disk.
Now that we’re starting to take photos of our son, and to shoot video, and do to all of this at
relatively high resolution (I love our 30D in RAW, but those files aren’t small) I wanted storage and I wanted it RAID’ed.
My network at the moment consists of:
- 2 laptops
- a Mac Mini working as a media center
- an airport extreme
Very clean and simple. Currently, I have quite a few disks dangling off the back of the Mac Mini. One of them will be staying, we time machine remotely to it. The rest were being used for our media
archives — both media generated by us, and media purchased by us. And they weren’t RAID’ed, which meant I wasn’t comfortable not leaving copies on my laptop(s) as well, which of course have finite
drives. And since my space needs were growing rather than shrinking, this needed to change.
The options as I saw them:
- Get more external drives and some USB hubs, and use the Mac Mini to RAID attached devices
- Get a RAIDed enclosure (like a Drobo)
- Build a small server that can have a lot of disk on board, but not use much power otherwise
I went for option 3, because I wanted to use ZFS — we use it at work and I’m a big fan of it. I’m also a big fan of using what I use at work, at home, so I can get more “in my bones” experience with
those technologies. (Still haven’t figured out a good in-home use for LVS, Varnish, or Memcached, but I’m sure they’re out there.)
That’s where the title came from: we use ‘Thumpers’ a lot at work (actually, Thors now, but the same idea.) Sun’s X4540 and X4500 are 48 SATA Disks in 4 Rack units and they run Solaris and use ZFS to do the magic. This is going to be a teensy little version of the same idea.
So, what’s the solution. MSI is a well-known maker of ‘netbooks’, those tiny, battery sipping, low priced laptops. It turns out they made a desktop based on the same Intel Processor, the Atom. It’s the “MSI Wind PC Barebones” and it has a lot of appealing attributes.
- Price: It’s $155 (but you need to add RAM and disks.)
- Power usage: I haven’t hooked up a Kill-a-watt yet but this should be quite efficient.
- CF Card slot on board: you can install an 8GB card on board, use that for your OS, and use the drive slots for nice clean data. This helps with power usage, since we can spin down our data drives
more often than system drives. - USB ports: it’s got a ton, and since I plan to expand via USB drives, this is nice.
- 2x internal SATA bays: I can install 2 drives onboard to start with.
- OpenSolaris, my operating system of choice for this application, is 100% supported. (Well, at least the parts I care about. I did not test the sound driver.)
Here’s the parts and prices:
| Part | Quantity | Price |
|---|---|---|
| MSI Wind PC | 1 | $155.99 |
| 2 GB RAM | 1 | $24.95 |
| 8 GB CF Card | 1 | $22.08 |
| 1.5 TB SATA Drive | 2 | $126.98 ea |
Total Price: $456.98. (No tax or shipping from Amazon, since I am a Prime Kind Of Guy.)
Compare that to a Drobo for $424.49.
For an extra $32 I have a full, 3TB raw storage system instead of just an empty enclosure to start sticking drives into. And the benefits of having a server online, as well — a drobo’s not that fun
unless you plug it into something.
So how do I expand if I need to? Simple! Start adding in USB drives as needed! There is a great guide to doing just this on one of the Sun blogs, which includes some nice pointers about how to set this up.
The install was CAKE, the hardest part was finding a monitor and keyboard as I am only laptopped at home. Well, the hardest part was making an install USB device, but you already known how to do that.
Also, to install the CF card into the Wind, I had to remove the motherboard — that’s the only way you can slide it in. Minor annoyance but worth noting.
After that it was a simple matter of setting up the zpool with my new drives, and exporting the filesystem to my other devices.
# Use the format tool to find the disk ID's in the system
jbarratt@rothko:/$ pfexec format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c5d0
/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
1. c6d0
/pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
2. c7d0
/pci@0,0/pci-ide@1f,2/ide@1/cmdk@0,0
Specify disk (enter its number): ^C
# Create the pool as a mirror between my 2 1.5TB drives
$ zpool create apool mirror c6d0 c7d0
# Create a filesystem
zfs create apool/archive
# Share that over NFS
zfs set sharenfs=rw apool/archive
And now the contents are flying over my network and filling it up. I’m excited to do a few more things soonish:
- Get the FMA (Fault Management) set up so I get emailed/SMS’d when alerts about hardware glitches happen
- Get mdnsd correctly broadcasting the host’s name on the LAN so I can use that for services
- Migrate my existing data onto the server and add the now liberated USB disks to the pool
- Set up automatic scrubs and snapshots
- Designate a ‘critical’ area of the disk and rsync that subset of the data out into a ‘cloud storage’ service
- Figure out what my power usage is under load and when the disks are spun down
- Put the system on a UPS
On the other hand, it already works pretty great and I can probably survive with it as is for quite some time. Now, to free up some of my precious laptop hard drive space without worrying about a drive crashing.




















Thanks for the thorough writeup. I’m glad you were able to get it up and running so quickly. I may borrow your boot key at some point. (-:
I thought about buying a netbook, to install OpenSolaris on it and to run a zpool for my backups. Do you think this is a good idea?
Sure! I preferred the desktop form of the netbook because internal drives are still cheaper and I didn’t need a screen running all the time, but they both should work fine.
I would have problems with an external monitor for the installation and in case of system maintenance I would prefer the built-in approach. I would somehow need to turn off the display while the netbook lid is closed. I don’t know about USB performance on these little things, but I think my network connection is still the real bottleneck in this case.
I think I’ll try this approach if my pocket won’t be so empty and let you know (it’s still cheaper than a Drobo – or comparable – solution).
Could you please fill in the blanks a bit on the OS install? I have pretty much this same setup in terms of hardware, but cannot seem to get the OpenSolaris -based pulsaros to install correctly on the CF (it fails to boot, saying it can’t mount the drive).
I would love to be able to help but it “just worked” for me using the standard OpenSolaris installer. I didn’t do any monkeying at all beyond the standard point and click games.
When it fails to boot does that happen at the BIOS level or is some portion of OpenSolaris actually getting initiated?
Even just knowing you used the standard installer is helpful, since I can then try it. Thanks.
I take it that was v2008.11?
As for where it fails, it’s the latter.
2008.11, correct. Good luck!
Thanks for this, it’s inspired me to change from FreeNAS to OpenSolaris on my nas. I’ve been wanting a proper ZFS solution, it’s not reliable enough under FreeBSD. Currently running an Intel Atom D945GCLF2 board, booting from an IDE CF card adapter, with a Sil3124 4 port SATA card hosting 4x 1TB WD Green power HDs RAID5, all in a 1U case (was a Lacie Ethernet Disk), so hardware not too different to yours. Good idea adding USB to pool, though I might go the eSATA route for backing up main pool. I’m also interested on your future improvements to your setup, please keep us posted! Also, have you got it working with Time Machine on your Mac? Thanks, Ian.
Thanks for the nice note, Ian. I haven’t messed with using it as a Time Machine target as I still have a Leopard server Mac Mini running (doubles as my media center) and am using that for TM.
To be honest this has pretty much been set it and forget it since the install — it works great and it “just works”. I would like to add in some more of the features I mentioned but so far have had other priorities. I’ll do an update post for sure when I do more hacking.
Looks like you’ve got your hands full judging by your pictures! Babies certainly are time-consuming. I’ve found another good source, someone else setting up OpenSolaris (actually SXCE, pretty much the same) as a NAS, and covers some of the things you want to do: http://breden.org.uk/category/nas/
Useful as he’s a Mac user, too. Ian.
I’ve been considering a similar setup myself, possible with an inexpensive Atom 330 processor setup. The only thing holding me back though is the lack of ECC ram. How much of an issue could this be?
Thanks, Jonathan
Also, how did you remove the motherboard? Can you post some pictures of how this setup looks? Thanks again.
I’m loath to take pics because it’d mean tearing it back down. I’ll try and be better about shooting pics as I go in future.
The motherboard uninstall was really nothing special, though — if you have the skills to get the case open, you have the skills to remove it. (Just ‘remove screws’, ‘remove motherboard’, ‘insert CF card’, ‘replace motherboard’, ‘replace screws.’)
Re: ECC RAM, it hasn’t been an issue for me, but I would certainly prefer to have it. You’re not going to get that AND an Atom-like processor, though. ZFS does the block checksumming, which somewhat offsets the risk, but not entirely.
Ah, I got the impression that some kind of complicated case modification was required to get the CF card to fit. I’m glad that isn’t the case. By the way, which CF card did you use? I’m trying to make sure I get a card that will work with OpenSolaris.
Also, regarding ECC I’ve heard that ZFS will write whatever it gets from the memory, so there may be some risk involved with going without ECC. On the other hand, I’ve also heard that this is less of a problem with modern quality hardware.
A somewhat less expensive setup with ECC I’ve seen so far is at http://www.nerdblog.com/2009/04/good-enough-zfs-nas.html. It’s about $180 for the processor and motherboard each and the setup is nowhere near as small as a nettop setup.
Ran into an issue with this setup.
I read this and was very impressed with what you did. I bought a slightly different version of the MSI setup you describe: http://www.amazon.com/gp/product/B001R1X0I0
This uses the Atom 330 processor and I like the dual core nature of it. It all worked really great. Moved a couple of USB drives from an old 32 bit pentium setup and added two 1.5TB drives to the internal SATA controller. I had to do some minor surgery to the hard drive/cdrom assembly so that I could screw in the second hard drive, but other than that – it was a piece of cake. I was sharing ~3TB of usable space in less than a day.
Until… I decided to move a whole bunch of data from one of the ZFS filesystems over NFS to one of my macs. About 20GB into it, the network on the MSI drops out. I did a whole bunch of research and it turns out that the Realtek 1Gb Ethernet controller has a known issue: http://bugs.opensolaris.org/view_bug.do?bug_id=6807184
There’s no know work around for this with the native rge driver. However, there is a third party driver “gani” that seems to have fixed the issue for me: http://homepage2.nifty.com/mrym3/taiyodo/eng/
I used the amd64/gcc config…
Hope this helps you guys….
ps On the motherboard remove thing – the only tricky part was that the “screws” includes the two screws on either side of the VGA connector.