gute Failover-/Hochverfügbarkeitslösungen für Linux?

gute Failover-/Hochverfügbarkeitslösungen für Linux?

Ich habe mehrere Fälle, in denen ich im Falle eines Fehlers (Server-Hängen oder -Absturz) Anwendungen von einem Server auf einen anderen migrieren muss.

Unter Solaris machen wir das mit VCS (Veritas Cluster Server). Welche Optionen gibt es für Linux?

Geben Sie bitte den Einrichtungs-/Wartungsaufwand bzw. die Kosten (sofern vorhanden) für jeden an.

-- Weitere Einzelheiten hinzugefügt --

Um eine Vorstellung vom Komplexitätsgrad zu geben:

  • Der ausgefallene Server kann ohne Vorankündigung hängen bleiben oder abstürzen, ist möglicherweise aber immer noch „pingbar“.
  • Der Wiederherstellungsserver muss seine Anwendungen beim Failover starten
  • Sobald der Serverstart bzw. -ausschaltvorgang fehlschlägt, wird er passiv, um den Wiederherstellungsserver nicht zu beeinträchtigen.

Da es sich hier um eine Datensammlung oder einen Rechenknoten und nicht um eine Datenbank handelt, könnten auch einfachere Lösungen funktionieren.

-- noch mehr Einzelheiten (sorry) --

Gemeinsam genutzter Speicher ist keine Option, aber es müssen nicht viele (wenn überhaupt) Status von einem Server auf den anderen migriert werden. Wir halten die beiden Server über rsync synchron.

Vielen Dank für alle bisherigen Beiträge.

Antwort1

http://linux-ha.org/für alle Ihre Hochverfügbarkeitsanforderungen. Wie es in dem Lied heißt: Die besten Dinge im Leben sind kostenlos.

Antwort2

Ich habe eine Vielzahl von Clusterlösungen unter Linux verwendet. Ich bin auch ein Befürworter des Konfigurationsmanagements, daher werde ich in meinen Beschreibungen etwas dazu hinzufügen (also Chef oder Puppet).

Veritas Cluster Server (VCS). Es ist schon eine Weile her, aber wir haben einige Linux VCS-Cluster auf RHEL 3.0 bereitgestellt. Ich hoffe, dass es auf RHEL 5.0 verfügbar ist. Sie sollten mit den Schwierigkeiten bei der Einrichtung vertraut sein, da dies ein vertrautes Gebiet ist. Wie Sie vielleicht wissen, ist VCS teuer. Anekdotisch ist VCS nicht gut für die Einrichtung durch das Konfigurationsmanagement geeignet.

Apropos RHEL: Red Hat Cluster Suite ist seit seiner ursprünglichen Veröffentlichung mit RHEL 2.1 sehr gereift. Die Einrichtungs-/Konfigurationsphase ist ziemlich unkompliziert und die Dokumentation ist sehr vollständig und hilfreich. Wie bei VCS können Sie Support vom Anbieter erwerben. Für kommerzielle HA-Produkte ist RHCS recht günstig. Ich würde das Konfigurationsmanagement nur zum Installieren der Pakete verwenden und sie „von Hand“ über die Weboberfläche verwalten. Außerdem habe ich gehört, dass einige Leute es auf Nicht-Red-Hat-Plattformen verwenden, obwohl ich damit keine direkte Erfahrung habe.

Linux-HA (drbd/heartbeat) ist auch großartig, aber wenn man von VCS kommt, erscheint die Konfiguration vielleicht simpel, aber unhandlich. Mit einem Konfigurationsmanagement-Tool lässt sich das ziemlich einfach automatisieren.

Als Proof of Concept habe ich einen Linux-Cluster mit HACMP von IBM installiert – ihrer AIX-Clustersoftware. Ich würde das nicht empfehlen, da es, soweit ich mich erinnere, sogar teurer als VCS ist. IBM hat spezielle Verfahren für die Installation und Wartung von HACMP, ich würde hier kein Konfigurationsmanagement verwenden.

Antwort3

Michael hat Recht, dass die Community derzeit etwas zersplittert ist und es nur wenige Dokumentationen gibt.

Eigentlich ist alles da, es ist nur unmöglich zu verstehen. Was Sie wirklich wollen, ist das E-Book „Pacemaker Configuration Explained“... (Link zum PDF). Sie sollten es etwa ein Dutzend Mal lesen, dann versuchen, es umzusetzen, und es dann noch ein Dutzend Mal lesen, damit Sie es wirklich verstehen.

Die derzeit am besten unterstützte Implementierung von Cluster-Diensten für Linux ist wahrscheinlich Novells SLES11 und seine High Availability Extension (HAE). Es ist ERST vor ein oder zwei Monaten erschienen und wird mit einem schönen dicken 200-seitigen Handbuch geliefert, das beschreibt, wie man es einrichtet und zum Laufen bringt. Novell hat auch hervorragende Unterstützung für Pacemaker-Konfigurationen in verschiedenen Formen geleistet.

Darüber hinaus gibt es die Implementierung von RHEL5, die dasselbe Paket und eine anständige Dokumentation hat, aber meiner Meinung nach teurer ist als SLES. Zumindest ist sie das für uns.

Ich würde Heartbeat im Moment meiden und mich für Pacemaker/OpenAIS entscheiden, da diese in Zukunft viel besser unterstützt werden. Der aktuelle Zustand der Community ist jedoch so, dass es ein paar Experten gibt, ein paar Leute, die es in der Produktion betreiben, und eine ganze Menge Leute, die absolut keine Ahnung haben. Treten Sie der Pacemaker-Mailingliste bei und hören Sie einem Mann namens Andrew Beekhof zu.

Bearbeiten, um die angeforderten Details bereitzustellen:

Pacemaker/OpenAIS verwendet eine „Monitor“-Operation für eine „primitive Ressource“ (z. B. NFS-Server), um zu verfolgen, was die Ressource tut. Wenn der Beispiel-NFS-Server für X Sekunden nicht auf den Rest des Clusters reagiert, führt der Cluster eine STONITH-Operation (Shoot The Other Node In The Head) aus, um den primären Knoten herunterzufahren und den sekundären Knoten zu aktivieren. Sie entscheiden in der Konfiguration, was danach aufgerufen werden soll und welche damit verbundenen Aktionen ausgeführt werden sollen. Die Implementierungsdetails hängen dann davon ab, für welchen Dienst Sie ein Failover durchführen möchten, von den Ausführungsfenstern für bestimmte Operationen (z. B. das Zurückstufen des primären Knotens zum Master) und das Ganze ist so weit wie möglich konfigurierbar.

Antwort4

Unter Linux haben wir Clustering mit Heartbeat und DRBD implementiert. Heartbeat überprüft den Status des Servers. DRBD wird für die Datensynchronisierung zwischen Servern verwendet. Auf einem Server läuft ein Oracle-Dienst und auf einem anderen Apache. Wenn ein Server mit Oracle ausfällt, erkennt Heartbeat dies und stellt den Oracle-Dienst auf dem Server mit Apache wieder her. Und umgekehrt. Ich habe dieses Setup für viele andere Zwecke verwendet und es war bis heute zuverlässig.

verwandte Informationen