Anzeige

Was ist eine Shared Nothing-Architektur?

Leserfrage: Wie selbstverständlich wird seid kurzen von Shared-Nothing-Architekturen gesprochen. Ist mir bisher nicht untergekommen. Was soll man darunter verstehen? Müssen wir uns damit beschäftigen oder können wir das schnell auf dem Buzzword-Friedhof verschwinden lassen? 😉

Antwort Doc Storage:

Unter Shared-Nothing versteht man eine Architektur, die aus mehreren separaten Knoten besteht, welche gewisse Ressourcen nicht gemeinsam nutzen, vor allem Speicherplatz und Arbeitsspeicher. Diese Architektur kann um weitere Ressourcen wie zum Beispiel Datenbanken erweitert werden, die ebenfalls nicht gemeinsam genutzt werden.

Die Nutzung zahlreicher eigenständiger Knoten anstelle einer einzigen bestimmten Ressource bietet einige Vorteile. Einfache Skalierung, unterbrechungsfreie Upgrades, Beseitigung einzelner Fehlermöglichkeiten und Selbstheilungsfunktionen.

Die Skalierung wird wesentlich einfacher, wenn beispielsweise Festplatten nicht gemeinsam genutzt werden. Die Skalierung einer einzelnen freigegebenen Platte, um mehr Speicherplatz zu erhalten, kann zu Problemen führen, wenn der Vorgang nicht komplett abgeschlossen werden kann, da alle anderen Komponenten des Systems weiterhin auf dieses Volumen zugreifen müssen und wollen.

Existieren im Gegensatz dazu mehrere Knoten, die den Speicher nicht gemeinsam nutzen, wird die Skalierung des Speichers auf einer oder allen Komponenten mit weniger möglichen Problemen wesentlich einfacher. Sollte die Skalierung für eine der Komponenten fehlschlagen, arbeiten die anderen weiterhin normal.

Shared-Nothing-Architektur für unterbrechungsfreie Upgrades

Ähnlich wie bei den Skalierungsvorteilen kann eine Shared-Nothing-Architektur verwendet werden, um unterbrechungsfreie Upgrades für die laufenden Dienste durchzuführen. Anstatt einer gewissen Ausfallzeit durch die Aktualisierung der Infrastruktur mit gemeinsam genutzten Ressourcen, lässt sich jeweils nur ein Knoten separat aktualisieren. Die Redundanz in anderen Knoten ist weiterhin verfügbar, so dass nicht das gesamte System für ein Upgrade heruntergefahren werden muss.

Soll beispielsweise eine Anwendung aktualisiert werden, kann dies auf jedem Knoten separat ausgeführt geschehen, während die Anwendung auf den anderen Knoten weiterhin produktiv läuft. Diese Knoten nutzen gemeinsam weder Speicherplatz noch Hauptspeicher. Redundante Kopien befinden sich stattdessen auf separaten Datenträgern der Anwendung. Diese lassen sich jeweils einzelnen nacheinander aktualisieren, ohne das gesamte System herunterfahren zu müssen. Sollte eines der Upgrades fehlschlagen, muss nur ein einzelner Knoten und nicht das gesamte System heruntergefahren werden. Hierdurch sollen sich Upgrades wesentlich stressfreier durchführen lassen.

Bei gemeinsam genutzten Systemen kann ein einzelner Fehler eine Site oder Anwendung vollständig ausschalten. Wie schon vorher erwähnt, kann die Möglichkeit, separate Systeme auf redundanten Knoten mit Redundanz zu betreiben, die Produktion vereinfachen und zur gleichen Zeit die Katastrophe eines einzelnen Fehlers vermeiden, der zu ungeplanten Ausfällen führt.

Der Ausfall einer gemeinsam genutzten Festplatte kann sich in Standardsystemen katastrophal auswirken. Da es sich um einen einzelnen Fehlerpunkt handelt, kann in diesem Moment keiner der anderen Dienste ordnungsgemäß ausgeführt werden, bis die ausgefallene Festplatte ausgetauscht und wiederhergestellt ist. Wenn kein aktuelles Backup vorhanden ist, kann es darüber hinaus zu einem Datenverlust kommen, der klein oder aber sehr fatal sein kann.

Shared-Nothing als Verteidigungslinie gegen unerwünschte Ausfallzeiten

In der Tat ist es viel besser, Redundanz durch separate Knoten herzustellen und sicherzustellen, dass die anderen Komponenten nicht aufgrund eines Festplattenfehlers auf einem einzelnen Knoten ausfallen.

Zusammen mit den genannten Vorteilen ermöglicht die Shared-Nothing-Architektur eine gewisse Selbstheilung, die eine weitere Verteidigungslinie gegen unerwünschte Ausfallzeiten darstellen kann. Werden beispielsweise redundante Kopien von Daten oder Datenbanken auf verschiedenen Datenträgern gehalten, kann eine Platte, die Daten verliert, diese wiederherstellen, wenn die Redundanzen synchronisiert werden.

Bei einzelnen gemeinsam genutzten Platten würden Daten verloren gehen und es unvermeidlich zu Ausfallzeiten kommen. Eine Shared-Nothing-Architektur kann möglicherweise vor einer großen Anzahl von Ausfällen bewahren, die auftreten könnten, wenn die genannten Komponenten gemeinsam genutzt werden. Obwohl die ursprüngliche Idee vor mehr als drei Jahrzehnten eingeführt wurde, macht die heutige Technologie diese Architektur zu einer viel praktikableren Option.

Gruß
Doc Storage

Anzeige