Business-IT
28.12.2015
Software-defined Storage
1. Teil: „Unstrukturierte Daten effizient speichern“

Unstrukturierte Daten effizient speichern

SDS - Software Defined StorageSDS - Software Defined StorageSDS - Software Defined Storage
Pavel Ignatov / Shutterstock.com
Klassische Storage-Methoden können das explosionsartige Datenwachstum kaum mehr bewältigen. Abhilfe gegen den Datenwust aus Bildern, E-Mails oder Dokumenten schafft SDS.
Wollen Unternehmen die drastisch ansteigende Datenmenge in den Griff bekommen, müssen sie effiziente Methoden zur Verwaltung einsetzen. Software-defined Storage, kurz SDS, ermöglicht den Aufbau hochskalier­barer, flexibler Architekturen, mit denen sich eine breite Vielfalt von Daten verwalten lässt.
In einer solchen Umgebung werden Daten (Blöcke, Files oder Objekte) hardwareun­abhängig in einer verteilten Architektur auf einer großen Zahl von Standard-Servern als einheitlicher, gemeinsam zu nutzender Speicher-Pool abgelegt.
SDS – File-basiert
Typischer Vertreter einer File-basierten Shared-Nothing-Storage-Plattform (Scale Out) ist Red Hat Gluster Storage, ein verteiltes Dateisystem, das Speichergrößen im Petabyte-Bereich unterstützt. Es basiert auf dem Open-Source-File-System GlusterFS.
Red Hat Gluster zieht eine Abstraktionsschicht zwischen dem physikalischen Speicher und dem Benutzer ein. Zur Ablage werden blockbasierte Dateisysteme genutzt. Die Software verteilt die Daten nicht auf Server-Knoten-, sondern auf Brick-Ebene; die Bricks enthalten die Pfadangaben zum physischen Speicherort. Bricks sind Linux-Rechner mit frei verfügbarem Plattenplatz, etwa Partitionen, Festplatten oder RAID-Arrays. Dabei ist es egal, wie viele Datenträger pro Brick tatsächlich zur Verfügung stehen oder wie viele Server eingebunden sind. Ein Gluster Volume entsteht aus den Bricks verschiedener Server. Aus Benutzersicht entsteht so ein Shared Storage Pool, auf den lesend und schreibend zugegriffen werden kann. Die zweite zentrale Komponente sind Translatoren, die Funktionen wie Posix-Schnittstelle, die Verteilung von Daten im Hintergrund oder den Aufbau eines verteilten RAID-Verbunds über mehrere Bricks bereitstellen.
Ein weiteres Kennzeichen ist die Metadatenverwaltung: Dateien werden auf Basis eines Algorithmus im gesamten Storage-Cluster verteilt, das heißt die Anwender können Kapazität und Performance im Gleichschritt steigern. Damit entsteht eine leistungsfähige SDS-In­frastruktur, um unstrukturierte Daten File-basiert auf Standard-x86er-Servern zu speichern.
Gluster Storage stellt seine Speicher-Pools üblicherweise über die File-basierten Standard-Netzwerkprotokolle NFS und SMB zur Verfügung, bietet aber auch ein eigenes, hoch optimiertes Netzwerkprotokoll (GlusterFuse) samt eigenem API (libGFAPI) für Linux-basierte Clients und ermöglicht zudem einen objektbasierten Zugriff auf Dateien über die Swift-Schnittstelle.
2. Teil: „Die unterschiedlichen SDS-Ansätze“

Die unterschiedlichen SDS-Ansätze

  • Verschiedene Storage-Arten: Die Speichertechnologien unterscheiden sich in Kapazität und Performance.
    Quelle:
    Quelle: Red Hat
Ein skalierbarer Ansatz für SDS erfordert die Entkopplung der Datenservices von den zugrunde liegenden Datenstrukturen. Bezüglich der Datenservices gilt es, zwischen File-Systemen, Blockspeicher, Objektspeicher und Shared-File/Object-Storage zu unterscheiden.
Herkömmliche File-Systeme: Diese sind aufgrund ihrer hie­rarchischen Struktur nur begrenzt skalierbar. Blockbasierte Speicher, wie ihn Storage Area Networks verwenden, verwalten die Daten als Blöcke mit Sektoren und Tracks. Im Cloud-Bereich ist das OpenStack-Projekt Cinder ein weitverbreiteter Blockspeicher.
Objektorientierte Speichersysteme: Sind historisch als Alternative zu den datei- und blockbasierten Systemen entstanden und enthalten zusätzlich zu den eigentlichen Informationen auch Metadaten, die sich einfacher in­dizieren lassen als unstrukturierte Daten. Sie nutzen die Representational-State-Transfer-Architektur (REST) zur Abstraktion der Daten von der Applikation. Das OpenStack-Projekt Swift ist ein typischer Vertreter eines objekt­orientierten Speichersystems.
SDS – objektbasiert
Typischer Vertreter eines objektbasierten SDS-Speichersystems ist Red Hat Ceph Storage, das auf der Open-Source-Lösung Ceph basiert.
Object Stores speichern die Daten als binäre Objekte, die sich in viele Teile aufspalten lassen. Die einzelnen Teile des binären Objekts können verteilt – zum Beispiel über mehrere Festplatten – gespeichert werden. Damit umgehen Objektspeicher den größten Schwachpunkt klassischer Storage-Lösungen: die starre Einteilung in Blöcke.
Kernkomponente von Ceph ist der Objektspeicher, vormals Rados (Redundant Autonomic Distributed Object Store). Dieser besteht aus Object Storage Device (OSD) und Monitoring-Server. Ein OSD ist praktisch die einzelne Festplatte in einem Ceph-Verbund. Die OSDs speichern als Datensilos die binären Objekte. Um Daten in einen Cluster zu laden, kommunizieren Anwender mit diesen OSDs, die sich etwa auch um die Replikation kümmern. Über die Monitoring-Server können Clients und OSDs feststellen, welche OSDs zu einem Cluster gehören. Der Objektspeicher arbeitet mit dem Crush-Algorithmus (Controlled Replication Under Scalable Hashing) und verteilt die Daten über die verfügbaren Speichersysteme. Die Platzierung der Daten erfolgt über Regeln, in denen zum Beispiel auch definiert wird, wie viele Kopien aus Gründen der Ausfallsicherheit anzu­legen sind.
Ceph Storage stellt seine Speicher-Pools üblicherweise über objektbasierte Protokolle wie S3 oder Swift zur Verfügung. Weitere Integrationsmöglichkeiten bieten eigene APIs wie die objektbasierte Librados-Schnittstelle, die blockbasierte librbd/kRBD-Schnittstelle oder die direkte Anbindung an die OpenStack-Speicherschnitt­stellen Cinder und Glance.
Shared-File-/Objektspeicher-Lösungen: Sie verwenden die Stärken der weitverbreiteten dateibasierten Applikationen. Gleichzeitig machen sie die Daten auch für objektbasierte Applika­tionen zugänglich, nutzen dazu REST-basierte Methoden und bieten so eine hohe Flexibilität.
3. Teil: „Best Practices zur SDS-Einführung“

Best Practices zur SDS-Einführung

Jedes Unternehmen muss seinen individuellen Weg bei der Implementierung von Software-defined Storage finden. Charakteristisch sind eine hohe Agilität und ein iteratives Vorgehen. Statt des ganz großen Wurfs empfiehlt sich zunächst die Konzentration auf ein Anwendungsszenario mit besonders großem Handlungsbedarf. Die folgenden fünf Best Practices unterstützen Unternehmen beim Einstieg in eine Software-defined-Storage-Lösung:
  1. Unternehmensbereiche mit dem größten Bedarf ermitteln
    Nur ein geringer Anteil der Unternehmensdaten ist in relationalen Datenbanken abgelegt, der größte Teil besteht aus unstrukturierten Daten wie Bilder, Dokumente, Tabellen und Zeichnungen. Wichtig ist, zunächst festzustellen, an welchen Speicherorten sich die relevanten Informationen befinden und welche Kapazitäten diese benötigen – unter Beachtung von Verfügbarkeit und Reaktionsfähigkeit.

  2. Die Anwendungsszenarien mit dem größten Handlungsdruck identifizieren
    Als nächster Schritt sollte festgestellt werden, wer welche Dokumente, Medieninhalte oder Geodaten wie oft in welchen Anwendungs­szenarien nutzt und welchen Stellenwert diese Daten für das Unternehmen haben.

  3. Weniger kritische Daten und neue Applikationen zuerst mi­grieren
    Die Migration unstrukturierter Daten auf eine neue SDS-Plattform ist ein ambitioniertes Projekt mit vielfältigen Implikationen. Um erste Erfahrungen zu sammeln, sollten Unternehmen in einem klar umgrenzten Anwendungsszenario ihre Anforderungen und die Zielerreichung testen. Auf dieser Basis können dann weitere Datenbestände migriert werden.

  4. Festlegen, ob die Anwendungen vor Ort oder in der Cloud betrieben werden
    Aus organisatorischen Gründen sollten sich die Verantwortlichen frühzeitig Gedanken darüber machen, ob die SDS-Plattform auf physischen Servern, in einer virtualisierten Umgebung oder in der Cloud laufen soll. Sollen alle drei Bereitstellungsmodelle gleichzeitig verwendet werden, ist eine flexible Lösung nötig, die dies unterstützt.

  5. Das richtige Maß an Datensicherung und Replikation defi­nieren
    Von Anfang an müssen Backup- und Recovery-Pläne definiert und Maßnahmen implementiert werden. Dafür sollten in verschiedenen Szenarien mögliche Schadensfälle und die Kosten durchgespielt werden. Die Ergebnisse dienen als Grundlage für die benötigten Investitionen in die Datensicherung und -wiederherstellung. Unternehmenskritische Daten erfordern naturgemäß mehr Schutz. Eine moderne SDS-Lösung bietet die Möglichkeit, verschiedene Speicherklassen zu definieren und diese nach den erforderlichen Verfügbarkeits- und Wiederherstellbarkeits-Anforderungen der Daten zu priorisieren.

Die Einsatzgebiete

Zu den Einsatzgebieten von SDS zählen Archive für medizinische Daten etwa beim Gene-Sequencing, Daten aus meteorologischen Aufzeichnungen oder komplexe Medieninhalte beziehungsweise Audio- und Videodaten, wie sie von Content Delivery Networks benötigt werden. Unternehmen, die mit einem massiven Wachstum unstrukturierter Daten zu kämpfen haben, erhalten mit einer softwarebasierten Lösung die Möglichkeit, zusätzliche Kapazitäten in die Cloud zu verlagern.

mehr zum Thema