Neue Objektspeichermetriken

Neue ObjektspeichermetrikenFliegende Festung von Nele-Diel

S3-Objektspeicherbefehl Mail.ru Cloud-Speicher hat einen Artikel darüber übersetzt, welche Kriterien bei der Auswahl eines Objektspeichers wichtig sind. Nachfolgend der Text aus Sicht des Autors.

Wenn es um Objektspeicher geht, denkt man normalerweise nur an eines: den Preis pro TB/GB. Natürlich ist diese Metrik wichtig, aber sie macht den Ansatz einseitig und setzt die Objektspeicherung mit einem Archivspeichertool gleich. Darüber hinaus verringert dieser Ansatz die Bedeutung der Objektspeicherung für den Technologie-Stack des Unternehmens.

Bei der Auswahl eines Objektspeichers sollten Sie auf fünf Merkmale achten:

  • Leistung;
  • Skalierbarkeit;
  • S3-kompatibel;
  • Reaktion auf Fehler;
  • Integrität.

Diese fünf Merkmale sind neben den Kosten neue Maßstäbe für die Objektspeicherung. Schauen wir sie uns alle an.

Leistung

Herkömmlichen Objektspeichern mangelt es an Leistung. Die Dienstleister haben es ständig geopfert, um niedrige Preise zu erzielen. Bei der modernen Objektspeicherung sieht das jedoch anders aus.

Verschiedene Speichersysteme erreichen die Geschwindigkeit von Hadoop oder übertreffen diese sogar. Moderne Anforderungen an Lese- und Schreibgeschwindigkeiten: von 10 GB/s für Festplatten bis zu 35 GB/s für NVMe. 

Dieser Durchsatz reicht für Spark, Presto, Tensorflow, Teradata, Vertica, Splunk und andere moderne Computing-Frameworks im Analytics-Stack. Die Tatsache, dass MPP-Datenbanken für die Objektspeicherung konfiguriert werden, deutet darauf hin, dass diese zunehmend als Primärspeicher verwendet werden.

Wenn Ihr Speichersystem nicht die benötigte Geschwindigkeit bietet, können Sie die Daten nicht nutzen und keinen Mehrwert daraus ziehen. Selbst wenn Sie Daten aus dem Objektspeicher in eine In-Memory-Verarbeitungsstruktur abrufen, benötigen Sie immer noch Bandbreite, um die Daten in den und aus dem Speicher zu übertragen. Ältere Objektspeicher haben nicht genug davon.

Das ist der entscheidende Punkt: Die neue Leistungsmetrik ist der Durchsatz, nicht die Latenz. Es ist für Daten im großen Maßstab erforderlich und die Norm in der modernen Dateninfrastruktur.

Obwohl Benchmarks eine gute Möglichkeit sind, die Leistung zu bestimmen, kann sie vor dem Ausführen der Anwendung in der Umgebung nicht genau gemessen werden. Erst danach können Sie sagen, wo genau der Engpass liegt: in der Software, auf den Festplatten, im Netzwerk oder auf der Computerebene.

Skalierbarkeit

Unter Skalierbarkeit versteht man die Anzahl der Petabyte, die in einen Namespace passen. Was Anbieter behaupten, ist einfache Skalierbarkeit, was sie jedoch nicht sagen, ist, dass massive monolithische Systeme mit der Skalierung anfällig, komplex, instabil und teuer werden.

Die neue Messgröße für die Skalierbarkeit ist die Anzahl der Namespaces oder Clients, die Sie bedienen können. Die Metrik wird direkt von Hyperscalern übernommen, bei denen die Speicherbausteine ​​klein sind, sich aber auf Milliarden von Einheiten skalieren lassen. Im Allgemeinen handelt es sich hierbei um eine Cloud-Metrik.

Wenn die Bausteine ​​klein sind, lassen sie sich leichter für Sicherheit, Zugriffskontrolle, Richtlinienverwaltung, Lebenszyklusverwaltung und unterbrechungsfreie Updates optimieren. Und letztendlich die Produktivität sicherstellen. Die Größe des Bausteins hängt von der Beherrschbarkeit des Fehlerbereichs ab, wodurch hochbelastbare Systeme aufgebaut werden.

Die Mehrmandantenfähigkeit weist viele Merkmale auf. Während sich die Dimension darauf bezieht, wie Organisationen Zugriff auf Daten und Anwendungen gewähren, bezieht sie sich auch auf die Anwendungen selbst und die Logik, die dahinter steckt, sie voneinander zu isolieren.

Merkmale eines modernen Multi-Client-Ansatzes:

  • In kurzer Zeit kann die Zahl der Kunden von mehreren Hundert auf mehrere Millionen anwachsen.
  • Die Kunden sind vollständig voneinander isoliert. Dadurch können sie verschiedene Versionen derselben Software ausführen und Objekte mit unterschiedlichen Konfigurationen, Berechtigungen, Funktionen, Sicherheits- und Wartungsstufen speichern. Dies ist bei der Skalierung auf neue Server, Updates und Regionen erforderlich.
  • Der Speicher ist elastisch skalierbar, Ressourcen werden bei Bedarf bereitgestellt.
  • Jeder Vorgang wird durch eine API gesteuert und ist ohne menschliches Eingreifen automatisiert.
  • Software kann in Containern gehostet werden und Standard-Orchestrierungssysteme wie Kubernetes nutzen.

S3-kompatibel

Die Amazon S3 API ist der De-facto-Standard für Objektspeicher. Jeder Anbieter von Objektspeichersoftware behauptet, damit kompatibel zu sein. Die Kompatibilität mit S3 ist binär: Entweder ist sie vollständig implementiert oder nicht.

In der Praxis gibt es Hunderte oder Tausende von Edge-Szenarien, in denen bei der Verwendung von Objektspeicher etwas schief geht. Insbesondere von Anbietern proprietärer Software und Dienste. Seine Hauptanwendungsfälle sind direkte Archivierung oder Sicherung, daher gibt es nur wenige Gründe, die API aufzurufen, die Anwendungsfälle sind homogen.

Open-Source-Software hat erhebliche Vorteile. Angesichts der Größe und Vielfalt der Anwendungen, Betriebssysteme und Hardwarearchitekturen deckt es die meisten Edge-Szenarien ab.

All dies ist für Anwendungsentwickler wichtig, daher lohnt es sich, die Anwendung bei Speicheranbietern zu testen. Open Source macht den Prozess einfacher – es ist einfacher zu verstehen, welche Plattform für Ihre Anwendung die richtige ist. Der Anbieter kann als zentraler Einstiegspunkt in die Speicherung verwendet werden, was bedeutet, dass er Ihren Anforderungen entspricht. 

Open Source bedeutet: Anwendungen sind nicht an einen Anbieter gebunden und transparenter. Dies gewährleistet einen langen Anwendungslebenszyklus.

Und noch ein paar Anmerkungen zu Open Source und S3. 

Wenn Sie eine Big-Data-Anwendung ausführen, verbessert S3 SELECT die Leistung und Effizienz um eine Größenordnung. Dazu wird SQL verwendet, um nur die benötigten Objekte aus dem Speicher abzurufen.

Der entscheidende Punkt ist die Unterstützung von Bucket-Benachrichtigungen. Bucket-Benachrichtigungen erleichtern serverloses Computing, eine wichtige Komponente jeder Microservice-Architektur, die als Service bereitgestellt wird. Da es sich bei der Objektspeicherung praktisch um Cloud-Speicher handelt, ist diese Funktion von entscheidender Bedeutung, wenn die Objektspeicherung von cloudbasierten Anwendungen genutzt wird.

Schließlich muss die S3-Implementierung die serverseitigen Verschlüsselungs-APIs von Amazon S3 unterstützen: SSE-C, SSE-S3, SSE-KMS. Noch besser: S3 unterstützt einen wirklich sicheren Manipulationsschutz. 

Reaktion auf Fehler

Eine Kennzahl, die wahrscheinlich oft übersehen wird, ist die Art und Weise, wie das System mit Fehlern umgeht. Ausfälle können aus verschiedenen Gründen auftreten, und der Objektspeicher muss sie alle bewältigen.

Beispielsweise gibt es einen Single Point of Failure, dessen Metrik Null ist.

Leider verwenden viele Objektspeichersysteme spezielle Knoten, die aktiviert werden müssen, damit der Cluster ordnungsgemäß funktioniert. Dazu gehören Namensknoten oder Metadatenserver – dadurch entsteht ein Single Point of Failure.

Selbst wenn es mehrere Fehlerquellen gibt, ist die Fähigkeit, einem katastrophalen Ausfall standzuhalten, von größter Bedeutung. Festplatten fallen aus, Server fallen aus. Der Schlüssel liegt darin, Software zu entwickeln, die darauf ausgelegt ist, Fehler als normale Situation zu behandeln. Wenn eine Festplatte oder ein Knoten ausfällt, funktioniert diese Software ohne Änderungen weiter.

Der integrierte Schutz vor Datenlöschung und Datenverschlechterung stellt sicher, dass Sie so viele Festplatten oder Knoten verlieren können, wie Paritätsblöcke vorhanden sind – normalerweise die Hälfte der Festplatten. Nur dann kann die Software keine Daten zurückgeben.

Der Fehler wird selten unter Last getestet, ein solcher Test ist jedoch erforderlich. Durch die Simulation eines Lastausfalls werden die Gesamtkosten angezeigt, die nach dem Ausfall anfallen.

Konsistenz

Ein Konsistenzwert von 100 % wird auch als strikte Konsistenz bezeichnet. Konsistenz ist eine Schlüsselkomponente jedes Speichersystems, aber starke Konsistenz ist selten. Amazon S3 ListObject ist beispielsweise nicht streng konsistent, sondern nur am Ende.

Was versteht man unter strikter Konsistenz? Für alle Vorgänge, die auf einen bestätigten PUT-Vorgang folgen, muss Folgendes geschehen:

  • Der aktualisierte Wert ist beim Lesen von jedem Knoten sichtbar.
  • Das Update ist redundant gegen Knotenausfall geschützt.

Das heißt, wenn Sie mitten in einer Aufnahme den Stecker ziehen, geht nichts verloren. Das System gibt niemals beschädigte oder veraltete Daten zurück. Dies ist eine hohe Messlatte, die in vielen Szenarien von Bedeutung ist, von Transaktionsanwendungen bis hin zu Backup und Wiederherstellung.

Abschluss

Hierbei handelt es sich um neue Objektspeichermetriken, die Nutzungsmuster in heutigen Organisationen widerspiegeln, in denen Leistung, Konsistenz, Skalierbarkeit, Fehlerdomänen und S3-Kompatibilität die Bausteine ​​für Cloud-Anwendungen und Big-Data-Analysen sind. Ich empfehle, diese Liste zusätzlich zum Preis beim Aufbau moderner Datenstacks zu verwenden. 

Über den Objektspeicher von Mail.ru Cloud Solutions: S3-Architektur. 3 Jahre Entwicklung des Mail.ru Cloud Storage.

Was es sonst noch zu lesen gibt:

  1. Ein Beispiel für eine ereignisgesteuerte Anwendung basierend auf Webhooks im S3-Objektspeicher Mail.ru Cloud Solutions.
  2. Mehr als Ceph: MCS Cloud-Blockspeicher 
  3. Arbeiten mit Mail.ru Cloud Solutions S3-Objektspeicher als Dateisystem.
  4. Unser Telegram-Kanal mit Neuigkeiten zu Updates für S3-Speicher und andere Produkte

Source: habr.com

Kommentar hinzufügen