Neben meinem QNAP NAS hatte ich jahrelang einen Raspberry Pi.
Der Pi hatte damals mehrere Dienste vereint:
- Pi-Hole für DHCP mit eigener Suchdomäne (die Fritzbox ist fix auf fritz.box limitiert), sowie DNS mit Adblocker
- ZNC, ein IRC Bouncer
- SyncThing, damit ich Sync-Konflikte drastisch reduzieren kann weil quasi immer mindestens ein Node online ist
- Samba Fileserver damit mein Netzwerkdruckerscannerfaxgerät quasi direkt in mein SyncThing-Verzeichnis scannen kann
- Home-Assistant zur Heimautomatisierung
Auf dem NAS lief neben dem obligatorischen Fileserver auch noch ein TeamSpeak-3-Server.
Das Problem war: wenn ich an einem der Dienste rumbastle, und mal neustarten muss, sind alle Dienste temporär weg. Insbesondere doof, wenn währenddessen auch der Internetzugang effektiv nicht funktioniert. Auch gab es manche Dienste, namentlich TeamSpeak, nicht für ARM, sonder nur x86, weswegen das auf dem NAS lief. Zusätzlich doof: wenn sich jemand mit dem Server verbinden wollte, hörte ich hier erstmal, wie die Festplatten anliefen. Dauerte lange genug für einen Timeout, und es brauchte meistens einen zweiten Verbindungsversuch, der dann aber recht unmittelbar klappte.
Irgendwann war dann Home-Assistant zerballert, ich weiß gar nicht mehr, warum. Ich bekam es aber nicht mehr zum laufen, und so generell war der Pi dazu auch etwas untermotorisiert.
Deswegen habe ich mir für knapp über 100 Euro einen gebrauchten Dell Wyse 5070 Thinclient besorgt, und darauf Proxmox Virtual Environment, kurz Proxmox oder PVE, installiert. Per Helper-Script kann man auch recht komfortabel den Nag-Screen entfernen, sowie das Enterprise-Repository, auf das man ohne Lizenz keinen Zugriff hat, und so weiter. Natürlich gilt: wer Proxmox wertschätzt und kann, kauft bitte eine Lizenz. :-) Aber laufen tut’s auch ohne, und ich bin bisher noch an keine Grenze gestoßen, wo ich den Enterprise-Kram gebraucht hätte.
Jedenfalls: Ich habe mir je einen Container und eine VM mit Arch Linux gebaut. Basierend auf denen dann Container und VMs mit den oben genannten Diensten.
Ausserdem noch eine VM mit Windows 2000 Server, die ich sehr gelegentlich mal anwerfe um dort einen uralten Chatbot mit IRC-Interface zu hosten, der auf meinem Twitch-Kanal die Leute irritiert.
Home-Assistant hatte ich ebenfalls per Helper-Script installiert, meine ich, und es läuft jetzt als „offizielle“ VM (vorher nur den Programmteil unter Arch Linux on ARM auf dem Raspberry Pi, was nicht offiziell unterstützt und auch etwas hakelig war).
Ich benutze übrigens Arch, damit ich mir größere manuelle Eingriffe bei großen Releases erspare. Einfach einmal die Woche Updates installieren, und gut ist. Das habe ich semi-automatisiert per Ansible; da wird dann fast alles aktualisiert und neugestartet.
Proxmox selbst ist leider kein Rolling Release, und erforderte seit meiner Installation ein großes Update mit manueller Arbeit. Dafür habe ich in meinen alten Mac Pro eine zusätzliche, alte Festplatte eingesteckt, auf der ich ebenfalls Proxmox installiert habe. Die zwei Server habe ich dann in ein Cluster gepackt. Jetzt muss ich zwar bei Updates immer beide Rechner laufen haben, aber dafür kann ich meine Pi-Hole-VM dann mal eben live umziehen, während ich erst den einen und dann den anderen Server aktualisiere. Andere Benutzer im LAN kriegen das gar nicht mit.
Generell sind alle Dienste/Server separiert, und werden automatisch wöchentlich gesichert. Wenn dann mal ein Update fehltschlägt (kam schon vor), kann ich notfalls die Sicherung wiederherstellen, das dauert dann ein paar wenige Minuten, und es geht weiter.
Als Storage nutze ich bevorzugt den internen Speicher der Nodes, aber ich spiele auch mit dem Gedanken, den freien Slot im NAS mit einer SSD auszustatten, und dort die virtuellen Festplatten zu hinterlegen. Hätte den großen Vorteil, dass das migrieren von VMs/LXCs zwischen den Nodes nicht mehr 2-5 Minuten dauern würde, sondern quasi instant wäre. Zumindest bei LXCs, die gehen nur offline migrieren. VMs hingegen live.
Mit Docker will auch mehr spielen; ich benutze das bislang nur am Desktop und Laptop für gelegentlichen Kleinkram. Mittelfristig will mir dafür eine VM aufsetzen. Aber so richtig Bedarf hab ich aktuell halt nicht, und der Thinclient kam mit nur 8 GiB RAM, und das wird bereits so langsam eng. Muss da schon mit Ballooning tricksen.