Mein neues Homelab (2022)

Letzte Aktualisierung am 17.03.2024, 19:03:45 Uhr

Über die letzten 10 Jahre hinweg, ist ein Lab herangewachsen, dass ich nie für möglich gehalten habe. Für die ersten Tests habe ich mein altes Notebooks hergerichtet. Anfangs völlig ausreichend. Aber wie es so ist, schießen VMs wie Kartoffeln aus dem Boden.

Daher habe ich eine komplettes LAB Umgebung auf mein aktuelles Notebook ausgelagert. In den letzten 11-12-13-14 Monaten bin ich auch hier an die Grenzen der SSDs, Arbeitsspeicher und Prozessor gestoßen. So dass es am Ende keinen Spaß mehr gemacht hat.

Ich habe schon längere Zeit darüber nachgedacht ein dediziertes Gerät anzuschaffen. Umso dedizierte Leistung zur Verfügung haben und ich mein Notebook wieder für die tägliche Arbeit nutzen kann. Natürlich soll dadurch die Stromrechnung nicht explodieren, sondern sparsam sein. Dazu habe ich mir auch eine Budget von maximal 1.000,00 € gesetzt. Schließlich verdiene ich damit kein Geld.

Im Rahmen der Markterkundung bin ich auch über die Micro-Server von HP gestoßen. Allerdings ist das Gerät für das Büro zu laut. Die Abmessungen passen nicht zu den Gegebenheiten vor Ort (ein IKEA Regal). Das Gerät kann selbstverständlich mit leistungsfähiger Hardware ausgestattet werden. Damit liegt das Gerät  bei über 2.800,00 €. Das ist es mir nicht wert.

Marke Eigenbau

Schlussendlich habe ich mich entschieden ein Gerät Marke Eigenbau auf die Füße zu stellen. Um die Rahmenbedingungen und Anforderungen vollumfänglich erfüllen zu können und damit für die nächsten 5-10 Jahre ein leistungsfähiges Gerät zu haben.

Hingegen der bisher genutzten Virtualisierungslösungen Hyper-V und VirtualBox, soll auf dem neuen Gerät Proxmox  VE (PVE) zum Einsatz kommen. Damit gibt es nahezu keine Probleme bezüglich Hardware Kompatibilität wie bei VMware ESXi. Ist ein schlanker Hypervisor und es Bedarf keinem Windows Betriebssystem.

Bei der Frage des Prozessors war für mich von Anfang an klar, es muss ein AMD Ryzen werden. Um zum einen genügend Cores und Threads für den parallelen Betrieb von VMs zu haben. Zum anderen diese auch bei Spitzlasten genug Leistung liefern.

Übersicht der verbauten Komponenten

Hier eine vollständige Liste aller verbauten Komponenten:

Typ Produktname Produktlink Shop
Gehäuse Chenbro SR30169T3+ Link Alternate
Mainboard ASRock B550M-ITX/AC Link Amazon
Prozessor AMD Ryzen 7 5700G Box mit integrierter Radeon Grafik und Wraith Stealth Kühler Link Amazon
Netzteil be quiet! Pure Power 11 80+ Gold 400 Watt Link Amazon
Arbeitsspeicher Crucial RAM 32GB DDR4 3200MHz CL22 Link Amazon
Festplatten Transcend SSD MTS820S M.2 SATA3 TLC 120GB (Boot) Link Amazon
Crucial P3 Plus 2TB M.2 PCIe Gen4 (VMs OS) Link Amazon
Samsung SSD 870 QVO 2TB SATA 2.5″ (VMs Data) Link Amazon
Einbaurahmen ICY DOCK MB882SP-1S-3B Konverter SATA 2.5 / 3.5 Link Amazon
Gehäuselüfter Nicht erforderlich. Ist beim Gehäuse dabei.
Asus Hyper M.2 x16 Card V2 Link Amazon

Die Kosten belaufen sich zum Zeitpunkt der Beschaffung auf 1.014,32€. Damit konnte die Obergrenze von 1.000,00€ nicht ganz gehalten werden.

Falls ihr mit dem Gedanken spielt ein anderes Netzteil zu nutzen, bitte unbedingt auf die Abmessungen achten. Denn der Platz dafür ist im Gehäuse sozusagen auf den Millimeter definiert. Ein be quiet! Pure Power 11 80+ Gold 500 Watt passt nicht hinein.

Wake On LAN einrichten und testen

Nachstehend möchte ich beschreiben, wie ich Wake On LAN (WOL) eingerichtet habe. Dafür das System einschalten/neu starten und mit der Taste „ENTF/DEL“ in das BIOS/UEFI wechseln.

Im Reiter „Advanced“ den Eintrag „ACPI Configuration“ auswählen. Daraufhin werden dessen Einstellungen angezeigt. Die Einstellung „PCIE Device Power On“ muss als Wert „Enabled“ haben.

Alle weiteren Einstellungen, die in anderen Artikeln im Internet beschrieben sind, sind in diesen Fall nicht relevant für WOL.

Danach das Gerät neu starten, die Weboberfläche von Proxmox aufrufen und anmelden. Links im Navigationsbereich den Server auswählen. Nun im Menü in der Mitte den Eintrag „System -> Options“ anklicken.

Hinweis: Die MAC-Adresse der Netzwerkkarte könnt ihr über das BIOS/UEFI des Geräts auslesen.

Zu guter Letzt müssen noch Anpassungen am Debian durchgeführt werden. Dazu entweder eine SSH-Verbindung mit Hilfe von Putty aufbauen oder in der Weboberfläche den Eintrag „Shell“ auswählen.

Installation des Tools ethtool:

apt install -y ethtool

Konfiguration für den neuen Dienst. In Zeile 8 ggf. den Namen der Netzwerkkarte anpassen.

cat << EOF > /etc/systemd/system/wol.service
[Unit]
Description=Configure Wake-up on LAN
Requires=network.target
After=network.target
 
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s enp3s0 wol g
 
[Install]
WantedBy=multi-user.target
EOF

Neuer Dienst aktivieren und laden:

systemctl start wol.service
systemctl enable wol.service
systemctl is-enabled wol.service
systemctl daemon-reload

Abschließend den Server neu starten. Ist das System wieder hochgefahren, kann dies nun heruntergefahren werden. Schließlich erfolgt nun noch der Praxistest.

Ich nutze dafür unter Windows 10 das Tool WOL.EXE von Gammadyne. Die Nutzung ist simpel gehalten:

C:\Windows\System32\wol.exe a8a159aa8a3c /d 192.168.199.255

Und… das Gerät startet erfolgreich. 🙂

Hinweis: Die LED der Netzwerkkarte des Mainboards leuchten nicht, wenn das Gerät heruntergefahren ist. Vermutlich work as designed. Daher einfach am Switch/Router überprüfen, ob der Anschluss „up“ ist.

Anbindung des Servers an bestehende USV

Meine bestehendes NAS, ein Geräte vom Herstellers Synology, ist bereits mit Hilfe einer kleinen Eaton USV gegen Stromausfall abgesichert. Die Kommunikation erfolgt über eine direkte USB-Verbindung beider Geräte.

Der große Vorteil ist, dass der Disk System Manger (DSM) out-of-the-box einen UPS Server mitbringt.

Diese Funktion nutze ich bereits, damit ein anderes Gerät beim Stromausfall durch das NAS heruntergefahren wird.

Daher trage ich in die Liste einfach die IP-Adresse des Proxmox-Server ein und speichere die Änderungen. Wichtig ist, abschließend auf „Apply“ zu klicken, damit die Änderung auch wirksam wird (Neustart des UPSMAN Dienstes).

Danach eine SSH-Verbindung auf dem Proxmox-Server mit dem Benutzer root herstellen. Denn der notwendige NUT/UPSMON Client muss nachinstalliert werden.

apt install nut

Bevor die Konfiguration angepasst wird, sichere ich gerne die Original Konfigurationsdateien.

cp /etc/nut/nut.conf /etc/nut/nut.conf.original
cp /etc/nut/upsmon.conf /etc/nut/upsmon.conf.original

In der Datei /etc/nut/nut.conf folgende Änderung vornehmen:

# IMPORTANT NOTE:
#  This file is intended to be sourced by shell scripts.
#  You MUST NOT use spaces around the equal sign!

MODE=netclient

In der Datei /etc/nut/upsmon.conf folgende Änderung vornehmen:

# specified with a CERTHOST directive.
#
MONITOR ups@192.168.52.6 1 monuser secret master

Der Benutzername für die USV (ups) sowie die Zugangsdaten stammen aus der Konfiguration (etc/ups/upsmon.conf) von des Synology DSM. An die Informationen kommt man aktuell nur über SSH. Die „1“ definiert die Anzahl der USVs, welche den Proxmox mit Strom versorgen. Der Parameter slave bedeutet, dass der Proxmox Server sofort herunterfährt, wenn das USV einen kritischen Power Status erreicht hat.

Abschließend den Dienst (neu)starten.

service nut-client start

Wird kein Fehler ausgegeben, ist der Start erfolgreich gelungen.

Status des Dienstes prüfen:

root@pve01:/etc/nut# service nut-client status
● nut-monitor.service - Network UPS Tools - power device monitor and shutdown controller
     Loaded: loaded (/lib/systemd/system/nut-monitor.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-12-18 15:43:58 CET; 23s ago
    Process: 2563801 ExecStart=/sbin/upsmon (code=exited, status=0/SUCCESS)
   Main PID: 2563803 (upsmon)
      Tasks: 2 (limit: 76329)
     Memory: 904.0K
        CPU: 2ms
     CGroup: /system.slice/nut-monitor.service
             ├─2563802 /lib/nut/upsmon
             └─2563803 /lib/nut/upsmon

Dec 18 15:43:58 pve01 systemd[1]: Starting Network UPS Tools - power device monitor and shutdown controller...
Dec 18 15:43:58 pve01 upsmon[2563801]: fopen /run/nut/upsmon.pid: No such file or directory
Dec 18 15:43:58 pve01 upsmon[2563801]: Using power down flag file /etc/killpower
Dec 18 15:43:58 pve01 upsmon[2563801]: UPS: ups@192.168.52.6 (slave) (power value 1)
Dec 18 15:43:58 pve01 systemd[1]: nut-monitor.service: Can't open PID file /run/nut/upsmon.pid (yet?) after start: Operation not permitted
Dec 18 15:43:58 pve01 upsmon[2563802]: Startup successful
Dec 18 15:43:58 pve01 systemd[1]: nut-monitor.service: Supervising process 2563803 which is not our child. We'll most likely not notice when it exits.
Dec 18 15:43:58 pve01 systemd[1]: Started Network UPS Tools - power device monitor and shutdown controller.
Dec 18 15:43:58 pve01 upsmon[2563803]: Init SSL without certificate database

Datensicherung

Auch bei einem Homelab stellt sich die Frage nach dem Backup. Denn mit der Zeit sammeln sich immer mehr VMs an. Auch ein Homelab bleibt nicht vor Ausfällen von Hardware verschont. Ein Blitzeinschlag kann schon reichen. Übe die Zeit komme auch verschiedene Konfigurationsstände einer oder mehrere Anwendungen dazu. Auf Grund dessen habe ich mich für ein zwei stufiges Konzept entschieden.

Online-Backup

Ich habe hierfür eine vorhandene SATA Festplatte mit 10TB in den System verbaut. Hintergrund ist, dass die integrierte Backup Funktion in Proxmox ausschließlich eine Voll-Sicherung (natürlich komprimiert) durchgeführt. Auf Grund dessen geht primär um Speicherplatz und nicht Schnelligkeit.

Die Integration in PVE ist kinderleicht. Wichtig ist, dass die Festplatte leer ist und kein Partitionslayout vorhanden ist. Danach wird die Festplatte als einfaches Directory eingebunden.

Offline-Backup

Um auch ein Offsite-Backup und eine schnelle Sicherung haben, greife ich zusätzlich auf den Proxmox Backup Server (PBS) zurück. Der große Vorteil ist, dass der PBS inkrementelle Sicherungen unterstützt. Damit deutlich schneller ist, wie die Vollsicherung in Stufe 1.

Den PBS habe ich als virtuelle Maschine (VM) auf dem Gerät bereitgestellt. Als Datenspeicher möchte ich die bestehenden SSD Festplatte, welche ich bisher zur Sicherung meiner Testumgebung auf Basis von VirtualBox genutzt habe, hergenommen. Diese ist in einem externen USB 3.0 Gehäuse verbaut.

Der PBS kann schnell und bequem mit Hilfe der ISO Datei installiert werden. Ist die initiale Einrichtung abgeschlossen, kann nun die USB-Festplatte direkt an die VM durchgereicht werden. Das hat den Vorteil, dass die Festplatte nicht umständlich als Datastore über den PVE bereitgestellt werden. Das hat den großen Vorteil, dass die Festplatte jederzeit verbunden bzw. abgezogen werden (Offsite-Backup).

Über die Hardware Einstellungen der PBS kann das USB-Gerät hinzugefügt werden:

Danach kann in PBS die Festplatte formatiert und eingerichtet werden.

Einrichten E-Mail-Versand

Aktuell ist es leider nicht möglich, über Proxmox VE bzw. dessen Weboberfläche einen SMTP Relay Server o.ä. konfigurieren. Das bedeutet die Grundinstallation und Konfiguration muss direkt auf dem Betriebssystem erfolgen.

Ich greife daher auf meinen Artikel Konfiguration von msmtp zum Verschicken von E-Mails aus dem vergangenen Frühjahr zurück. Damit ist ein SMTP Service im Handumdrehen startklar.

Zuerst muss Absenderadresse in der Proxmox VE Weboberfläche hinterlegt werden. Hintergrund ist, dass die Datei /etc/aliases nicht beachtet wird.

Wo eine Absender Adresse ist, wird natürlich auch eine Empfänger-Adresse benötigt. Diese wird der Regel bei dem jeweiligen Benutzerkonto konfiguriert.

Wer die integrierte Backup Funktion nutzt, kann dort in den Einstellungen des Jobs ebenfalls noch eine E-Mail-Adresse eintragen.

Impressionen

Funktioniert. Viel Spaß beim Ausprobieren. 🙂

Abonnieren
Benachrichtige mich bei
0 Comments
Inline Feedbacks
View all comments