Clusterbildung in Proxmox VE

Clusterbildung in Proxmox VE

In früheren Artikeln haben wir darüber gesprochen, was Proxmox VE ist und wie es funktioniert. Heute werden wir erklären, wie man die Clusterfunktion nutzen kann und welche Vorteile dies bietet.

Was ist ein Cluster und wozu wird er benötigt? Ein Cluster ist eine Gruppe von Servern, die durch Hochgeschwindigkeitskommunikationskanäle verbunden sind und für den Benutzer als eine Einheit arbeiten und dargestellt werden. Es gibt mehrere Hauptszenarien für die Nutzung eines Clusters:

  • Sicherstellung der Ausfallsicherheit (Hochverfügbarkeit).
  • Lastenausgleich (Lastverteilung).
  • Steigerung der Leistung (Hohe Leistung).
  • Durchführung verteilter Berechnungen (Verteilte Berechnung).

Jedes Szenario hat seine eigenen Anforderungen an die Komponenten des Clusters. Zum Beispiel erfordert ein Cluster, das verteilte Berechnungen durchführt, eine hohe Geschwindigkeit bei Gleitkommaoperationen und niedrige Netzwerklatenz. Solche Cluster werden oft für wissenschaftliche Zwecke verwendet.

Da wir das Thema verteilte Berechnungen angesprochen haben, ist es erwähnenswert, dass es auch das Konzept eines Grid-Systems (von engl. grid – Gitter, Netzwerk) gibt. Trotz ihrer offensichtlichen Ähnlichkeit sollte man ein Grid-System nicht mit einem Cluster verwechseln. Ein Grid ist kein Cluster im herkömmlichen Sinne. Im Gegensatz zu einem Cluster sind die in ein Grid aufgenommenen Knoten in der Regel heterogen und weisen eine niedrige Verfügbarkeit auf. Dieser Ansatz vereinfacht die Lösung von Aufgaben verteilter Berechnungen, ermöglicht jedoch nicht, aus den Knoten eine Einheit zu schaffen.

Ein deutliches Beispiel für ein Grid-System ist die beliebte Berechnungsplattform BOINC (Berkeley Open Infrastructure for Network Computing). Diese Plattform wurde ursprünglich für das Projekt SETI@home (Search for Extra-Terrestrial Intelligence at Home) entwickelt, das sich mit der Erforschung extraterrestrischer Intelligenz durch die Analyse von Radiosignalen beschäftigt.

Die DANE-Spezifikation ist inEine enorme Menge an Daten, die von Radioteleskopen gesammelt werden, wird in zahlreiche kleine Stücke zerlegt und an die Knoten des Grid-Systems gesendet (im SETI@home-Projekt spielen Computer von Freiwilligen die Rolle solcher Knoten). Die Daten werden an den Knoten verarbeitet und nach Abschluss der Verarbeitung an den zentralen Server des SETI-Projekts zurückgesendet. So wird ein äußerst komplexes globales Problem gelöst, ohne über die erforderlichen Rechenressourcen zu verfügen.

Jetzt, da wir ein klares Verständnis davon haben, was ein Cluster ist, wollen wir betrachten, wie man ihn erstellen und einsetzen kann. Wir werden ein Open-Source-Virtualisierungssystem verwenden. Proxmox VE.

Es ist besonders wichtig, vor der Erstellung eines Clusters die Einschränkungen und Systemanforderungen von Proxmox klar zu verstehen, nämlich:

  • die maximale Anzahl der Knoten im Cluster — 32;
  • alle Knoten müssen die gleiche Proxmox-Version haben (es gibt Ausnahmen, aber für die Produktion werden sie nicht empfohlen);
  • wenn in Zukunft die Funktionalität von High Availability genutzt werden soll, dann muss der Cluster mindestens 3 Knoten haben;
  • für die Interaktion der Knoten müssen die Ports UDP/5404, UDP/5405 für corosync und TCP/22 für SSH geöffnet sein;
  • die Verzögerung im Netzwerk zwischen den Knoten darf nicht mehr als 2 ms betragen..

Cluster erstellen

Wichtig! Die folgende Konfiguration ist testweise. Vergessen Sie nicht, die offizielle Dokumentation von Proxmox VE zu überprüfen.

Um einen Test-Cluster zu starten, haben wir drei Server mit installiertem Hypervisor Proxmox in gleicher Konfiguration (2 Kerne, 2 GB RAM) verwendet.

Wenn Sie erfahren möchten, wie man Proxmox installiert, empfehlen wir, unseren vorherigen Artikel zu lesen — Die Magie der Virtualisierung: Ein Einführungskurs in Proxmox VE.

Ursprünglich, nach der Installation des Betriebssystems, arbeitet ein einzelner Server im Standalone-Modus..

Clusterbildung in Proxmox VE
Lassen Sie uns einen Cluster erstellen, indem wir auf die Schaltfläche Cluster erstellen im entsprechenden Abschnitt klicken.

Clusterbildung in Proxmox VE
Geben Sie dem zukünftigen Cluster einen Namen und wählen Sie eine aktive Netzwerkverbindung aus.

Clusterbildung in Proxmox VE
Klicken Sie auf die Schaltfläche Erstellen. Der Server generiert einen 2048-Bit-Schlüssel und speichert ihn zusammen mit den Parametern des neuen Clusters in den Konfigurationsdateien.

Clusterbildung in Proxmox VE
Die Nachricht TASK OK zeigt an, dass die Operation erfolgreich ausgeführt wurde. Jetzt, wenn man die allgemeinen Systeminformationen betrachtet, sieht man, dass der Server in den Cluster-Modus gewechselt ist. Bisher besteht der Cluster nur aus einem Knoten, das heißt, er hat noch nicht die Funktionen, wegen denen ein Cluster erforderlich ist.

Clusterbildung in Proxmox VE

Beitritt zu einem Cluster

Bevor Sie sich mit dem erstellten Cluster verbinden, müssen wir die Informationen für die Verbindung erhalten. Gehen Sie dazu in den Abschnitt Cluster und klicken Sie auf die Schaltfläche Beitrittsinformationen..

Clusterbildung in Proxmox VE
Im geöffneten Fenster interessiert uns der Inhalt des gleichnamigen Feldes. Diesen müssen wir kopieren.

Clusterbildung in Proxmox VE
Hier sind alle notwendigen Verbindungseinstellungen kodiert: die Adresse des Servers für die Verbindung und der digitale Fingerabdruck. Wir wechseln zu dem Server, der in den Cluster aufgenommen werden soll. Wir drücken die Taste Cluster beitreten und fügen im sich öffnenden Fenster den kopierten Inhalt ein.

Clusterbildung in Proxmox VE
Felder Peer-Adresse und Fingerabdruck werden automatisch ausgefüllt. Wir geben das root-Passwort für den Knoten Nummer 1 ein, wählen die Netzwerkverbindung aus und drücken die Taste Beitreten.

Clusterbildung in Proxmox VE
Während des Verbindungsprozesses zum Cluster kann die GUI-Webseite aufhören zu aktualisieren. Das ist normal, einfach die Seite neu laden. Auf die gleiche Weise fügen wir ein weiteres Knoten hinzu und erhalten schließlich einen vollständigen Cluster aus 3 funktionierenden Knoten.

Clusterbildung in Proxmox VE
Jetzt können wir alle Knoten des Clusters über eine einzige GUI steuern.

Clusterbildung in Proxmox VE

Organisation der hohen Verfügbarkeit

Proxmox unterstützt „out of the box“ die Funktionalität zur Organisation von HA sowohl für virtuelle Maschinen als auch für LXC-Container. Das Tool ha-manager erkennt und behebt Fehler und Ausfälle, indem es einen Failover von einem fehlerhaften Knoten auf einen arbeitsfähigen durchführt. Damit der Mechanismus korrekt funktioniert, müssen die virtuellen Maschinen und Container über einen gemeinsamen Speicherort verfügen.

Nach der Aktivierung der Funktionalität zur hohen Verfügbarkeit beginnt der Software-Stack ha-manager, den Betriebszustand der virtuellen Maschine oder des Containers kontinuierlich zu überwachen und asynchron mit anderen Knoten im Cluster zu interagieren.

Gemeinsamen Speicher hinzufügen

Als Beispiel haben wir einen kleinen NFS-Dateispeicher unter der Adresse 192.168.88.18 bereitgestellt. Damit alle Knoten des Clusters ihn nutzen können, müssen folgende Schritte durchgeführt werden.

Wir wählen im Menü der Weboberfläche Rechenzentrum — Speicher — Hinzufügen — NFS.

Clusterbildung in Proxmox VE
Füllen Sie die Felder aus ID und Server. In der Dropdown-Liste Export wählen wir das benötigte Verzeichnis aus den verfügbaren aus und im Bereich Inhalt — die erforderlichen Datentypen. Nach dem Drücken der Taste Hinzufügen wird der Speicher an alle Knoten des Clusters angeschlossen.

Clusterbildung in Proxmox VE
Beim Erstellen von virtuellen Maschinen und Containern auf einem der Knoten geben wir unser storage als Speicher an.

HA konfigurieren

Zur Veranschaulichung erstellen wir einen Container mit Ubuntu 18.04 und konfigurieren die hohe Verfügbarkeit dafür. Nach dem Erstellen und Starten des Containers gehen wir zum Abschnitt Rechenzentrum — HA — Hinzufügen. Im sich öffnenden Feld geben wir die ID der virtuellen Maschine/des Containers und die maximale Anzahl der Neustart- und Migrationversuche zwischen Knoten an.

Wenn diese Anzahl überschritten wird, markiert der Hypervisor die VM als fehlerhaft und versetzt sie in den Fehlerzustand, woraufhin er aufhört, mit ihr zu interagieren.

Clusterbildung in Proxmox VE
Nach dem Drücken der Taste Hinzufügen Dienstprogramm ha-manager wird alle Knoten des Clusters darüber informieren, dass die VM mit der angegebenen ID nun kontrolliert wird und im Falle eines Ausfalls neu gestartet werden muss auf einem anderen Knoten.

Clusterbildung in Proxmox VE

Wir provozieren einen Ausfall

Um zu sehen, wie der Failover-Mechanismus funktioniert, schalten wir node1 unerwartet aus. Wir beobachten von einem anderen Knoten, was mit dem Cluster passiert. Wir sehen, dass das System den Ausfall registriert hat.

Clusterbildung in Proxmox VE

Die Funktionsweise des HA-Mechanismus bedeutet nicht die ununterbrochene Verfügbarkeit der VM. Sobald der Knoten 'ausgefallen' ist, wird die Arbeit der VM temporär gestoppt, bis sie automatisch auf einem anderen Knoten neu gestartet wird.

Und hier beginnt die 'Magie' — der Cluster hat den Knoten automatisch für die Ausführung unserer VM zugewiesen und innerhalb von 120 Sekunden war die Arbeit automatisch wiederhergestellt.

Clusterbildung in Proxmox VE
Wir schalten node2 aus. Lassen Sie uns sehen, ob der Cluster standhält und ob die VM automatisch wieder in den Betriebszustand zurückkehrt.

Clusterbildung in Proxmox VE
Leider sehen wir, dass ein Problem aufgetreten ist, da der einzige verbleibende Knoten nicht mehr über Quorum verfügt, was die HA-Funktion automatisch deaktiviert. Wir geben im Konsolenbefehl zur erzwungenen Quorum-Setzung ein.

pvecm erwartete 1

Clusterbildung in Proxmox VE
Nach 2 Minuten hat der HA-Mechanismus korrekt gearbeitet und hat, da er node2 nicht gefunden hat, unsere VM auf node3 gestartet.

Clusterbildung in Proxmox VE
Sobald wir node1 und node2 wieder eingeschaltet haben, war die Operation des Clusters vollständig wiederhergestellt. Beachten Sie, dass die VM nicht automatisch zurück zu node1 migriert, dies jedoch manuell durchgeführt werden kann.

Zusammenfassung

Wir haben Ihnen erklärt, wie der Cluster-Mechanismus in Proxmox funktioniert, und gezeigt, wie HA für virtuelle Maschinen und Container eingerichtet wird. Die richtige Nutzung von Cluster- und HA-Technologien erhöht die Zuverlässigkeit der Infrastruktur erheblich und sorgt für die Wiederherstellung nach Ausfällen.

Bevor Sie einen Cluster erstellen, sollten Sie sofort planen, für welche Zwecke er verwendet werden soll und wie sehr er in der Zukunft skalierbar sein muss. Überprüfen Sie auch die Netzwerkinfrastruktur auf die Bereitschaft, mit minimalen Verzögerungen zu arbeiten, damit der zukünftige Cluster störungsfrei arbeitet.

Erzählen Sie uns — nutzen Sie die Clustering-Möglichkeiten in Proxmox? Wir freuen uns auf Ihre Kommentare.

Frühere Artikel zum Thema Hypervisor Proxmox VE:

Quelle: habr.com

60GB SSD 8Gb DDR4