Pacemaker und Corosync 3 Node Cluster
Hallo,
aktuell arbeite ich an einem 3 Node Cluster für Hochverfügbarkeit. Die Umschaltung etc ist kein Problem. Allerdings habe ich keinen Schimmer wie ich das konfiguriere, dass ein Node, der alleine ist, keine Resourcen mehr startet. Heißt also: Kann er die beiden anderen Nodes nicht erreichen, dann schalte deine Ressourcen ab. Kann mir da mal jemand einen Schups in die richtige Richtung geben?
Gruß und Dank
aktuell arbeite ich an einem 3 Node Cluster für Hochverfügbarkeit. Die Umschaltung etc ist kein Problem. Allerdings habe ich keinen Schimmer wie ich das konfiguriere, dass ein Node, der alleine ist, keine Resourcen mehr startet. Heißt also: Kann er die beiden anderen Nodes nicht erreichen, dann schalte deine Ressourcen ab. Kann mir da mal jemand einen Schups in die richtige Richtung geben?
Gruß und Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 351121
Url: https://administrator.de/forum/pacemaker-und-corosync-3-node-cluster-351121.html
Ausgedruckt am: 11.04.2025 um 07:04 Uhr
11 Kommentare
Neuester Kommentar
Moin,
ganz ehrlich - du weisst aber schon was du tust, ja? Weil:
a) das Problem hättest du ja in dem Moment wo ein Server deines Verbundes runtergeht -> wenn du das nicht willst dann packe die Dienste nicht in den Cluster-Betrieb und gut...
b) Du willst auch nicht die Heartbeat-NIC über dasselbe Netz wie die normale Verbindung laufen lassen und machst aber dem Cluster beides bekannt... Genau aus dem Grund (nennt sich dann Split-Brain) - falls eine Verbindung defekt ist (switch fällt aus) soll der nicht einfach was machen.
Alternative Lösung wäre "Shot the other node in the Head" - STONITH. Du besorgst dir schaltbare Steckdosen (z.B. IP-Dosen) oder gehst über IPMI, iLO,... -> und der aktive Server fährt im zweifel einfach den anderen Server hart runter. ABER: Vorsicht hierbei mit den Resourcen, sonst hast du eher den Wild-West-Actionfilm so schnell wie die sich wegballern...
Und wie immer gilt: Jede Konfig kann richtig sein wenn die Anforderungen passen... Es wäre also durchaus möglich das es richtig ist wenn du sagst das einige Dienste bei dir eben ausserhalb des Clusters laufen (genauso wie ich einige Konfigs kenne bei denen Dienste die nicht mal nen Cluster bräuchten trotzdem rein müssen und gehören!). Dann kannst du dir natürlich sicher sein - fällt der entsprechende Server aus ist der Dienst eben auch weg... Du kannst ja die Konfig auf nem Netzwerk-Dateisystem packen und schon wäre die trotzdem nicht weg so das du den Service dann manuell woanders starten kannst. DAS ist aber normal nicht Sinn und Zweck des Clusters...
ganz ehrlich - du weisst aber schon was du tust, ja? Weil:
a) das Problem hättest du ja in dem Moment wo ein Server deines Verbundes runtergeht -> wenn du das nicht willst dann packe die Dienste nicht in den Cluster-Betrieb und gut...
b) Du willst auch nicht die Heartbeat-NIC über dasselbe Netz wie die normale Verbindung laufen lassen und machst aber dem Cluster beides bekannt... Genau aus dem Grund (nennt sich dann Split-Brain) - falls eine Verbindung defekt ist (switch fällt aus) soll der nicht einfach was machen.
Alternative Lösung wäre "Shot the other node in the Head" - STONITH. Du besorgst dir schaltbare Steckdosen (z.B. IP-Dosen) oder gehst über IPMI, iLO,... -> und der aktive Server fährt im zweifel einfach den anderen Server hart runter. ABER: Vorsicht hierbei mit den Resourcen, sonst hast du eher den Wild-West-Actionfilm so schnell wie die sich wegballern...
Und wie immer gilt: Jede Konfig kann richtig sein wenn die Anforderungen passen... Es wäre also durchaus möglich das es richtig ist wenn du sagst das einige Dienste bei dir eben ausserhalb des Clusters laufen (genauso wie ich einige Konfigs kenne bei denen Dienste die nicht mal nen Cluster bräuchten trotzdem rein müssen und gehören!). Dann kannst du dir natürlich sicher sein - fällt der entsprechende Server aus ist der Dienst eben auch weg... Du kannst ja die Konfig auf nem Netzwerk-Dateisystem packen und schon wäre die trotzdem nicht weg so das du den Service dann manuell woanders starten kannst. DAS ist aber normal nicht Sinn und Zweck des Clusters...
ich find's berechtigt,
das Stichwort ist "Fencing" bei Clustern und - wie schon geschrieben wurde, als Software: STONITH;
hier wird zunächst nach dem Ping der anderen zwei Knoten ein init 0 schon reichen, generell sollte man m.E. wechselseitig von den anderen Servern über die RSA oder iLO oder DRAC - nach Hersteller - ein Abschalten machen.
Das Anschalten durch den Admin geht dann über die gleichen Karten wieder.
HG
Mark
das Stichwort ist "Fencing" bei Clustern und - wie schon geschrieben wurde, als Software: STONITH;
hier wird zunächst nach dem Ping der anderen zwei Knoten ein init 0 schon reichen, generell sollte man m.E. wechselseitig von den anderen Servern über die RSA oder iLO oder DRAC - nach Hersteller - ein Abschalten machen.
Das Anschalten durch den Admin geht dann über die gleichen Karten wieder.
HG
Mark
Guten Morgen,
icch gehe davon aus, daß Dein Cluster jeweils 2 Netzwerkkarten pro Knoten hat. Einmal für den Heartbeat und einmal für das Public Netz. Warum setzt Du als Backup nicht die zweite Netzwerkkarte (Public Netz) ein. D.h. im normalen Betrieb wird die dedizierte NIC für den Heartbeat verwendet und falls diese ausfallen sollte, die Public NIC.
Dadurch erreichst Du die Verfügbarkeit des Heartbeats. Stichwort dazu: Priorisierung des Netzwerkverkehrs.
Nur mal als Denkanstoß.
Gruss Penny
icch gehe davon aus, daß Dein Cluster jeweils 2 Netzwerkkarten pro Knoten hat. Einmal für den Heartbeat und einmal für das Public Netz. Warum setzt Du als Backup nicht die zweite Netzwerkkarte (Public Netz) ein. D.h. im normalen Betrieb wird die dedizierte NIC für den Heartbeat verwendet und falls diese ausfallen sollte, die Public NIC.
Dadurch erreichst Du die Verfügbarkeit des Heartbeats. Stichwort dazu: Priorisierung des Netzwerkverkehrs.
Nur mal als Denkanstoß.
Gruss Penny
Ok - aber was möchtest du denn? Soll dein Cluster Gedanken lesen?
Also - normal prüfst du beides -> ob der Service reagiert UND ob der Heartbeat da ist.
Natürlich gibt es Möglichkeiten das ein Cluster versagt - gar keine Frage. Aber für gewöhnlich ist die Erreichbarkeit besser (wenn richtig eingerichtet). Denn: Was hast du ohne Cluster wenn die Netzwerkkarte oder der ganze Server tot ist -> dann ist der Dienst auch weg. Ein Cluster hat für den Fall eben die STONITH-Funktion -> notfalls schiesse den unbekannten Knoten in den Kopf so das der auf jeden Fall weg ist (z.B. iLO Power-Off command). DANN kannst du sicher die Dienste übernehmen.
Natürlich kann das schief gehen - das hab ich sogar schon live gesehen, sieht ganz lustig aus wenn sich die Server gegenseitig immer runterschiessen.... Aber: DAS ist eben die Konfiguration, deshalb macht man das auch nicht ohne Erfahrung am Live-System. Denn an anderen Stellen sind die Probleme viel lustiger -> wenn du eben auf mal 2 Server hast die sich für den Master halten und deine Notabschaltung nicht läuft. Dürfte aber bei dir nicht schlimm sein da - so ich das richtig verstehe - eh nur 1 Server das richtige Dateisystem haben kann.
Also - normal prüfst du beides -> ob der Service reagiert UND ob der Heartbeat da ist.
Natürlich gibt es Möglichkeiten das ein Cluster versagt - gar keine Frage. Aber für gewöhnlich ist die Erreichbarkeit besser (wenn richtig eingerichtet). Denn: Was hast du ohne Cluster wenn die Netzwerkkarte oder der ganze Server tot ist -> dann ist der Dienst auch weg. Ein Cluster hat für den Fall eben die STONITH-Funktion -> notfalls schiesse den unbekannten Knoten in den Kopf so das der auf jeden Fall weg ist (z.B. iLO Power-Off command). DANN kannst du sicher die Dienste übernehmen.
Natürlich kann das schief gehen - das hab ich sogar schon live gesehen, sieht ganz lustig aus wenn sich die Server gegenseitig immer runterschiessen.... Aber: DAS ist eben die Konfiguration, deshalb macht man das auch nicht ohne Erfahrung am Live-System. Denn an anderen Stellen sind die Probleme viel lustiger -> wenn du eben auf mal 2 Server hast die sich für den Master halten und deine Notabschaltung nicht läuft. Dürfte aber bei dir nicht schlimm sein da - so ich das richtig verstehe - eh nur 1 Server das richtige Dateisystem haben kann.
Zitat von @it-fraggle:
Das sieht auf den ersten Blick super aus, aber was ist, wenn die Public NIC tot ist? Der Heartbeat funktioniert, das Cluster schaltet deshalb _nicht_ um und der Service ist in der Folge nicht erreichbar.
Das sieht auf den ersten Blick super aus, aber was ist, wenn die Public NIC tot ist? Der Heartbeat funktioniert, das Cluster schaltet deshalb _nicht_ um und der Service ist in der Folge nicht erreichbar.
Moment, was denn nun? Erst fragst Du nach, bezüglich Ausfall der Haertbeat-NIC und jetzt nach dem Ausfall der Public-NIC. - Also nochmal, was denn nun?
Wenn die Heartbeat-NIC ausfällt, dann hast Du die Erreichbarkeit immer noch über die Public-NIC, insofern Du es konfigurierst.
Wenn der Heartbeat über die Heartbeat-NIC funktioniert, ist doch alles in Ordnung. Bei Ausfall der Public NIC ist halt der Zugriff auf die Ressourcen nicht möglich. Das Cluster ist aber weiterhin Online.
Und eine 100%ige Ausfallsicherheit wird es NIEMALS geben, weil die Kosten dafür exorbitant hoch sind und es nicht bezahlbar ist.
Lese Dich hier zu dem Thema Verfügbarkeit ein.
Gruss Penny