Damit zwei Maschinen in einem Cluster zusammenarbeiten und einen hoch verfügbaren Service bieten, sind mehrere Schlüsselkomponenten und Mechanismen erforderlich:
1. Shared Speicher oder Datenreplikation:
* Shared Storage: Beide Maschinen benötigen Zugriff auf denselben Speicherort (z. B. San, NAS, Shared Dateisystem). Auf diese Weise kann der Dienst ohne Datenverlust nahtlos an den anderen Computer versagt, da die Daten leicht verfügbar sind.
* Datenreplikation: Wenn der gemeinsame Speicher nicht machbar oder wünschenswert ist, sorgt ein Datenreplikationsmechanismus (z. B. DRBD, CEPH, verteilte Datenbanken mit Replikation) für die Datenkonsistenz zwischen den beiden Maschinen. Eine Maschine fungiert als primär, während die andere eine synchronisierte Kopie hält.
2. Clustering -Software/Framework:
* Diese Software verwaltet den Failover -Prozess, überwacht die Gesundheit beider Maschinen und stellt sicher, dass zu einem bestimmten Zeitpunkt nur eine Maschine den Service bedient. Beispiele sind:
* Schrittmacher/Corosync: Eine beliebte Open-Source-Clustering-Lösung.
* KeepAlived: Häufig für virtuelles IP -Management (VIP) verwendet.
* Herzschlag: Eine weitere Open-Source-Lösung für hohe Verfügbarkeit.
* Proprietäre Lösungen: Viele Anbieter bieten ihre eigene Clustering -Software an, die auf ihre Hardware- und Betriebssysteme zugeschnitten ist.
3. Virtuelle IP -Adresse (VIP):
* Eine einzelne IP -Adresse wird dem Dienst zugewiesen, der von der Clustering -Software verwaltet wird. Diese IP -Adresse "schwimmt" zwischen den beiden Maschinen. Wenn die primäre Maschine fehlschlägt, verschiebt die Clustering -Software den VIP in die sekundäre Maschine, sodass der Dienst sofort zugänglich ist.
4. Gesundheitsüberwachung:
* Die Clustering -Software überwacht kontinuierlich die Gesundheit beider Maschinen (CPU -Nutzung, Speicher, Netzwerkkonnektivität, Service -Status). Wenn die primäre Maschine die Gesundheitsprüfung ausfällt, wird der Failover -Prozess eingeleitet.
5. Failover -Mechanismus:
* Die Clustering -Software definiert und führt den Failover -Prozess aus. Dies beinhaltet:
* Erkennen eines Ausfalls der primären Maschine.
* Die Dienstleistung auf der fehlgeschlagenen Maschine (wenn möglich) anmutig abschätzen.
* Starten Sie den Service auf der Sekundärmaschine.
* Schalten Sie den VIP auf die Sekundärmaschine.
6. Netzwerkkonfiguration:
* Beide Maschinen müssen eine zuverlässige Netzwerkkonnektivität haben. Ein redundantes Netzwerk -Setup (z. B. mehrere Netzwerkschnittstellen, gebundene Schnittstellen) erhöht die Robustheit des Systems.
7. Konsistente Konfiguration:
* Beide Maschinen sollten eine identische Konfiguration für den Dienst haben, einschließlich Softwareversionen, Konfigurationsdateien und erforderlichen Abhängigkeiten. Konfigurationsmanagement -Tools (z. B. Ansible, Puppet, Chef) können dazu beitragen, die Konsistenz aufrechtzuerhalten.
8. Anwendungsbewusstsein:
* Die Anwendung selbst sollte sich idealerweise der Clustering -Umgebung bewusst sein und in der Lage sein, Failover anmutig zu bewältigen. Dies beinhaltet häufig Merkmale wie Sitzungsdauer oder verteilte Verriegelungsmechanismen.
Im Wesentlichen stützt sich ein hoch verfügbares Clustering auf der Redundanz auf mehreren Ebenen - Daten, Netzwerk und dem Dienst selbst -, das von intelligenter Software verwaltet wird, die ein nahtloses Failover und minimale Ausfallzeiten gewährleistet.