Gibt es neben den typischen Heartbeat / Pacemaker / CoroSync-Kombinationen wichtige Alternativen für das automatische Failover unter Linux? Insbesondere richte ich ein Failover für EC2-Instanzen ein, das nur Unicast unterstützt - kein Multicast oder Broadcast. Ich versuche speziell, mit den wenigen Software-Komponenten umzugehen, die noch kein automatisches Failover haben und keine Multi-Master-Umgebungen unterstützen. Dies beinhaltet Tools wie HAProxy und Solr.
Ich arbeite mit Heartbeat + Pacemaker, bin aber nicht begeistert. Hier sind einige meiner Probleme:
- Herzschlag - Für sich genommen auf zwei Knoten begrenzt. Ich hätte gerne 3+.
- Schrittmacher - Die automatische Konfiguration ist nicht möglich. Der Cluster muss mit einem Quorum ausgeführt werden und muss dann noch manuell konfiguriert werden.
- CoroSync - Unterstützt kein Unicast.
Pacemaker funktioniert sehr gut, obwohl es aufgrund seiner Leistung schwierig ist, ihn einzurichten. Das eigentliche Problem mit Pacemaker ist, dass es keine einfache Möglichkeit gibt, die Konfiguration zu automatisieren. Ich möchte wirklich eine EC2-Instanz starten, Chef / Puppet installieren und den gesamten Cluster ohne mein Zutun starten.
Eigentlich arbeite ich an etwas sehr ähnlichem wie dem, was Sie beschrieben haben (ein Failover-Cluster in EC2) und habe mich nach dem Testen von Heartbeat für Corosync als meine Messaging-Ebene entschieden. Corosync wird auf mehreren Servern ausgeführt und unterstützt Unicast (UDPU) ab Version 1.3.0 (ab November 2010). Ich habe Corosync in der EC2-Cloud von Amazon (mit Linux AMI von Amazon) eingerichtet und getestet und kann bestätigen, dass es problemlos funktioniert.
Eine udpu-Beispieldatei wird in / etc / corosync installiert.
Fügen Sie dem Schnittstellenabschnitt für jeden Knoten einen Memberblock hinzu, und geben Sie den Transport als updu an. (Ich habe im folgenden Beispiel den gleichen Port wie Heartbeat verwendet, aber Sie können ihn nach Bedarf ändern.)
z.B:
(Heartbeat soll ab Version 1.2.3 Cluster mit mehr als 3 Knoten unterstützen. Ich habe es jedoch noch nie persönlich ausprobiert und weiß nicht, ob es mit Unicast funktionieren würde.)
quelle
Sorry, aber der Teil über Pacemaker ist nicht wahr. Die Schrittmacher-Regressions- und Release-Tests nutzen die Automatisierung in großem Umfang.
Wenn Sie ohne aktiven Cluster konfigurieren möchten, müssen Sie allen Befehlen das Präfix voranstellen
CIB_file=/var/lib/heartbeat/crm/cib.xml
oder es in Ihrer Umgebung festlegen. Stellen Sie lediglich sicher, dass Sie die .sig-Datei entfernen, bevor Sie den Cluster starten.Bei Clustern ohne Quorum sollten die meisten, wenn nicht alle Tools, diese unterstützen
-f
oder--force
den Cluster anweisen, die Änderung trotzdem zu akzeptieren. Wenn Sie ein Tool finden, das dies nicht kann, melden Sie bitte einen Fehler.quelle
In der Open Source-Welt gibt es die RedHat Cluster Suite . Es ist einige Jahre her, dass ich RHCS implementiert habe, so dass ich heute nicht viele relevante Dinge dazu zu sagen habe.
Kommerziell gibt es Veritas Cluster Server . Keine Erfahrung damit.
Ein viel einfacheres und Open-Source-HA-Tool ist UCARP . UCARP bietet nicht annähernd die gleiche Art von "Infrastruktur" wie Heartbeat / Pacemaker / CoroSync, aber Sie können HA-Lösungen darauf aufbauen.
Sie können mit Virtualisierungstechnologien auch eine hochverfügbare Infrastruktur aufbauen. Diese Lösungen konzentrieren sich jedoch eher auf die Verfügbarkeit auf Hostebene als auf die Verfügbarkeit auf Anwendungsebene.
quelle
Es gibt Oracle Clusterware für Oracle Unbreakable Linux, obwohl ich es nicht verwendet habe.
quelle
Wenn Sie bereits EC2 verwenden, warum nicht Elastic Load Balancing verwenden ? Damit können Sie die Verfügbarkeit auf Anwendungsebene erreichen, ohne das Failover selbst konfigurieren zu müssen.
quelle
Veritas Cluster ist großartig (im Vergleich zu Linux-Heartbeat, AIX-hacmp, HP-Serviceguard und Sun Cluster), kostet aber viel Geld. Das letzte Mal, als ich es mir ansah, basierte der Preis auf den CPU-Kernen des Clusters. Aktueller Anbieter ist Symantec ...
quelle
Ich habe einen Failover-Cluster-Manager in der Posix-Shell geschrieben: https://github.com/nackstein/back-to-work
schau es dir an, ich suche jemanden, der es ausprobieren und bei der Entwicklung helfen möchte.
quelle
opensvc ( https://www.opensvc.com ) unterstützt mehrere Heartbeat-Treiber:
und haben auch Quorum-Mechanismen im Falle von Split Brain.
Ich habe es geschafft, automatisch einen 4-Knoten-Cluster aus 2 Google Cloud-Instanzen + 2 Amazon-Instanzen mit terraform + ansible einzurichten.
quelle