Cluster
Ein Cluster ist eine Gruppe von Computern, die über Hochgeschwindigkeitskommunikationskanäle verbunden sind. Tatsächlich handelt es sich bei einer solchen Gruppe um eine einheitliche Hardwareressource mit einer bestimmten Funktionalität:
- Bereitstellung von Rechenleistung;
- Lastverteilung;
- Automatische Skalierung;
- Hohe Verfügbarkeit.
Computing-Cluster
Dabei wird die hohe Leistungsfähigkeit von Cluster-Prozessoren bei der Arbeit mit Fließkomma-Zahlenwerten als ausschlaggebende Merkmale angesehen. Darüber hinaus ist die geringe Latenz des kombinierenden Netzwerks ausschlaggebend. I/O-Operationen sind für die Bestimmung des Merkmals von geringerer Bedeutung, da die schnelle Ausführungsgeschwindigkeit dieser Prozesse eher für Datenbanken charakteristisch ist.
Rechencluster sind in der Lage, Berechnungen in viele parallele Zweige aufzuteilen und Daten in alle Richtungen gleichzeitig zu analysieren. Der Datenaustausch in einer solchen Struktur ist durch ein Verbindungsnetzwerk zwischen den Niederlassungen möglich.
Lastausgleichscluster
Diese Art von Clustern wird auch als Verteilungscluster bezeichnet. Das Funktionsprinzip besteht in der Arbeit von Eingabeknoten, die Anforderungen von Rechenknoten auswählen. In diesem Fall kann es mehr als einen Knoten als Eingabepunkte für Anfragen geben.
Anfragen kommen an einem oder mehreren Knoten an, die als Eingabepunkte fungieren. Die Knoten verteilen die Anfragen dann an die Rechenknoten, die sie direkt verarbeiten.
Hochverfügbarkeitscluster
Cluster dieser Art werden erstellt, um eine hohe Verfügbarkeit von Diensten bereitzustellen. Ein solcher Cluster enthält eine redundante Anzahl von Knoten (mindestens zwei), die als Sicherungskette fungieren. Wenn ein oder mehrere Server ausfallen, kann der Cluster den Dienst weiterhin bereitstellen.
Cluster dieser Art werden nach drei Hauptarchetypen aufgebaut:
- Modulare Redundanz. Wird in Fällen aktiviert, in denen Systemausfallzeiten nicht akzeptabel sind: Bei Auslösung verarbeitet jeder Knoten eine einzelne Anforderung oder einzelne Fragmente davon. Die Ergebnisse der Arbeit einzelner Knoten sind identisch mit den Ergebnissen anderer Knoten oder ändern die Art der nachfolgenden Arbeit nicht. Daher sollte es keinen Unterschied machen, welcher Knoten ausgewählt wird.
- Aktive Reserve. Jeder Knoten im Cluster bearbeitet Anfragen, aber wenn einer oder eine ganze Gruppe von Knoten ausfällt, wird die Last auf die Worker-Knoten umverteilt.
- Passive Reserve. Einige der Knoten befinden sich in einem „Schlafzustand“, führen keine Anforderungen aus und warten auf einen Vorfall, wenn aktive Knoten einen Fehler erhalten, und beginnen erst dann mit der Verarbeitung der Anforderungen.
Datenspeichercluster
Diese Cluster sind auf die Bereitstellung zuverlässiger und skalierbarer Datenspeicherung spezialisiert. Sie werden häufig zum Erstellen verteilter Dateisysteme und Seed-Datenbanken verwendet.
Beispiele sind das Hadoop Distributed File System (HDFS) und das Slustermap-System von Cassandra.
Hauptmerkmale: hohe Datenverfügbarkeit, Gewährleistung der Datenintegrität, Lastausgleich für den Datenzugriff.
Container-Cluster
Containerzentrierte Cluster, wie z Kubernetes, haben aufgrund ihrer Fähigkeit, Containeranwendungen in einer Vielzahl von Umgebungen einfach bereitzustellen, zu skalieren und zu verwalten, eine breite Akzeptanz gefunden.
Architektur und Clustertypen
- Symmetric Multi-Processing (SMP): Wird verwendet, um mehrere Prozessoren zu einem einzigen System mit gemeinsamem Speicher zu verbinden. Dies verbessert die Leistung und beschleunigt die Rechenleistung, da mehrere Prozessoren parallel an Aufgaben arbeiten können.
- Massively Parallel Processing (MPP): Ein System, bei dem mehrere Prozessoren separate Aufgaben parallel ohne gemeinsamen Speicher ausführen, wodurch Systeme auf eine sehr große Anzahl von Knoten skaliert werden können.
- Grid Computing: Kombination der Ressourcen mehrerer Cluster, die sich möglicherweise an unterschiedlichen geografischen Standorten befinden, zu einer einzigen Einheit, um groß angelegte Probleme zu lösen.
Clusterüberwachung und -verwaltung
Für die Clusterverwaltung sind spezielle Tools erforderlich, um die Leistung zu überwachen, Probleme zu diagnostizieren und die Ressourcenverwaltung zu automatisieren.
Beispiele für Werkzeuge: Kubernetes für Container-Orchestrierung, Apache Mesos, Prometheus zur Überwachung.
Clustersicherheit
Clustersicherheit ist besonders in Produktionsumgebungen von entscheidender Bedeutung.
Zu den gängigen Maßnahmen gehören Benutzerauthentifizierung und -autorisierung, Verschlüsselung von Daten während der Übertragung und auf Festplatten sowie die Kontrolle des Ressourcenzugriffs.
Automatische Wiederherstellung und Fehlertoleranz
Moderne Cluster verfügen über automatische Wiederherstellungsmechanismen. Beispielsweise Kubernetes kann ausgefallene Komponenten von Containerdiensten automatisch neu starten.
Im Falle der Fehlertoleranz können Cluster spezielle Protokolle wie Paxos oder Raft verwenden, um einen Konsens herzustellen und den Systemzustand aufrechtzuerhalten, selbst wenn ein oder mehrere Knoten ausfallen.