Linux-Cluster mit Open-Source-Tools

DRBD: RAID1 über das Netzwerk

Hochverfügbarkeit innerhalb eines Servers zu realisieren, ist inzwischen kein Hexenwerk mehr. Etwas komplizierter wird es, wenn man zwei Server spiegeln will. Doch dank DRBD und heartbeat lässt sich ein Linux-Cluster kostengünstig realisieren.

Redundante Systeme und Ressourcen bilden heute in der Regel den Hauptbestandteil einer ausfallsicheren Umgebung (HA - High-Availability). Ziel ist es hierbei, den so genannten „Single Point of Failure“ (SPoF), also die Ressource im System, die aufgrund der Wahrscheinlichkeit als erstes Ausfallen wird, durch mehrfach vorhandene Ressourcen zur reduzieren. Innerhalb dieser Systemkette verursacht ein Fehler im schwächsten Glied ein Ausfall des Gesamtsystems.

Erfahrungswerte aus der Praxis zeigen, dass hier die Hardware ein Grossteil dieses Risikos trägt. Software redundant zu halten, ist kaum praktikabel und verursacht einen zu hohen Administrationsaufwand. Ein Single-System in der IT besitzt daher, um als ausfallsicher gegen einen SpoF zu gelten, wenigstens:

  • zwei Netzteile

  • zwei Ethernet- und/oder zwei HBAs (FC, IB, FICON, ..)

  • zwei Prozessoren und

  • ein RAID-Speichersystem.

Eine größere Ausfallsicherheit erhält man durch den Einsatz von zwei Komplettsystemen, wie beispielsweise beim von uns getesteten Hochverfügbarkeits-Cluster. Dabei wird das Master-System auf ein sekundäres System gespiegelt und per Heartbeat überwacht. Bei Ausfall des Masters übernimmt das sekundäre System dessen Funktionen.

Wichtig ist allerdings, dass das sekundäre System mit denselben Daten agieren kann wie der Master. Hier kann man entweder ein teures Shared-Storage-System einsetzen oder die Daten vom Master zum Slave replizieren. Bei einem reinen Datenbank-Server ist das noch relativ einfach, denn die meisten Datenbanken verfügen über einen eingebauten Mechanismus zur Replikation, wie beispielsweise der Artikel MySQL verteilen und sichern zeigt.

Deutlich aufwändiger wird die ganze Sache jedoch, wenn auch Dateien repliziert werden sollen, etwa Konfigurationen oder Web-Inhalte. Hier kann man sich händisch per rsync ein Verfahren zusammenstricken oder gleich auf DRBD setzen und eine für die Anwendung transparente Datenreplikation implementieren.