GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Clustering-Konzepte

Ein Cluster ist eine Gruppe von Computern (Knoten), die zusammenarbeiten, um eine gemeinsame Lösung bereitzustellen. Auf hoher Ebene kann ein Cluster als aus drei Teilen bestehend betrachtet werden (häufig als Cluster-Stapel definiert).

Grundlegende Konzepte

  • Ressourcen: Aus diesem Grund sind die Cluster die Dienste, die hochverfügbar gehalten werden müssen.
  • Ressourcenagenten: Dies sind Skripte von Betriebssystemkomponenten, die Ressourcen starten, stoppen und überwachen, wenn ihnen ein Satz von Ressourcenparametern gegeben wird.
  • Zaunagenten: Dies sind Skripte, die Fencing-Aktionen eines Knotens ausführen, wenn ein Ziel und ein Fencing-Gerät gegeben sind.
  • Fechten: Die Möglichkeit, Knoten zu deaktivieren.
  • Beschlussfähigkeit: Umfasst die Fähigkeit zu bestimmen, ob der Cluster weiterhin sicher betrieben werden kann oder nicht.

Cluster-Typen

Die vier Typen sind wie folgt:

  • Hohe Verfügbarkeit (HA): Wird für die Fehlertoleranz verwendet, um Serverdienste für Mitarbeiter oder Kunden verfügbar zu halten.
  • Load-Balancing: Gleicht die Last zwischen mehreren Systemen aus, wenn ein Dienst für mehrere Systeme gleichzeitig verfügbar sein muss (kann für drei andere Arten von Clustern verwendet werden).
  • Verteilt: Jobs werden von verschiedenen Systemen verwaltet.
  • Parallel (Beowulf): Jobs werden von mehreren Prozessoren auf mehreren Systemen verwaltet.

Auch durch die Konfiguration gibt es mehrere Arten von Clustern:

  • Manuelles Clustering: Ermöglicht das manuelle Klassifizieren, Zusammenführen und Aufteilen von Clustern, wenn die Ausgabe der automatischen Spike-Sortieralgorithmen nicht zufriedenstellend ist.
  • Cluster zusammenführen: Wenn mehrere Cluster derselben Einheit zu entsprechen scheinen.
  • Cluster teilen: Sie können einen neuen Cluster erstellen, indem Sie in der Feature-Ansicht, der Amplitudenansicht, der Vorlagenamplitudenansicht oder den Spitzenattributansichten ein Polygon um eine Reihe von Spitzen zeichnen.

HINWEIS: Wir hier bei Rackspace verwenden meistens HA- und manchmal LB-Cluster. Bei Rackspace verwenden wir den Begriff Red Hat Cluster Suite (RHCS) auf RHEL 6 und Pacemaker Configuration System csd daemon daemonm (PCS) auf RHEL 7, um Konnektivität zwischen Cluster-Knoten bereitzustellen und eine Plattform für geclusterte Dienste bereitzustellen.

Die Cluster-Suite bietet Tools zum Erstellen, Konfigurieren und Steuern des Clusters.

Gründe für ein Cluster

Es gibt verschiedene Gründe für die Verwendung eines Clusters. Wir verwenden sie, um ein belastbares, hochverfügbares Backend für Lösungen bereitzustellen. Dies gilt hauptsächlich für Backend-Dienste wie MySQL, NFS oder Redis, bei denen sich der Dienst hinter einem Front-End von Webservern befinden kann.

Hochverfügbarkeit wird durch automatisches Failover bereitgestellt – wenn auf einem Cluster-Knoten ein Fehler auftritt, werden die auf diesem Knoten ausgeführten geclusterten Dienste automatisch auf einen ordnungsgemäß ausgeführten Knoten verlagert.

Cluster verwenden im Allgemeinen gemeinsam genutzten Speicher (SAN), damit Daten persistent sind, wenn Dienste zwischen Knoten verschoben werden.

Falls ein Knoten nicht mehr reagiert, wird dieser Knoten in der Regel von anderen Knoten neu gestartet (abgeschirmt), um die Datenintegrität des gemeinsam genutzten Speichers und den schwebenden IP-Besitz zu wahren.

Linux-Open-Source-High-Availability-Clustering

Einige Anbieter von Linux-Betriebssystemen bieten Clustering-Software an, z. B. SUSE Linux HAE; Red Hat Enterprise Linux (RHEL); und Oracle Real Application Clusters (RAC).

Sie ermöglichen Ihnen zwar das Erstellen eines Failover-Clusters, stellen jedoch eine Vielzahl von Herausforderungen dar, da dies sehr manuell und anfällig für menschliche Fehler ist.

Linux-Open-Source-HA-Erweiterungen erfordern ein hohes Maß an technischen Fähigkeiten, was zu Komplexitäts- und Zuverlässigkeitsproblemen führt, die die meisten Betreiber herausfordern.

SUSE

SUSE Linux Enterprise Server und Red Hat Enterprise Linux bieten beide sowohl eine SAN- als auch eine SAN-lose Umgebung, erfordern jedoch die Installation und Konfiguration einer Replikationssoftware namens DRBD im Betriebssystem, um die Datenreplikation in der SAN-losen Umgebung zu unterstützen. Leider erfordert dies umfangreiches benutzerdefiniertes Skripting, dessen Testen und Validieren viel Zeit in Anspruch nehmen kann und ein erneutes Testen erfordert, wenn Aktualisierungen an der Umgebung vorgenommen werden. Da es sich bei diesen Unternehmen in erster Linie um Betriebssystemunternehmen handelt, ist ihr Support auf Probleme auf Betriebssystemebene ausgerichtet, und oft gibt es wenig bis gar kein HA-Fachwissen, um einem Kunden bei seinen Problemen zu helfen.

Oracle Reak Application Clusters (RAC)

Oracle RAC ist eine Hochverfügbarkeitslösung, aber sie ist in erster Linie für die Datenbankverwaltungsebene konzipiert. Das bedeutet, dass Sie für die Komponenten, die die Überwachung, Verwaltung und Wiederherstellung Ihrer Anwendungsebenen übernehmen, eine andere HA-Lösung benötigen. Oracle RAC ist außerdem sehr teuer, sodass Sie im Vergleich zu anderen Linux-Clustering-Lösungen wie SIOS Protection Suite zusätzlich zur Zahlung für die RAC-Option ein Upgrade auf Oracle Enterprise Edition durchführen müssen.

SIOS Protection Suite für Linux-Clustering

Die SIOS Protection Suite für Linux bietet eine eng integrierte Kombination aus Hochverfügbarkeits-Failover-Clustering, kontinuierlicher Anwendungsüberwachung, Datenreplikation und konfigurierbaren Wiederherstellungsrichtlinien, die Ihre geschäftskritischen Anwendungen vor Ausfallzeiten und Katastrophen schützt. Während SIOS Protection Suite in einer SAN-Umgebung betrieben werden kann, um einen traditionellen HA-Hardware-basierten Cluster zu unterstützen, verfolgt die Architektur einen Shared-Nothing-Ansatz für das Server-Clustering, sodass sie ohne SAN ausgeführt werden kann. Es bietet eine robuste, vielseitige und leicht konfigurierbare Lösung mit automatischen und manuellen Failover-/Failback-Wiederherstellungsrichtlinien für eine Vielzahl von Anwendungen.

SIOS Protection Suite für Linux enthält:

  • SIOS LifeKeeper: Bietet flexible Failover-Clustering-Software, die den gesamten Anwendungsstapel überwacht.
  • SIOS DataKeeper: Bietet eine schnelle, effiziente hostbasierte Datenreplikation auf Blockebene zur Spiegelung lokaler Speicher in einer SAN-losen Clusterkonfiguration oder zur Replikation an entfernte Standorte oder in die Cloud für die Notfallwiederherstellung.
  • Multiple Application Recovery Kits (ARKs): Mit automatisierten Konfigurations- und Validierungstools, die in das Produkt integriert sind, um Ihre geschäftskritischen Anwendungen und Daten vor Ausfallzeiten und Katastrophen zu schützen.

Es ist das fundierte Wissen des SIOS-Teams in der Anwendungswiederherstellung und die Automatisierung der Anwendungsüberwachung und -wiederherstellung durch die Lösung, die sie einfacher zu verwenden und im Vergleich zu den von SUSE, Red Hat und Oracle angebotenen Linux-Clustering-Lösungen zu einer besseren und kostengünstigeren Wahl macht.

Darüber hinaus unterstützt SIOS LifeKeeper alle wichtigen Linux-Distributionen, einschließlich Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS und Oracle Linux, und unterstützt eine breite Palette von Speicherarchitekturen. Die SIOS-Software wurde angepasst und optimiert, um auf diesen Betriebssystemen ausgeführt zu werden, und die Komponenten werden getestet, um sicherzustellen, dass die SANless-Clusterlösung auf jedem Betriebssystem funktioniert.

Schließlich können Sie mit der SIOS Protection Suite für Linux Ihre geschäftskritischen Anwendungen in einer flexiblen, skalierbaren Cloud-Umgebung wie Amazon Web Services (AWS) ausführen, ohne Leistung, Hochverfügbarkeit oder Katastrophenschutz zu opfern.

Linux-Clustering in AWS

Während Cloud-Anbieter wie AWS Hochverfügbarkeitsoptionen anbieten, bieten sie nicht das Maß an Hochverfügbarkeit und Schutzumfang für die gesamte Anwendungsinfrastruktur, das Kunden verlangen und das Sie einst durch die Verwendung von Clustern vor dem Cloud-Computing erreicht haben. Aus diesem Grund arbeitet AWS mit SIOS zusammen. Die SIOS Protection Suite für Linux erreicht das gewünschte Maß an Hochverfügbarkeit für unsere gemeinsamen Kunden und die kritischen Anwendungen, die sie in die AWS-Cloud verschieben.

SIOS Protection Suite for Linux on AWS bietet alle Elemente, die Sie zum Erstellen eines hochverfügbaren Linux-Clusters in einer Virtual Private Cloud (VPC) innerhalb einer einzigen AWS-Region über zwei Availability Zones benötigen. Es unterstützt auch den sofort einsatzbereiten Schutz für SAP-Systeme, Oracle-Datenbanken und andere geschäftskritische Anwendungen.

SIOS und AWS bieten SIOS Protection Suite Quickstart auf AWS an, mit dem Sie in wenigen kurzen Schritten einen vollständig konfigurierten und betriebsbereiten Linux-Hochverfügbarkeitscluster erstellen können. Es richtet eine AWS-Architektur für SIOS Protection Suite für Linux ein und stellt sie in etwa einer halben Stunde in Ihrem AWS-Konto bereit. Dieser im AWS Marketplace verfügbare Quick Start richtet sich an Unternehmensbenutzer, die SIOS Protection Suite for Linux on AWS in ihrer Test- oder Produktionsumgebung bereitstellen möchten.

SIOS-Clustering für Linux

SIOS ist ein Hochverfügbarkeitsunternehmen, das sich in den letzten 20 Jahren auf die Bereitstellung von HA konzentriert hat, die speziell für SAP-, SQL-, Linux-, Oracle- und andere Anwendungen entwickelt wurde. Seine Erfahrung ist in sein Produkt eingebaut, und die Installation und Konfiguration nehmen im Vergleich zum benutzerdefinierten Skripting mit den Linux-Distributionen einen Bruchteil der Zeit und der Kosten in Anspruch. Darüber hinaus testet und validiert SIOS neue Versionen von Betriebssystemen und Anwendungen, damit seine Kunden dies nicht tun müssen. Wenn ein Kunde SIOS zwecks Support anruft, wird er mit einem Hochverfügbarkeitsexperten verbunden – jemandem, der sich nur auf Hochverfügbarkeit konzentriert und dies schon sehr lange tut.

Unter Linux ist die am häufigsten verwendete Software Pacemaker

Schrittmacherübersicht

Die Hochverfügbarkeits-Add-On-Clusterinfrastruktur stellt die grundlegenden Funktionen für eine Gruppe von Computern (als Knoten oder Mitglieder bezeichnet) bereit, um als Cluster zusammenzuarbeiten. Sobald ein Cluster mithilfe der Cluster-Infrastruktur gebildet wurde, können Sie andere Komponenten verwenden, die Ihren Clustering-Anforderungen entsprechen (z. B. das Einrichten eines Clusters zum Freigeben von Dateien auf einem GFS2-Dateisystem oder das Einrichten eines Dienst-Failovers). Die Cluster-Infrastruktur führt die folgenden Funktionen aus:

  • Clusterverwaltung.
  • Sperrverwaltung.
  • Fechten.
  • Cluster-Konfigurationsverwaltung.

Pacemaker-Architektur

Ein mit Pacemaker konfigurierter Cluster umfasst separate Komponenten-Daemons, die die Cluster-Mitgliedschaft überwachen, Skripts, die die Dienste verwalten, und Ressourcenverwaltungs-Subsysteme, die die unterschiedlichen Ressourcen überwachen. Die folgenden Komponenten bilden die Pacemaker-Architektur:

Cluster-Informationsbasis (CIB)

Der Pacemaker-Informations-Daemon, der XML intern verwendet, um aktuelle Konfigurations- und Statusinformationen vom Designated Coordinator (DC) zu verteilen und zu synchronisieren, einem Knoten, der von Pacemaker zum Speichern und Verteilen von Cluster-Status und -Aktionen mithilfe des CIB an alle anderen Cluster-Knoten zugewiesen wurde.

Cluster Resource Management Daemon (CRMd)

Pacemaker-Cluster-Ressourcenaktionen werden über diesen Daemon geleitet. Von CRMd verwaltete Ressourcen können von Client-Systemen abgefragt, verschoben, instanziiert und bei Bedarf geändert werden.

Jeder Cluster-Knoten enthält auch einen lokalen Ressourcen-Manager-Daemon (LRMd), der als Schnittstelle zwischen CRMd und Ressourcen fungiert. LRMd übergibt Befehle von CRMd an Agenten, wie z. B. das Starten und Stoppen und das Weiterleiten von Statusinformationen.

Schießen Sie den anderen Knoten in den Kopf (STONITH)

STONITH wird oft in Verbindung mit einem Netzschalter eingesetzt und fungiert als Cluster-Ressource in Pacemaker, die Fence-Anforderungen verarbeitet, Knoten zwangsweise herunterfährt und sie aus dem Cluster entfernt, um die Datenintegrität sicherzustellen. STONITH wird in CIB konfiguriert und kann als normale Cluster-Ressource überwacht werden.

corosync ist die Komponente – und ein gleichnamiger Daemon – der die Kernmitgliedschafts- und Mitgliedskommunikationsanforderungen für Hochverfügbarkeitscluster erfüllt. Es ist erforderlich, damit das Hochverfügbarkeits-Add-On funktioniert.

Zusätzlich zu diesen Mitgliedschafts- und Nachrichtenfunktionen bietet corosync auch:

Verwaltet Quorumregeln und Feststellung.

Stellt Messaging-Funktionen für Anwendungen bereit, die mehrere Mitglieder des Clusters koordinieren oder über mehrere Mitglieder des Clusters hinweg arbeiten und daher zustandsbehaftete oder andere Informationen zwischen Instanzen kommunizieren müssen.

Tools zur Konfiguration und Verwaltung von Pacemaker

Pacemaker bietet zwei Konfigurationstools für die Bereitstellung, Überwachung und Verwaltung von Clustern.

PCS kann alle Aspekte von Pacemaker und dem Corosync-Heartbeat-Daemon steuern. Als befehlszeilenbasiertes Programm kann pcs die folgenden Cluster-Verwaltungsaufgaben ausführen:

  • Erstellen und konfigurieren Sie einen Pacemaker/Corosync-Cluster.
  • Ändern Sie die Konfiguration des Clusters, während es ausgeführt wird.
  • Konfigurieren Sie sowohl Pacemaker als auch Corosync remote und starten, stoppen und zeigen Sie Statusinformationen des Clusters an.

pcsd-Webbenutzeroberfläche

Eine grafische Benutzeroberfläche zum Erstellen und Konfigurieren von Pacemaker/Corosync-Clustern mit den gleichen Funktionen und Fähigkeiten wie das befehlszeilenbasierte Dienstprogramm pcs.

Um die Integrität und Verfügbarkeit von Clustern aufrechtzuerhalten, verwenden Clustersysteme ein Konzept, das als Quorum bekannt ist, um Datenbeschädigung und -verlust zu verhindern. Ein Cluster hat das Quorum, wenn mehr als die Hälfte der Cluster-Knoten online sind. Um das Risiko einer Datenbeschädigung aufgrund von Fehlern zu verringern, stoppt Pacemaker standardmäßig alle Ressourcen, wenn der Cluster kein Quorum hat.

In einem Clustersystem können viele Knoten an mehreren wichtigen Produktionsdaten arbeiten. Knoten in einem ausgelasteten Cluster mit mehreren Knoten könnten anfangen, unregelmäßig zu reagieren oder nicht mehr verfügbar zu sein, was Administratoren zum Eingreifen veranlasst. Die durch fehlerhafte Cluster-Knoten verursachten Probleme können durch die Einrichtung einer Fencing-Richtlinie gemildert werden.

Wenn Pacemaker feststellt, dass ein Knoten ausgefallen ist, teilt es anderen Komponenten der Cluster-Infrastruktur mit, dass der Knoten ausgefallen ist. STONITH umzäunt den ausgefallenen Knoten, wenn er über den Ausfall benachrichtigt wird. Andere Cluster-Infrastrukturkomponenten bestimmen, welche Maßnahmen zu ergreifen sind, einschließlich der Durchführung einer erforderlichen Wiederherstellung. Wenn beispielsweise DLM und GFS2 über einen Knotenausfall benachrichtigt werden, setzen sie die Aktivität aus, bis sie feststellen, dass STONITH das Eingrenzen des ausgefallenen Knotens abgeschlossen hat. Nach der Bestätigung, dass der ausgefallene Knoten abgeschirmt ist, führen DLM und GFS2 eine Wiederherstellung durch. DLM gibt Sperren des ausgefallenen Knotens frei; GFS2 stellt das Journal des ausgefallenen Knotens wieder her.

Fencing auf Knotenebene durch STONITH kann mit einer Vielzahl von unterstützten Fencing-Geräten konfiguriert werden, darunter:

  • Unterbrechungsfreie Stromversorgung (USV): Ein Gerät, das eine Batterie enthält, mit der Geräte bei einem Stromausfall eingezäunt werden können.
  • Stromverteilungseinheit (PDU): Ein Gerät mit mehreren Steckdosen, das in Rechenzentren für eine saubere Stromverteilung sowie für Zaun- und Stromisolierungsdienste verwendet wird.
  • Blattleistungssteuergeräte: Dedizierte Systeme, die in einem Rechenzentrum installiert sind und so konfiguriert sind, dass sie Cluster-Knoten im Falle eines Ausfalls abschirmen.
  • Lights-out-Geräte: Mit dem Netzwerk verbundene Geräte, die die Verfügbarkeit von Cluster-Knoten verwalten und Fencing, Ein-/Ausschalten und andere Dienste durch Administratoren lokal oder remote ausführen können.

Hochverfügbarkeits-Add-on-Ressourcenklassen von Red Hat

Es gibt mehrere Klassen von Ressourcenagenten, die vom Red Hat High Availability Add-On unterstützt werden:

  • LSB: Der Linux Standards Base Agent abstrahiert die vom LSB unterstützten konformen Dienste, nämlich die Dienste in /etc/init.d und die zugehörigen Rückgabecodes für erfolgreiche und fehlgeschlagene Dienstzustände (gestartet, gestoppt, laufender Status).
  • OCF: Das Open Cluster Framework ist eine Obermenge der LSB (Linux Standards Base), die Standards für die Erstellung und Ausführung von Serverinitialisierungsskripten, Eingabeparameter für die Skripte mit Umgebungsvariablen und mehr festlegt.
  • systemd: Der neueste Systemdienstmanager für Linux-basierte Systeme, systemd, verwendet Sätze von Unit-Dateien anstelle von Initialisierungsskripten, wie dies bei LSB und OCF der Fall ist. Diese Einheiten können manuell von Administratoren erstellt oder sogar von Diensten selbst erstellt und verwaltet werden. Pacemaker verwaltet diese Einheiten auf ähnliche Weise wie OCF- oder LSB-Init-Skripte.
  • Neuling: Ähnlich wie systemd ist Upstart ein alternativer Systeminitialisierungsmanager für Linux. Upstart verwendet Jobs, im Gegensatz zu Units in Systemd- oder Init-Skripten.
  • STONITH: Ein Ressourcenagent ausschließlich für Fechtdienste und Fechtagenten, die STONITH verwenden.
  • Nagios: Agenten, die Plug-Ins für das System- und Infrastrukturüberwachungstool Nagios abstrahieren.

Ressourcen überwachen

Um sicherzustellen, dass Ressourcen fehlerfrei bleiben, können Sie der Definition einer Ressource einen Überwachungsvorgang hinzufügen. Wenn Sie für eine Ressource keinen Überwachungsvorgang angeben, erstellt der Befehl pcs standardmäßig einen Überwachungsvorgang mit einem Intervall, das vom Ressourcenagenten bestimmt wird.

Ressourcenbeschränkungen

Sie können das Verhalten einer Ressource in einem Cluster bestimmen, indem Sie Einschränkungen konfigurieren. Sie können die folgenden Kategorien von Beschränkungen konfigurieren:

  • Standortbeschränkungen: Eine Standortbeschränkung bestimmt, auf welchen Knoten eine Ressource ausgeführt werden kann.
  • Bestellbeschränkungen: Eine Reihenfolgebeschränkung bestimmt die Reihenfolge, in der die Ressourcen ausgeführt werden.
  • Standortbeschränkungen: Eine Colocation-Einschränkung bestimmt, wo Ressourcen relativ zu anderen Ressourcen platziert werden.

Als Abkürzung für die Konfiguration einer Reihe von Einschränkungen, die eine Reihe von Ressourcen zusammen lokalisieren und sicherstellen, dass die Ressourcen sequenziell starten und in umgekehrter Reihenfolge stoppen, unterstützt Pacemaker das Konzept von Ressourcengruppen.

Ressourcengruppen

Eines der häufigsten Elemente eines Clusters ist eine Reihe von Ressourcen, die sich zusammen befinden, nacheinander starten und in umgekehrter Reihenfolge stoppen müssen. Um diese Konfiguration zu vereinfachen, unterstützt Pacemaker das Konzept von Gruppen.

Sie erstellen eine Ressourcengruppe mit dem Befehl pcs resource und geben dabei die Ressourcen an, die in die Gruppe aufgenommen werden sollen. Wenn die Gruppe nicht vorhanden ist, erstellt dieser Befehl die Gruppe. Wenn die Gruppe vorhanden ist, fügt dieser Befehl der Gruppe zusätzliche Ressourcen hinzu. Die Ressourcen starten in der Reihenfolge, in der Sie sie mit diesem Befehl angeben, und stoppen in der umgekehrten Reihenfolge ihrer Startreihenfolge.

Referenzen

  • Clusterkomponenten – Clusterlabs
  • Split-Brain-Syndrom – Techtarget
  • Linux-Clustering – SIOS
  • Clustering - phy
  • Linux-Cluster - Linux.org
  • Einführung in Cluster – Linux Blimp
  • Überblick über Herzschrittmacher – Red Hat

Verwenden Sie die Registerkarte „Feedback“, um Kommentare abzugeben oder Fragen zu stellen. Sie können auch ein Gespräch mit uns beginnen.


Linux
  1. Linux-Betriebssystemdienst „o2cb“

  2. Tutorial zu Linux-Clustering (Hochverfügbarkeit)

  3. Wie kann ich die Markierung eines NTFS-Clusters als fehlerhaft aufheben?

  4. Unkompliziertes Linux-Clustering

  5. Verwalten von Clustern von Linux-Computern hinter Firewalls

Bei Befehl unter Linux

Einrichten eines Linux-Clusters mit Keepalived:Basiskonfiguration

So richten Sie einen Pacemaker-Cluster für Linux mit hoher Verfügbarkeit ein

Linux gegen Unix

So installieren Sie den Apache Cassandra-Cluster unter Linux

So richten Sie den RabbitMQ-Cluster unter Ubuntu/Debian Linux ein