Clustering in Proxmox VE

Clustering in Proxmox VE

In früheren Artikeln haben wir begonnen, darüber zu sprechen, was Proxmox VE ist und wie es funktioniert. Heute sprechen wir darüber, wie Sie die Möglichkeit des Clusterings nutzen können und zeigen, welche Vorteile es bietet.

Was ist ein Cluster und warum wird er benötigt? Ein Cluster (aus dem Englischen Cluster) ist eine Gruppe von Servern, die durch Hochgeschwindigkeitskommunikationskanäle verbunden sind und für den Benutzer als ein Ganzes funktionieren und erscheinen. Es gibt mehrere Hauptszenarien für die Verwendung eines Clusters:

  • Bereitstellung von Fehlertoleranz (Hohe Verfügbarkeit).
  • Lastverteilung (Lastverteilung).
  • Steigerung der Produktivität (Hochleistung).
  • Verteiltes Rechnen durchführen (Verteiltes Rechnen).

Jedes Szenario hat seine eigenen Anforderungen an die Clustermitglieder. Beispielsweise ist für einen Cluster, der verteiltes Rechnen durchführt, die Hauptanforderung eine hohe Geschwindigkeit der Gleitkommaoperationen und eine geringe Netzwerklatenz. Solche Cluster werden häufig zu Forschungszwecken genutzt.

Da wir das Thema verteiltes Rechnen angesprochen haben, möchte ich anmerken, dass es auch so etwas gibt Gittersystem (vom englischen Gitter – Gitter, Netzwerk). Trotz der allgemeinen Ähnlichkeit sollten das Rastersystem und der Cluster nicht verwechselt werden. Grid ist kein Cluster im üblichen Sinne. Im Gegensatz zu einem Cluster sind die im Raster enthaltenen Knoten meist heterogen und zeichnen sich durch eine geringe Verfügbarkeit aus. Dieser Ansatz vereinfacht die Lösung verteilter Rechenprobleme, ermöglicht jedoch nicht die Erstellung eines einzigen Ganzen aus Knoten.

Ein markantes Beispiel für ein Grid-System ist eine beliebte Computerplattform BOINC (Berkeley Open Infrastructure für Network Computing). Diese Plattform wurde ursprünglich für das Projekt erstellt SETI @ home (Search for Extra-Terrestrial Intelligence at Home), das sich mit dem Problem befasst, außerirdische Intelligenz durch die Analyse von Funksignalen zu finden.

Wie funktioniert dasEine riesige Menge an Daten, die von Radioteleskopen empfangen werden, wird in viele kleine Teile zerlegt und an die Knoten des Gittersystems gesendet (im SETI@home-Projekt spielen freiwillige Computer die Rolle solcher Knoten). Die Daten werden an den Knoten verarbeitet und nach Abschluss der Verarbeitung an den zentralen Server des SETI-Projekts gesendet. Somit löst das Projekt das komplexeste globale Problem, ohne über die erforderliche Rechenleistung zu verfügen.

Nachdem wir nun ein klares Verständnis davon haben, was ein Cluster ist, schlagen wir vor, darüber nachzudenken, wie er erstellt und genutzt werden kann. Wir werden ein Open-Source-Virtualisierungssystem verwenden Proxmox VE.

Es ist besonders wichtig, die Einschränkungen und Systemanforderungen von Proxmox genau zu verstehen, bevor Sie mit der Erstellung eines Clusters beginnen, nämlich:

  • maximale Anzahl von Knoten in einem Cluster - 32;
  • alle Knoten müssen haben die gleiche Version von Proxmox (es gibt Ausnahmen, diese werden jedoch nicht für die Produktion empfohlen);
  • Wenn in Zukunft geplant ist, die Hochverfügbarkeitsfunktionalität zu nutzen, sollte dies im Cluster der Fall sein mindestens 3 Knoten;
  • Damit Knoten miteinander kommunizieren können, müssen Ports geöffnet sein UDP/5404, UDP/5405 für Corosync und TCP / 22 für SSH;
  • Die Netzwerkverzögerung zwischen Knoten sollte nicht überschritten werden 2 ms.

Erstellen Sie einen Cluster

Wichtig! Bei der folgenden Konfiguration handelt es sich um eine Testkonfiguration. Vergessen Sie nicht, sich bei uns zu erkundigen offizielle Dokumentation Proxmox V.E.

Um einen Testcluster zu betreiben, haben wir drei Server mit installiertem Proxmox-Hypervisor und derselben Konfiguration (2 Kerne, 2 GB RAM) genommen.

Wenn Sie wissen möchten, wie Sie Proxmox installieren können, empfehlen wir Ihnen die Lektüre unseres vorherigen Artikels – Die Magie der Virtualisierung: ein Einführungskurs in Proxmox VE.

Nach der Installation des Betriebssystems läuft zunächst ein einzelner Server Standalone-Modus.

Clustering in Proxmox VE
Erstellen Sie einen Cluster, indem Sie auf die Schaltfläche klicken Cluster erstellen im entsprechenden Abschnitt.

Clustering in Proxmox VE
Wir legen einen Namen für den zukünftigen Cluster fest und wählen eine aktive Netzwerkverbindung aus.

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

Clustering in Proxmox VE
Inschrift AUFGABE OK zeigt den erfolgreichen Abschluss des Vorgangs an. Wenn man sich nun die allgemeinen Informationen zum System ansieht, erkennt man, dass der Server in den Cluster-Modus gewechselt ist. Bisher besteht der Cluster nur aus einem Knoten, das heißt, er verfügt noch nicht über die Fähigkeiten, für die ein Cluster benötigt wird.

Clustering in Proxmox VE

Einem Cluster beitreten

Bevor wir eine Verbindung zum erstellten Cluster herstellen, müssen wir Informationen zum Herstellen der Verbindung einholen. Gehen Sie dazu zum Abschnitt Cluster und нажимаем кнопку Informationen zum Beitritt.

Clustering in Proxmox VE
Im sich öffnenden Fenster interessiert uns der Inhalt des gleichnamigen Feldes. Es muss kopiert werden.

Clustering in Proxmox VE
Hier sind alle notwendigen Verbindungsparameter verschlüsselt: die Serveradresse für die Verbindung und der digitale Fingerabdruck. Wir gehen zu dem Server, der in den Cluster aufgenommen werden muss. Wir drücken den Knopf Treten Sie dem Cluster bei Fügen Sie im folgenden Fenster den kopierten Inhalt ein.

Clustering in Proxmox VE
Felder Peer-Adresse и Fingerabdruck wird automatisch ausgefüllt. Geben Sie das Root-Passwort für Knoten Nummer 1 ein, wählen Sie die Netzwerkverbindung aus und drücken Sie die Taste Registrieren.

Clustering in Proxmox VE
Während des Beitrittsprozesses zu einem Cluster stoppt die Aktualisierung der GUI-Webseite möglicherweise. Es ist in Ordnung, laden Sie einfach die Seite neu. Auf genau die gleiche Weise fügen wir einen weiteren Knoten hinzu und erhalten als Ergebnis einen vollwertigen Cluster von 3 funktionierenden Knoten.

Clustering in Proxmox VE
Jetzt können wir alle Clusterknoten von einer GUI aus steuern.

Clustering in Proxmox VE

Hochverfügbarkeitsorganisation

Proxmox unterstützt standardmäßig HA-Organisationsfunktionen sowohl für virtuelle Maschinen als auch für LXC-Container. Dienstprogramm ha-manager Erkennt und behandelt Fehler und Ausfälle und führt ein Failover von einem ausgefallenen Knoten auf einen funktionierenden Knoten durch. Damit der Mechanismus ordnungsgemäß funktioniert, ist es erforderlich, dass virtuelle Maschinen und Container über einen gemeinsamen Dateispeicher verfügen.

Nach der Aktivierung der Hochverfügbarkeitsfunktionalität überwacht der Ha-Manager-Software-Stack kontinuierlich den Status der virtuellen Maschine oder des Containers und interagiert asynchron mit anderen Cluster-Knoten.

Gemeinsamen Speicher anhängen

Als Beispiel haben wir eine kleine NFS-Dateifreigabe unter 192.168.88.18 bereitgestellt. Damit alle Knoten des Clusters es nutzen können, müssen Sie die folgenden Manipulationen vornehmen.

Wählen Sie im Menü der Weboberfläche aus Rechenzentrum – Speicher – Hinzufügen – NFS.

Clustering in Proxmox VE
Füllen Sie die Felder aus ID и Server. In Dropdown-Liste Exportieren Wählen Sie das gewünschte Verzeichnis aus den verfügbaren und in der Liste aus Inhalt — erforderliche Datentypen. Nach dem Drücken der Taste Speichern Der Speicher wird mit allen Clusterknoten verbunden.

Clustering in Proxmox VE
Beim Erstellen virtueller Maschinen und Container auf einem der Knoten geben wir unsere an Lagerung als Speicher.

HA einrichten

Lassen Sie uns beispielsweise einen Container mit Ubuntu 18.04 erstellen und Hochverfügbarkeit dafür konfigurieren. Gehen Sie nach dem Erstellen und Ausführen des Containers zum Abschnitt Datacenter-HA-Add. Geben Sie im sich öffnenden Feld die ID der virtuellen Maschine/des Containers und die maximale Anzahl der Versuche für einen Neustart und eine Verschiebung zwischen Knoten an.

Wenn diese Zahl überschritten wird, markiert der Hypervisor die VM als ausgefallen und versetzt sie in den Fehlerzustand. Danach führt er keine Aktionen mehr mit ihr aus.

Clustering in Proxmox VE
Nach dem Drücken der Taste Speichern Dienstprogramm ha-manager benachrichtigt alle Knoten des Clusters, dass nun die VM mit der angegebenen ID kontrolliert wird und im Falle eines Absturzes auf einem anderen Knoten neu gestartet werden muss.

Clustering in Proxmox VE

Machen wir einen Absturz

Um zu sehen, wie genau der Schaltmechanismus funktioniert, schalten wir die Stromversorgung von Knoten1 abnormal aus. Wir schauen von einem anderen Knoten aus, was mit dem Cluster passiert. Wir sehen, dass das System einen Fehler behoben hat.

Clustering in Proxmox VE

Der Betrieb des HA-Mechanismus bedeutet nicht die Kontinuität der VM. Sobald der Knoten „abstürzt“, wird der VM-Betrieb vorübergehend gestoppt, bis er automatisch auf einem anderen Knoten neu gestartet wird.

Und hier beginnt die „Magie“ – der Cluster hat den Knoten automatisch neu zugewiesen, um unsere VM auszuführen, und innerhalb von 120 Sekunden wurde die Arbeit automatisch wiederhergestellt.

Clustering in Proxmox VE
Wir löschen Node2 auf Ernährung. Mal sehen, ob der Cluster überlebt und ob die VM automatisch in einen funktionsfähigen Zustand zurückkehrt.

Clustering in Proxmox VE
Leider haben wir, wie wir sehen, ein Problem damit, dass auf dem einzigen überlebenden Knoten kein Quorum mehr vorhanden ist, wodurch HA automatisch deaktiviert wird. Wir geben den Befehl, die Installation eines Quorums in der Konsole zu erzwingen.

pvecm expected 1

Clustering in Proxmox VE
Nach 2 Minuten funktionierte der HA-Mechanismus ordnungsgemäß und da er Knoten2 nicht fand, startete er unsere VM auf Knoten3.

Clustering in Proxmox VE
Sobald wir Knoten1 und Knoten2 wieder einschalteten, war der Cluster vollständig wiederhergestellt. Bitte beachten Sie, dass die VM nicht von alleine zurück auf Knoten1 migriert, sondern dass dies manuell erfolgen kann.

Zusammenfassend

Wir haben Ihnen erklärt, wie der Proxmox-Clustering-Mechanismus funktioniert, und Ihnen auch gezeigt, wie HA für virtuelle Maschinen und Container konfiguriert wird. Durch den richtigen Einsatz von Clustering und HA wird die Zuverlässigkeit der Infrastruktur erheblich erhöht und eine Notfallwiederherstellung ermöglicht.

Bevor Sie einen Cluster erstellen, müssen Sie sofort planen, für welche Zwecke er verwendet werden soll und wie stark er in Zukunft skaliert werden muss. Außerdem müssen Sie die Netzwerkinfrastruktur auf ihre Betriebsbereitschaft mit minimalen Verzögerungen prüfen, damit der zukünftige Cluster fehlerfrei funktioniert.

Sagen Sie uns: Nutzen Sie die Clustering-Funktionen von Proxmox? Wir erwarten Sie in den Kommentaren.

Frühere Artikel zum Proxmox VE-Hypervisor:

Source: habr.com

Kommentar hinzufügen