Gute Failover- / Hochverfügbarkeitslösungen für Linux? [geschlossen]


9

Ich habe mehrere Fälle, in denen Anwendungen im Falle eines Fehlers (Server hängen oder abstürzen) von einem Server auf einen anderen migriert werden müssen.

Unter Solaris tun wir dies mit VCS (Veritas Cluster Server). Welche Optionen stehen für Linux zur Verfügung?

Bitte geben Sie den Aufwand für die Einrichtung / Wartung oder die Kosten (falls vorhanden) für jeden an.

- Weitere Details hinzugefügt -

Um eine Vorstellung von der Komplexität zu geben:

  • Ein fehlerhafter Server kann ohne Vorankündigung hängen bleiben oder abstürzen und ist möglicherweise immer noch "pingfähig".
  • Der Wiederherstellungsserver muss seine Anwendungen beim Failover starten
  • Sobald der Server startet / aus- und wieder eingeschaltet wird, wird er passiv, um den Wiederherstellungsserver nicht zu beeinträchtigen.

Dies ist ein Datenerfassungs- oder Rechenknoten, keine Datenbank, sodass einfachere Lösungen funktionieren könnten.

- noch mehr Details (sorry) -

Shared Storage ist keine Option, aber es muss nicht viel Status (falls vorhanden) für die Migration von einem Server auf den anderen benötigt werden. Wir halten die beiden Server über rsync synchron.

Vielen Dank für alle bisherigen Beiträge.

Antworten:



4

Ich habe eine Vielzahl von Cluster-Lösungen unter Linux verwendet. Ich bin auch ein Befürworter des Konfigurationsmanagements, daher werde ich in meinen Beschreibungen etwas dazu hinzufügen (Chef oder Puppet, das heißt).

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

Apropos RHEL: Die Red Hat Cluster Suite ist seit ihrer 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 beim Anbieter erwerben. Für kommerzielle HA-Produkte ist RHCS preiswert. Ich würde nur Konfigurationsmanagement verwenden, um die Pakete zu installieren und sie "von Hand" über die Weboberfläche zu verwalten. Ich habe auch von einigen Leuten gehört, die es auf Nicht-Red Hat-Plattformen verwenden, obwohl ich damit keine direkte Erfahrung habe.

Linux-HA (drbd / heartbeat) ist ebenfalls großartig, obwohl die Konfiguration von VCS aus simpel und dennoch unhandlich erscheint. Dies ist mit einem Konfigurationsmanagement-Tool recht einfach zu automatisieren.

Als Proof of Concept habe ich einen Linux-Cluster mit IBMs HACMP installiert - der AIX-Clustering-Software. Ich würde dies nicht empfehlen, da ich mich erinnere, dass es teurer ist als sogar VCS. IBM hat spezielle Verfahren zum Installieren und Verwalten von HACMP. Ich würde hier kein Konfigurationsmanagement verwenden.


4

Michael hat Recht, dass die Community momentan ein bisschen zerbrochen ist und die Dokumentation ein bisschen spärlich ist.

Eigentlich ist alles da, es ist einfach unmöglich zu verstehen. Was Sie wirklich wollen, ist das eBook "Pacemaker Configuration Explained" ... ( Link zu PDF ). Sie sollten es ungefähr ein Dutzend Mal lesen und dann versuchen, es zu implementieren, und dann ein weiteres Dutzend Mal lesen, damit Sie es tatsächlich bearbeiten können.

Die derzeit am besten unterstützte Implementierung von Clusterdiensten für Linux wird wahrscheinlich Novells SLES11 und seine High Availability Extension (HAE) sein. Es ist NUR vor ein oder zwei Monaten herausgekommen und enthält ein schönes, dickes 200-seitiges Handbuch, in dem beschrieben wird, wie man es einrichtet und zum Laufen bringt. Novell war auch hervorragend darin, Schrittmacherkonfigurationen in verschiedenen Formen zu unterstützen.

Darüber hinaus gibt es die Implementierung von RHEL5, die das gleiche Paket und die gleiche anständige Dokumentation enthält, aber ich denke, sie ist teurer als SLES. Zumindest ist es für uns.

Ich würde Heartbeat jetzt vermeiden und mich für Pacekmaker / OpenAIS entscheiden, weil sie in Zukunft viel besser unterstützt werden. Der aktuelle Zustand der Community ist jedoch so, dass es einige Experten gibt, einige Leute, die sie in der Produktion betreiben, und eine ganze Menge Leute, die völlig ahnungslos sind. Treten Sie der Pacemaker-Mailingliste bei und achten Sie auf einen Mann namens Andrew Beekhof.

Bearbeiten, um die angeforderten Details anzugeben:

Pacemaker / OpenAIS verwendet eine "Monitor" -Operation für eine "primitive Ressource" (z. B. einen NFS-Server), um zu verfolgen, was die Ressource tut. Wenn der Beispiel-NFS-Server X Sekunden lang 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ärknoten herunterzufahren und den Sekundärknoten auf Aktiv zu setzen. Sie entscheiden in der Konfiguration, was danach aufgerufen werden soll und welche Maßnahmen zu ergreifen sind. Die Implementierungsdetails von dort hängen davon ab, welchen Service Sie für ein Failover ausführen möchten, Ausführungsfenster für bestimmte Vorgänge (z. B. das Zurückschalten des Primärknotens zum Master) und das Ganze so gut wie konfigurierbar.


1

Die Linux HA-Community ist derzeit etwas partitioniert.

Die Tools, die früher als Linux HA bekannt waren, sind derzeit Pacemaker und OpenAIS . Diese werden meistens in Kombination mit DRBD ausgeführt, wenn eine Architektur ohne gemeinsame Nutzung erforderlich ist.

Ich schlage vor, vor dem Eintauchen ein gutes Buch zu diesem Thema zu lesen, da dies ein recht umfassender Bereich ist und der Status der Projekte nicht unbedingt so benutzerfreundlich ist wie bei einigen Anbieterlösungen.

Es gibt auch Linux-Lösungen von einigen Anbietern von Cluster-Software, aber ich kann Ihnen nicht viel dazu sagen, da ich sie selbst nie verwendet habe.


1
Könnten Sie ein oder zwei gute Bücher zu diesem Thema vorschlagen?
Matt Simmons

1

Unter Linux haben wir Clustering mit Heartbeat und DRBD implementiert. Heartbeat überprüft den Status des Servers. DRBD wird für die Datensynchronisation zwischen Servern verwendet. Wir haben Oracle Service auf einem Server und Apache auf einem anderen Server. Wenn der Server, auf dem Oracle ausgeführt wird, ausfällt, erkennt Heartbeat dasselbe und stellt den Oracle-Dienst auf dem Server wieder her, auf dem Apache ausgeführt wird. und umgekehrt. Ich habe dieses Setup für viele andere Zwecke verwendet und war bis heute zuverlässig.


1

Die Red Hat Cluster Suite macht für nahezu jede mögliche Anwendung das, was Sie wollen. In Kombination mit GFS und Cluster LVM können Sie über soliden gemeinsamen Speicher verfügen.

Die Wartung ist nicht viel schwieriger als die einzelnen Boxen am Laufen zu halten. Die Anwendungsmigration erleichtert das Patchen der einzelnen Boxen.

RHCS wird mit einem Web-Frontend (Luci) und einem GTK-Frontend (System-Config-Cluster) geliefert, damit Konfiguration und Migration anklickbar sind. Sie können Failover-Domänen pro Anwendung, Wiederherstellungsrichtlinien und Fencing über eine zentrale webbasierte Verwaltungskonsole konfigurieren.

In Anbetracht der Tatsache, dass RHCS tatsächlich eine ziemlich solide Unterstützungsoption hat, würde ich mich für RHCS entscheiden.

Ich bin mir nicht sicher, wie viel Sie das kosten würde, aber ich schätze, es liegt im Bereich von mehreren tausend Dollar.


1

UltraMonkey basiert teilweise auf dem Linux-HA-Framework. Ich habe es immer eher als Lastausgleichslösung als als echten Cluster angesehen, aber es handhabt Failover gut.


Ist das noch aktualisiert? Die Website sagt:Copyright © 2000-2005, Horms Last Updated: Sat Mar 4 16:33:57 2006 +0900
NickW

0

Wir verwenden Linux Virtual Server und bleiben für unsere hohe Verfügbarkeit auf dem Laufenden. keepalived kann entweder VRRP auf den Hosts selbst ausführen (was meiner Meinung nach davon abhängt, dass der andere Server stirbt) oder Sie können es auf einem separaten Host einrichten, um den Lastenausgleich durchzuführen, bei dem die Verfügbarkeit von Diensten überprüft werden kann. Es ist möglicherweise möglich, Serviceprüfungen in der ersten Situation zu konfigurieren, aber ich habe sie nicht überprüft. Die zweite Situation ist besonders gut, wenn beide Server gleichzeitig ausgeführt werden können, andernfalls können Sie manuell umschalten.


0

Ich habe einen softwarebasierten Load Balancer für TCP geschrieben, für den kein separater Computer erforderlich ist. Es teilt eine einzelne IP-Adresse, indem es sie auf einer Multicast-Adresse auf Verbindungsebene ankündigt und zwischen Computern aushandelt, um zu vermeiden, dass zwei Computer dieselbe TCP-Verbindung bedienen.

Der Nachteil ist, dass es nicht wirklich produktionsbereit ist - aber wenn Sie es in Ihrem Testnetzwerk testen möchten, würde ich mich freuen.

Fluffy Cluster ist hier

Ich erkenne nicht unbedingt eine "lebendige, aber kranke" Situation, aber ich mache einen Lastausgleich zwischen den Mitgliedsservern (wenn der Userspace-Prozess ausfällt, werden die anderen Knoten den ausgefallenen Knoten bemerken und entfernen).


0

Es ist nicht kostenlos, aber diejenigen, die nicht die Zeit oder das Fachwissen haben, um ihre eigene HA-Lösung unter Linux zu installieren, finden die Antwort unter www.rapidscaleclusters.com. Innerhalb von Minuten sind Sie betriebsbereit, einfach zu installieren und auszuführen. Es wird auch unterstützt.


Ich bin mir nicht sicher, warum jemand dies notiert hat ... das sieht nach einer praktikablen Lösung aus (obwohl es immer technische Fallstricke gibt ... zumindest sieht dies nicht nach einem "Service" aus, der mein erster Eindruck war).
Ericlaw

0

Ich arbeite an einem Open Source Failover Cluster Manager, der in einem Shell-Skript geschrieben ist. Es ist in gutem Zustand, auch wenn es eine Integration verpassen kann, die Sie benötigen. Probieren Sie es aus und lassen Sie mich wissen, ob eine Funktion fehlt, die Sie sehen und verwenden möchten: https://github.com/nackstein/back-to-work/

Wenn Sie gut in der Shell-Programmierung (POSIX-Shell) sind, können Sie gerne an der Projektentwicklung teilnehmen: D.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.