Scale-out Storage
Scale-out-Storage ist eine Network-Attached-Storage (NAS)-Architektur, bei der die Gesamtmenge des Festplattenspeichers durch das Hinzufügen von Geräten in verbundenen Arrays mit eigenen Ressourcen erweitert werden kann. Man bezeichnet dies auch als horizontale Skalierbarkeit der Storage-Umgebung.
In einem Scale-out-System kann neue Hardware je nach Bedarf hinzugefügt und konfiguriert werden. Wenn ein Scale-out-System seine Speichergrenze erreicht, kann ein weiteres Array hinzugefügt werden, um die Systemkapazität zu erweitern. Scale-out-Storage kann den über Arrays hinzugefügten zusätzlichen Speicher nutzen und die hinzugefügten Geräte auch dazu verwenden, die Netzwerkspeicherkapazität zu erhöhen, die Leistung zu steigern und den Bedarf an zusätzlichem Speicher zu decken.
Bevor Scale-out-Storage populär wurde, kauften Unternehmen oft Speicher-Arrays, die viel größer waren als nötig, um sicherzustellen, dass genügend Speicherplatz für zukünftige Erweiterungen zur Verfügung stand. Wenn diese Erweiterung nie stattfand oder die Anforderungen geringer als erwartet ausfielen, war ein Großteil des ursprünglich gekauften Speicherplatzes vergeudet. Bei einer Scale-out-Architektur kann die Anfangsinvestition bescheidener ausfallen, da der langfristige Bedarf nicht vorhergesehen werden muss. Wenn die Speicheranforderungen über die Erwartungen hinaus ansteigen, können neue Arrays nach Bedarf hinzugefügt werden, und zwar im Wesentlichen ohne Begrenzung.
Vertikale vs. horizontale Skalierbarkeit
Skalierbarkeit ist die Fähigkeit eines Systems, auch dann noch ordnungsgemäß zu funktionieren, wenn es in seiner Größe oder seinem Volumen verändert wurde, um den Anforderungen eines Benutzers gerecht zu werden. In manchen Kontexten bezieht sich Skalierbarkeit auf die Fähigkeit, je nach Bedarf höhere oder niedrigere Anforderungen zu erfüllen. In einem Speicherkontext bezieht sich die Skalierung jedoch in der Regel auf die Anpassung an die Nachfrage nach einer höheren Kapazität. Um dies zu erreichen, gibt es zwei Hauptansätze.
Der ältere Scale-up-Ansatz ist ein Beispiel für vertikale Skalierbarkeit. Vertikale Skalierbarkeit ist die Fähigkeit, die Kapazität vorhandener Hardware oder Software durch Hinzufügen von Ressourcen zu einem physischen System zu erhöhen – zum Beispiel durch Hinzufügen von Rechenleistung zu einem Server, um ihn schneller zu machen. Im Falle von Speichersystemen bedeutet dies, dass einem bestehenden System weitere Geräte, beispielsweise Festplatten, hinzugefügt werden können, wenn mehr Kapazität erforderlich ist.
Horizontale Skalierbarkeit (Scale-out) hingegen ist die Fähigkeit, mehrere Einheiten so zu verbinden, dass sie als eine einzige logische Einheit arbeiten. Im Fall von Scale-out-Storage kann es viele geografisch getrennte Knoten geben.
Die Grenzen von Scale-up-Storage
Herkömmliches NAS wird manchmal auch als Scale-up-NAS bezeichnet, da die Speicherkapazität nur durch Hinzufügen zusätzlicher Systeme zu einer bestehenden Architektur erweitert werden kann. Ein Scale-up-System besteht aus einem oder zwei Controllern, den so genannten NAS-Köpfen, die Zugriff auf eine festgelegte Menge an CPU und Memorysowie eine bestimmte Anzahl von Laufwerkssteckplätzen haben. Die Geräte in Scale-Up-NAS teilen sich die Systemressourcen, und die Steuerungsfunktion wächst nicht mit der Speicherkapazität, was bedeutet, dass die Leistung mit zunehmender Speicherkapazität tendenziell abnimmt. Sobald das NAS-System seine Grenzen erreicht hat, können Kapazität und Leistung nur noch durch ein neues, separat verwaltetes System erhöht werden.
Scale-out-Speicherarchitektur
Ein Scale-out-System kann so viele Cluster umfassen, wie es die Anforderungen erfordern.
Jedes Gerät (Knoten) verfügt über Speicherkapazität, die in Form von mehreren Laufwerksspindeln vorhanden sein kann, sowie über eigene Verarbeitungsleistung und I/O-Bandbreite (Input/Output). Die Einbeziehung dieser Ressourcen bedeutet, dass mit zunehmender Speicherkapazität auch die Leistung steigt.
Scale-out NAS wächst durch Hinzufügen von Cluster-Knoten. Dabei handelt es sich häufig um x86-Server mit einem speziellen Betriebssystem und Speicher, die über ein externes Netzwerk verbunden sind. Die Knoten können zur Kommunikation untereinander über eine Hochgeschwindigkeits-Backplane oder ein Netzwerk verbunden sein. Die Benutzer verwalten das Cluster als ein einziges System und verwalten die Daten über einen globalen Namensraum oder ein verteiltes Dateisystem (DFS), so dass sie sich keine Gedanken über den tatsächlichen physischen Speicherort der Daten machen müssen.