This is a brief history of my hardware selection for my OpenSolaris NAS server. The case, power-supply and choice of disks have remained constant, but I have gone through 3 motherboards in total since April 2006, and I will list my regrets for each.
The first motherboard I tried to use was the MSI 915 GM Speedster, which is not one of their consumer boards but instead a part of their server/workstation lineup. It is a microATX board that uses the mobile 915GM chipset, and therefore supports mobile CPUs like the Pentium-M and Celeron-M lines. I scrounged a few of these off eBay for cheap. Aside from its price, this was a reasonable motherboard at the time, but early versions of Solaris and OpenSolaris didn’t seem to support its dual Marvell gigabit ethernet chips at all.
Now, nearly 18 months later, support for these ethernet chips is probably already baked in, but I still cannot recommend this board as MSI has stopped supporting it. My first board was also DOA, and there is a rather serious error in the documentation of critical jumper settings, which may have contributed to its failure.
While I was waiting for the 915GM to be replaced, I acquired a MSI 945GT Speedster, which is somewhat obviously based on the more modern 945GM chipset. This mATX board accepted Core Solo and Core Duo CPUs. It is still sold, but I have not been able to determine if they’ve added support for Core 2 Duo chips. In conjunction with a Core Solo T1300 from Craigslist, I ran Solaris Nevada build 56 on it until about 2 weeks ago. The main problem with this system was that it was very picky about the brand of DDR2 memory that it would support. It took me a few tries to get some that would work. This machine would idle at 60 watts when the RAID drivers were all spun down, which isn’t so great but it was relatively low.
Recently, I had decided to see if the latest G0 stepping of the standard Core 2 Duo chips (E2160) could be brought down to similar power levels using a more standard board, since in the C3 state they draw very little power. I picked the Gigabyte GA-P35-DS3R, mainly because it had 8 SATA ports instead of the 4 I had previously. The other angle I was playing with was to run without a video card. Fortunately, this model has a serial port and boots happily without a video card in the PCIe slot, and OpenSolaris can be made to run fairly easily over a serial console. Prior to installing this board, I was able to get idle power draw down to 46 watts using Windows and Ubuntu 7.10. Nevada 76 was more like 53 watts, but given it doesn’t yet have all the tickless kernel and other Intel power saving tweaks of the latest 2.6 Linux kernels (see http://lesswatts.org), I was pretty happy.
But when I mounted it in place of the 945GT, I found that the power consumption was about 10 watts higher. This was apparently due to differences between the two power supplies that I used, even though the first set of numbers were from a 380w Seasonic rather than the 330w Seasonic that is in the NAS case. Normally a higher-powered supply would not be in it’s 80% efficiency range until the system drew more power, but in this case it was more efficient. This is still a mystery, and may be due to just differences in manufacturing batches. And unfortunately, the 380w supply would could not successfully boot the system once all the RAID disks were attached, which is also somewhat mysterious. So I stayed with the 330w model and the slightly higher power consumption.
The bottom line is that today’s desktop CPUs render the old mobile-chip-on-a-desktop approach somewhat useless. In particular, AMD’s BE line of 45w CPUs might be even better than the Intel line. A lot of the variables lie in the motherboard chipset and power-supply as well, which is probably why my old Terastation can draw 40 watts maximum with 4 drives spun up … its PowerPC system is probably taking 10 watts or less.
Let me describe some of the other aspects of the system:
I’m using ZFS’s RAID-Z setup across 4 Western Digital 400GB RE2 drives. These are supposedly more industrial strength than the consumer drives. So far I have no complaints, although they do run a bit hot.
BTW, I was operating under the mistaken assumption that with 8 SATA ports, I could add 4 more drives to this array to grow its capacity, but I recently learned that you cannot add drives to a RAID-Z array, only add more drives to the same pool (perhaps 2 in a mirrored setup, or 4 in another RAID-Z setup). If I want to increase the capacity of the existing array, I would have to replace drives one at a time with larger capacity drives, and wait for it to rebuild the contents of the new disk. Repeat 3 times and you’re done.
There is a fifth disk in this system, an IDE drive that contains the OpenSolaris operating system. My ultimate goal is to boot the OS from a USB memory stick, just to end up with fewer moving parts and hopefully less power draw. There has been quite a bit of progress in this area by various folks, particularly to support having a Live CD, but I haven’t invested the time to learn how to trim down the set of packages. My model for this would be FreeNAS, a FreeBSD distribution for NAS appliances designed to run off a USB memory stick, with the trick being to not wear out the NAND flash by loading everything into a RAM disk and only mounting the USB stick read-write to update critical configuration files (if you change settings via the Web admin console).
The final component in the system was the Antec P180 case, and the aforementioned Seasonic 330w power supply. Both were picked because of their low-noise characteristics, and I have to say the only time I hear the server is when the disks first spin up when I access the RAID array.