In zwei vorangegangenen Artikeln habe ich dir bereits sehr viel über meine neue Infrastruktur erzählt. Einer der wichtigen Begriffe dabei war das Proxmox Cluster. Doch so wirklich erklärt habe ich das bislang noch nicht. Dabei ist es in meinen Augen ein sehr interessantes und wichtiges Thema, das gerade auch im Smart Home von Vorteil sein kann.

Dabei gilt es natürlich zu wissen, dass ein Cluster immer im Kosten-Nutzen-Faktor abgewogen werden muss. Wie so vieles im Leben. Und sicherlich gibt es den einen oder anderen Leser, der sich zurecht fragt, ob das nicht ein wenig zu viel ist. Die Antwort darauf kann man jedoch nicht pauschal geben. Denn es kommt immer auf den Anwendungsfall an. So mag es in machen Fällen kaum einen Sinn ergeben in einem Cluster zu arbeiten. In anderen Fällen jedoch ist ein Cluster äußerst wünschenswert.

Schlussendlich will ich darauf hinaus, dass du selbst abwägen musst. Möchtest du das Geld investieren, um ein Cluster aufzubauen oder gehst du das Risiko eines einzigen Servers ein. Ich habe mich zum Beispiel ganz klar dafür entschieden, in einem Cluster zu arbeiten. Das bietet mir neben dem Ausfallschutz auch noch den Vorteil, dass ich weitere Dienste auf meinen Servern flexibel hin- und herschieben kann, wie es mir gerade passt.

Natürlich betreibe ich als Informatiker auch noch mehr Systeme als nur das zentrale Smart Home System. Und es ist für mich eine tolle Spielwiese, um neue Dinge auszuprobieren und meine eigene Kenntnisse zu erweitern. Und das in einem sehr praktischen Szenario. Eine Übersicht über meine Systeme findest du im Artikel Homeserver Anwendungen.

Foto von Thomas Jensen auf Unsplash

Was bedeutet Cluster?

Prinzipiell würden wir Deutschen wohl zum Cluster eher Rechnerverbund sagen (Quelle: Wikipedia). Zumindest, wenn wir es mit unserer Sprache sehr genau nehmen. In der Praxis spricht man jedoch meist nicht von einem Rechnerverbund oder einem Computercluster, sondern benennt diese Technologie einfach als Cluster.

Die Technologie, welche dahintersteckt, kann oft auf zwei wesentliche Einsatzszenarien reduziert werden. Einerseits dient sie der Erhöhung der Rechnerkapazitäten, andererseits der sogenannten Hochverfügbarkeit (Quelle: Wikipedia). Unterscheidet man noch etwas genauer, so trifft man auf drei Teilbereiche. Hier kommt wieder das Thema Hochverfügbarkeit ins Spiel sowie das hochperformante Cluster, jedoch auch das Load-Balancing (Quelle: Cloudflight).

Wir sehen also, dass ein Cluster nicht einfach nur dazu dient, Dienste bereitzustellen. Es geht dabei eher um die Absicherung der Dienste oder das Bereitstellen von sehr großen Ressourcen. Bekannt ist dieses Verfahren auch von Cloud-Anbietern. So gibt Amazon beispielsweise an, dass bei Ausfall eines Rechenzentrums genug Ressourcen zur Verfügung stehen, um Aufgaben auf andere Rechenzentren zu verteilen (Quelle: Amazon). Anstatt nur mehrere Server zu betreiben, wird im großen Umfeld also ganz bewusst auf eine Redundanz zwischen mehreren Standorten gesetzt. Auch das ist ein Cluster.

Zusammenfassend ist ein Cluster also ein Rechnerverbund, der nach außen wie ein großer Computer auftritt (Quelle: Cloudflight). Wie das Cluster aufgebaut ist, bestimmt dabei der Anbieter oder Administrator des Systems. Diese Aufgabe übernimmst du selbst in deinem Heimnetzwerk.

Das Proxmox Cluster

Auch Proxmox bietet für Anwender die Möglichkeit, ein eigenes Cluster aufzubauen. Zentrale Merkmale des Clusters sind dabei unter anderem die gemeinsame Verwaltung aller Ressourcen über eine einzige Weboberfläche, Migration von virtuellen Maschinen und Containern zwischen den Servern sowie eine clusterweite Firewall (Quelle: Proxmox).

Die Einrichtung des Clusters erfolgt dabei über die Weboberfläche der einzelnen Systeme. Hierzu wird auf einem System das Cluster erstellt. Daraufhin erhält man kryptisch-aussehende Schlüssel, die auf den anderen Servern hinterlegt werden, so dass diese dem Cluster beitreten können. Sobald der Vorgang abgeschlossen wurde, können beide Server über eine einzige Weboberfläche verwaltet werden.

Damit es jedoch zu einer gemeinsamen Kommunikation kommen kann, müssen beide Server über ein gemeinsames Netzwerk miteinander verbunden sein. Über dieses Netzwerk erfolgt dann die Kommunikation zwischen den Servern sowie die Migration der einzelnen virtuellen Maschinen. Das wohl wichtigste Element ist dabei die Kommunikation. Denn sie ermöglicht das Abstimmen beider Server und ist eine der essenziellsten Grundlagen.

Das kannst du dir in etwa vorstellen, wie bei einer Gruppenarbeit. Natürlich bearbeitet hier jeder seinen eigenen Teil, allerdings muss die Gruppe sich untereinander abstimmen, damit die gemeinsame Aufgabe erfolgreich abgeschlossen wird. Ohne Abstimmung hast du am Ende ein furchtbares Durcheinander, das keiner mehr versteht und nicht das eigentliche Ziel erfüllt.

Es mag also etwas irritierend klingen, doch auch Computer müssen miteinander reden.

Jetzt mehr erfahren:  Proxmox Homeserver - Meine Pläne 2022

Welche Voraussetzungen gelten?

Nun darf man sich zurecht fragen, welche Voraussetzungen denn erfüllt sein müssen, damit sich aus mehreren Servern ein Cluster bilden kann. Bei deinem Proxmox Cluster gibt es hierfür klare Spielregeln.

Neben der Anforderung der Kommunikation müssen alle Uhrzeiten synchron laufen. Ebenso muss eine SSH- sowie UDP-Verbindung möglich sein. Gerade beim Einsatz einer Firewall kann das möglicherweise noch etwas Konfigurationsarbeit bedeuten.

Ebenso benötigst du das Root-Passwort deines Nodes, der mit dem Cluster verbunden werden soll. Das ist im Grunde auch sehr logisch, denn nur der Systemadministrator selbst darf bestimmen, was mit seinem Server passiert. Ohne die entsprechende Berechtigung darf kein Zutritt stattfinden.

Mit der Eingabe deiner kryptischen Schlüssel, also dem Fingerabdruck gibt das Cluster seine Zustimmung zum Beitritt. Das bedeutet also, dass jeder Server beitreten kann, dem der Schlüssel mitgeteilt wurde. Selbstverständlich kann das nun nicht jede wildfremde Person aus dem Internet. Denn es muss – wie bereits erwähnt – eine Kommunikation über SSH und UDP möglich sein. Aus dem Internet ist das normalerweise nicht einfach so möglich. Hier schreitet die Firewall ein und unterbindet derartige Zugriffe auf die Server. Umgangen werden kann das nur, indem die Ports geöffnet werden. Ich rate dir aber ausdrücklich, unbedingt und mit voller Kraft davon ab.

Bitte niemals irgendwelche Ports nach außen öffnen, wenn das nicht unbedingt notwendig ist.

Das eigene Netzwerk

Okay, okay. Ich nenne nun schon wieder das Wort Kommunikation im Proxmox Cluster. Aber in diesem Abschnitt müssen wir doch nochmal darauf zu sprechen kommen. Denn es gibt eine Möglichkeit, den Austausch zwischen beiden Servern zu fördern.

Neben dem eigenen Hausnetzwerk, sollte meiner Meinung nach immer ein eigenes Netz zwischen den Servern bestehen. Über dieses Netzwerk können sie sich jederzeit austauschen und auch die Live Migration der virtuellen Maschinen kann darüber erfolgen.

Ein großer Vorteil besteht dabei darin, dass dieser Datenverkehr nicht das Hausnetz belastet. So steht zum Surfen immer noch die volle Geschwindigkeit zur Verfügung und auch die Übertragung der Daten zwischen den Servern sollte ziemlich flott gehen.

Ich habe mir hierfür in meinem Serverschrank einen eigenen Switch angeschafft, der über die USV dauerhaft mit Strom versorgt wird. Er vermittelt nun die Daten zwischen den NAS-Systemen und den Servern. Damit halte ich mir die Kommunikation aus meinem hausinternen Netzwerk heraus, da noch ein großer Teil des Hausnetzes nach den Servern kommt. Hier spürt man bereits jetzt deutlich, was diese Veränderung gebracht hat. Mein Ping ist gesunken und auch die Downloads funktionieren sehr stabil und zuverlässig. Zwar war das vorher auch schon der Fall, jedoch merkt man, dass diese Umstrukturierung noch ein klein wenig mehr an Geschwindigkeit herausholen konnte.

Ein weiterer Vorteil dabei ist, dass genau dieses Netzwerk im Falle eines Stromausfalls weiter mit Strom versorgt bleiben kann. So können die Maschinen sicher und zuverlässig herunterfahren, ohne dass es dabei zu einem Schaden kommt.

Jetzt mehr erfahren:  Homeserver Anwendungen - Die Dienste brauche ich

Mehr Leistung gefällig?

Wie bei vielen Dingen im Leben, verändern sich auch bei Servern nach und nach die Anforderungen. Alte Hardware wird ausgetauscht und es muss möglicherweise neue angeschafft werden, um den täglichen Herausforderungen noch standhalten zu können. In meinen Augen ist das mit Proxmox kein Problem. Jedenfalls kein großes.

Technisch gesehen ist es mir in meiner Umgebung möglich, dass ich mein Proxmox Cluster durch das Hinzufügen neuer Server mit mehr Ressourcen ausstatten kann. Dabei bestehen aus meiner Sicht zwei verschiedene Möglichkeiten.

Die erste Möglichkeit zielt dabei auf den Kauf eines neuen Servers ab, der dann in den Schrank eingebaut wird. Er wird mit Proxmox installiert und der Server wird daraufhin ins Cluster aufgenommen. In meinem Anwendungsszenario ist das die sinnvollste Möglichkeit.

Die zweite Möglichkeit wäre die Anmietung eines Servers im Rechenzentrum, welcher per VPN in mein Heimnetzwerk aufgenommen wird. Er kann dann im Notfall wichtige Aufgaben übernehmen, ohne dass es zu einem Ausfall kommt. Allerdings sehe ich hier für mich persönlich noch Schwierigkeiten in der Anbindung meines Storage sowie der Weiterleitung von Domains, die explizit woanders hin zeigen. Zwar lässt sich das lösen, jedoch ist hierbei die Frage, wie wichtig das ist.

Möglichkeit 2 wäre daher für mich nur eine Option, wenn ich kurzfristig die kompletten Server abschalten muss, aber weiterhin eine Internetverbindung habe. Dann könnte ich meine Wartungsarbeiten in Ruhe durchführen, während das Smart Home jedoch funktionsfähig bleibt.

Nicht die Mehrheiten vergessen

Ähnlich wie in einem demokratischen System, benötigt das Proxmox Cluster zum Betrieb ein Quorum. Jedenfalls dann, wenn es um das Thema Hochverfügbarkeit geht. Nur die Mehrheit darf entscheiden, was passiert. Ein einzelner Teilnehmer ist nicht dazu in der Lage, selbst Entscheidungen zu treffen.

Machen wir das an einem Beispiel deutlich.

Du betreibst zwei Server, die zusammen dein Proxmox Cluster bilden. Nun fällt einer der Server aus und du möchtest, dass die Hochverfügbarkeit greift und die Maschinen auf den zweiten Server verschiebt. Woher weiß der Server aber nun, ob er einschreiten muss? Wie kann er sich sicher sein, dass die ausgefallene Kommunikation nicht an ihm liegt?

Ganz einfach. Gar nicht.

An dieser Stelle kommt ein dritter Server ins Spiel. Er bestätigt dem zweiten Server, dass auch er keine Verbindung zum ersten Server aufnehmen kann. Daraufhin weiß der zweite Server, dass er mit der Wiederherstellung der Dienste beginnen muss.

Es ist also im Cluster immer notwendig, dass du für eine Mehrheit sorgst. Andernfalls blockt Proxmox von sich aus bereits weitere Aktionen, da du unter Umständen den entstandenen Schaden oder Ausfall nur verschlimmern könntest.

Doch wie kann man im Heimnetz seine Mehrheit wahren, ohne dabei gleich eine Unmenge an Servern kaufen zu müssen?

Das Quorum einfach herstellen

Greifen wir zu Klärung der vorangegangenen Frage als Beispiel auf meine Infrastruktur zurück. Auch ich habe mir eine ganze Weile überlegt, wie ich die Mehrheit im Cluster auch bei einem Ausfall eines Servers behalten kann. Die Antwort darauf ist im Grunde so einfach wie genial.

Ich nutze in meinem konkreten Fall hierfür mein NAS. Dort habe ich in eine virtuelle Maschine Proxmox installiert. Diese Installation wurde ordnungsgemäß ins Cluster aufgenommen und kommuniziert seither über das oben genannte interne Netzwerk der Server. In der Hochverfügbarkeit habe ich definiert, dass keine der laufenden virtuellen Maschinen auf dem NAS gestartet werden darf. Niemals. Denn hierfür reicht die Leistung nicht aus.

Jedoch kann das NAS sehr wohl eine wichtige Aufgabe im Cluster übernehmen. Bei einem Ausfall eines Servers signalisiert auch das NAS, dass es den Server nicht erreichen kann. So kann sich der andere Server sicher sein, dass die Nichterreichbarkeit nicht auf ihn zurückzuführen ist. Server 2 startet daraufhin sofort die Wiederherstellung der virtuellen Maschinen, welche durch die Hochverfügbarkeit abgesichert sind.

Eine Alternative hierzu wäre der Einsatz eines sogenannten Intel NUC. Er könnte für die nötige Mehrheit sorgen und im Zweifel die wichtigste VM übernehmen. Jedoch gilt für mich hier die Abwägung von Kosten und Nutzen. Daher bin ich zu dem Entschluss gekommen, dass zwei Server reichen müssen. Ein Intel NUC stellt daher für mich im Moment keine denkbare Alternative dar.

Braucht jeder ein Proxmox Cluster?

Zugegeben, meine Infrastruktur wirkt für manche etwas übertrieben. Ist sie auch für viele Fälle, keine Frage. Jedoch mache ich mir schon gewisse Sorgen über einen möglichen Ausfall, wie ich ihn bereits hatte. Dieses Problem versuche ich in einem gewissen Rahmen zu umgehen.

Das bedeutet nun aber auch, dass nicht jedes Smart Home auf einem Cluster aufgebaut werden muss. Stattdessen kann genauso ein gut gepflegter Server zum Einsatz kommen, den man engmaschig beobachtet. Wichtig dabei ist jedoch, dass man wissen muss, ein Ausfall kann jederzeit eintreten. Davor ist man nur bedingt geschützt.

Backups sind eine wichtige Möglichkeit, um für den Ernstfall vorzusorgen. So kann zumindest nach einem Hardwareaustausch die Infrastruktur wiederhergestellt werden. Völlig ohne Schwierigkeiten und ohne lange Ausfallzeit.

Das Cluster selbst verschafft mir persönlich hierbei etwas mehr Zeit. Fällt zum Beispiel ein Server aus und der zweite übernimmt die Aufgaben, so kann ich mich in dieser Zeit um den Schaden kümmern. Muss nun der erste Server für einige Tage zur Reparatur, wird mein Smart Home weiter funktionsfähig bleiben.

Nicht zu vergessen ist außerdem, dass ich noch ein paar weitere Dienste betreibe, die für mich sehr essenziell sind. Wie bereits in einem anderen Artikel beschrieben gehören dazu unter anderem die Passwortverwaltung oder der Ad-Blocker auf Netzwerkebene. Natürlich genauso wie die Nextcloud, über die ich wichtige geschäftliche Dokumente schnell und unkompliziert austauschen kann. Ein Ausfall der Nextcloud kann daher bei mir für einen finanziellen Schaden sorgen, den es unbedingt abzumildern gilt.

Für das herkömmliche Smart Home ist ein Cluster jedoch in vielen Fällen eine Spielerei. Dennoch kann man hierbei sehr viel Neues lernen und seine eigenen Kenntnisse erweitern.


Lukas

Hey, ich bin Lukas. Seit einigen Jahren schreibe ich in meinem Smart Home Blog über Hausautomation und Digitalisierung. Als Wirtschaftsinformatiker weiß ich, wie wichtig die Vernetzung von IT-Systemen ist. Diese Erkenntnisse übertrage ich auf mein eigenes Smart Home, das ich auf Basis von ioBroker betreibe. Hierzu nutze ich die Leistung meines eigenen Server-Clusters aus dem Keller. In deinen Ohren klingt das mindestens genauso spannend, wie für mich? Dann komm mit auf unsere Reise zu einem vollwertigen, sicheren und komfortablen Smart Home. Ganz oben findest du Verknüpfungen zu Social Media, wo du mir gerne folgen darfst. Ich freue mich auf dich!

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.