One year ago last week, I put the finishing touches on a new computer. I started my game plan for a low-powered device in January 2009, but I was teaching a course at the time so it wasn’t until reading week that I found three (almost) uninterrupted days to bring my plan to fruition. While I’ve seen a number of articles and blog posts about building a low-powered computer, I’ve seen only a few documenting the end result after real-world use.
Use Cases & Requirements
When I first started looking into building a new computer, I realized that my goals were quite different from those of the low-power computer builders I had been following. At the time, I had a few use cases for the computer:
- The computer needs to allow me to add hard drives; I needed to be able to add at least 8 terabytes of raw capacity, i.e., the storage capacity of the physical hard drives need to total 8 TBs — 8 000 GB, for keeping my burgeoning photo library,
- Replace the VCR in my house by recording digital OTA television (rabbit ears) using a TV tuner — some VCRs consume 30W while just blinking “12:00”,
- Run multiple virtual machines simultaneously while watching HDTV and doing #2 (no, not that #2),
- Support for Xen, and
- It would be nice to be able to have the option to play Windows games in the future.
Most of the low-power computers I had been reading about were intended to provide a few hundred gigabytes of storage, sometimes for playing high definition videos, surfing the web and checking e-mail, and similar tasks that require comparatively little computational power. The attempts that I’d seen managed to get to the 40W level to provide a few hundred gigabytes of storage, though some only went as “low” as 80W. This was achieved by getting rid of frills like video cards, which can consume upwards of 100W while idle (for example, the FirePro V8750 or the GeForce 8800 GTX SLI). But I wouldn’t consider a 40W machine intended to surf the web and store a few hundred gigabytes (or even 4 TB) to be low-powered for what they do: a Mac Mini can out-perform those computers in 15W and “net tops” suitable for using the Internet and e-mail can run on less than 5W!
In addition to these requirements, I also had a list of additional requirements, in order of priority from highest to lowest:
- Data storage and retrieval must be reliable — except in the case of drive failure, each bit of my data must be on at least two working hard drives
- All software except a possible installation of Windows and games must be at least free (gratuit), if not also open source
- Stable system
- Low idle power and economical (payoff period is 5 years ((I expect some of the hardware will break before that.)) )
To meet my first requirement, I chose to use the zettabyte file system (ZFS). I could have used hardware RAID, but ZFS provides many benefits (more on this later). However, the choice of ZFS immediately restricted my choices of operating systems (OS). Microsoft Windows was out and I was left to choose between a free OS supporting FUSE (for ZFS-FUSE) or Solaris or one of its variants. Requirement #3 meant bleeding-edge distributions like Fedora and Ubuntu were out, leaving me to choose between Debian, Nexenta, OpenSolaris, and Solaris. Because of various constraints (use #2, requirement #4, OS support for processor power-saving features, and hardware availability in Toronto), I decided upon a Debian-AMD setup. Unfortunately, use #4 and, to a lesser extent, #3, prevented the use of any of the real low-power chips that would get the computer under the 20W mark.
CPU & motherboard: Xen on AMD requires a processor supporting AMD-V; I estimated the AMD 64 X2 5200+, which supports AMD-V, and a motherboard with the 780G chipset would give me the kind of processing power required to record and play HDTV while editing photos in a virtual machine. The motherboard I looked at also supported up to 7 hard drives and 8GB of RAM. Plenty of room to grow. Unfortunately, when I got to the store, I found out that the motherboard I was considering was damaged, so I made a snap decision to get an Nvidia 8200-based motherboard. Since I didn’t own a USB mouse or keyboard, this also meant I ended up buying a new keyboard and mouse. So much for reducing waste. Also, the Nvidia motherboard I ended up with draws about 5 more watts than the 780G motherboard I had been eyeing.
RAM: I bought two slow 2GB RAM chips; in general, the fewer and slower chips used, the less energy consumed by the RAM; this resulted in less energy consumption than the slightly cheaper four 1GB RAM chip option.
Power Supply Unit (PSU): I got an 80 PLUS Silver rated PSU rated for three times the estimated load I was going to put on it. This means that no more than 15% of the energy going into my computer is wasted as heat by the PSU; a mismatch and low quality PSU could result in more than double the waste. A well-chosen PSU is like getting 20% off your computer’s electricity costs with no loss of performance!
TV Tuner: I got a random Debian-supported TV tuner that set me back about $25 and increased my power needs by 5-10W.
The setup up to this point is about a 50W draw (estimated) from the wall socket when idle, or around 40W without the tuner, for my decked-out computer. Not as low as I’d have liked.
Hard drives: A 1.5 TB Seagate drive and a 1TB Western Digital Caviar Green drive.
I ended up with a fast machine with speed to spare. Since I only allocated 2 GB of hard disk storage for my operating system and applications, most of the applications I’d be running would be in virtual machines. This means that software like the Gimp, Eclipse, and Nokia‘s Windows-only Carbide C run in my virtual machines. The computer has almost 1 TB of mirrored storage in a ZFS pool and a 500 GB un-mirrored ZFS pool for television shows — they’re expendable.
One Year Later
The operating system has been crash- and hang-free since day three. Why day three? It turns out that my video card is not fully supported: I can’t put my computer to sleep — the computer hangs. This is a big downer: that’s a lot of wasted energy. Perhaps it will be supported by the next release of Debian. Here’s hoping. I also crashed my computer a few times before I got Xen to work with my video card. Unfortunately, using Xen on my computer means I can’t use any of the computer’s power saving features at all. I’ll hold off on Xen until that’s fixed. Iceweasel, Debian’s totally free incarnation of Firefox, has crashed a few times. So has MythTV. The only other unexpected issue in terms of power consumption is that the hard drive on which my OS resides cannot be put to standby for some reason. Fortunately, my OS is on the lower-powered of the two drives installed, but that was a fluke.
My computer uptime has since been interrupted on only one occasion: a contractor flipping circuit breaker switches for my house randomly. You might expect that with my goal of data safety, I’d have some sort of backup power for the computer. Not this time. I trust that my data is safe between ZFS and surge protection. I’ve sent enough old uninterruptible power supplies (UPSes), dangerous chemicals and all, to the great dumpster in the sky.
In the last year, I managed to fill my mirrored storage to about 90% capacity. Considering that a single evening of sports photography results in about 1000 pictures which translates into about 35 GB of data (about 3.5% of my total capacity), that was not surprising. Now, it’s time to increase capacity. Since I want duplicates of all my data, that means I need to buy two hard drives… right? No! With the magic of a ZFS I only learned about last week, I can buy a single 2 TB drive and grow my storage capacity by 1 TB, fully mirrored. But, since I don’t need that much extra space at the moment, I’m going to grow my usable capacity by 500 GBs — more on this in a later blog post on reliable storage with a proposal for greener storage. I’ll have a total of 4.5 TBs of raw storage and 1.5 TBs of usable (mirrored) capacity. That is why my initial system requirements included provisions for at least 8 TBs of raw space.
Was it worth it? I’ve now consolidated a VCR that was formerly always on into my computer. I’ve doubled my energy usage over my old VCR, but when I watch TV, I can skip commercials in seconds. I also watch on a small LCD monitor which, though LCDs are still energy hogs, is better than the larger CRT television from the 70s or 80s that it replaces. I’ve also gained many new features and kept external hard drive enclosures out of the landfill. Yes, I think it was worth it, but I could have done better.
This was my first attempt at building a low-powered computer. My first mistake was to try to satisfy so many requirements with one computer. This severely reduced my options. I may have been better off scrapping/weakening some of the requirements. I ended up with a computer that has so much excess computing capacity that it rarely hits 50% utilization even when it is in use. That leads me to…
Mistake #2: I overestimated my needs. In retrospect, 4 GB of RAM was excessive. I could have put in only 2 GB of RAM with minimal performance degradation. That would have been a triple win: I could save money by not buying the extra RAM chip, saved a few dollars on electricity each year and, most importantly, reduced my carbon footprint by almost a whole tree.
Mistake #3: Not realizing hardware compatibility lists (HCLs) do not necessarily encompass compatibility with power saving features like putting video cards to sleep without hanging the computer. That’s an unnecessary carbon footprint increase of 8 trees — that is, the computer is consuming more than 3 times as much as it should by being on all the time, instead of being asleep 70% of the time or more.
Mistake #4: That issue with the hard drive with my OS not being able to be put to sleep? I should have installed my OS to a compact flash (CF) card. While a small card might set me back $20 or so, it would pay itself off in about 2 years by allowing my mechanical hard disk to sleep. Environmentally, the payback in Ontario happens within one year of operation. My current hard drive has a footprint of 2 trees-worth of carbon absorbing power.
Stay tuned for my post on reliable and greener storage.
Update: I have since started running a mixed Debian installation with the “testing” Debian Squeeze release and some bits of Debian Sid. Sleep mode still doesn’t work, but at least the computer can now shut itself off, schedule its next wake-up, and be woken up in between whenever I need to access the contents of the hard disks.