ra2 studio - stock.adobe.com
Storage für Cloud-Anwendungen: Object, Block oder File?
Objekt-, Datei- und Blockspeicher konkurrieren beim Einsatz von Cloud-Anwendungen. Die richtige Wahl kann einen Einfluss auf Leistung, Zuverlässigkeit und Kosten einer App haben.
Object, Block und File Storage verfügen über wesentliche Unterschiede und Gemeinsamkeiten. Im Laufe der Jahre haben sich die Unterschiede verringert, während die Gemeinsamkeiten angewachsen sind, wodurch die Auswahl der am meisten für Cloud-Anwendungen geeigneten Speichersysteme sogar schwieriger geworden ist.
Die Speicherauswahl beginnt mit der Festlegung der Bedürfnisse und Anforderungen von Cloud-Anwendungen wie dem Speicherzugang per:
- Block: NVMe-oF, iSCSI, Fibre Channel
- File: NFS, SMB
- Parallel File: Lustre, Spectrum Scale, Panasas, WekaIO, BeeGFS
- Object: S3 (RESTful API)
Wenn die Anwendung nur mittels eines besonderen Protokolls einen Speicherzugang bekommt und der Eigentümer der Anwendung nicht über die Zeit und Ressourcen verfügt, die Anwendung zu modifizieren, wird die Speicherentscheidung standardmäßig erfolgen.
Ist dies nicht der Fall, werden andere Anforderungen die Entscheidung beeinflussen – darunter Stateful Container Persistent Storage (nicht für alle Systeme gegeben), Data Protection, Business Continuity, Disaster Recovery und Security. Man sollte sich der Zustimmung der Anwendungseigentümer bezüglich der jeweiligen Anforderungen versichern, bevor man weiter fortfährt.
Der zweite Schritt bei der Auswahl der besonders geeigneten Storage-Lösung für Cloud-Anwendungen erfordert ein Verständnis von dem, was sie sind, was sie leisten, was sie nicht leisten, von den besten Anwendungsfällen für jede Lösung und wie Object, Block und File Storage im Vergleich abschneiden. Intensives Verständnis und Wissen reduzieren das Risiko, eine nicht gerade ideale Auswahl für die besonderen Anforderungen des Unternehmens zu treffen.
Was ist Block Storage?
Block Storage ist die Standardlösung für Speichermedien wie Festplatten und SSDs in Servern und Workstations. Man findet Block Storage auch in Speichersystemen wie Direct Attached Storage (DAS), Storage Area Network (SAN) und Remote Direct Memory Access (RDMA), wobei NVMe-oF-Protokolle benutzt werden.
Die Bezeichnung „Block“ drückt aus, dass die Daten in Blöcke aufgespalten und als solche gespeichert werden. Diese Blöcke werden auf der physischen Ebene auf die Speichermedien verteilt, um eine optimale Wirksamkeit zu erreichen. Jeder Block erhält eine einzigartige Bezeichnung, auf deren Basis die Daten wieder für Leseprozesse zusammengesetzt werden.
Vorteile von Block Storage
Performance ist der größte Vorteil von Block Storage für Cloud-Anwendungen. Latenzzeiten sind besonders wichtig, besonders wenn es sich um die Antwortzeiten bei Transaktionsprozessen der Anwendungen handelt. Niedrige Latenz bedeuten schnellere Antwortzeiten und mehr IOPS.
Block Storage ist außerdem relativ einfach aufgebaut. Die File-Systeme von Servern schreiben direkt auf diese Technologie. Cloud-Anwendungen nutzen in der Regel Cloud Block Storage, wenn sie schnelle Lese- und Schreibprozesse brauchen. Weil Block Storage die Anwendungsdaten von ihrer Anwendung entkoppelt, können die Daten über mehrere Laufwerke und Volumes hinweg verteilt werden. Dies beschleunigt das Wiederfinden von Daten.
Nachteile von Block Storage
Block Storage verfügt nicht über Metadaten. Das begrenzt seine Flexibilität. Es gibt keine Such-Fähigkeiten oder integrierte Data Analytics. Obwohl einige Systeme für Block Storage einige Analytics-Fähigkeiten offerieren, erstrecken sich diese in erster Linie auf Speicher- und Laufwerke-Analytics und nicht auf die eigentlichen Data Analytics.
Cloud Block Storage hat oft ernsthafte Erweiterungsbegrenzungen. Cloud-Anwendungen sind durch die Anzahl verfügbarer Laufwerke begrenzt.
Anwendungsfälle von Block Storage
Die am meisten verbreiteten Anwendungsfälle von Block Storage sind:
- Relationale oder transaktionale Datenbanken
- Zeitlich aufgebaute Datenbanken
- Aufgaben- und geschäftskritische Anwendungen, die sehr niedrige Latenz- und Antwortzeiten erfordern. Beispiele umfassen hochfrequente Handelssysteme, E-Commerce wie zum Beispiel Magento, online Transaktionsprozesse, CRM- und Vertriebsautomatisierung.
- Allgemeiner Speicher für virtualisierte und Bare-Metal-Server
- Grundlegende Speichermedien für File und Object Storage
- Hypervisor-File-Systeme, die ebenfalls zum Einsatz von Block Storage wegen ihrer Verteilung über verschiedene Volumes hinweg neigen
Was ist File Storage?
File Storage ist ähnlich organisiert wie die Art und Weise, in der man physische Dateien oder Ordner in einem Aktenschrank ablegt. Dateien werden systematisch in Ordner gepackt und auf der Basis von Namenskonventionen wie Erweiterungen, Kategorien oder Anwendungen organisiert. Dateisysteme befinden sich in einer Hierarchie von Verzeichnissen, Unterverzeichnissen und Dateien. Dateien werden auch zusammen mit begrenzten Metadaten gespeichert wie zum Beispiel Dateinamen, Erstellungsdatum, Verfasser, Dateiart, jüngste Veränderungen und letzter Zugang.
Eine Datei wird entweder per Hand lokalisiert oder auf Basis eines Programms und Durchforsten der Hierarchie. Anwender oder Cloud-Anwendungen bekommen Zugang zu einer Datei, indem sie einfach den Pfad vom Verzeichnis bis zum Unterverzeichnis und zum Ordner und zur Datei anfordern. Es ist im Allgemeinen sehr leicht, Dateien ohne weitere Hilfsmittel zu benennen, zu löschen oder anderweitig zu verändern, da sie sich bereits in einem hierarchischen Verzeichnisbaum befinden.
Die Suche nach und die Lokalisierung von Dateien ist relativ einfach bei einer kleinen Anzahl von ihnen, aber es kann extrem schwierig werden, wenn die Menge von Dateien in die Milliarden geht.
Eine Variante von File Storage ist Parallel File Storage. Dieser Typus eines File-Storage-Systems wurde für eine große Anzahl von gleichzeitigen Lese- und zu einem geringeren Anteil für viele gleichzeitige Schreibprozesse entwickelt. Parallel File Storage findet sich meistens bei Data Direct Networks (DDN), IBM Spectrum Scale, Panasas, WekaIO und den Open-Source-Produkten Lustre und BeeGFS. Die Anwendungsfälle sind noch gering, wachsen aber.
Vorteile von File Storage
Einfachheit wird im Allgemeinen als der größte Vorteil von File Storage betrachtet. Dieser Vorteil wird eher in der Cloud aufgrund von ausgedehntem File Sharing und Collaboration umgesetzt.
Viele Anwendungen sind für File Storage geschrieben und optimiert worden. Verbreitete Hypervisoren von Herstellern wie zum Beispiel VMware besitzen eingebautes NFS. Mehrere relationale Datenbanken wie Oracle und Microsoft SQL Server arbeiten von Haus aus mit File Storage, ebenso wie populäre Open-Source-Datenbanken wie MySQL, MariaDB, PerconaDB und PostgreSQL. Außerdem arbeiten tabellenorientierte Datenbanken wie Cassandra und MongoDB prinzipiell mit File Storage.
Es gibt einen anderen Vorteil, der sich bei Drittanbietern von File Storage in der Public Cloud findet: Es handelt sich um Softwareinstallationen von Speicherherstellern wie zum Beispiel Dell EMC, Pure Storage, Rozo Systems, StorOne, WekaIO und Zadara Storage. Diese Cloud-Subskriptionsangebote auf der Basis von Pay-As-You-Go (PAYG) ermöglichen Shared File Storage für Cloud-Anwendungen, die die Kosten durch Entfernung von nicht genutztem oder „verwaistem“ (orphaned) Storage reduzieren. Teure SSDs oder NVMe-SSDs können von mehreren Anwendungen gleichzeitig verwendet werden.
Nachteile von File Storage
Die anfallenden Kosten sind der auffälligste Nachteil von File Storage in der Cloud. File Storage in der Cloud ist oft drei bis vier Mal teurer als Block Storage und zehnmal teurer als Object Storage in der Cloud.
Performance ist ein anderes Problem. File Storage braucht eine extra Softwareschicht gegenüber Block-Storage-Medien. Das erhöht die Latenz und reduziert Antwortzeiten, IOPS und Durchsatz. Mehrere Systeme für File Storage haben jedoch bereits deutlich diese Overhead-Latenz reduziert und damit die Problematik verkleinert. Sie haben dies getan, indem sie ihre File Storage Software effizienter gestalteten (StorOne), sie für Flash optimierten (Pavilion Data Systems, Pure Storage, Vast Data), die Prozessintensität verstärkten (Pavilion Data) oder indem sie RDMA NFS mit geringerer Latenz einsetzen.
Vielleicht besteht der Nachteil, der besonders File-Storage-Systemen zugeschrieben wird, in der begrenzten Skalierbarkeit. File-Storage-Systeme erreichen ihre Grenzen, wenn die Anzahl der Files auf hunderte von Millionen oder gar Milliarden skaliert. Dies ist jedoch eine überholte Wahrnehmung, die nicht auf die meisten der jüngsten File-Storage-Systeme zutrifft. Neuere File-Storage-Systeme – darunter solche von Ctera Networks, Dell EMC, Nasuni, Panzura, Pavilion Data, Pure Storage, Qumulo, Vast Data und WekaIO – haben diesen historischen Flaschenhals bei der Skalierbarkeit von File Storage hinter sich gelassen, indem sie eine Scale-out-Architektur und/oder einen Global Namespace installiert haben.
Anwendungsfälle von File Storage
Die meist verbreiteten Anwendungsfälle von File Storage sind:
- KI-Machine Learning
- KI-Deep Machine Learning
- Analytics jeder Art
- Medizinische Aufzeichnungen
- Video-Streaming
- Audio-Streaming
- Multimedia im Allgemeinen
- Büro-Anwendungen
- Target Storage für Backup
- Target Storage für Archivierung
- File Sharing und Workflow Collaboration
Weniger übliche, aber auch wichtige Anwendungsfälle von File Storage umfassen:
Was ist Object Storage?
Object Storage organisiert unstrukturierte Daten in einer Art und Weise, die sehr effizient ist, sich aber nicht unmittelbar erschließt. Es gibt keine Hierarchie – alles dreht sich um individuelle Objekte. Object Storage ist eine „Shared-Nothing“-Architektur, die theoretisch unbegrenzte Skalierbarkeit ermöglicht. Dateien werden als Objekte an unterschiedlichen Orten abgelegt, und jedes Objekt besitzt einen einzigartigen Identifikator mit einer beträchtlichen Menge an Metadaten – im Umfang von Kilobytes bis zu Gigabytes.
Die Metadaten von Object Storage umfassen die Metadaten, die sich in der Regel in Dateisystemen finden, während sie häufig eine Summe von Inhalten aus der Datei aufweisen – darunter Schlüsselwörter, wichtige Punkte, Kommentare, Orte von angesprochenen Objekten, Datenschutzregeln, Sicherheit, Zugang und geographische Orte.
Diese verbesserten Metadaten ermöglichen es Object Storage, Objekte auf einem wesentlich ausgefeilteren Niveau zu schützen, zu verwalten, zu verarbeiten und zu behalten, als es weder Block noch File Storage können. Ein allgemeines Beispiel hierfür ist die Fähigkeit von Object Storage, die Haltbarkeit von Daten durch den Einsatz von Erasure Codes zu erhöhen.
Erasure Codes brechen eine Datei in mehrere Objekte auf und verteilen sie auf verschiedene Speicherlaufwerke, Storage/Server-Knoten und sogar geographische Orte. Erasure Codes bieten auf diese Weise eine Ausfallsicherheit von Daten über das Versagen von mehreren verschiedenen Laufwerken und/oder Speicherknoten hinweg. Dies führt zu einer höheren Ausfallsicherheit, als sie RAID oder sogar Triple-Parity RAID bieten können.
Die Verortung von Daten, die von mehreren Objekten repräsentiert werden, geschieht über die einzigartigen Identifikatoren der Objekte und ihrer Metadaten. Es gibt keine Hierarchie, die gescannt oder durchlaufen werden muss. Die feinere Granularität bedeutet, dass viele Funktionen auf der Basis der einzelnen Objekte geliefert werden können. Wenn Funktionen wie Data Protection, Replikation, Suche, Mining, Bewegen und Verwalten der Daten mehr granular durchgeführt werden – wie das in Object-Speichern möglich ist –, werden sie auch schneller und effizienter. Dies ist um so mehr bemerkenswert, als die Anzahl der Dateien in die Bereiche von Milliarden und Billionen anwächst.
Vorteile von Object Storage
Der größte Vorteil von Object Storage besteht in seinen niedrigen Kosten. Dies ist der hauptsächliche Grund, warum Unternehmen diese Technologie für Cloud-Anwendungen auswählen.
Massive Skalierbarkeit ist der zweitgrößte Vorteil. Diese Skalierbarkeit ist die direkte Folge der Shared-Nothing-Architektur und der flachen Struktur von Object Storage. Die Verwendung von global einzigartigen Identifikatoren gegenüber den Hierarchien von File oder Block Storage erleichtert diese Skalierbarkeit. Object-Speicher haben Datenwachstum bis in Exabyte-Bereiche gezeigt und besitzen das Potential, bis zu Zettabyte- und Yottabyte-Zonen vorzustoßen.
Unbegrenzte Metadaten bieten zusätzliche Vorteile. Storage-Administratoren besitzen dadurch Spielräume für die Erhaltung, Speicherung und Bewegung von Daten, die sich von höherwertigen Knoten aus Flash-SSDs bis zu weniger wertigen Festplattenknoten erstrecken, und schließlich für das Löschen oder Auslaufen von Daten.
Ein anderer Vorteil ist die Widerstandskraft gegen Hardwareausfall, die Erasure Coding ermöglicht. Object Storage kann so programmiert werden, dass man gegen den Ausfall einer großen Anzahl von Laufwerken und/oder Speicherknoten geschützt ist. Laufwerke müssen nicht wie bei RAID wiederhergestellt werden, aber für die Daten trifft es zu – und der Wiederaufbau geht schnell über mehrere Laufwerke hinweg vonstatten.
Wegen dieser Vorzüge ist Object Storage zu der hauptsächlichen Speicherlösung für die größten Provider von Public Clouds wie AWS, Microsoft, Oracle, Google, Alibaba und IBM geworden.
Nachteile von Object Storage
Erasure Coding ist sehr gut tauglich für Ausfallsicherheit der Daten, aber es erhöht deutlich die Lese- und Schreibprozesse. Erasure Coding beansprucht stark CPU und Memory, wobei die Antwortzeiten deutlich verlangsamt werden. Deshalb wird Object Storage kaum jenseits der sekundären und tertiären Speicherprozesse eingesetzt. Einige Hersteller haben versucht, diese Latenzprobleme durch die Installation von Flash-SSDs abzuschwächen. Diese Systeme sind schneller, aber haben immer noch höhere Latenzzeiten als Block oder File Storage mit SSDs.
Erasure Coding schützt auch nicht vor Korrumpierung der Daten, menschlichen Fehlern oder Malware und Ransomware. Object Storage liefert im Allgemeinen keine Snapshots, ein Hauptprodukt von Block und File Storage, das einen besonderen Schutzmechanismus zur Verfügung stellt.
Viele Object-Storage-Systeme können – so wie File- und Block-Speichersysteme auch – Container oder Buckets zur Verfügung stellen für die unveränderbare Aufbewahrung oder Write Once Read Many (WORM). Dies verhindert, dass die Daten auf irgendeine Art und Weise während der Aufbewahrung geändert werden. Und dies ist eine wichtige Fähigkeit in den gegenwärtigen Zeiten von Ransomware-Angriffen und von Gesetzen zum Schutz der Privatsphäre. Doch die meisten dieser Systeme sind generell nicht in der Lage, die gespeicherten Daten in diesen unveränderbaren Behältern auf Malware/Ransomware hin zu scannen, sie aufzuspüren oder zu isolieren.
Obwohl einige Object-Speicher (DataCore Caringo, IBM Red Hat Ceph, Scality Ring) ein eingebautes NAS-Frontend oder physisches NAS-Gateway besitzen, können sie nicht die Performance der Antwortzeiten von eigentlichen NAS-Systemen erreichen. Sowohl Systeme für File als auch für Object Storage besitzen oft eine Funktion für ein Block-iSCSI-Gateway. Noch einmal sei betont, dass die NAS-Variante üblicherweise – aber nicht immer – performanter ist als ihr Object-Storage-Äquivalent. Um in den vollen Vorteil eines Object-Speichers zu kommen, muss das Dateisystem der Anwendung oder des Servers die RESTful API verwenden. Der Defacto-Standard bei RESTful API ist gegenwärtig S3. So wie die Popularität von AWS angestiegen ist, so verhält es sich auch mit der Anzahl von Anwendungen, die S3 API benutzen. Dies ist nicht unbedingt ein Nachteil, so wie es einmal der Fall war, aber es hinkt noch immer beträchtlich den File-Storage-Anwendungen hinterher.
Auf der anderen Seite wird bei File-Systemen der Zugang organisiert durch Standardschnittstellen wie NFS, SMB, Parallel NFS, RDMA NFS oder sogar auf Basis von Protokollen des Hadoop Distributed File System sowie von IBM Spectrum Scale (früher Global File Sharing System), Lustre, Panasas und WekaIO.
Anwendungsfälle von Object Storage
Die meist verbreiteten Anwendungsfälle von Object Storage sind:
- Zielspeicher für Backups
- Zielspeicher für Archive und Tresorräume (Vaults)
- File Sharing und Collaboration, wobei Anwendungen für File Sync-and-Share als zentrales Repository genutzt werden
- Medizinische Aufzeichnungen
- Video-Streaming
- Audio-Streaming
- Multimedia im Allgemeinen
- Künstliche Intelligenz (KI), Machine Learning und Deep Machine Learning, besonders bei sehr großen Datensätzen
- Geographisch verteilte Edge Filer für Global Namespace (Ctera, Nasuni, Panzura), die Object Storage als zentralen Data Lake nutzen
- Data Lake für sehr große Analytics-Systeme wie Data Warehouses (So läuft zum Beispiel der Data Warehouse Cloud Service von Snowflake auf AWS S3 Object Storage).
Überlegungen zu den Kosten bei der Speicherauswahl
Der letzte Schritt bei der Auswahl des besten Speichersystems für Cloud-Anwendungen besteht in der Berechnung der Total Cost of Ownership (TCO). Es geht nicht nur einfach um den Kauf- oder Subskriptionspreis. Die TCO umfassen auch zusätzliche Infrastrukturkosten wie zum Beispiel die Ausgaben für Rack Space, Switche, Kabel, Leitungen, Empfangsgeräte, Energie, Kühlung, unterbrechungsfreie Stromversorgung, WAN (falls erforderlich), Training, Erneuerung der Technologie, geplante Ausfallzeiten, ungeplante Ausfallzeiten und genereller Zeitaufwand.
Der Zeitaufwand für Training, Verwaltung, Betrieb, Beschaffung, Troubleshooting und Modernisierungen sind größere Kosten und werden zu oft nicht in die Kostenbetrachtungen aufgenommen. Und das schließt nicht einmal ein, wie die Performance der Cloud-Anwendungen andere Kosten wie zum Beispiel Produktivität der Angestellten, Einnahmen, Time-to-Market der Produkte, Analytics und Umsetzung von KI beeinflusst.
Vorbehalte bei der Differenzierung und Auswahl der Speichertypen
Storage-Systeme entwickeln sich weiter. So wie es einfache Systeme für Block, File und Object Storage gibt, trifft man auch auf hybride Speichersysteme. Diese Systeme stellen Block, File, Parallel File und Object zur Verfügung; oder Block, File und Object; oder selbst File und Object in einem einzigen Speichersystem. Provider von Public Cloud Services neigen auch dazu, Block, File und Object in ihren Storage-Services zur Verfügung zu stellen.
Einige zusammengefasste Speichersysteme konzentrieren sich auf einen Storage-Typus, während sie die anderen in den Hintergrund stellen. Einige weisen zusätzlich eine begrenzte Skalierbarkeit auf. Man sollte sicherstellen, dass das ausgewählte Speichersystem die Anforderungen von aktuellen Cloud-Anwendungen unterstützt und das auch in der näheren Zukunft fortsetzen wird.
Man sollte auch nicht davon ausgehen, Speicher für Cloud-Anwendungen ist begrenzt auf die Angebote der Public Cloud Provider. Viele Speicherhersteller bieten „Cloud-nahe“ Services an, mit denen sie ihre Systeme in Colocation mit denen der Public Cloud Provider oder zumindest sehr nahe mit ihnen verbinden können – zum Beispiel verbinden sie sie mit einer hoch-performanten 10-Gbps-Leitung. Zusätzlich haben die meisten Storage-Hersteller mit PAYG elastische Subskriptionsprogramme im Angebot, die Gebühren für Cloud Storage widerspiegeln, aber mit höherer Performance und mehr Storage-Services.