zentilia - Fotolia

Konfiguration und Management von Server-Clustern mit RHEL 7

Die Konfiguration von Linux-Clustern ist ein komplexer Prozess. Dieses Beispiel zeigt Installation und Management von Server-Clustern mit RHEL 7.

Das Aufsetzen eines virtuellen Clusters kann enorm komplex und zeitaufwendig sein, daher empfiehlt es sich, für die ersten Schritte mit einer kleinen Bereitstellung anzufangen. Dieser Artikel zeigt beispielhaft, wie sich ein virtueller Cluster aufbauen lässt und soll so zu einem besseren Verständnis der Clustering-Technik mit Red Hat Enterprise Linux (RHEL) führen.

Für den weiteren Verlauf werden zwei Server-Nodes mit RHEL oder CentOS jeweils in Version 7 benötigt, die mit korrektem Forward und Reverse DNS (Domain Name System) konfiguriert sind. Version 7 empfiehlt sich deshalb, weil diese gegenüber dem Vorgänger ein wesentlich weniger komplexes Cluster-Management mitbringt.

Im Grunde gibt es lediglich zwei Technologien, die als Basis des Cluster-Setups dienen: Pacemaker und Corosync. Pacemaker sorgt für das eigentliche Cluster-Management, während Corosync auf einer tieferen Ebene Clustering-Items verwaltet und die Verbindung sicherstellt. Beide Komponenten können mit dem folgenden Befehl installiert werden:

yum install –y pcs fence-agents-all

Dieser Befehl lädt alle Abhängikeiten herunter und muss auf beiden Nodes ausgeführt werden. Auf einem komplett neu aufgesetzten System wird zudem eine Firewall-Regel hinzugefügt werden müssen, um den benötigten Traffic hindurchzulassen. Dies kann aber ganz leicht mit den folgenden Befehlen durchgeführt werden:

firewall-cmd --permanent --add-service=high-availability

firewall-cmd --permanent --add-service=http

firewall-cmd --reload

Cluster-Service starten

Der nächste Schritt besteht im Starten des Cluster-Service, was mit den folgenden Befehlen möglich ist:

systemctl enable pcsd.service

systemctl start pcsd.service

Die erste Zeile aktiviert den Cluster-Service beim Boot-Up, die zweite Zeile startet ihn für die aktuelle Sitzung.

Abbildung 1: Starten des Cluster-Service.

Für einen tieferen Einblick in die Vorgänge empfiehlt sich ein Blick in /var/logs/cluster/. An diesem Punkt wurde der Cluster-Service zwar bereits gestartet, es gibt aber noch kein Cluster-Setup. Mit RHEL/CentOS 7 lässt sich dies direkt über die Befehlszeile konfigurieren, hierfür dienen die pcs-Befehle (Kurzform für Pacemaker/Corosync Configuration System), was die Installation wesentlich einfacher als in früheren Versionen macht.

Wenn das Cluster-Setup durchgeführt wurde, steht ein Cluster mit der Bezeichnung hacluster zur Verfügung, der für das Management der virtuellen Cluster zuständig ist. Um diesen Account nutzen zu können, muss zunächst das Passwort geändert werden. Mit dem folgenden Befehl wird das Passwort zurückgesetzt und kann geändert werden (dies muss auch auf beiden Nodes durchgeführt werden):

passwd hacluster

Autorisierung der Cluster-Nodes

Sobald dieser Schritt erfolgt ist, kann mit dem tatsächlichen Management des Clusters und der Nodes begonnen werden. Hierfür müssen zunächst die Nodes autorisiert werden, die sich später im virtuellen Cluster befinden werden. Der Befehl hierfür lautet:

pcs cluster auth node1 node2

Wenn bis hierhin alles nach Plan verlaufen ist, sollte der Bildschirm in etwa wie in Abbildung 2 aussehen.

Abbildung 2: Autorisierung der Cluster-Nodes.

Erstellen von Cluster-Ressourcen

Auf dieser Basis werden nun Cluster-Ressourcen erstellt. Auch dies kann wieder über pcs-Befehle zusammen mit dem Cluster-Setup-Befehl erfolgen, während die spezifischen Node-Bezeichnungen und Anwendungsnamen ersetzt werden müssen:

pcs cluster setup --start --name myapp node1 node2

An diesem Punkt wird der Cluster Resource Controller die bestehende Konfiguration überschreiben, neue Konfigurationsdaten synchronisieren und damit eine neue Konfiguration mit den zwei spezifizierten Nodes einrichten. Alles, was dann noch für das tatsächliche Starten des Clusters nötig ist, erledigt der nächste Befehl:

pcs cluster enable --all

Damit sollten beide Nodes als aktiv angezeigt werden. Den vollständigen Cluster-Status erhält man über den Befehl pcs cluster status, womit ein Überblick über den aktuellen Cluster-Zustand angezeigt wird.

Abbildung 3: Anzeige des aktuellen Cluster-Zustandes.

Storage in Cluster-Umgebungen

An diesem Punkt kann ein genauerer Blick auf Shared Storage nicht schaden. Es gibt verschiedene Ansätze für Shared Storage, beispielsweise Network File System (NFS) oder iSCSI. In unserem Beispiel werden wir aber gar kein Storage konfigurieren.

Eine wichtige Sache im Umgang mit virtuellen Server-Clustern besteht darin, sicherzustellen, dass File Locking auf Hypervisor-Ebene deaktiviert ist. Andernfalls kann dies schwere Fehler verursachen, beispielsweise könnte die VM-Disk in den Read-only-Modus schalten. Stattdessen sollte das File Locking auf Betriebssystemebene erfolgen. Hierfür muss im Zweifelsfall die technische Dokumentation des jeweiligen Hypervisors herangezogen werden.

Eine Sache, die auf jeden Fall konfiguriert werden muss, ist festzulegen, wie die Server im virtuellen Cluster entscheiden, welcher Server ansprechbar ist und welcher nicht. Dies wird über einen Prozess namens Fencing erledigt. Fencing ermöglicht es jedem Node, den jeweils anderen zu stoppen, um die Integrität des gesamten Clusters sicherzustellen, wenn es bei einem Failover eines Clusters zu Problemen kommt.

Ohne Fencing-Konfiguration wird auch kein Client-seitiger Service starten. Der Fencing-Befehl lautet pcs stonith, wobei STONITH ein Akronym für „Shoot The Other Node In The Head“ ist, ein Linux-Service, der nicht-korrekt funktionierende Nodes herunterfahren kann.

Es gibt verschiedene Fencing-Methoden, in unserem Beispiel nutzen wir aber einfach den eingebauten Fencing-Mechanismus. Für jeden Node muss hierfür der folgende Befehl angewendet werden:

pcs stonith create newfence fence_virt pcmk_host_list=f1

An diesem Punkt können die Cluster-Komponenten über den Befehl pcs cluster start –all wieder aktiviert werden. Nutzt man dann wieder den Befehl pcs status, dann sollten alle Services als ordentlich ausgeführt angezeigt werden.

Aktivieren der virtuellen IP

Nachdem dies erledigt ist, muss noch die virtuelle IP aktiviert werden. Die virtuelle IP ist die Adresse, die keine physische Verbindung benötigt. Sie dient als fehlertolerantes Frontend für die Services, die der Cluster bereitstellt. Wenn zum Beispiel ein Node ausfällt, dann wird der gesamte Traffic zum alternativen Cluster-Node geleitet, ohne dass hierfür händisch eingegriffen werden müsste oder gar eine Ausfallzeit entsteht.

Über den folgenden Befehl lässt sich eine virtuelle IP-Adresse einrichten:

pcs resource create Cluster_VIP ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=24 op monitor interval=20s

Damit sollte der Cluster live und aktiv sein. Bevor man aber wirklich mit dem Cluster arbeiten kann, müssen noch Cluster-Ressourcen hinzugefügt werden.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im Juni 2016 aktualisiert

Erfahren Sie mehr über Linux-Server

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close