Einen hochverfügbaren Server-Cluster unter Linux vorbereiten
Red Hat Enterprise Linux lässt sich einfach als hochverfügbarer Cluster für das Data Center konfigurieren. Wir zeigen Ihnen, wie das funktioniert.
In Data Centern kommen immer mehr Unternehmens-kritische Applikationen zum Einsatz. Deswegen ist Hochverfügbarkeit für Linux ein absolutes Muss.
Red Hat Enterprise Linux (RHEL) 6 bietet das Add-On Red Hat High Availability. In Red Hat Enterprise Linux 7, das vermutlich Ende 2013 erscheint, wird Pacemaker die Standard-Lösung für Cluster-Systeme sein. Die Erweiterung Linux High Availability können Sie separat für RHEL kaufen. Unter den Distributionen CentOS oder Fedora ist die Komponente frei verfügbar.
Hardware-Voraussetzungen
Um Hochverfügbarkeit (HA) zu aktivieren, brauchen Sie mindestens zwei Server. Diese müssen außerdem mit einer direkten, nicht gerouteten, lokalen Netzwerkverbindung kommunizieren können. Im Idealfall trennt eine zweite Netzwerkverbindung den Cluster-Traffic vom normalen Netzwerkverkehr. Gemeinsam genutztes Storage im Cluster ermöglicht den einzelnen Servern Zugriff auf die Daten. Diese sind auch dann noch verfügbar, wenn einer der Host-Server ausfallen sollte. Je nach Anforderungen können Sie dafür Network File System (NFS), Network Attached Storage (NAS) oder Storage Area Network (SAN) in Betracht ziehen.
Linux-Cluster-Umgebungen benutzen in der Regel noch ein Abgrenzungs-Gerät (Fencing Device). Es handelt sich hier um ein Stück Hardware, das eine von den Servern nicht mehr länger erreichbare Maschine abschalten kann. Ein Fencing Device garantiert die Integrität der Dateisystem-Ressourcen. Sollten zwei Server gleichzeitig auf ein Dateisystem zugreifen, besteht die Gefahr einer Beschädigung. Remote Management Boards, wie zum Beispiel HP Integrated Lights-Out oder Dell Remote Access Controller, werden in diesem Zusammenhang gerne eingesetzt. Das gilt auch für externe Stromzufuhr-Einheiten wie den APC MasterSwitch oder den in Cisco Unified Computing System enthaltenen Schalter.
Software-Voraussetzungen
Um den Linux-Hochverfügbarkeits-Cluster in Betrieb zu nehmen, verwenden Sie am besten Conga. Das ist die Web-basierte Cluster-Management-Umgebung für Red Hat.
Bevor Sie mit der Konfiguration des Clusters beginnen, deaktivieren Sie den NetworkManager-Dienst. Das funktioniert mithilfe des Befehls service NetworkManager stop und chkconfig NetworkManager off.
Installieren Sie im Anschluss ricci. Diese Agent-Software muss auf allen Knoten im Cluster verfügbar sein. Dafür dienen die Befehle yum install -y ricci, service ricci start und chkconfig ricci on. Führen Sie diese Befehle auf allen Servern im Cluster aus und vergeben Sie ein Passwort für den Anwender ricci auf allen Maschinen.
Die Web-Schnittstelle LuCI erlaubt Ihnen die Verwaltung des Clusters. Lassen Sie LuCI wenn möglich nicht auf einem oder mehreren Knoten im Cluster laufen. Sie installieren und starten LuCI wie folgt: yum install luci und service luci start. Während LuCI das erste Mal startet, generiert es ein Schlüsselpaar (public/private). Der Name dieses Zertifikats ist /var/lib/luci/certs/host.pem und ist in der Konfigurations-Datei /var/lib/luci/etc/cacert.config referenziert. Möchten Sie diese Zertifikate durch welche von einer externen Zertifizierungsstelle ersetzen, kopieren Sie das Host-Zertifikat in das Verzeichnis /var/lib/luci/certs. Nach der Generierung dieser Zertifikate wird LuCI seine Dienste via HTTPS auf Port 8084 zur Verfügung stellen.
Abbildung 1: Geben Sie die Cluster-Eigenschaften im Fenster „Create New Cluster“ ein.
Um einen Cluster zu kreieren, verbinden Sie sich in einem Browser via https://<Ihr-Server>:8084 mit der LuCI-Management-Schnittstelle. Ignorieren Sie die Zertifikats-Warnung und melden Sie sich mit der root-Kennung an. Einen Cluster erzeugen Sie durch Klicks auf Manage Cluster und danach Create. Somit öffnen Sie den Dialog „Create New Cluster“ (Abbildung 1).
In diesem Fenster geben Sie Ihrem Cluster einen Namen. Fast alles ist möglich, solange es nicht länger als 15 Zeichen ist. Das Wort cluster ist aber ausgeschlossen. Danach spezifizieren Sie die Knoten, die zu diesem Cluster gehören und geben Ihr Passwort für ricci an. Es sollte auf allen Knoten dasselbe sein. Node Name ist der normale Name des Cluster-Knotens. Ist Ihr Cluster für die Benutzung eines dedizierten Netzwerks für Cluster-Traffic konfiguriert, verwenden Sie den Namen des Hosts dieses speziellen Netzwerks als den Ricci-Hostnamen. Per Standard sehen Sie nur eine Zeile für das Hinzufügen von Knoten. Möchten Sie einen weiteren konfigurieren, klicken Sie dafür auf Add Another Node. Auch für dieses Gerät geben Sie wieder Name und Ricci-Passwort an.
Wenn die Cluster-Knoten alle Updates für Cluster-Pakete herunterladen sollen, wählen Sie dafür Download Packages aus. Möchten Sie das nicht, lassen Sie einfach die Option Use Locally Installed Packages aktiviert. In beiden Fällen wird sich die benötigte Software so oder so installieren.
Die Option Reboot Nodes Before Joining Clusters ist nicht zwingend erforderlich. Allerdings stellen Sie so sicher, dass alle Nodes inklusive Cluster-Unterstützung booten.
Abbildung 2: So sieht die Sache aus, sobald Sie den Cluster erfolgreich initiiert haben.
Wollen Sie ein Cluster-fähiges Dateisystem einsetzen, wählen Sie Enable Shared Storage Support aus. Somit installieren sich die notwendigen Pakete. Red Hat GFS wäre zum Beispiel so ein Dateisystem.
Nach der Eingabe aller Parameter klicken Sie auf Create Cluster. Somit initiieren Sie die Cluster-Bildung. Das Ganze dauert eine gewisse Zeit. Geht alles gut, ist der Cluster erstellt und alle Knoten sind korrekt angeschlossen (Abbildung 2).