Homelab

In der IT-Branche ist es keine Seltenheit, ein Homelab zu betreiben. Die Beweggründe mögen hier differenzieren: manche hosten gerne ihre Inhalte selbst, manch anderer strebt Zertifizierungen an und möchte gerne die dafür notwendige Infrastruktur vorhalten. Ich selbst betreibe seit über 10 Jahren Homelabs – ein Überblick:

Jahre Funktion Typ Betriebssystem CPU RAM
2008-2010 Hypervisor HP ProLiant DL380 G3 ESX 3.5 2x Intel Xeon @ 3.2 Ghz 6 GB
Gateway Pentium Pro CRUX Linux Intel Pentium Pro @ 200 Mhz 96 MB
Webserver IBM ThinkCentre S50 Debian Lenny Intel Pentium 4 @ 2.8 Ghz 512 MB
NAS Eigenbau Debian Sarge AMD Athlon 64 X2 4200+ @ 2.2 Ghz 2 GB
Firewall IBM NetVista 8364-EXX IPCop 1.4, 1.9 Intel Pentium MMX @ 266 Mhz 256 MB
Firewall IBM ThinkCentre S50 Intel Celeron D @ 2.4 Ghz 512 MB
2010-2011 Hypervisor HP ProLiant DL140 G1 ESXi 3.5 2x Intel Xeon @ 2.4 Ghz 4 GB
NAS QNAP TS-509 Pro Linux Intel Celeron @ 1.6 Ghz 1 GB
Gateway ALIX.3C3 Debian Squeeze AMD Geode LX800 @ 500 Mhz 256 MB
Firewall ALIX.2D13 IPCop 2.x AMD Geode LX800 @ 500 Mhz 256 MB
2011-2012 Hypervisor Eigenbau ESXi 4.1 Phenom X6 1090T @ 3.2 Ghz 16 GB
NAS Eigenbau Debian Lenny AMD Athlon 64 X2 4200+ @ 2.2 Ghz 2 GB
2012 Hypervisor HP ProLiant MicroServer G7 N36L ESXi 5.0 AMD N36L @ 1.3 Ghz 8 GB
NAS HP ProLiant MicroServer G7 N36L CentOS 6 AMD N36L @ 1.3 Ghz 2 GB
2013-2014 Hypervisor HP ProLiant MicroServer G7 N40L ESXi 5.1/5.5 AMD N40L @ 1.5 Ghz 16 GB
Webserver Raspberry Pi B Debian Wheezy BCM2835 @ 700 Mhz 512 MB
2014-2016 Hypervisor / Nested NAS Eigenbau ESXi 6.0, CentOS Intel Xeon E3-1230 @ 3.2 Ghz 32 GB
Webserver Raspberry Pi 2 B CentOS 7 BCM2836 @ 900 Mhz 1 GB
2016-2017 Hypervisor Eigenbau vSAN-Cluster ESXi 6.x 2x Intel i3-4360T @ 3.2 Ghz 64 GB
Firewall APU.1D4 IPFire 2.x AMD G T40E @ 1 Ghz 4 GB
2017-2019 Hypervisor Eigenbau vSAN All Flash-Cluster ESXi 6.5 2x Intel Xeon D-1518 @ 2.2 Ghz 196 GB
NAS HP ProLiant MicroServer G8 CentOS 7.x Intel Xeon E3-1220Lv2 16 GB
Weitere Informationen und Bilder finden sich in der Hardware-Historie

2020 habe ich mein Homelab radikal reduziert – es besteht nur noch aus folgenden Komponenten:

Schaltschrank mit Raspberry Pi und Switch
  • einem vServer bei Hetzner
  • einem HP ProLiant Microserver G8-NAS mit 12 TB
  • einem Backup-DAS mit 12 TB
  • einer FRITZ!Box
  • zahlreiche Raspberry Pis für Experimente
  • verschiedene ESP32-Microcontroller
  • einer APC Smart-UPS 750 USV zur Verhinderung von Datenverlust durch Stromausfälle
  • verschiedenen Shelly Plug S zur Steuerung und Messung des Stromverbrauchs

Weniger ist mehr

Gegenüber dem letzten Homelab-Update von 2017 ist mein jetziges Setup bedeutend minimalistischer – so mancher dürfte behaupten, dass es dem Ausdruck “Homelab” gar nicht mehr gerecht wird. Der Grund hierfür ist, dass sich mein beruflicher Hintergrund verändert hat. Während ich mich früher stark mit Hardware und auch VMware-lastigen Themen beschäftigt habe, bewege ich mich nun im Infrastructure as Code-Umfeld, in welchem Hardware und Hypervisor eher von sekundärem Interesse sind.

Darüber hinaus verging mir auch deutlich die Lust an der Fehleranalyse bei Hardware-Problemen. RAM-Riegel überprüfen, durch VSAN schneller abgenutzte SSDs ersetzen und verwaiste VMs wiederherstellen – all das macht wenig Spaß, wenn man schon mindestens 8 Stunden gearbeitet hat. Der Verwaltungsaufwand stand nicht im Verhältnis zu Kosten und Nutzen; und da ich solche Themen ohnehin nicht mehr hauptberuflich bediene – warum sollte ich es dann privat tun?

Anstatt mehrerer Hypervisor und zwei dutzend VMs betreibe ich nun einfach Container pro Applikation. Da die Anzahl die handverlesenen und benötigten Dienste überschaubar ist, verringert sich hierdurch auch der Verwaltungsaufwand. Es werden keine Hypervisor und dediziertes Linux Patch-Management mehr benötigt. Benötigte Anwendungen werden auf dem 24/7 laufenden NAS und einem Raspberry Pi ausgeführt. Die Konfiguration der Hosts und Applikationen erfolgt mit Ansible.

Raspberry Pi-Cluster

Verschiedene Raspberry Pis dienen als Spielwiese für Bastelprojekte – so habe ich z.B. zwei kleine Kubernetes-Cluster gebaut, um mich in das Thema einzuarbeiten. Ein ausrangierter Pi 2 dient als Wiedergabe-Gerät am Fernseher. Ein Pi 4 mit 8 GB dient als ESXi-Hypervisor für weitere Testzwecke.

Nachdem nach nicht mal 4 Jahren mein IPFire Eigenbau-Router verendete – vermutlich aufgrund des Dauerbetriebs – entschied ich, keinen Nachfolger zu kaufen. Dadurch entfällt eine weitere Komplexitätsstufe im Netzwerk – aber auch eine DMZ und VPN-Zugang. Letzteren habe ich kurzerhand auf der FRITZ!Box konfiguriert. Eine DMZ wird nicht mehr benötigt, da ich keine produktiven Dienste mehr selbst hoste. Dinge, die verfügbar sein müssen, werden auf einem vServer bei Hetzner ausgeführt. Die Vergangenheit hat gezeigt, dass Hardware und Internet immer dann ausfallen, wenn man gerade auf einen selbst gehosteten Dienst angewiesen und nicht zuhause ist. Der früher für VSAN angeschaffte Switch mit 10 Gbit-Uplinks wurde durch einen einfachen (unmanaged) lautlosen Gbit-Switch ersetzt.

Skizze des Homelab-Aufbaus

NAS & DAS

HP ProLiant MicroServer Gen8
HP ProLiant MicroServer Gen8

Als zentrales Datengrab dient mir ein HP ProLiant MicroServer Gen8 mit folgenden Eckdaten:

  • Intel Xeon E3-1220Lv2 Prozessor (4×2.3 GHz, 3M Cache, 17W TDP)
  • 16 GB ECC DDR3 Arbeitsspeicher
  • 250 GB Samsung EVO 850-SSD für Dienste und Container
  • 3×6 TB SATA-Festplatten (Seagate Ironwolf) im RAID-5 Verbund

Der Datenaustausch zwischen den Clients erfolgt über Samba, Übertragungen von verschlüsselten Daten sind dank der AES-NI-fähigen CPU mit dem Maximum des 1G-Netzwerks von ca. 125 MB/s möglich.

Für Container und einige Applikationen wurde nachträglich eine SSD über den DVD SATA-Port eingebaut. Da HP die Firmware des MicroServers unnötig beschränkt, muss der Bootloader auf einer SD-Karte ausgelagert werden, da ein Boot von der SSD nicht möglich ist. Als Betriebssystem kommt CentOS 7 zum Einsatz. Über ein DAS (Lian-Li EX-503) mit ebenfalls 12 TB im RAID-5 Verbund werden die Daten wöchentlich gesichert. Eine Offsite-Sicherung über eine externe Festplatte erfolgt in sporadischen Abständen.

Container

Pro Applikation wird ein Container betrieben (die einzige Ausnahme stellt das Icinga2-Monitoring dar) – auf dem NAS unter Docker CE, auf einem Raspberry Pi läuft Podman:

  • Pi-hole – Unterbindung von Werbung und Tracking
  • Eclipse Mosquitto – Microcontroller-Kommunikation via MQTT
  • joke_api – Flachwitze und Filmzitate as a Service für einen Eigenbau-Sprachassistenten
  • Node-RED – Heimautomatisierung
  • InfluxDB – Zeitreihen-Datenbank
  • Grafana – Visualisierung von InfluxDB-Daten

Arduino, ESP32, etc.

Vor einiger Zeit habe ich angefangen, mich mit Arduino– und ESP32-Mikrocontrollern zu beschäftigen. Zu einer der ersten Übungen zählte das Auslesen verschiedener Sensoren, wie z.B. Temperatur– oder Feuchtigkeitssensoren. In Kombination mit MQTT und Node-RED lässt sich so schnell ein thermischer Überblick der Wohnung erstellen. In Kombination mit einer Zeitreihen-Datenbank, wie InfluxDB, lassen sich so Entwicklungen und Trends beobachten.

Node-RED Intent-Handler

Mit Rhasspy habe ich eine Software gefunden, mit der sich ein erweiterbarer Offline-Sprachassistent erstellen lässt. Dieser lässt sich selbstständig um Funktionen und Kommandos erweitern – ohne, dass hierfür ein Cloud-Dienst notwendig ist. Hier kommt auch wieder Node-RED ins Spiel – es dient als zentrale Anlaufstelle und führt erkannte Kommandos aus.

Zum Bau des Sprachassistenten existiert eine Artikelserie sowie ein Vortrag (Video).

Ausblick

Optimierungspotenzial gibt es immer. So beginnt das NAS hardwareseitig zu altern – aber solange noch kein Defekt vorliegt, möchte ich es nicht ersetzen. Als Nachfolge-Gerät könnte ich mir einen Intel Xeon D-Eigenbau mit modernerem Betriebssystem vorstellen. Die einzelnen Container könnte man mit Kubernetes statt docker-compose verwalten, auch wenn man sich hierdurch wieder eine weitere Komplexitätsstufe einbaut.

Sharing is caring