After some thinking around christmas about how to protect my digital assets (mainly Photos and Music, some Movies and some Documents) I decided to build a Homeserver based on OpenSolaris.
Why do I want a server at home?
For the last two years I have kept my personal data on NAS device built by Fujitsu-Siemens which is sitting in my basement. The problem with this is not that I’m running out of capacity. The problem is that I’m not desperate enough anymore to keep my data on a device with a single drive. What if the drive fails? What if I accidentally delete some files? In addition, I never got the TimeMachine functionallity of my two MacBooks to work with this device in a reliable way.
So I was looking for a solution which protects me from failing disk drives, has an integrated and automated backup & recovery functionality and works with TimeMachine on Mac OS X.
OpenSolaris has a very decent filesystem built into it which is called ZFS. ZFS makes it very easy to manage and protect your data because it has integrated RAID functionality, integrated Backup capability (Snapshots) and is very easy to setup. In addition OpenSolaris is very mature and, hey, it’s UNIX - which is at least a plus for me. I have worked with Solaris for a decade now and feel very comfortable with relying on it for my private data.
At first I was thinking about building a tiny Atom-based NAS system with a small case. I was about to buy an Intel D510MO board with a Dual Core Atom CPU. But I decided against it because of three reasons:
- Lack of CPU power - I wanted to use some advanced ZFS features like RAID-Z, Deduplication and Compression. And I want to run a UPnP-Mediaserver which can recode media on-the-fly quickly. And I wanted a future proof solution which can give me enough “Oomph” for anything that comes to my mind in two or three years.
- Lack of Expandability - the D510MO has only two SATA ports and one PCI slot. I would max it out immediately and have no room for future expansion.
- Lack of ECC Support - ZFS uses the main memory for caching data before it writes them to disk. The last thing I want is silent data corruption to occur when a bit flips in memory
So I decided to built my homeserver around an AMD Athlon II X2 Energy Efficient CPU with 45W TDP. After doing some research I came up with the following bill of material:
- AMD Athlon II X2 235e (2 Cores, 2.7 GHz, 2 MB L2 Cache, 45W TDP)
- Asus M4A785TD-V EVO Mainboard (ECC-Support, 5x SATA + 1x eSATA, 6x PCI/PCIe, Onboard GFX)
- 2 GB of DDR3-1066 ECC Memory
- 2 Samsung HD154UI SATA-Drives (1.5 TB, 5400 RPM)
- Energy Efficient Power Supply (80%+ Efficiency, 300 W)
- Big Tower (5x 3,5”, 5x 5.25”)
The cost for everything was about 500 €. Later on I bought an additionally Intel Gigabit NIC for 25 €. I am thinking about to buy the Athlon II X4 605e CPU (Quadcore, 4x 2.3 GHz, 45W TDP) when the price gets low enough (perhaps just before the next generation of CPUs arrives).
You can see some photos of the components of the above mentioned ingredients here.
The parts have been built together very quickly. But unfortunately I wasn’t able to boot it - the power LED on the mainboard was on and the fans and disks spun up. But no video signal at all. Not even a beep from the builtin speaker. After one hour of research I was willing to send the motherboard and CPU back. Then my eye catched an additional 4-pin plug next to the CPU socket. Looking at the manual I realized that this was the powerplug for the CPU. Well, when I built my last PC myself about 10 years the CPU was provided with power of the main connector on the board.
Plugged it in and - voilà - the machine came up. I just flashed the newest BIOS version, enabled ECC-Support and switched the SATA ports to AHCI. Then I started the installation of OpenSolaris (snv130) from a USB stick that I had created before. It worked like a charm and after 15 minutes the machine was up and running.