4 Punkte von GN⁺ 2023-07-28 | 1 Kommentare | Auf WhatsApp teilen

Aufbau und Betrieb von S3

  • S3 steht für Amazon Simple Storage Service und bezeichnet ein groß angelegtes Speichersystem.
  • Andy Warfield arbeitete bei S3 und gewann dabei ein umfassendes Verständnis des Systems.
  • S3 ist ein Service, der viele Bereiche abdeckt – von der Performance-Erfahrung der Kunden bis hin zur Mechanik von Festplatten.

Vor 17 Jahren, auf einem weit entfernten Universitätscampus...

  • S3 wurde am 14. März 2006 eingeführt und feiert dieses Jahr sein 17-jähriges Bestehen.
  • Warfield schloss seine Promotion an der University of Cambridge ab, arbeitete am Xen-Projekt mit und gründete danach das Startup XenSource.
  • XenSource wuchs und wurde von Citrix übernommen; dabei lernte Warfield viel über Unternehmenswachstum und Teamführung.

Wie S3 funktioniert

  • Nachdem Warfield zu Amazon gekommen war, lernte er von Seth Markle, einem der frühen S3-Ingenieure, wie S3 funktioniert.
  • S3 ist ein Object-Storage-Service mit einer HTTP-REST-API und besteht aus Frontends, einem Namespace-Service, einer Storage-Flotte mit Festplatten sowie einer Flotte für Hintergrundaufgaben.
  • S3 besteht aus Hunderten von Microservices, und die Interaktion zwischen den Teams erfolgt über Verträge auf API-Ebene.

Erste Beobachtungen

  • S3 ist über Software hinaus ein sich ständig weiterentwickelndes Ökosystem, das auch Hardware und Menschen umfasst.
  • Die Größe von S3 ergibt sich daraus, dass jede Komponente aus einer Sammlung horizontal skalierter Services besteht, sodass es Zeit braucht, den Umfang des Systems zu verstehen.

Technische Größenordnung: die Physik des Speicherns

  • S3 ist ein sehr großes System, das Millionen von Festplatten nutzt.
  • Festplatten sind ein Wunderwerk aus Technologie und Innovation und zugleich äußerst kosteneffizient.

Heat Management: Datenplatzierung und Performance

  • Bei S3 wird zur Lösung des Problems des „Heat Management“ optimiert, indem I/O-Anfragen gleichmäßig auf viele Festplatten verteilt werden.

Replikation: Datenplatzierung und Haltbarkeit

  • S3 verwendet Redundanzschemata wie Replikation und Erasure Coding, um die Haltbarkeit der Daten sicherzustellen und Heat zu managen.

Auswirkungen der Größenordnung: Strategien zur Datenplatzierung

  • Durch eine möglichst breite Verteilung der Daten auf möglichst viele Festplatten belegt die Kundendatenmenge auf jeder einzelnen Platte nur sehr wenig Platz, wodurch Workload-Isolation erreicht wird.

Der menschliche Faktor

  • Die Komplexität von S3 beruht nicht nur auf technischen, sondern auch auf menschlichen Faktoren.
  • Amazon ermutigt Ingenieure und Teams dazu, schnell und sicher zu scheitern und sich darauf zu konzentrieren, Storage mit hoher Haltbarkeit bereitzustellen.

Meine eigene Skalierung: Schwierige Probleme lösen, die mit „Ownership“ beginnen und enden

  • Warfield erlebte bei Amazon eine persönliche Form der Skalierung und lernte dabei etwas über die Größenordnung von Software, Menschen und Business.
  • Bei Amazon liegt der Fokus auf „Ownership“, was hilft, die Organisationsstruktur und den Engineering-Ansatz zu verstehen.

Meinung von GN⁺

  • S3 ist mehr als nur ein Storage-Service; es ist ein komplexes Ökosystem, in dem Hardware, Software und menschliche Faktoren zusammenwirken.
  • Dieser Artikel bietet Einblicke für junge Software-Ingenieure, die die Größenordnung und Komplexität von S3 verstehen möchten.
  • Die „Ownership“-Kultur bei Amazon ist ein wichtiger Faktor, der Teams und Einzelpersonen motiviert, mit größerem Verantwortungsbewusstsein Innovation voranzutreiben.

1 Kommentare

 
GN⁺ 2023-07-28
Hacker-News-Kommentare
  • Eine Fehlerrate von 1 pro 10^15 Anfragen tritt in der realen Welt häufig auf und ist etwas, das man bei S3 berücksichtigen muss.

    • Als ich bei AWS gearbeitet habe, erinnerte ich mich daran, dass auf dem Maßstab von S3 ein Ereignis mit einer Wahrscheinlichkeit von eins zu einer Milliarde täglich vorkommt und dass man sogar Ereignisse bedenken und behandeln muss, deren Wahrscheinlichkeit normalerweise so gering ist, dass man sich nicht darum kümmern würde.
    • Ich freue mich, über ShardStore zu lesen, und bin besonders von formaler Verifikation, eigenschaftsbasiertem Testen usw. beeindruckt. Dienste der vorherigen Generation waren bekanntermaßen voller Bugs, aber sie waren zumindest gut entworfen, auch dank der S3-Ingenieure, die geradezu darauf fixiert waren, sicher zu scheitern, um Datenverlust zu verhindern.
  • Ich arbeite in der Genomik und habe in den letzten zehn Jahren mit vielen Petabyte-Datenspeichern zu tun gehabt.

    • Aus meiner Erfahrung mit verschiedenen Speichersystemen wie AWS S3, GCP GCS, Ceph, Gluster und HP-Systemen schätze ich den Aufwand, der für den Betrieb solcher Systeme nötig ist, sehr.
    • Die Vorteile, sich Disk-IOPS mit zahllosen anderen Kunden zu teilen, sind enorm, und das auf einem einzelnen System abzumildern, ist sehr schwierig.
    • Bei gemeinsam untergebrachten Hardware-Clustern mussten wir das Batch-System anpassen, um IO bei groß angelegten Jobs wie RAM oder CPU als zuweisbare Ressource zu behandeln.
    • S3 und GCP sind teuer, aber ihre Performance ist es wert.
  • Was man alles bauen könnte, wenn S3 ein OAuth2-basiertes Protokoll verwenden würde, um Lese-/Schreibzugriffe zu delegieren.

    • Wir brauchen ein HTTP-basiertes Protokoll, mit dem Apps im Namen von Nutzern auf Daten zugreifen können.
    • Google Drive kommt dem am nächsten, hat aber das Problem des einzelnen Anbieters, und es ist schade, dass remoteStorage nicht populär geworden ist.
    • Ich hoffe, dass Solid Erfolg hat, aber es wirkt komplex.
    • Meine eigene Lösung für dieses Problem ist gemdrive.io, aber derzeit konzentriere ich mich auf andere Teile des selbst gehosteten Stacks.
  • Erläuterung der Spezifikationen der IBM-RAMAC-Festplatte von 1956.

    • Die Angabe Speicherkapazität: 3,75 MB, Kosten: etwa 9.200 $ pro Terabyte ist möglicherweise nicht korrekt.
    • Andere Seiten schlagen einen Kaufpreis von etwa 10.000 $ pro Megabyte vor, daher müsste die Angabe 9.200 $ pro Megabyte lauten.
  • Authentifizierung in verteilten Systemen zu behandeln, ist extrem schwierig.

    • Auf AWS-Größe wirkt Authentifizierung wie Magie, und AWS verfügt über ein reichhaltiges Berechtigungsmodell, bei dem sich Änderungen an der Authentifizierung mit Submillisekunden-Geschwindigkeit durch die Infrastruktur ausbreiten.
    • Bei S3 liegen Berechtigungen anders als bei anderen Diensten an der Ressource, möglicherweise aus Geschwindigkeitsgründen.
  • Als sehr erfahrener Ingenieur mit einer technischen Agenda verbringe ich mehr Zeit damit, Probleme zu entwickeln und klar zu beschreiben, statt Ideen zu liefern.

    • Um in einer solchen Rolle erfolgreich zu sein, konzentriert man sich darauf, Probleme zu präzisieren und Lösungen zu befürworten, und findet Wege, ein starkes Engineering-Team dabei zu unterstützen, die Lösung selbst zu verantworten.
  • Es ist schön zu sehen, dass Amazon-Mitarbeiter öffentlich über die internen Funktionsweisen von S3 sprechen.

    • Ich würde gern mehr darüber hören, wie Glacier funktioniert; da über die verwendeten Speichermedien noch nichts veröffentlicht wurde, gibt es viele Spekulationen.
  • Der Teil, in dem Festplattenköpfe mit einer 747 verglichen werden.

    • Es ist eine so präzise Arbeit, als würde ein Flugzeug bei 25.000 Erdumrundungen durch einen einzigen Fehler einen Grashalm verfehlen.
  • Wenn man in die Zeit der S3-KeyMap zurückgeht, hat man gelernt, dass sich die heißesten Objekte/Partitionen/Buckets auch nach ihrer Identifikation nicht einfach durch Verschieben beheben ließen.

    • Die tatsächliche Lösung bestand darin, die Partitionslast der Hosts in Quartile zu unterteilen und dann die Partitionen aus dem zweiten Quartil auf den am wenigsten ausgelasteten Host zu verschieben.
    • Dadurch wandelte sich die Fehlerrate von stabilen etwa 1 % zu fehlerfreien Tagen, woraufhin die Warnungen deutlich strenger angepasst wurden.
  • S3 ist nicht einfach nur Speicher, sondern ein Standard.

    • Einige Anbieter bieten S3-kompatiblen Speicher an, und ich bin mir nicht sicher, wie offen der Standard ist oder ob man Amazon bezahlen muss, um "S3-kompatibel" sagen zu dürfen, aber das ist ziemlich cool.