Home server

This is the story of my home server, which is serving these pages for you to read.

Back in early 2007 a colleague offered to give me an original, still-functioning Shuttle SV25. These were the grand-daddies of the Shuttle family; the first of a new breed - the small form factor (SFF) computer. In their time they were ground-breaking, and I'd always wanted one, but at the time I'd never been able to afford one. I also found myself in need of a small, quiet, low-powered machine to turn into a server for my house, which I could sit on my bookshelf above my desk, next to my printer, and leave running 24x7. Serendipitous, or what?!

Front view of server

I was warned that it came without floppy or optical drives, and the installed hard drive was starting to exhibit errors, but what are such things when you've always wanted one? So I took it home and hooked it all up. And then the problems started.

The main problem was that in its original condition, this was a very noisy (and hot) little box, and I wanted it to be as near silent as possible. As far as I can tell, it was one of the earliest machines, with a Pentium 3 1.2GHz Tualatin, with a standard CPU heatsink/fan combination. In fact, 3 fans ... a 40mm in the PSU, a 60mm on the heatsink, and another 60mm on the case. And none were particularly quiet. The PSU fan in particular was a screamer, so I swapped that for a new Scythe one. The CPU heatsink fan was a high flow rate design, that ran at high speed and produced a lot of air and mechanical noise, so I swapped it for an Acoustifan, but the airflow noise from it was still way too high to be bearable long-term, and the CPU temp jumped 19c (to 55c) at idle ... not a good indicator for likely performance under load on a warm day!

I also noticed that some of the capacitors on the motherboard were showing signs of leakage. It turns out that this is not uncommon, and is generally not a "good thing" (tm). Taking all this into account, I decided I needed to "upgrade". My expected use for the server was as a NAS, for streaming MP3s, and acting as a backup server for my other machines. But, since it would be running 24x7, it would also need to run a bunch of other (relatively) low use servers eg Web, ftp, Jabber, Mail, SIP, print, slimserver etc. My main design goals were reliability, silence, and low-power consumption (have you ever worked out how much it costs to leave a computer running 24x7?!) As far as I could see, nothing that I expected to do with it would require a lot of compute ability. So I started investigating motherboards that could meet my needs, and still fit into the shuttle case. Mini-ITX was the obvious choice. After a little hunting around, I decided on the Jetway J7F4, using the passively cooled 1.2GHz Via C7 processor. Unfortunately it transpired that the passively cooled version of this board wasn't terribly reliable, and there were a lot of reports of early failures of the board on the internet, so I eventually went for the fanned 1.5GHz version instead. Fortunately the motherboard mountings were completely compatible with the shuttle chassis.

It started out with an 80Gb laptop SATA drive for the boot drive, and a pair of 500GB Samsung HD501LJ SATA drives running in RAID 1 for my "valuable" data. The drives were all suspended on shock cord to reduce vibration and noise.

Right view of server

The old PSU was replaced by a 120w PicoPSU, and an external power brick. The 40mm CPU fan on the motherboard was replaced with the 40mm Scythe that I had tried to silence the original PSU with. The original case fan was replaced by the Acoustifan, soft-mounted, and undervolted to 5v. This picture shows the back panel from that time:

Back view of server

I had to do quite a lot of metalwork to make it all fit. You can see I had to attack the back panel to get the new mini-ITX back-plate into place. This left practically no material, so I had a devil of a job supporting the chassis while cutting it. I then made up a new panel to cover some of the existing holes (part of the disk caddy aperture, and the IEC power socket) and restore some of missing strength to the chassis. The socket on that new panel is for the 12v DC input from the external power brick. Since taking this picture I have removed the grill covering the back panel fan, which significantly reduced both the internal case temperature and noise level.

Top view of server

Internally I had to remove most of the drive cages to get the drives in and suspended. I left some of the drive cage at the front of the machine to allow me to attach a CrystalFontz drivebay LCD/keypad kit at some point in the future. At this point I installed Ubuntu Server 7.04 (Feisty Fawn) and ran the server for a while.

About a week into running the server, the 2.5" Seagate "boot" drive (the lowest in the stack) failed. Lots of unrecoverable errors, and then a complete failure to spin up. Since this held the OS, this took down the whole server, and I lost all my software installation/configuration work. My supplier RMA'd it, and sent me out a new one with only a couple of days turn-around, but I'd lost several evenings work at a stroke. Although I doubt this failure was anything to do with the way I'd used the drive, I set up a bunch of temperature monitoring/logging, and some cron scripts to shutdown the entire system if any of the temps ever went too high.

But another couple of weeks in and I'd already seen filesystem corruption on that replacement drive too, along with some strange "clicking" sounds from the drive. The drive temp had never been beyond a peak of mid-40ish celcius (under heavy load) and SMART reports showed that the drive was working fine, but it was clear that there had been some problems. To say that I was then suspicious of this replacement Seagate drive would be an understatement. Meanwhile the big 500GB Samsungs have been performing flawlessly. So I did some more measuring, and went back and reread all the specs again. And then I replaced the Seagate with a 3rd 500GB Samsung.

Space was incredibly tight. So much so that I had to make up some brackets to hold the drives in a tight stack with 1/4" airgap between each of them. The whole lot was then suspended in a similar manner to before. The Pico PSU was fine with the normal load (around 45w), but it runs my AC-DC brick close to its maximum (102w) for the 15 seconds or so while the the three drives are spinning up. I reinstalled the whole system (OS, Swap and data) onto a combination of raided partitions across the three drives to build a completely disk-fault tolerant system. In theory I can now lose any one drive and the system should continue running. The extra drive allows me to use RAID5 too, so I now have 1TB available for data rather than just the 500GB I had before.

Interestingly the temperatures of the drives dropped when compared to the old arrangement. I think this was because the aluminum brackets that held the drives in a stack were acting as a simple heatsink, and helping to cool the drives. Case temperature was (unsurprisingly) up a couple of degrees, but still generally in the low-mid 30's celcius. Noise levels are basically unchanged.

So, better than before, but still running a bit warm. So since then I've removed the (unused) drive bay blanking plates, and replaced them with aluminium mesh. I've also added a switch to the case fan power supply, with some drop resistors, allowing me to select the voltage (and hence the fan speed). Even on the slowest fan speed his dropped the internal case temperatures significantly. You can see a record of the last months temperature recordings here.