NAS Build: Kvasir

So, about a year ago, I built an Home Theater PC in order to meet my needs to have a home NAS, a media player, a DVR, a Plex server, and a Steam Box. I used the parts below:
PCPartPicker part list / Price breakdown by merchant

Type Item Price
CPU Intel Core i5-4440S 2.8GHz Quad-Core Processor $189.15 @ Amazon
Motherboard ASRock H97M-ITX/AC Mini ITX LGA1150 Motherboard $82.98 @ Newegg
Memory G.Skill Ripjaws X Series 16GB (2 x 8GB) DDR3-1866 Memory $74.89 @ OutletPC
Storage Sandisk X400 512GB 2.5″ Solid State Drive $134.99 @ Directron
Storage Western Digital Blue 3TB 3.5″ 5400RPM Internal Hard Drive $87.98 @ OutletPC
Storage Western Digital Blue 3TB 3.5″ 5400RPM Internal Hard Drive $87.98 @ OutletPC
Storage Western Digital Blue 3TB 3.5″ 5400RPM Internal Hard Drive $87.98 @ OutletPC
Case Fractal Design Node 304 Mini ITX Tower Case $89.99 @ NCIX US
Power Supply EVGA SuperNOVA GS 550W 80+ Gold Certified Fully-Modular ATX Power Supply $83.36 @ Amazon
Keyboard Logitech K830 Wireless Standard Keyboard w/Touchpad $75.99 @ Best Buy
Headphones Logitech G930 7.1 Channel Headset $86.99 @ Best Buy
Other ASUS GTX 650 ti Purchased
Prices include shipping, taxes, rebates, and discounts
Total $1082.28
Generated by PCPartPicker 2016-10-02 17:16 EDT-0400

Now, I’ve tinkered with this here and there over the past year, and I’ve never been satisfied with the system. I’ve loaded various flavors of Linux since it provided me the ability to run the WD HDDs in RAID5 via mdadm. I started with Linux Mint, then switched to Proxmox, then rolled my own flavor of Ubuntu Server, and then Lubuntu. None of them worked, and for a while I thought it was because I just hadn’t found the right operating system but I had an epiphany recently, and that was that I was trying to do too much with one box. For starters, the case is just too damn small to fit a full ATX power supply, 6 drives, a full-sized graphics card, and all of the associated cables. Secondly, the processor isn’t powerful enough nor does it have enough cores to properly handle virtualization which would make hosting all of the services I was asking of it far easier. And finally, the OS just couldn’t hold up well to the multitude of tasks being thrown at it; I kept having to hack things together and it just never worked well.

So, faced with that realization, I decided to split my original HTPC into two separate computers: a NAS which can host Plex and other services and an actual HTPC which can play media and run Steam. I loaded Xubuntu on an old dual-core laptop and installed Steam and Kodi, and now I stream games and movies to it. I then took my original build, stripped out the GPU, and installed OpenMediaVault on it. I tried to install the version 2.1 which is stable but is built on an old version of Debian that had many issues with my hardware. Next I tried to install the beta version of 3.0 and it worked like a charm.

I then installed the extras repository so I could install Docker, Plex, SnapRAID, and mergerfs. I also decided to forego a standard RAID array for my storage and use SnapRAID to calculate disk parity and mergerfs to pool my data drives together. I drew my inspiration from this article on LinuxServer.io. This set up will allow my drives to remain idle until they are needed which saves wear and tear on the drives and electricity. Also, it allows me to use different-sized drives and provides the most flexibility for growing the pool. I looked into using LVM instead of mergerfs, since it allows me to make snapshots and I’m a fan of LVM, but I couldn’t find a solid guide for doing it and was wary about the possibility of data loss if I did it wrong. So I went with what I knew worked.

I’m still setting the system up, but I’m very happy with it so far. The WebGUI is excellent and I really like the Docker integration. I ordered some more hard drives and a SAS/SATA expander card. I’ll provide an update when I install them.

Homelabbing

I think I’ve always been interested in computers. Thinking back to my childhood, I’m pretty sure I inherited it from my father. He had a number of early systems including an Atari and then was an early adopter when Apple first started producing the Macintosh. I also got bitten by the gaming bug early on. The first game I remember playing was Mille Bornes on my Dad’s Apple PowerPC. It was the beginning of a long-standing hobby. My next steps were to card games by Hoyle and Yukon Trail. These were soon supplanted by the Ultimate Doom and Duke Nukem 3D. I then went many years as a console peasant gamer and rekindled my love of computer games in college. Since then I’ve become a HUGE fan of Steam and have a modest game collection of 123 games.

But something else happened along the way: I started to get into not just games but computers themselves. I’ve dabbled with Linux since high school and in college I became fascinated with fluid mechanics and how to model fluid flow using tools like OpenFOAM and ANSYS Fluent. My familiarity with Linux and CFD was a match made in heaven as Linux afforded stability for most CFD software and has the ability to cluster computers easily, meaning that you could set up a Beowulf Cluster to provide the necessary computing power for large CFD problems and the operating system or cluster wouldn’t crash constantly. My interest in CFD quickly spawned a need to learn more about Linux which caused me to install Ubuntu 9.04 on an old laptop and start learning. About a year ago, I kicked into high gear shortly after finding the /r/homelab and /r/homeserver subreddits and discovered amazing things like KVM/QEMU, servers, and self-hosted services like Plex. Ever since, I’ve begun moving towards building a robust, Enterprise-ish network within my home. I say Enterprise-ish because I don’t have the funding to buy brand new, top of the line Enterprise-grade equipment and my network needs to be wifeproof so large rooms full of multiple server racks, with wires strewn throughout the house is a no-go.

But that’s the struggle of most homelabbers and I’m yet another statistic. As I continue my journey learning how to build computer networks, clusters, servers, and utilize them to do things like model the aerodynamics of my car, I’ll write about it and share my lessons learned here on this blog.