An Adventure in the Homelab
5 min read
For nearly 2 years now I've run some kind of homelab in my house. In that time it's survived a house move and been greatly expanded upon. Right now I'm in the process of making some radical modifications and downsizing somewhat, so I thought I'd outline the history of the lab, it's uses, and plans for the future.
It began with the purchase of a Dell R710, a favourite of the home server enthusiast everywhere, crammed on a desk in a spare bedroom. My specific model comprises two hexa core Intel X5660 CPUs running at 2.8GHz with 48GB of RAM and an H700 RAID Controller for the 6 3.5" drive bays. The use case here was to spin up unRAID and run a number of containers, as well as access the server as a NAS, but in order to do this I had to get the RAID Controller to play nice.
unRAID needs direct access to each drive, something the H700 can't do as it doesn't support IT (initiator target) mode - only IR (integrated raid) mode. So I had to replace it. During my search for a replacement I learned Dell servers can be a little picky over what RAID cards they'll accept, but ultimately settled on an H330 which I then flashed into IT mode using a guide found here.
My goal was to use it as a NAS primarily, so I spun up unRAID and over the course of the next few months filled those 6 bays with hard drives and subsequently filled the drives themselves, prompting my next expansion: a Dell Xyratex Compellent HB-1235. This handy DAS gave me space for additional 12 3.5" drives, which I linked up to the R710 using a Dell H200E HBA and a couple of SFF-8088 SAS cables.
The final upgrades to my lab at this stage were an APC 3000 UPS to allow for tidy shutdowns in the event of a power failure, and (as I wanted to try out some hardware transcoding in Plex/Emby) an HP nVidia Quadro P2000 which with the help of a PCI riser cable and rear IO bracket removal fit snugly into the R710 case.
This setup was pretty spiffy. I was hovering around 60TB of capacity with 2 drives for parity and everything I wanted to run could; using the container functionality in unRAID. But upon moving house in late 2019 I saw the opportunity to take the lab to the next extreme.
The new house gave me a whole loft to play with, and so the first move was to get solid network infrastructure in place. I went for Ubiquiti hardware for this, snagging a Cloud Key Gen2, Security Gateway Pro 4, a 24 port PoE switch, a 16 port PoE switch, and a couple of AP Pros.
I then put the R710 into retirement and spun up a SuperMicro CSE-826 with 2 hexa core Intel Xeon E5-2630 V2s at 2.6GHz, 32GB of RAM, and 2 LSI SAS3801E-S controllers, along with a SuperMicro CSE-846 with a deca core Intel Xeon E5-2680 at 2.8GHz and 256GB of RAM.
Now, that sounds a like a hell of a lot of hardware - and you'd be right. My plan was to use the CSE-846 as my new file server, use the CSE-826 as my container server, and attach the 826's backplane to the Dell H200E now installed in the CSE-846. That's exactly what I did, and while not the most orthodox solution it works. The Quadro P2000 also found its way into the CSE-826 for direct access to the Emby Docker container. With 24 3.5" bays provided by the CSE-846, and 8 by the CSE-826, I now had room to fit a full FreeNAS array, comprising 3 RAIDz2 vdevs of seven 6TB drives, seven 8TB drives, and 7 10TB drives, toalling a whopping 98TB of usable space and allowing for 2 drive failures per vdev before complete data loss.
As you might imagine this setup is not without issue, which I'll list below:
I'm using out of date hardware. While it all works and probably will for some time, there's just something nice about having up to date tech.
FreeNAS on the CSE-846 does not need an E5-2680, demonstrated by CPU usage never exceeding 30%.
FreeNAS does not need 256GB of RAM for a 100TB array. While nice to have, all of this is simply used for caching, which seems slightly overkill.
My container server does not need 2 E5-2630s, again demonstrated by the incredibly low CPU utilisation.
The joining together of one backplane into an expansion card of another server feels slightly wrong. Should I have made use of the Xyratex for additional bays? Probably. But that just adds to...
The mammoth power usage.
The noise generated by running two rack servers. Yes, I could swap out the case fans for some quieter ones, but that still leaves the incredibly loud PSU fans which I don't really want to touch - digging around in a PSU is where I draw a line.
FreeNAS spitting out SMART errors and kicking out perfectly good drives. This has happened three times now, and each time the drive has been absolutely fine and passed a short, conveyance, and extended test, and been happily reused. It's not localised to any particular bay. My only theory is that the HBA is dying a slow death or FreeNAS is doing stupid things.
I need more space. I have 4TB of space remaining meaning a purchase of another 7 drives which will have to go in the CSE-826 chassis and use the nasty backplane-into-HBA setup. And after that all my bays will be full and I'll have to look into getting the Xyratex involved, adding to the noise, ower usage, and...
The multiple points of failure. Two backplanes, two HBAs, and potentially a DAS added to the mix. Not to mention I setup FreeNAS on a USB (as was recommended at the time) which I don't trust all that much. If the FreeNAS box goes down that's it, no file access.
It's for all these reasons I've been looking for a new solution - and I think I've got one. A cluster of single board computers. Of course for this I'll need to devise a way to safely migrate all the existing data, figure out a case solution, and if the whole thing is even viable, but hopeful. I'll be updating this post with the continuation to the story once I've written it. Take it easy!