Sunday, 21 March 2010

"AURORA" Server Build

(This is a post moved from my old Blog, before the service there is decommissioned.)


For the last few years, my rig has slowly been accumulating hard drives.  But with a 2x320gb raid, 2x750gb & 2x1tb for storage, I've finally run out of room for any more.  And at this point I have to unplug one of the HDDs every time I want to use my DVD drive.  So, it was time for a server.

I had a few criteria a server would need to fill:
  • Low Power Consumption - as it will be switched on most of the time.
  • Affordable - it needs to be better value for money than a NAS.
  • Expandable - I just want one server.
  • Portable - It needs to be easily carried to LANs.
  • Flexible - if it can also act as a print server and torrent box, even better!
  • Headless - I need it to work with only a network connection - it doesn't need K, V or M.
  • Cooling - it needs to stay cool in a fairly cramped environment, even if it's running 24/7.
  • Looks - The world doesn't need more cases hacked together in an afternoon by any noob with a dremel.


So, after a few weeks of looking, I decided on the following:
  • Intel D945GCLF2 mITX Motherboard - $101
    • Integrated Dual-core Atom 330 CPU
    • Gigabit LAN
    • 1x PCI slot
  • 1GB DDR2-800 RAM
  • Silicon Image Si3114 4-port SATA PCI card - $17
  • Rebadged Seasonic SS-300W SFX PSU - $35
But after looking and looking, I couldn't find even a half-decent compact case for under $100.  So, I decided to make one.  Using an Aluminium Attache' case, a damaged HTPC case and a dremel, I managed to make a case I'm quite happy with.

The attache case consists of a hard aluminium outer shell and frame, with 2-ply wooden panels and a foam interior.  I started out by removing the panel that would be the rear of the case, holding the MoBo back panel and SFX PSU.  After putting the panel back in, I realised it wouldn't hold the weight of the PSU at the top, now that I'd taken such big squares out of it.  So I reinforced the panel with a length of 13mm Aluminium square section, running along the inside corner.

Next, I cut the MoBo tray out of the HTPC, and fitted it into the case, using some M3 screws into each end of a 12mm long M3 threaded spacer.  All these screws were fitted with silicon washers to reduce noise and vibrations.  To aid with cooling, I dremeled a large air vent from the HTPC case and spray painted it the same shade of silver/chrome as the aluminium.  Then I removed the bottom panel, and cut a large square for the vent, which is now the air intake for the server, with the PSU acting as the exhaust.  Next, I installed a power switch and a couple of LEDs in the front of the case, and soldered on some long wires to reach the MoBo header.  When the server is on the green LED lights up, when it's sleeping the red LED illuminates, and when it's off so are both the LEDs.

The final step was to mount the HDDs.  I considered using a couple of thermaltake iCages, but that would have cost ~$60, and without external airflow they would probably have heat issues.  So I decided to build a cage to hold 6x3.5" drives myself.  Using 13mm aluminium square section and 12mmx25mm aluminium right angle, I built a cage capable of holding six drives with a gap of about 2cm between each drive.  Since the drives themselves are wider than the open case, I had to make sure the support running down the side of the cage were exactly the same size, so the cage would sit firmly on the panel when the case is closed.  The cage was designed so that it can be screwed into the case, but the measurements were good enough that the pressure of the foam holds it in place without any other mounting required.  It also isolated the drives from transferring their noise and vibrations into the case.

So here it is, the completed build, empty.  Isn't she beautiful?! :)

 And with the hardware installed:


The software for AURORA was fairly straight forward.  All a server really needs is an OS.  The programs are just for some extra functionality.

Thanks to MSDN, I was able to get a free legit copy of Microsoft Windows Server 2008 R2. I was originally planning to use Ubuntu, but Server 2008R2 worked right out of the box, when Ubuntu would have required me to set up samba for windows file sharing, and VNC on the server and any machine I want to use to connect to it with. Also, windows server uses the NTFS file system, which means if my server dies I can just take the drives out and they will still work fine in my windows based PCs. The other thing that swayed me was the fact that I can use all the features of uTorrent and StrongDC in windows, while their linux counterparts have more bugs and fewer features.

So, with Windows running, I simply set up file sharing on "//AURORA", with read-only access available on all drives (except C:\), and write access available to my user. This all works fine in a workgroup, without setting up a domain, which I was quite happy about. If you want a specific user to have access to a specific file, you just set up an identical user on the server and apply the sharing permissions to that user.

To add some extra functionality to the server, I installed uTorrent 1.8.5 (should probably upgrade to 2.0 now), so I can download without leaving a noisy PC running all night.  The watch folder feature is great, as I can just download the *.torrent file to a certain folder on the server, and it will automatically download as soon as my off-peak quota starts.  I also installed strongDC++ so I can download/upload all the 'Linux ISOs' at LANs.

I also installed SpaceMonger(similar to Disktective) to easily see where the space is being used on a drive.  Great free tool!


So, did this set-up meet all of my aims?

  • Low Power Consumption
The Atom CPU/MoBo is a great cornerstone for building a power efficient PC.  In spite of its low clock speeds, the performance is about on-par with a mid-range Pentium 4, which is probably due to the dual cores with hyper threading.  The lack of perhiperals also helps.  Finally, the server sleeps after 3 hours idle, and can be re-started remotely, thanks to the motherboards, Wake-On-LAN functionality.
  • Affordable
The average single NAS enclosure comes in at ~$90.  For only twice that, I have a 6-bay NAS which can also download torrents, share on strongDC, and act as a print server.
  • Expandable
Well, there is currently 1x750GB, 2x1TB and 1x1.5TB in the server, for a total of 4.25TB, with two bays remaining.  I can easily upgrade to 7.25TB, simply by adding 2x1.5TB drives.  And if I was building it from scratch I could manage 16TB, by adding a SATA->PATA adaptor, modding the HDD cage, and only using 2TB drives.  Not bad for a server costing less than $200.
  • Portable
Well it's a bit heavier now that it's full of hardware, but that's to be expected.  The case is totally fine being carried around by the handle, and everything inside is quite secure.
  • Flexible
It's a file server, print server, and torrent box.  It will also play back anything below 720p video fine (720p is slightly off, and 1080p is terrible).  Plenty flexible for me!
  • Headless
I only needed a keyboard, monitor and mouse to set it up.  Since then it's been administered entirely through Remote Desktop.
  • Cooling
The drives furthest from the intake vent do get a little warm, but not hot enough to cause any damage.  The cage is actually a pretty good conductor, moving heat away from the hot bits.  In the future, if I do fill all 6 bays, I might need some additional air intake for those top drives.  The 40mm fan on the MoBo is going to need replacing, as it's quite noisy and obviously low quality - bad call by Intel.  A low-CFM Noctua is probably going to be the replacement.
  • Looks
I think I did pretty well.  I love how stealthy it looks - if you're not looking at the back, you could easily think it's just someone's tool case.  At the first LAN I went to after building it, it got some attention.  It's also better than the other briefcase computers I've seen since I built it, which tend to have big holes cut out of the sides and back for fans and backplates.


New Server Build Here: