Homelab Upgrades

Lenovo P700 Workstation

Why?

My previous homelab ran on a small form factor Lenovo PC that was adequate for my needs. However, as I added more applications I began to run into issues with the limitations of using a smaller machine.

  1. Not enough CPU cores. My containers would throttle the services as there was not enough computing power available.
  2. Not enough RAM. I consistently used 100% of the available memory limiting the number of containers I could run.
  3. Not enough Storage. I only had 1 SATA port and 1 NVME SSD. I wanted to use several SSD hard drives and I hated the slow speed of the USB HDD.
  4. Slow integrated intel GPU. I had trouble transcoding video for my Jellyfin server using the integrated GPU.

Hardware

HardwareDescription
CPU6 Core Intel Xeon E5-2620
GPUNVIDIA Quadro P2000 - 5GB GDDR5
CPU Clock Rate2.0 GHz / 2.5 GHz Turbo
Memory64 GB DDR3
Boot DiskRAID0: 500GB NVME SSD + 500 GB SATA SSD
Container Backup256GB SATA SSD
Bulk Storage Disk15 TB HDD

Storage

For my boot device I use a RAID0 partition that is half a 500GB NVME M.2 PCIE SSD and half a 500GB SATA SSD for a total 1TB boot disk. I am aware of the single point of failure that either one of these drives dying will cause my boot installation to fail. However, my BIOS is unable to identify the NVME SSD as a boot device, so this RAID0 partition was the only way I could use it as a boot device.

I have a backup drive that does daily snapshots of my containers and keeps the last 3. I am aware that I should use a HDD for my container backups are they are better suited for the task. But I’m not too worried about the drive failure.

Finally, I have a MergerFS partition of 5 hard disk drives. (MergerFS deserves a blog entry of its own)

I named them alpha (5TB), beta (5TB), gamma (2TB), delta (2TB), epsilon (1 TB). For a total of 15 TB. This is my bulk storage solution for now. All my important data is zipped and backed up to the cloud as well so I am not too concerned about drive failures.

Networking

I run a double NAT network with the ISP having 192.168.2.0/24 and my Google Nest Wifi having 192.168.86.0/24.

The Proxmox host is connected to my Google Nest Wifi Router with a reserved static IP address. The LXC Proxmox containers use the DHCP server that my Google Nest Wifi Router provides to get internet access.

I run Tailscale on my host and containers, and use the Tailscale network to manage the connections between my services. This allows me to not worry about the local IP addresses that might change and lets me access all my services regardless of where I am physically located. (Tailscale deserves a blog entry of its own)