Ch.1 The "Enterprise" Home Lab - Beginning & Past

Ch.1 The "Enterprise" Home Lab - Beginning & Past

·

6 min read

Introduction

Howdy everyone!

Welcome to my first post here on Hashnode, as well as the beginning of my next home lab adventure.

Before I talk about the home lab, allow me to introduce myself. My name is Daniel Gugel(call me Dan), and I am a Systems Engineer with 6 years of experience in the IT industry. My areas of focus include System and Network Engineering, Automation w/ Ansible, Puppet, and Python, Infrastructure Design, and a love for bleeding edge computer hardware. I'm a graduate of the University of Maryland College Park, and I currently reside in Northen Virginia.

Since the beginning of my career in IT, I have been a proponent that a home lab is one of the key tools to growth in this industry. It is the equivalent to a gym for us IT folks. It allows use to have a non-production environment that we are completely responsible for. A home lab holds us responsible for our good and bad practices, and grants us the opportunity to implement interesting software and protocols while simultaneously managing their life cycles as time goes on. I don't intend to stop operating a home lab any time soon, so what you are reading is the first piece of documentation related to the start of a new and properly complex home lab. I hope you stick around to learn with me!

The Past

I could write an entire blog series as long(or longer) than the one I am about to write just to describe the path my current home lab has taken me. The last 6 years of my education have taken place on it, and I will look back fondly to all the learning I have accomplished utilizing it. To save me from having to write 10,000 words, I'll leave you with a quick summary.

I have had a home lab running 24/7 for the last half decade, consisting of a mix of white box builds, Dell Rxx0 Servers, and Dell Networking Equipment. Over the years my home lab has seen multiple iterations, from clustered to single node configurations. I have powered down and sold off the majority of my hardware, and currently my home lab is running entirely off of a single Dell R420, powered by 2x Xeon E5 2450L v2s and 96GB of RAM(+ some SSD storage). The Dell R420 is running ESXi version 6.7.0, and my virtual machines are all running off a mixture of AlmaLinux and CentOS 7. I use Bash and Puppet to automate their deployment and state enforcement, while each respective VM hosts a service such as DNS, DHCP, HAProxy, GitLab, and various web servers each hosting their own unique service or repository. A few one off systems exist as well such as my Bastion server or a dedicated BOINC VM to donate spare CPU cycles to medical/climate research.

For networking, PfSense acts as my gateway to the internet and the router between all of my subnets. I am using a Dell EMC N2048 as the sole network switch for my network. Currently my network is a "router on a stick" design, where all traffic on the network must pass through if they want to leave their own VLAN. By design, each of my VLANs hold only one subnet that contains hosts.

98d4fe2ed09be0fb6bc66952099e6c25.png

The Future

For the past few months I have been slowly but surely working to spin down the current iteration of my lab. I've killed services, backed up data, and reduced my lab to a single hardware server. I've sold off excess servers in preparation for a move into a smaller(and less heat dispersive) apartment.

I decided now was the time to put down some capital and update the home lab to run off of tiny, power efficient, 1L PCs.

My model of choice is the Shuttle DH310v2

shuttle_1_50.jpg

I have purchased 4 of these nodes, in the following configuration:

  • Intel i5 9400T
  • Crucial 2x32GB DDR4 2666Mhz SODIMM Memory
  • Samsung 970 EVO 1TB NVMe SSD
  • Samsung 870 EVO 500GB SATA SSD
  • 2x 1Gbe Network Interfaces

Why the Shuttle DH310v2?

To begin, I knew going into this that I wanted to put a focus on clustered and distributed systems. This means that I had a reason to purchase 3 or more physical servers, and that pricing was going to be a concern since I was aiming for capable and cold hardware.

I wanted each individual node to have:

  • Sufficient CPU threads while on a 35W TDP platform or lower
  • Minimum of 64GB of available system memory
  • The ability to hold an NVMe disk, as well as a SATA disk
  • More than one Network Interface
  • Low idle power
  • Quiet

After doing tons of product research and watching most every review on ServeTheHomes Tiny Mini Micro Project, I ran into the DH310v2 as an option on Newegg. Between the cost of the initial node and extra components, it reached a price tag/node that I was content with while checking all of my boxes.

A drawback to these nodes is that they are not equipped with 10Gbe, nor do they have the ability to be equipped with 10Gbe adapters. One of the things I will be running in this lab is VMWares vSAN, and it is not recommended to be running a 100% flash backed vSAN cluster while on a 1Gbe connection. Under no circumstances would I do this in a professional environment, but a home lab is primarily for education and capability rather than performance. I am also the only user, and I am okay with this decision. vSAN will have a dedicated 1Gbe link on every node to operate, so hopefully the performance will be acceptable for the tasks I wish to accomplish.

I have decided to purchase 4 of these nodes.

The Plan

Going forward, I have a quick list of technologies I would like to prioritize and implement for this project. I won't hold myself to this completely as one of the beautiful parts of a home lab is that I can decide my own priorities and goals as time flows on. A few things here will need to be done right off the rip, and future posts will cover each and every major implementation.

A brief checklist of goals:

  • Implementing VMWare HA/vSAN
  • An OSPF Routing Domain using the Dell N2048 and VyOS
  • Deployment of a Kubernetes Cluster to host services and assist me in the acquisition of the CKA and CKAD Certifications.
  • Fully automated deployment and system management using a mixture of Ansible, Terraform, and Puppet
  • A complete CI/CD Implementation on GitLab to deploy custom services/pods to k8s
  • Evaluation/implementation of 'new to me' enterprise software and services

What's next?

We have our hardware, we have our plan, so the next thing to do is to begin. The next post will cover the hardware, and the installation of ESXi. Stay tuned!

Next Chapter: TBD