New OpenSolaris ZFS Home Server: Requirements

Old OpenSolaris Home Server with blinkenlights USB drives

A few months ago, I decided it was time for a new home server. The old one (see picture) is now more than 3 years old (the hardware is 2 years older), so it was time to plan ahead for the inevitable hardware failure. Curiously enough, my old server started to refuse working with some of my external USB disks only a few weeks ago, which confirmed my need for a new system. This is the beginning of a series of blog articles around building a new OpenSolaris home server.

Home Server Goals

Let's go over some goals for a home server to help us decide on the hardware. IMHO, a good home server should:

  1. Run OpenSolaris. This means I don't want an appliance because this is too limiting and I'd end up hacking it to make it run something it doesn't do by itself anyway. It should therfore use a real OS.
    It also means I don't want to use Linux, because quite frankly the whole Linux landscape is too unstable, confused and de-focused (don't get me wrong: It's nice for experimentation and as a hobbyist-OS, but I want something more serious to guard my data).
    Windows is out of the question because it delivers too little for too high a price.
    I like BSD (and used to run NetBSD on my Amiga 4000 back then in the mid nineties), but it seems to be more oriented to some (albeit interesting) niches for my taste.
    Right now I prefer OpenSolaris because it's rock-solid, clean, well-documented, well-designed and it has lots of advanced features that other OSes only dream of. Yes, I'd still write and do the same if I weren't a Sun employee.
  2. Leverage ZFS. This should be a no-brainer, but I just wanted to point out that any system that is serious about its data should absolutely run ZFS because of the end-to-end-integrity. Period. And then there are many useful features such as compression, send/receive, snapshots, ease of administration, no fscks and much more. Oh, and I'm looking forward to leveraging encryption and de-duplication at home in the near future, too!
  3. Use ECC Memory: What's the use of having end-to-end data integrity with ZFS if your data is corrupted before ZFS can create it's checksum? That's why you need ECC Memory. Simply put: Use ECC memory and kiss those unexpected, unexplicable system crashes and broken data surprises good bye.
  4. Be Power Efficient: Think 1.5 Euros of electricity bill per Watt per Year for a system running 24/7. The difference between your typical gaming PC and a power-efficient home server can easily be 50W or more when idle, so you're looking at an extra 75 Euros and more of free cash if you just pick your components more carefully. Notice that I'm not saying "Low-Power". There are a lot of compromises when trying to reach absolute low-powerness. Like many optimization problems, squeezing the last few Watts out of your system means investing a lot of money and effort while sacrificing important features. So I want this system to be power-efficient, but without too many sacrifices.
  5. Use a Moderate Amount of Space: While my home server sits in the basement, form doesn't matter. But I may move into a new apartment where networking to the basement is not an option. Then the server needs to be living-room capable and have a decent WAF. Which also brings us to:
  6. Be quiet: A power-efficient server needs less cooling which helps with being quiet. Again, we don't want to stretch the limits of quietness at all costs, but we want to make sure we don't do any obvious mistakes here that sacrifice the living-room capabilities of the system

What's Next

In the next blog entry, we'll discuss a few processor and platform considerations and reveal a cool, yet powerful option that presented itself to me. Meanwhile, feel free to check out other home server resources, such as Simon Breden's blog, Matthias Pfuetzner's blog, Jan Brosowski's Blog (German) or one of the many home server discussions on the zfs-discuss mailing list.

What are your requirements for a good home server? What do you currently use at home to fulfill your home server needs? What would you add to the above list of home server requirements? Feel free to add a comment below!


Would OpenSolaris run on the Atom/ION side of

Posted by Mikael Gueck on September 19, 2009 at 12:27 PM CEST #

Hi Mikael,

interesting. There's a thread of another ION motherboard discussed here:

It looks like OpenSolaris 2009.06 won't work out of the box, but there were some recent additions to snv_119 that seem to work with ION, so a more recent developer build of 2010.02 should likely work:


Posted by Constantin Gonzalez on September 19, 2009 at 02:14 PM CEST #

Hi Constantin,

Over a year ago I built a home server similar to Simon Breden's and am very pleased with the result. However, if I was going to build a new one I would give careful thought to the enclosure / chassis in order to make life easier when replacing or adding disks. I bought an Antec P182 ATX case and have 2 disks for the OS and 4 x 1 TB disks in a raidz pool for data storage. However, I have no room to add new disks internally and it will be awkward to replace the 1 TB disks as it was not easy connecting them when I built the server. In my day job am I used to working with hot swappable drives so I would look for an economical way to include this feature in a new server.

I enjoy your blog entries and would like to thank you for sharing your knowledge. I am in the process of setting up a media server on my home server and am following your tips for implementing a TwonkyMedia server in a branded zone - very helpful.

Posted by guest on September 22, 2009 at 01:16 PM CEST #


thanks for you comment and I'm glad you like my blog!

Yes, I'm probably going to regret my crowded small case. At least when the first disk needs to be replaced. A colleague is keeping a USB drive as a lukewarm replace: When a disk fails, he adds the USB drive as a mirror, until the replacement drive arrives.

I'm probably going to use a 2-disk mirrored pool with the 3rd disk being a hot-spare. Then I'm going to hope I'll figure out which of the disks broke based on serial number or SATA port assignment :).

There's a neat small Chenbro case with 4 hot-swap disks, but it's ITX and there are not many AMD ITX motherboards around. I haven't seen any good cases with hot-swap disks that are also small and support Micro-ATX. Would love to learn about them.

Look out for one of the next entries, I'm currently re-thinking my service deployment strategy and putting together a new way to install and manage my Mediatomb setup.


Posted by Constantin Gonzalez on September 23, 2009 at 04:08 AM CEST #

Hi again.

I don't know why my post showed up as - maybe it was a case of fat fingers.

I look forward to your forthcoming Mediatomb post but in the meantime I will continue to play with the TwonkyMedia server since I have 30 days for free. However, I have a question: what are the options for allowing the centos branded zone to access my media files which are currently stored under a zfs file system in the global zone?

I do not want to copy the content into the centos zone because it means duplicating data, which is wasteful. I am also not willing to move the data from the global zone to the non-global zone as I am not totally comfortable with this approach at present.

Thanks again.



Posted by Nick Smith on September 23, 2009 at 02:58 PM CEST #

Hi Nick,

thanks for identifying yourself :).

Sure, I'm looking forward to your experiences with TwonkyMedia. There's also a Java UPNP Server called PS3 Media Server, see:

I'm going to evaluate this when I have more time in the future, it certainly seems to be promising.

To answer your question: Yes, there's an easy way to show your data from the global zone in a local zone. You can just loopback mount it. There's an example in the EXAMPLES section of the zonecfg man page that shows you how it's done. It's something like:

add fs
set dir=/media
set special=/mypool/data/media
set type=lofs
set options=[ro]

Not sure if I got it 100% right, so check the man page. Remember that "special" is the source directory you want to loopback mount into the zone (I always mix those up :) ).

Hope this helps.


Posted by Constantin Gonzalez on September 24, 2009 at 02:15 AM CEST #

Post a Comment:
Comments are closed for this entry.

Tune in and find out useful stuff about Sun Solaris, CPU and System Technology, Web 2.0 - and have a little fun, too!


« June 2016