Warum ein Cluster aus zwei Knoten die schlechteste Wahl ist: die Mehrheitsfrage
Einen zweiten Server zu kaufen und ein Cluster zu bauen, sieht nach Ausfallsicherheit aus. Tatsächlich sind zwei Knoten zerbrechlicher als einer: fällt einer, kann der andere nicht mehr entscheiden.
AtlasPVE ·
Dieser Eintrag beantwortet
- proxmox 2 node cluster
- was ist proxmox quorum
- wie viele server für ein proxmox cluster
- proxmox nur ein knoten übrig
- was ist ein proxmox qdevice
Du hast den zweiten Server gekauft und ein Cluster gebaut. Du fühlst dich sicherer: nun stehen zwei Maschinen da, und fällt eine, macht die andere weiter.
Tut sie nicht. Ein Cluster aus zwei Knoten ist zerbrechlicher als ein einzelner Knoten, und der Tag, an dem du das lernst, ist meist ein schlechter Tag.
Warum
Cluster-Entscheidungen fallen per Mehrheit. Sind zwei von drei Knoten oben, gibt es eine Mehrheit und das Cluster arbeitet weiter. Fällt einer von zwei Knoten, ist der verbleibende eine Knoten keine Mehrheit, also sperrt sich das Cluster selbst: die Maschinen laufen weiter, aber die Konfiguration lässt sich nicht ändern, keine neue Maschine lässt sich starten, und die meiste Verwaltungsarbeit steht still.
Das ist kein Mangel, sondern gewollter Entwurf. Die Alternative ist weit schlimmer: sehen sich zwei Knoten nicht mehr, sagen beide "ich bin oben, der andere ist gefallen" und starten dieselbe virtuelle Maschine an zwei Stellen. Auf dieselbe Platte wird von beiden Seiten geschrieben, und die Daten werden unwiederbringlich beschädigt.
Das Cluster schützt dich also, indem es dich aussperrt. Bei zwei Knoten greift dieser Schutz aber bei der Hälfte aller Ausfälle.
Die richtige Zahl ist drei
In einem Cluster aus drei Knoten bleiben, wenn einer fällt, zwei übrig, die Mehrheit hält und das Leben geht weiter. Deshalb taucht die Zahl drei in der Cluster-Dokumentation überall auf.
Die dritte Maschine muss nicht stark sein. Sie gibt nur eine Stimme ab, sie muss keine Arbeit ausführen. Eine kleine Maschine, sogar ein alter Rechner, erledigt das.
Willst du wirklich keine dritte Maschine, lässt sich stattdessen ein kleiner Zeugenknoten einrichten, der nur zum Abstimmen da ist. Er ist kein vollwertiger Knoten und du kannst darauf keine Maschinen laufen lassen, aber er füllt die Mehrheitsrechnung auf drei auf. Wenn du bei zwei Knoten bleibst, richte wenigstens diesen ein.
Wenn du bei zwei Knoten bleibst, wisse
Wird ein Knoten zur Wartung herausgenommen, wird auch der verbleibende einzelne Knoten unverwaltbar. Selbst eine geplante Aktualisierung lässt dich also ausgesperrt zurück.
Es ist möglich, von Hand zu sagen "auch ein einzelner Knoten darf entscheiden", doch das öffnet genau das oben beschriebene Doppelstart-Risiko wieder. Man macht das vorübergehend, bewusst und kurz; eine dauerhafte Lösung ist es nicht.
Ein Cluster zu bauen ist nicht dasselbe wie zu sichern
Diese beiden werden am häufigsten verwechselt. Ein Cluster ist für Verfügbarkeit da: damit die Arbeit weitergeht, wenn eine Maschine fällt. Eine Sicherung ist für Wiederherstellung da: damit du zurückkommst, wenn Daten beschädigt oder versehentlich gelöscht wurden.
Ein Cluster holt keine virtuelle Maschine zurück, die du versehentlich gelöscht hast. Die Löschung verbreitet sich sofort auf alle Knoten, denn ein Cluster ist genau dafür da, dass alle dasselbe sehen. Auch mit Cluster wirst du Sicherungen brauchen.
Was Atlas tut
Atlas behandelt das Cluster nicht als Begriff, sondern als Zustand: wie viele Knoten es gibt, wie viele abstimmen, ob die Mehrheit gerade hält.
Am meisten hilft das beim Aktualisieren. Bevor ein Knoten aktualisiert wird, sieht Atlas nach, wie viele der Maschinen darauf auf einen anderen Knoten wechseln können, und schlägt dir eine Reihenfolge vor. Der Vorschlag bleibt ein Vorschlag: der Verschiebebefehl läuft nicht von selbst, du drückst den Knopf.
Ein Detail ist hier besonders wichtig und trifft das Thema dieses Artikels genau. Der Befehl, der den Cluster-Zustand abfragt, scheitert in zwei verschiedenen Lagen auf dieselbe Weise: wirklich eine allein stehende Maschine zu sein, und Mitglied eines Clusters zu sein, dessen Cluster-Schicht zusammengebrochen ist. Werden diese beiden nicht unterschieden, sagt das Produkt genau in dem Moment "kein Cluster, Mehrheit in Ordnung", in dem das Cluster zusammengebrochen ist. Es bildet also im gefährlichsten Augenblick den beruhigendsten Satz.
Atlas unterscheidet sie daran, ob die Konfigurationsdatei vorhanden ist: diese Datei wird zusammen mit der Mitgliedschaft geschrieben und bleibt auch dann liegen, wenn die Cluster-Schicht zusammenbricht. Die Unterscheidung steht an einer einzigen Stelle, denn früher war sie an drei verschiedenen Stellen getrennt geschrieben und alle drei hatten denselben Fehler.
Quellen
Die eigene Dokumentation von Proxmox. Auf Englisch, und sie hat in dieser Sache das letzte Wort.