I thought I'd do a little write up of my two-year project for getting an energy-efficient NAS and general purpose server running. I say two years, but during that time I only worked on it during the rare moments when I was really bored.
Anyway: let me elaborate on what I wanted. The main purpose of of the NAS would be data storage (duh), but I also wanted a fully functional system that could run things like revision control services, a nightly email backup, or whatever. So I needed a general purpose operating system.
Given that I wanted power usage as low as possible the embedded systems (i.e., ARM) market was the obvious place to look. Nobody seems to sell general purpose operating systems on NAS hardware, so I started looking at devices that could be rooted and flashed. I eventually decided on the Seagate GoFlex Net:
(Drives not included.) This puppy has a LAN port, a USB port and two powered internal SATA ports, which played into my hands because if I had had to go with external drives that would have meant more wall-warts, and that's bad for power efficiency and it increases my irritability. The GoFlex Net retailed for something like $50 at the time.
Seagate left the door open for reflashing by offering root access, which is a major selling point (I offer this as advice for any manufacturers listening in). There is an active community for the GoFlex (and similar ARM devices) that provide step-by-step guides for reflashing the device and installing debian or Arch Linux. The process is easy enough, and along the way I learned plenty about the uBoot bootloader after making mistakes. The GoFlex can boot from either a SATA or USB drive after reflashing.
The GoFlex's SATA ports allow you to connect any SATA drive, but only Seagate's special GoFlex drives fit snugly and securely. To get around this I bought internal SATA+power extension cables for $1 on Ebay, which allow my drives to be mounted elsewhere.
Then I hit a major obstacle. The GoFlex wouldn't power my 3.5" drive! While researching the GoFlex I missed the fact that it can only power 2.5" devices: +5V only. As it turns out, even though the power supply provides +12V, Seagate hadn't hooked up the +12V line to the SATA power connectors. Possibly they had doubts about the power supply, or perhaps because their 'GoFlex' business strategy didn't involve 3.5" drives.
I was very excited to read about a hack to get the +12V line connected to the SATA power connector:
The downside here was that it requires taking the device apart and to do some soldering, which I hadn't done in at least a decade. I eventually decided to try it and bought myself a soldering iron. The soldering itself was fairly easy, but the GoFlex board fit so snugly in the casing that it was difficult to get it back in. With persistence and patience I won the battle in the end, but only to discover the GoFlex had stopped working altogether. After a lot of dis- and reassembling I finally realised that my new +12V solder points were making contact with the heatshield. The solder points were quickly masked and everything was ready to go. And I'm not ashamed to tell you that I was more than a little surprised to find that the 3.5" drive I hooked up actually spun up and worked as expected!
During disassembly I had unhooked the front capacity indicator LEDs, and decided to keep them that way because I have no use for the indicators. This dropped power usage by 1W! So here are my power measurements at the wall, with note of the devices connected:
- USB stick: 4W
- USB stick + WD10EADS, idle: 7W
- USB stick + WD10EADS, read+write (data sent over network): 9W