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:
- 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.
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.
NAS & DAS
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.
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 (📽️).
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.