Meet tehbox: A 16TB Home Server

July 14, 2011 Meet tehbox: A 16TB Home Server

My project of 2011 has been building myself a respectable home theater setup. One of the requirements of the project was a place where I would be able to store my blu-ray collection digitally so it would be at my fingertips vs going to a shelf to withdraw my selection. This prompted me to go about building the largest and most robust machine I have to date. tehbox, a 16TB (formatted drive space) home virtual machine server with a list of jobs.

What it Does

The project started as a means to store large amounts of data, but grew to include many other jobs as well. Many of these jobs were a direct result of the work I do, or because of the readily available space the new server would offer. Before starting the build I hashed out a quick laundry list of jobs the machine would be responsible for.

  • NAS/Cloud Storage
  • Virtualization
  • torrenting and other large file downloads
  • LAMP webserver
  • Gaming server (specifically Minecraft)
  • PXE bootable backups and diagnotics

Hardware List

  • AMD Athlon II x2 250

    $60

  • J&W Minix 890X-USB3

    $150

  • 8GB Mushkin Enhanced DDR3 SODIMM CL7-7-7-20 1066mhz

    $70

  • Fractal Design Array R2 ITX NAS Case

    $139

  • OCZ Vertex2 80GB SSD

    $150

  • Seagate Barracuda Green 2TB x 8

    $640

  • Adaptec ICP5085BL Raid Controller

    $170

  • Total Cost

    $1379

Since a great amount of storage was the primary concern I worked on breaking down the cost of several SATA2 and SATA3 hard drives to a cost per GB level. Seagate Green 2TB drives offered one of the best cost to size ratio at roughly $0.04 per GB and were also SATA3 drives with 64MB of cache. Even though the controller I ended up using was only SATA2 capable, the extra cache does help and the drives do still outperform their earlier SATA2 models.

The MINIX motherboard was chosen for it’s availability, affordable AMD processors, and it’s slew of modern ports like USB3 and SATA3. The onboard video and other elements are definitely more geared towards the HTPC market and were not part of my requirements, but definately not bad to have at the same time.

The purchased Athlon II x2 250 in the end was swapped with the Phenom II x2 550 BE in my HTPC however both processors are near identical. The Phenom just offered me better control in bios and the opportunity to try different clock speeds, however it currently runs stock.

I was lucky to find the Adaptec ICP5085BL raid controller on ebay and in my area for quite a good price. Businesses often upgrade their servers every few years and this one seemed to have pulled the controller cards to see separately from the original machines. This was where I was able to save a great deal of money versus buying a brand new controller.

Building the Beast

I got off to a horrible start. After cleaning my workspace and setting up and assembled just the core components required to get the machine running. The machine booted as expected, I entered the bios to check the settings, and within a few seconds of entering the bios the LCD screen scrambled and the machine powered down. That was it. It would not power up again and I had to go through a lengthly RMA process before I could attempt to star the build again. Once the new motherboard came in I once again assembled but now with no issue.

Once I had the host hardware setup I set about building my storage.  The Array R2′s drive bay is only capable of holding 6 3.5″ drives with the 2.5″ screwed to the bottom. However this leaves a large amount of space below the hdd cage. I removed the cage altogether and instead stood the 8 3.5″ drives on end freely in the case. Ideally you should build a new hdd cage in the new orientation if you can to ensure your drives are stable. Since my server is stored away in the basement where there is near zero traffic, it is not of enough concern to me. The SSD being much more stable was just attached to the inside edge of the case using some Velcro.

With 8 drives and a hardware RAID controller additional cooling was required. Many raid controllers come with passive cooling blocks and require active cooling. Since the Array R2 has an extra rear PCI slot (for DTX motherboards) I installed a PCI slot blower fan. The intake on the blower sits right near the hottest point of the controller card and exhausts the heat out of the back of the case. The 140mm intake on the front brings air in, however much of it is blocked but the 8 drives now. Even with this the case can get quite hot so I keep the machine in my basement where the temperatures are almost always sub 20C.

For the storage array I decided to utilize a RAID5 setup. Using a hardware controller makes RAID quite fast which is a plus for transferring large files and RAID5 offers me one level of protection against a single hard drive failure. The array was built utilizing all 8 drives taking 3TB for parity and leaving 13TB for actual storage, a still very respectable amount.

Software

OpenVZ is a virtualization technology that works directly with the Linux kernel installed on the host. It allows you to create containers that utilize the same kernel as the host, thus eliminating some overhead that a traditional virtual machine would have. Note that this only works for Linux hosts with Linux containers.

I chose Proxmox because it runs on Linux, is free, and was thoroughly interested in using OpenVZ for some of my virtual machines. It also supports host clustering, where you can migrate virtual machines from one physical proxmox host to another. I would not be using that yet, but it could be of use in future if I ever decide to build another server.

Proxmox is a slightly complex setup and there are easier instructions for other OS/software installs but I managed to get it all setup. The most important thing I took away from the install was to carefully choose which kernel version you will be using. Each one has it’s own little nuance and I probably could have spent more time reading deeper into their wiki.

After setup Proxmox is quite easy to setup. Being web based I have access to my server from anywhere I have internet. I currently have seven virtual machines built (although only 3 – 5 are running at any given time). In Proxmox you are able to pass block level devices to virtual machines, which accomplishes good access to the storage array for my NAS virtual machine.

Conclusion

Altogether the machine cost me under $1400 and provides enough storage that should last me at least a few years. 13TB was the final storage amount after giving 3TB over to parity in RAID5, however this is still quite a large amount of storage for my home needs.

  1. seemog 7:09 am

    Hello,
    can you tell me more about your pxe server on your tehbox machine.
    I’m thinking to build a proxmox based server machine, and I get interested on your project.
    Best regards
    Seemog

    • jasonploegman 10:54 am

      What sort of information are you looking for? What I did was just setup a Centos VM using an OpenVZ container and then followed the Centos guide for setting up a PXE server minus the DHCP server because I use a tomato based router. I just had to put some settings in tomato to tell any pc looking for the PXE server where it existed.

  2. Dale Cox 1:18 pm

    Hey man,

    Great looking build. I have been thinking about modifying my existing setup to look something like this. I’m guessing your NAS is virtualized, correct? What is your VM for the NAS? Are you using a prebuilt NAS software like freeNAS or Openfiler?

    Nice looking site.

    • jasonploegman 1:38 pm

      I have since removed the virtualization because I no longer needed it, but at the time of posting it was virtualized. I didn’t use a prebuilt OS since I prefer doing it all specifically to my own needs and used Arch Linux instead.

Leave Comment

Your email address will not be published. Required fields are marked *

*