OpenSolaris ZFS Home Server Reference Design
When I blogged about my OpenSolaris Home Server a while ago, little did I know that this would become my most popular entry in my old blog!
In fact, R.G. was so kind to call my setup "perilously close to being an AMD reference design". Thanks, R.G.! Read about his final setup here. And BTW, if you're into e-guitars, check out his GEOFEX page, a great resource for guitar effects.
So let's review our reference design and discuss some modifications to better suit your needs:
A Popular Design
In fact, quite a few people replicated this configuration, including Gregor, Jan and about half a dozen other people who emailed me about their experiences with this setup, plus a fair amount of discussion on the zfs-discuss mailing list.
- CPU: AMD Athlon II X2 240e. Dual-core, energy-efficient, supports ECC.
- Motherboard: Asus M3A78-CM. AMD chipset, 6 SATA ports, integrated graphics.
- RAM: Kingston 2GB 533MHZ DDR2 ECC. ZFS likes ECC.
- Extra NIC: Intel PRO/1000 PT Desktop Adapter.
- Case: Antec NSK1380 µATX. Small, silent, 4 drive bays.
- Boot disk(s): Samsung SpinPoint M6 HM251JI, 250 GB, 2.5". The 2.5" form factor saves space.
- Data disks: Samsung EcoGreen F2 1.5 TB and/or Western Digital Caviar Green 2TB SATA drives.
- Boot disk mount: Scythe Slot Rafter. Converts two free PCI slots into 4 x 2.5" drive bays.
Experience So Far
This server has been happily working in my basement for more than half a year now, no crashes, rock-solid.
Power consumption in idle mode without disks (assuming they're spun down) is around 45W. Even at high load, the Watt-meter didn't seem to go beyond 80W. No signs of thermal issues, although I haven't found a good method of measuring temperature online (Unfortunately, OpenSolaris doesn't support older ACPI versions very well).
A few people came up with some modifications:
- The motherboard supports a wide range of AMD CPUs. If you want something more powerful, then you can use a 3 or 4 core Phenom. If you're on a budget, a smaller Athlon will work well, too. OpenSolaris should support any AMD CPU, although you want to pick one of the 0x10 family (any recent one) for PowerNow! compatibility.
- Unfortunately, the motherboard has been discontinued by Asus, although it still can be found in a variety of places. Some people reported success with Asus M4A series motherboards, so if I were to build another home server, I'd pick an M4A one with 6 SATA ports. Of course, other AMD motherboards based on AMD or NVIDIA chipsets should work well, too, but it's best to check the HCL or with someone who has already installed OpenSolaris successfully.
Matthias has been trying out Intel Atom boards lately and he's fairly happy with them, but I'd still argue for an AMD one because of ECC memory support at low cost with good power-efficiency, which is quite difficult in Intel-land.
- The only reason I bought the extra NIC was to avoid any possible issues with the on-board RealTek networking chip. But meanwhile, several people have reported that on-board networking runs fine, so the extra network card is really optional.
- The case is a bit crowded and I had to saw off half of the Scythe Slot Rafter to make space for a 3rd disk. If you're less space constrained, you can pick a much bigger and more comfortable case.
- You can use any disks you want, ZFS will be happy with any model. Just make sure you configure some kind of redundancy (i.e. mirroring or RAID-Z/Z2/Z3) and have replacement handy when your disks start breaking.
It's wise to separate your root pool from your data pool for several reasons. Since you don't need much space for the root pool, any pair of mirrored 2.5" notebook type disks are sufficient. If you want to max out on number of disks, use the board's IDE ports for boot which will leave you with 6 SATA ports left for your data pool.
It also seems to be a good idea to mix drives from different manufacturers. This minimizes the probability of multiple drives failing at the same time.
As you may know, I prefer mirroring over RAID-Z because of the higher flexibility and simplicity. My data fits into a single pair of mirrored drives and my hot-spare is really a third mirror half with a higher capacity (2TB vs. 1.5TB). When the smaller disks fail for good, the pool will be upgraded to the higher capacity quite naturally by buying a second 2TB drive and getting rid of the 1.5 TB ones.
Spreading OpenSolaris Home Server Designs
During an email discussion with R.G., we found that the biggest issue with adopting OpenSolaris is the lack of good, reliable reference designs for home server hardware. I hope this configuration continues to help solve that problem and I have a couple of ideas on how to do more in this space.
But here comes your part: If you've built your own OpenSolaris server, then blog about it and send me a link to your entry. I'd be glad to link to you.
Better yet: Let's build a network of OpenSolaris home servers!
The other big issue that surprised me was that OpenSolaris is still perceived as being hard to learn. Most of this is probably caused by pure habit (i.e. many people used to doing it the Linux way vs. fewer people familiar with the Solaris way, both equally complicated but one of them simply more widely spread).
Still, some things in OpenSolaris are more complicated than necessary, but that's being fixed quickly. Here are some tips to get you started.
Building an OpenSolaris home server isn't hard, it's just less well documented than for other operating systems. As OpenSolaris becomes more and more popular, this issue will be fixed soon. In fact, you can help, too by publishing your own OpenSolaris home server configuration and experience!
Have you build your own OpenSolaris home server? Blog about it. Send me your link. Or share your configuration and experience in the comments section below. Help others do the same!
The component links above are Amazon affiliate links. Don't worry, they won't cost you a dime and they won't make me rich either. With some luck, they can help pay for the cost of hosting this blog, but at the moment they're really an experiment to me.