Hochverfügbarkeit-HA (High Availability)

Ein System ist hochverfügbar, wenn beim Ausfall einzelnen Komponenten immer noch erreichbar und funktionsfähig ist. Die Systeme bestehen von mindestens 2 Servern, besser ist es, wenn die Systeme aus 3 oder noch mehr Servern bestehen. Heutzutage ist Hochverfügbarkeit ein wichtiger Bestandteil des Systemdesigns.

Die Hochverfügbarkeit kann man unter Linux mit verschieden Diensten realisieren, wie z.B.

  • DRBD, Distributed Replicated Block Device. Das ist eine Technik wie RAID1 (Spiegelung) über Netzwerk.
  • GlusterFS, ist ein verteiltes Dateisystem, das Dateisysteme von mehreren Servern als ein Dateisystem abbildet.
  • Ceph, ist eine Speicherlösung, die mit dem Ceph-Filesystem (CephFS) über ein eigenes Dateisystem verfügt. Mit Ceph ist es möglich, Daten auf verschiedenen Komponenten im eigenen Netzwerk verteilt abzulegen. Die Daten werden mehrfach in physisch unterschiedlichen Speicherbereichen gesichert.

Die Dienste können noch zusätzlich von Corosync, Pacemaker oder Heartbeat unterstützt werden.
Corosync organisiert die Kommunikation der Clusterknoten untereinander. Pacemaker ist ein Ressourcenmanager-Tool, das auf Computerclustern für die HA-Architektur verwendet wird. Pacemaker wird im Verbund mit Corosync oder Heartbeat eingesetzt.
Ein Heartbeat (übersetzt „Herzschlag“) ist eine Netzwerkverbindung zwischen zwei (oder mehreren) Rechnern in einem Cluster, um sich gegenseitig darüber zu benachrichtigen, dass sie betriebsbereit sind oder auch nicht.

Ich werde in darunter stehenden Artikel verschieden Lösungen vorstellen, auch in Verbindung mit virtuellen Maschinen (VMs). Wenn wir in einem Unternehmen Hochverfügbarkeit einsetzen, werden selbstverständlich auch die Kosten steigen, in unserem Fall nicht unbedingt für die eingesetzte Software, aber für die Hardware.
Bei mittelständische Firmen können wir ein System einsetzen, der nicht so komplex ist, aber auch nur die Hochverfügbarkeit von 99,0 % erreicht. Bei Firmen, die die Hochverfügbarkeit von 99,9999 % erreichen möchten, brauchen wir Systeme mit mindestens 3 Knoten, die voll automatisch gesteuert werden, ich meine hier, 3 physische Server mit entsprechende Storage Anbindung.

Die eingesetzte Hardware kann einfache Standard-Hardware sein, z.B. ein gewöhnlicher Server mit Festplatten RAID. Wie auf dem Bild dargestellt ist, wird z.B. DRBD noch in der alten Version eingesetzt. Auf einer Node (Primary) wird gearbeitet und auf andere Node (Secondary) wird repliziert. Sollte die Primary Node ausfallen, können wir auf den Secondary auf Primary umswichen.

Wenn wir 3 Node-System haben, können wir nach Bedarf die VMs auf andere Hardware im laufenden Betrieb verschieben. Bei Ausfall der ganzen Note werde automatisch die VMs auf anderen Nodes verschoben. Die Benutzer bemerken es nicht.