Post

Building a first-time homelab

I’ve finally done it. There’s a PowerEdge sitting in my house now. A beefed up T440, a humble beginning.

Specs 
CPU32 x Intel Xeon Silver 4110 CPU @ 2.10GHz (2 Sockets)
RAM4 x 32GB DDR4 2400 MT/s (128GB total)
StorageJBOD 3TB of SSDs (missing SAS caddies currently to add more)
RAIDPERC 740P as eHBA
GPUNvidia GTX 1060
Net2x Broadcom BCM5720 LOM 1G + iDRAC

Other features include an enterprise iDRAC license (iDRAC is awesome), an SFP PCI card, and two redundant 750W platinum PSU’s. The seller offered to throw in fiber SFP modules, but I told him to sell them to someone who would use them. Great guy!

Now what do I do with this?

Proxmox

A friend showed me his rack server lab a few years ago. He demoed his Proxmox setup and virtualized TrueNAS guest along with the Unifi network gear serving internet for the duplexes he manages. Loved the setup, and now I’ve got some equipment to experiment on my own.

For those unaware, Proxmox is a Type 1, kernel virtual machine hypervisor. It runs baremetal and is its own “Debian”-based OS. It’s a good fit for people who are very comfortable with both virtualization and Linux. I settled on this being the host OS as it seemed very versatile and fitting for the server.

Configuring BIOS and iDRAC

My network hardware isn’t complicated. I have a WRT 1900AC flashed with OpenWRT connected to my CPE and a mini gigabit switch in another room. I set up iDRAC to a static assignment on the last address in my subnet. From iDRAC, I made desired changes:

  • Enabled node interleaving as I have uniform memory
  • Enabled virtalization (this also enables VT-d which will be handy for nested virtualization later on)
  • Ensured C states was available and enabled (although powertop always says they’re at 0%)
  • Disabled PXE and HTTP boot
  • Initialized the PERC RAID controller as an eHBA card for a JBOD setup (will probably setup RAID or tiered storage once I get spinning disk SAS drives)
  • Set up RAID0 in eHBA

The PERC RAID card did not allow eHBA at first, but after a firmware update, this gave me more features to play with and ultimately the ability to run in eHBA mode.

Installing Proxmox

Typical OS install. Flash the ISO on a USB drive and get crackin’. After the initial setup and a static IP assignment, I set a hostname binding in OpenWRT so I can get to it from pve.lan. Send it through an apt update && apt full-upgrade -y and it’s good to go.

TrueNAS

I setup a storage pool to put a few movies in. Then, I setup a user and SMB sharing and I called it good, will probably play with it later.

Jellyfin

With movies on my NAS, I needed a UI to manage and organize this media. Plex was the go-to back in the day (still is for many, it seems), but Jellyfin was more appealing for me. I set up simple user access, the SMB share, along with metadata handling to grab covers and titles, and it was all good to go - except I don’t watch movies much :)

Parrot OS

Obligatory NAS and movie organization out of the way, I needed a desktop environment. I’ve been with Parrot OS for a while so I figured why not that? I’ll set it up with my dotfiles, migrate all my HackTheBox loot on there, and it’ll be good to go. But first, tasksel and KDE Plasma.

Docker and Friends

I have mixed feelings about Docker and containerization, but I do quite like that it’s easy. In order to set up Docker on the KVM, I needed a “host” guest OS. I selected Debian as my LXC container and hosted Docker on there. Time to setup some stuff:

  • Portainer - Manage containers from a web GUI
  • InfluxDB - Database and ingestor for Proxmox metrics
  • Grafana - For viewing Proxmox stats

Windows Guest

I decided on including a Windows instance for my music. In this instance, I’ll install Vienna Ensemble Pro to distribute the memory load from my main music PC to the server PC. I gave this VM 64GB of RAM which will certainly suffice. With my music PC choking at 12GB, this should make music production more efficient.

Lastly… Hyper-V Server

I recently grew an interest in building an Active Directory lab to experiment with as well as gain some knowledge and experience in. I did not have access to multiple computers at my disposal to create a simulated environment so I decided on a nested virtualization setup that would host the AD domain. This is where VT-d would come in handy. Nested virtualization would pass through Hyper-V Server and allow the guests in Hyper-V Server to be hardware accelerated by the KVM. This ordeal will be in another post as it goes into another topic.

Recap

So far, I have movie and media organization, a pentesting desktop environment, network attached storage, status monitoring, and distributed computing for music production. A pretty good start so far!

This post is licensed under CC BY 4.0 by the author.