Block- und Object Storage in OpenStack-Umgebungen

Boulder, Starnberg, 6. Nov. 2015 – Cinder und Swift für unterschiedliche Anwendungsfälle; ist ein „One size fits all“ – Architekturansatz passend...?

Zum Hintergrund: Die OpenStack-Nutzung innerhalb von Cloud-Infrastrukturen wird derzeit verstärkt in großen Unternehmen-/Organisationen diskutiert. In diesem Zusammenhang stellt sich auch die Frage nach einer möglichst optimierten Speicherarchitektur. Ein "One size fits all"-Ansatz ist hierbei nach Meinung von SolidFire – einem Anbieter von Enterprise All-Flash Lösungen – jedoch nicht zielführend; sowohl Block- als auch Object Storage haben ihre Berechtigung.´

OpenStack unterstützt sowohl Object (Swift) als auch Block Storage (Cinder), bei denen es sich um komplementäre Lösungen handelt. Deshalb sollte die Frage auch nicht lauten "Block Storage oder Object Storage?", sondern: "Wie können beide Storage-Typen verwendet werden, um das Beste zweier Welten zu nutzen?" SolidFire hat nach eigenen Angaben bereits eine Vielzahl von OpenStack-Storage-Projekten erfolgreich begleitet. Auf dieser Grundlage empfiehlt das Unternehmen Cinder beziehungsweise Swift für unterschiedliche Anwendungsfälle, denn jeder Ansatz hat seine jeweiligen Stärken.

Anwendungsszenarien und Vorteile der Objekt-Speicherung mit Swift aus Sicht von SolidFire:

  • Scale-out Storage: Swift bietet die Möglichkeit, Scale-out Storage auf Standard-Hardware zur Verfügung zu stellen. Dadurch ist Swift eine interessante Option für externe Speicherlösungen wie SAN-Umgebungen und damit für Anwendungsfälle, bei denen aufgrund der Kosten pro Gigabyte Flash-basierte Systeme keine Alternative zu herkömmlichen Festplatten sind – und bei denen gleichzeitig die Performance von untergeordneter Bedeutung ist.

  • Backup und Archivierung: Ein optimierter Sekundärspeicher bietet Vorteile für Objekt-basierte, große Storage-Anwendungen, bei denen HDDs immer noch einen Kosten-pro-Gigabyte-Vorteil gegenüber Flash-Lösungen bieten und bei denen die Performance ebenfalls keine entscheidende Rolle spielt.

  • Statische Daten: Swift eignet sich für umfangreiche statische Datenmengen, bei denen sequenzielle Lese- und Schreibzugriffe erfolgen und eine niedrige IOPS ausreichend ist.

Anwendungsszenarien und Vorteile der Block-Speicherung mit Cinder:

  • Storage für VM-Volumes auf einem Host: Mit Cinder erfolgt das Erstellen, Zuweisen und Löschen eines Blockspeichers auf einer virtuellen Maschine.

  • Performance-kritische Applikationen: Klassische Anwendungsfälle für die Cinder-Architektur sind vor allem Performance-kritische Primärspeicher-Workloads. Dazu zählen etwa SQL- oder NoSQL-Datenbanken oder Anwendungen in Bereichen wie Datenanalyse oder Transaktionsverarbeitung.

  • Dynamische Daten: Cinder eignet sich für Daten, die häufig geändert werden, für Random-Lese- und Schreibvorgänge sowie Workloads, bei denen eine hohe I/O-Performance benötigt wird.

Dazu Dave Wright, Gründer und CEO von SolidFire: "Wenn es um Storage für OpenStack geht, ist es offensichtlich, dass ein ‚One size fits all’-Ansatz nicht unbedingt von Erfolg gekrönt ist. Während Cinder zum Beispiel durch Swift als Backup-Ort für Primärdaten hervorragend ergänzt werden kann, ist ebenso klar, dass Object Storage nicht für Anwendungsfälle geeignet ist, bei denen es auf eine hohe Performance ankommt."

Bei jeder Diskussion rund um verteilte Storage-Lösungen für die Cloud sollten nach SolidFire kommerzielle Optionen ebenso wie Open-Source-Varianten in Betracht gezogen werden. Im Hinblick auf Cloud Storage für Performance-kritische Applikationen ist laut Dave Wright zu berücksichtigen, dass sowohl herkömmliche Open-Source- als auch Legacy-Storage-Lösungen Mängel aufweisen. Problem dabei ist, dass sie nicht von Anfang an voll auf Performance-optimierte Workloads ausgelegt sind.


Fazit: Aus Sicht es Flash-Spezialisten ist es deshalb erforderlich, über traditionell konzipierte Storage-Hardware-Architekturen hinauszugehen und Lösungen zu nutzen, die speziell für die Performanceoptimierung in verteilten Storage-Anwendungen von Cloud-Infrastrukturen konzipiert sind. Solche Lösungen müssen sich unter anderem auszeichnen durch:

  1. Flash-Storage-Architektur

  2. Sicherstellung einer konsistenten Performance

  3. Überwachung der Performance

  4. Inline-Deduplizierung und Kompression


Abb. 1: Bildquelle OpenStack Swift, Overview-Processes