linux-rhel-centos-fedora ha disaster-recovery dr multi-site rhel qnetd

RHEL HA: Disaster Recovery & Multi-Site (Artikel 117)

Konzepte für standortübergreifende Hochverfügbarkeit unter RHEL. Erfahren Sie alles über Stretch-Cluster, Quorum-Devices und Strategien für die geographische Redundanz.

# RHEL HA: Multi-Site Cluster und Disaster Recovery

TL;DR / Management Summary Ein lokaler HA-Cluster schützt vor dem Ausfall eines Servers. Aber was passiert, wenn das gesamte Rechenzentrum (RZ) abbrennt? Disaster Recovery (DR) und Multi-Site (Stretch) Cluster dehnen die Hochverfügbarkeit über zwei oder mehr Standorte aus. In der RHEL-Welt nutzen wir dafür den Corosync QNetD für das Quorum und Daten-Replikations-Technologien, um den RPO (Data Loss) und RTO (Downtime) so gering wie möglich zu halten.


# 1. Einführung & Architektur

Das Quorum-Problem über Standorte hinweg.

In einem Stretch-Cluster (Standort A und B) ist die größte Gefahr der Split-Brain. Wenn die Leitung zwischen den RZs reißt, denken beide Standorte, der jeweils andere sei tot, und versuchen die Dienste zu übernehmen.

# Die Architektur-Lösung (Mermaid)

graph TD
    subgraph "Site A (Primary DC)"
        Node1[RHEL Node 1]
        Node2[RHEL Node 2]
    end
    subgraph "Site B (Secondary DC)"
        Node3[RHEL Node 3]
        Node4[RHEL Node 4]
    end
    subgraph "Site C (Witness / Cloud)"
        QNetD[Corosync QNetD]
    end
    Node1 <-->|Data Sync| Node3
    Node1 --- QNetD
    Node3 --- QNetD
  • QNetD (Quorum Device): Ein kleiner Dienst an einem dritten Standort (Witness), der entscheidet, welcher Standort überleben darf, wenn die Verbindung zwischen A und B unterbrochen ist.

# 2. Quorum Device Setup

Der Schiedsrichter.

# Schritt 1: QNetD Server (Site C)

sudo dnf install corosync-qnetd
sudo systemctl enable --now corosync-qnetd

# Schritt 2: Cluster-Nodes konfigurieren

sudo dnf install corosync-qdevice
sudo pcs host auth site-c-witness -u hacluster
sudo pcs cluster qdevice add net --peer-host=site-c-witness

# 3. Datenreplikation: DRBD

Die Festplatte über die Leitung spiegeln.

Wenn kein gemeinsames SAN über beide Standorte existiert, nutzen wir DRBD (Distributed Replicated Block Device) – das “Netzwerk-RAID 1”.

# Konfiguration (/etc/drbd.d/data.res)

resource data {
  on node1 { device /dev/drbd0; disk /dev/vg_data/lv_data; address 10.0.1.1:7788; }
  on node3 { device /dev/drbd0; disk /dev/vg_data/lv_data; address 10.0.2.1:7788; }
}

# 4. Day-2 Operations: Failover-Strategien

Manuell oder Automatisch?

# Automatisches Failover (Stretch Cluster)

Innerhalb einer Latenz von < 5ms kann Pacemaker Ressourcen automatisch zwischen Standorten schwenken.

  • Vorteil: Minimale Downtime (RTO).
  • Nachteil: Gefahr von Flapping bei instabilen Leitungen.

# Manuelles DR (Primary/Secondary)

Bei großen Entfernungen (> 50km) ist die Replikation oft asynchron. Hier triggert der Admin das Failover manuell über Satellite oder Ansible.


# 5. Troubleshooting & “War Stories”

Wenn die Welt untergeht.

# Story 1: “Der falsche Zeuge”

Symptom: Bei einem Leitungsabbruch zwischen Site A und B schalten sich beide Standorte ab, obwohl Site C (QNetD) erreichbar ist. Ursache: Fehlkonfiguration der expected_votes. Der Cluster erkennt den Zeugen nicht als stimmberechtigtes Mitglied. Lösung: Prüfen Sie mit corosync-quorumtool -s, ob das QDevice aktiv ist und ein “Vote” abgibt.

# Story 2: “Replication Lag im Ernstfall”

Symptom: Nach einem Failover zu Site B sind die Daten korrupt oder uralt. Ursache: Asynchrone Replikation. Die Leitung war zu langsam für die Schreiblast, und der Puffer auf Site A wurde nie geleert, bevor der Standort ausfiel. Lösung: Überwachen Sie den Replikations-Status (z.B. drbdadm status). Setzen Sie Schwellwerte für den maximalen Datenrückstand.


# 6. Fazit & Empfehlung

  • Drittstandort: Ein Multi-Site Cluster ohne dritten Standort für das Quorum ist extrem riskant. Eine kleine VM in der Cloud oder einem Büro reicht als Witness.
  • Netzwerk: Latenz ist wichtiger als Bandbreite. Nutzen Sie dedizierte L2-Verbindungen (Dark Fiber) wenn möglich.
  • Test: Simulieren Sie den Totalausfall eines Standorts (“Pull the Plug”) mindestens einmal im Jahr.

# Anhang: Cheatsheet

Aufgabe Befehl
Quorum Status corosync-quorumtool -s
QDevice Status pcs quorum device status
DRBD Status drbdadm status
DRBD Sync erzwingen drbdadm connect <resource>
Cluster manuell teilen pcs cluster standby --all
Standort-Priorität pcs constraint location <res> prefers <node>=100
Site Recovery pcs resource cleanup
Split-Brain Recovery drbdadm connect --discard-my-data <resource>