Suchen

Linux hochverfügbar Der Aufbau eines High Availability-Cluster mit Linux

| Autor / Redakteur: Thomas Joos / Ulrike Ostler

In Linux können, neben Hadoop oder Kubernetes auch Möglichkeiten genutzt werden, um hochverfügbare Anwendungen zu betreiben. Für High Availiability Cluster (HA) lassen sich Active/Active-Strukturen nutzen, damit alle beteiligten Knoten aktiv sind.

Firmen zum Thema

Autor Toas Joos zeigt, wie sich mithilfe von Active-Active-Mechanismen in Ubuntu HA-Cluster aufbauen lassen.
Autor Toas Joos zeigt, wie sich mithilfe von Active-Active-Mechanismen in Ubuntu HA-Cluster aufbauen lassen.
(Bild: ©Siarhei - stock.adobe.com)

Um Linux, hier am Beispiel von „Ubuntu“, hochverfügbar zu betreiben, werden Pakete benötigt, mit denen eine Hochverfügbarkeit erreicht werden kann. Es gibt einige Pakete im Bereich der Hochverfügbarkeit, die in Ubuntu enthalten sind. Die bekanntesten Pakete in diesem Bereich sind:

  • Kronosnet“ und „knet“, ist eine Netzwerk-Abstraktionsschicht, die für Hochverfügbarkeit ausgelegt ist. „Corosync“ verwendet zum Beispiel Kronosnet, um Netzwerke für einen Cluster bereitzustellen
  • Corosync - Die Corosync Cluster Engine ist ein Management-System für Cluster, das auch mit Ubuntu funktioniert.
  • Ressourcen-Agenten - Skripte und Betriebssystemkomponenten, die Ressourcen starten, stoppen oder überwachen.
  • „Fence Agents“ - Skripte, die Aktionen auf den Knoten ausführen. Die Skripte können zum Beispiel nicht mehr funktionierende Knoten aus dem Cluster entfernen, um zu verhindern, dass Datenverlust droht.
  • „Cluster Resource Manager“ und „Heartbeat“ stellen das Gehirn zur Verfügung. Hier werden die Ereignisse, die im Cluster auftreten, verarbeitet und Aktionen auf Basis der Ereignisse erstellt. Der Cluster Resource Manager kann Ressourcen starten, stoppen und ebenfalls Fencing-Aktionen auslösen. Hier wird häufig auf „Pacemaker“ gesetzt.
  • DRBD - „Distributed Replicated Block Device“ ist ein verteiltes repliziertes Speichersystem Linux. DRBD häufig in Hochverfügbarkeits-Clustern (HA) verwendet.
  • „Distributed Lock Manager“ (DLM) läuft auf jedem Knoten. Der DLM verfügt über eine Kopie der Cluster-weiten Sperrdatenbank. Das ermöglicht Anwendungen, die im Cluster auf mehreren Knoten verteilt sind, die Möglichkeit Zugriffe zu synchronisieren.
  • „Keepalived“ bietet die Möglichkeit Lastverteilung und Hochverfügbarkeit für Linux einzurichten. Das Framework basiert auf dem „Linux Virtual Server“ (IPVS)-Kernelmodul. Keepalived implementiert eine Reihe von Prüfroutinen zur Wartung und Verwaltung eines Pools von Servern mit Lastausgleich.

In vielen Fällen wird beim Aufbau von Clustern auf Basis mit Linux auf die Pakete Pacemaker und Coroysync gesetzt. Die Pakete können nicht nur in Ubuntu eingesetzt werden, sondern auch auf anderen Distributionen, wie zum Beispiel „CentOS“.

Ressourcen-Management im Cluster

Es gibt verschiedene Wege, um Cluster mit Linux aufzubauen. Wichtig sind in diesem Bereich vor allem „Cluster Communication Management“ (CCM) und „Cluster Resource Management“ (CRM). Als CRM wird häufig auf Pacemaker gesetzt.

Das Installieren von “Pacemaker” und “Corosync” in CentOS
Das Installieren von “Pacemaker” und “Corosync” in CentOS
(Bild: Thomas Joos)

Dieses Paket steht auch in Ubuntu zur Verfügung. Pacemaker kann wiederum auf den Cluster Communication Manager Corosync setzen. Auch dieses Paket ist Bestandteil von Ubuntu.

Pacemaker empfängt Informationen von Corosync und führt im Falle von Problemen auch Aktionen aus. Corosync wird häufig vor Pacemaker installiert oder zusammen mit Pacemaker. Die Konfiguration erfolgt in den meisten Fällen über die Konfigurationsdatei „corosync.conf“ im Verzeichnis „etc/corosync“.

Das Steuern von PCS Cluster in Linux
Das Steuern von PCS Cluster in Linux
(Bild: Thomas Joos)

Cluster-Pakete installieren und einrichten

Auf CentOS kann zur Installation der Pakete zum Beispiel auf „Yum“ gesetzt werden. Um Pacemaker, PCS und Corosync gemeinsam zu installieren.

Sudo yum -y install pacemaker pcs

Mit PCS wird eine Befehlszeilenschnittstelle installiert, die bei der Konfiguration von Pacemaker und Corosync genutzt wird. Danach kann „pcsd“ aktiviert und gestartet werden:

Systemctl enable pcsd.serviceSystemctl start pcsd.service

Die Kommunikation der Dienste auf den verschiedenen Knoten erfolgt über einen Benutzer. Hier wird oft auf den Standardnutzer „hacluster“ gesetzt. Das Kennwort für diesen Benutzer wird mit dem folgenden Befehl festgelegt:

Passwd hacluster

Auf allen beteiligten Knoten sollte das Kennwort identisch sein. Anschließend müssen die beiden Knoten sich gegenseitig authentifizieren können. Dazu wird zum Beispiel der folgende Befehl genutzt:

pcs cluster auth knoten1 knoten2</strong>

Am Beispiel von Ubuntu wird Pacemaker mit dem folgenden Befehl installiert:

sudo apt install pacemaker

Um Auf Ubuntu ebenfalls PCS zu installieren wird der folgende Befehl verwendet:

sudo apt install pcs

Das Konfigurieren von „Corosync“
Das Konfigurieren von „Corosync“
(Bild: Thomas Joos)

Um anschließend Corosnyc zu konfigurieren, sollte in Ubuntu der Dienst zunächst beendet werden:

systemctl stop corosync

Um einen Schlüssel für Corosync zu generieren, kann auf Ubuntu-Rechnern der folgende Befehl genutzt werden:

sudo corosync-keygen

Der Schlüssel wird zum Beispiel dazu genutzt, damit zwei Server miteinander kommunizieren können. Der Befehl erstellt einen Schlüssel, der wiederum in „/etc/corosync/authkey“ gespeichert wird. Anschließend kann der Schlüssel vom primären auf den sekundären Server kopiert werden:

sudo scp /etc/corosync/authkey <Benutzername>@<IP des zweiten Knotens>:/tmp

Unabhängig davon, wie der Schlüssel auf den zweiten Server kommt, sollte auf dem zweiten Server die Datei in die richtigen Verzeichnisse kopiert und die Berechtigungen so geändert werden, dass nur der Root-Benutzer darauf zugreifen kann:

sudo mv /tmp/authkey /etc/corosyncsudo chown root: /etc/corosync/authkeysudo chmod 400 /etc/corosync/authkey

Anschließend kann Corosync konfiguriert werden. Dazu wird zum Beispiel die Konfigurationsdatei mit „VI“ bearbeitet:

sudo vi /etc/corosync/corosync.conf

** Thomas Joos ist freier Autor. Er verfasst Fachartikel und Fachbücher. Auf DataCenter-Insider befüllt er seinen eigenen Blog mit Tipps und Tricks für Administratoren: „Toms Admin-Blog

(ID:46829649)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist