Eco responsible power friendly small home server (part 2)

By , October 5, 2009 04:37

A long time ago, I did write about my small new home server. You can read all about that at:

Meanwhile some changes have been done to the system. Yes, I needed to buy the 90W PSU (although I now know how much Watt the system really uses, I’m curious, why that was really needed, but it sometimes did crash with the 60W PSU and that’s gone, now, that I have the 90W PSU, so I assume, it must have had to do with the 60W PSU. Or on that specific PSU, but the dealer refused to change it, as it is running. More on Wattage later).

I also did change the passive heat sink on the CPU to also be a ZALMAN, safe is safe (see image). And with that, I now have the case put on the small side, which in the image is below, so that the heat can exit through the two case openings, which are now at the top. No fans any more in the case… Quiet!

More importantly, I did also replace the CF card by a real disk, as that only uses 1.8W at load, less, if not in use. I did buy a 1.8 inch Toshiba disk (those, that are used inside the iPods, in my case a TOSHIBA MK2006GA) plus two converters (3.5 -> 2.5 and 2.5 -> 1.8) and placed the disk inside the cabinet (No part numbers here, and no distributor, as I bought them on german eBay. Overall disk + two converters were around 40 EURO). The main reason for this change is the fact, that the CF card was really slow, and that 8 GB weren’t enough to perform Live Upgrade (and now maintain different Boot Environments) (I now have 30 G in the rpool, for swap, crash and all the rest).

I also updated the OS.. 😉

Now, I did install OpenSolaris 2009.06 from an image on a usbstick, that went really smooth, no changes needed. And, after that, I upgraded to the actual dev build, which this weekend was build 124…

One more change hardware-wise: I also added two more 1 TB disks, because I had a nasty failure of BOTH external power supplies of the WD disks over the same weekend some months ago… Rendering me without storage… So, I decided to mirror across different types of disks, so I bought two no-name 1 TB external USB disks (which have Hitachi SATA disks in it). WD quickly sent new PSUs, great service, and they admitted, that those PSUs were faulty… They had many such failures…

With the new setup of the disks, I had a different problem: The new disks did not do power-save by themselves, whereas the WD disks did fall into power save. ZFS does not have any clue about power management of the disks, it assumes, that that is done by the underlying elements. The problem here resulted in a DEGRADED zpool, as one disk of the mirror was not available…

The solution is simple: Have an entry for every disk in /etc/power.conf so that the powerd takes care of that. So here’s my /etc/power.conf:

device-dependency-property removable-media /dev/fb
autopm enable
autoS3 default
system-threshold 900s
cpu-threshold 1s
# Auto-Shutdown Idle(min) Start/Finish(hh:mm) Behavior
autoshutdown 30 9:00 9:00 noshutdown
device-thresholds /pci@0,0/pci8086,464c@1d,7/storage@1/disk@0,0 900s
device-thresholds /pci@0,0/pci8086,464c@1d,7/storage@2/disk@0,0 900s
device-thresholds /pci@0,0/pci8086,464c@1d,7/storage@3/disk@0,0 900s
device-thresholds /pci@0,0/pci8086,464c@1d,7/storage@4/disk@0,0 900s
device-thresholds /pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0 900s
cpupm enable

Then there was the problem, that the WD disks did not reveal different devid strings (that problem had been brought to my attention by a colleague of mine), the string was the same for all WD disks. You can check that by running (as root):

bash-3.2# echo '::spa -c' | mdb -k

and compare the lines that contain devid. In my case that was:


So I did open a bug, and got a pre-fix, that will come to OpenSolaris and Solaris soon. The fix fixes the way the scsa2usb driver handles disks that do not correctly report page 80 or page 83 scsi inquiries (which many USB don’t do right!). So, now with the new scsa2usb driver the output looks like:


That makes for four uniquely identifiable USB disks. Which is a good thing, as now the ZFS stack can in case additional infos get lost still uniquely address the disks, and not treat one for the other! That would render the data corrupted, in case all other infos might get lost. Rest assured, ZFS not only checks for the devid string, but the devid string is the last resort if all else fails…

Until the final fix (bug is in fix-delivered state!) will be out, there’s a workaround. Quoted from the workaround section of bug 6881590:

For the issue of devid not unique due to page 83 data, it can be a workaround
by setting the similar lines as below in sd.conf, which enforces sd to ignore
the vpd page data and fabricate a devid.
for x86:
sd-config-list="VendorID+ProductID","sd-ver1-tst-data";sd-ver1-tst-data= 1,0x00004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
for sparc:
sd-config-list="VendorID+ProductID","sd-ver1-tst-data";sd-ver1-tst-data= 1,0x00008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

For rare cases, if I would need to reinstall my system, I keep a log of all steps performed, so if I would need to install from scratch, I would end up at the same stage. Here’s that script:

# Install OpenSolaris 2009.06 from media (CD, USB stick, whatever)
# After install, perform:
pfexec su –
svcadm disable nwam
svcadm enable network/physical:default
svcadm disable sendmail
vi /etc/hosts
vi /etc/defaultrouter
vi /etc/hostname.rge0
vi /etc/ethers
vi /etc/power.conf
vi /etc/inet/ntp.conf
svcadm enable ntp
crontab -e # (to add: 0 3 * * 3 /usr/sbin/zpool scrub rpool)
pkg install SUNWsmba SUNWsmbfskr SUNWsmbs SUNWsmbskr
svcadm enable smb/server
vi /etc/nsswitch.conf
hosts: files dns mdns
ipnodes: files dns mdns
smbadm join -w PFUETZNER
vi /etc/pam.conf
# Manually added for kernel CIFS server in workgroup mode
other password required nowarn
passwd pfuetz
passwd root
svccfg -s idmap setprop config/default_domain = astring: PFUETZNER
svccfg -s idmap setprop config/ds_name_mapping_enabled=boolean: false
svcadm refresh idmap
# install new scsa2usb driver
# Then, for the upgrade to work, I prefer to do it by hand, so:
pkg set-publisher -O
pkg set-property flush-content-cache-on-success true
# Every Update:
pkg refresh –full
pkg install SUNWipkg
pkg image-update –be-name buildXXX
beadm activate buildXXX

And for the setup of the CIFS/NFS shares on ZFS, here’s what needs to be done (assuming, you have a zpool named “pfuetz” 😉 ):

zfs create -o casesensitivity=mixed pfuetz/smb-share
zfs set sharenfs=root=@192.168.2 pfuetz/smb-share
zfs set sharesmb=on pfuetz/smb-share
zfs set sharesmb=name=smb-share pfuetz/smb-share

Power usage:

I’ve been testing the power consumption of the system alone, with no external USB disks. It uses 39 W. With the external four 1 TB disks the power usage goes to 72W, when the disks are awake, but not doing anything. If the disks are under load, the power consumption goes up to 80W. If the disks fall asleep, the power consumption goes down to 63 W.

Lessons learned so far:

There’s one additional lesson: The “zpool scrub” for the 2 TB mirrored disks takes 16 hours. So it might be a good idea, just for power savings to really use SATA disks internal to the server, and not external. That also would solve the devid problem. And also would solve the power management problem. And even safe money, as the scrub would be finished in way less time.

So here, finally the image of the “actual interior”:

I hope, these additional infos might help you in determining, what to build as a small home server. You might also check Jan’s or Constantin’s blog, they also have some insights!


6 Responses to “Eco responsible power friendly small home server (part 2)”

  1. JuergenL says:

    Hi Matthias,

    well done!

    I build an OpenSolaris NAS (2009.06) as well some weeks ago.
    I copied the concept of Adam Retter, (, but use Samsung Spinpoint F1 disks and run "only" raidz1 on them.
    And it was much cheaper than Adams bought.

    My NAS consumes around 50 to 55W with low load, didn’t have high load until now. Transfer rate is 65MB/sec local (measured with dd), not bad.
    This solution is in fact missing ECC memory. Hope it will not fail with mem errors.


  2. Thanks, Jürgen,

    when I started this idea, I only wanted to use two disks, that’s why I did choose the mirror option… Now, with the 4 disks, I might also do the RAIDZ2, but still, mirror seems a bit safer… 😉

    Enjoy your Home-NAS!


  3. Ron Watkins says:

    Matthias, im impressed that you managed to get Solaris working on an Intel Atom. Is the comments in this post sufficient to get it working or is somthing more involved needed? Is there a doc somewhere with all the install/config notes for Atom put in one place? I would like to give the Atom a try if I think that I have all the right notes on how to do it. Im interested in a small home server 24/7 with NIC and raid protected HD to share luns/fs to other PCs, monitor the house and environment. Low power is important to me, since it may run on batteries powered from a solar power if I can get it low enough…

  4. pfuetz says:

    I also wanted to answer to your question on, so I’m glad you found my page… 😉

    Yes, OpenSolaris (and the older Solaris Express Community Editions) do qork strait out of the box on ATOM, no need any longer to tweak anything. I don’t know exactly about Solaris 10 (as that was, what you were asking for in But: For a small home-server I would prefer to use OpenSolaris, as it simply has more up-to-date drivers.

    The only uncertainty I have right now is the NEW ATOM CPUs (D510, D410), as they do have a NEW Northbridge (called M10). I have no idea up to now, if that will be working, but my assumption is: Yes, if not on day one, then at least some weeks later…

    OpenSolaris treats the ATOM CPU just like any other x86/x64 CPU, so it’s as easy as:

    Use the .usb image from, put that on an USB Stick, and have the ATOM System boot from the USB stick. Then doubleclick on the install-icon, and bob’s your uncle…

    Still: Depending on the type of MOTHERBOARD you are going to buy, there might be some small changes as to Network Card or graphics card. But: Up to now we always managed to get OpenSolaris running on nearly every x86 type setup…

    So, if you still have questions, feel free to email me…


  5. […] weeks ago, my small home-server died (I assume, of heat, but am not sure, as it had been running more than a year without glitches, […]

Leave a Reply

Panorama Theme by Themocracy