Für den SysEleven Stack haben wir ein neues Feature eingerichtet, mit dem Nutzer die Performance optimieren können: Ab sofort stellt unsere OpenStack Cloud neben verteiltem (distributed) auch Local SSD Storage bereit. Mit ihm lassen sich kleine, sequentielle Schreibvorgänge performanter gestalten, als mit Distributed Storage. Wir erklären, wie sich die beiden Speicherformen voneinander unterscheiden, für welche Szenarios sich das neue Feature eignet und wie Du Local SSD Storage mit hoher Verfügbarkeit einrichtest.
Local SSD Storage vs. Distributed Storage
Wenn man es genau nimmt, gehen wir mit Local SSD Storage back to the roots. Es bedeutet nichts weniger, als dass sich die Speichereinheit im selben Server befindet, auf dem auch die virtuelle Maschine liegt – wie wir es auch von einem gewöhnlichen Computer kennen. Wegen der lokalen Beziehung zwischen beiden Einheiten sprechen wir von Local SSD Storage.
Local SSD Storage ist als Speichermöglichkeit grundlegend simpel aufgebaut; eine virtuelle Maschine greift in diesem Modell direkt und in minimaler Zeit auf die Speichereinheit zu.
Distributed Storage dagegen löst diese direkte Verbindung auf: Die virtuelle Instanz greift bei diesem Modell auf ein Netzwerk an Festplatten zurück, die innerhalb des Stacks verfügbar sind. Wir realisieren diese Speicherform mit Quobyte, einer OpenStack-Komponente für Software-defined Storage (SDS). Verteilter Speicher hat entscheidende Vorteile:
- Die Verfügbarkeit ist hoch, da Dateien im gesamten RZ redundant verteilt und gespiegelt sind. Replikationsprozesse erfolgen über das SDS selbst.
- Schreibprozesse finden parallel statt: Das SDS teilt Dateien in Fragmente auf und verteilt diese auf mehreren Storage-Nodes. Die Schreiblast liegt dadurch nicht auf einer einzigen Platte. Besonders bei großen Dateien macht sich die Performance bemerkbar.
- Die Speicherkapazitäten sind beliebig skalierbar, denn das System lässt sich einfach um weitere Storage-Nodes erweitern.
Der Nachteil: Dateien müssen auf dem Weg von A nach B durch das Netzwerk, das führt zu Latenzen. Diesen Nachteil hat Local SSD Storage nicht, denn die Verbindung ist hier direkt.
Bei Distributed Storage greifen die virtuellen Maschinen auf ein verteiltes, redundantes System von Festplatten zu. Anfragen finden parallel statt, wodurch z.B. große Dateien aufgeteilt und schneller festgehalten werden können. Allerdings entstehen durch den Verteilungsprozess im Netzwerk Latenzen.
Mit Local SSD Storage das Setup optimieren
Es gibt Szenarien, in denen viele kleine Anfragen nacheinander bearbeitet werden müssen. Das ist zum Beispiel bei Warenkörben in Shopsystemen der Fall: Grob betrachtet bestätigen wir erst den Warenkorb, dann die Adressdaten, dann die Zahlungsinformationen, dann die gesamte Bestellung. Diese Datenbankanfragen müssen hintereinander und nicht parallel erfolgen. Hier kann bei verteiltem Storage ein Overhead entstehen, da sich Latenzen ansammeln und schließlich den Prozess verlangsamen – wenn nicht sogar ganz lahmlegen.
Hier spielt sich der Vorteil des lokalen Speichers aus: Die Daten werden auf die SSD des Hypervisors geschrieben. Dadurch entfallen Latenzen durch das Netzwerk und Daten erreichen schneller ihr Ziel.
Grundlegend bringt Local SSD Storage eine Verbesserung der Performance bei Workloads, die viele kleine Daten nacheinander verarbeiten. Es bietet sich also an, für die entsprechenden Bereiche des Setups lokalen statt verteilten Speicher einzusetzen.
Local SSD Storage hochverfügbar machen
Wenn Du Local SSD Storage einsetzt, erwartest Du eine deutliche Leistungssteigerung. Dabei solltest Du jedoch zwei wichtige Aspekte bei lokalem Storage berücksichtigen:
- Verfügbarkeit und Erreichbarkeit: Die Dateien sind zwar auf zwei Festplatten innerhalb eines Servers gespiegelt, aber nicht im ganzen Rechenzentrum verteilt und repliziert wie bei unserem verteilten Storage. Das bedeutet: Fällt zum Beispiel eine Server-Komponente wie die CPU aus, ist die gesamte Instanz samt lokalem Speicher nicht mehr erreichbar.
- Begrenzte Kapazitäten: Die Instanz kann nur auf die Speicherkapazitäten lokal zugreifen, die im Server verfügbar sind.
Wie bereits erwähnt ist Local SSD Storage einfach aufgebaut: Es gibt für eine Instanz nur einen Server, der einen logischen Speicherverbund bietet mit replizierten SSDs innerhalb des Servers. Um die Verfügbarkeit zu erhöhen, erstellst Du ein redundantes Setup solcher Instanzen und richtest hierfür Replikationsprozesse ein. Exemplarisch sieht das so aus:
Um solche Setups zu bauen, wirst Du Dich mit dem Aufbau Deiner Applikation auseinandersetzen müssen und wissen, wie Du Datenbanken einrichtest und replizierst. Datenbanken sind jedoch nur ein Beispiel, in denen Du Local SSD Storage sinnvoll einsetzen kannst. Ob die Speicherform bei Deinem Setup mehr Performance bringt, hängt von den Anforderungen Deiner Applikation ab.
Setups mit Local Storage sind anspruchsvoller im Betrieb als solche mit Dedicated Storage. Aber: Wenn Du den Aufwand auf Dich nimmst, wirst Du mit einer verbesserten Performance belohnt.
In unserer Dokumentation haben wir ein Tutorial für Dich vorbereitet, wie Du Local SSD Storage auf dem SysEleven Stack nutzen kannst.
SysEleven Stack kostenlos testen
Setz Dein Projekt mit einer flexiblen OpenStack Cloud um: Sprich uns an, um den SysEleven Stack einen Monat lang kostenlos zu testen. Hier geht’s zum SysEleven Stack.