Kontinuierliche Innovation: Eine kurze Geschichte des AWS-Block-Storage
(allthingsdistributed.com)Kontinuierliche Innovation: Eine kurze Geschichte des AWS-Block-Storage
-
Einführung
- Marc Olson arbeitet seit mehr als 10 Jahren im Elastic Block Store (EBS)-Team.
- EBS hat sich von einem einfachen Block-Storage-Service zu einem groß angelegten Netzwerk-Storage-System entwickelt, das täglich mehr als 140 Billionen Operationen verarbeitet.
- Dieser Beitrag teilt den Entwicklungsweg von EBS und wichtige Erkenntnisse daraus.
-
Die frühe Geschichte von EBS
- EBS wurde am 20. August 2008 eingeführt und begann mit der einfachen Idee, netzwerkgebundenen Block Storage für EC2-Instanzen bereitzustellen.
- Anfangs wurden gemeinsam genutzte Hard Disk Drives (HDDs) verwendet; heute kann EBS einer einzelnen EC2-Instanz mehrere Hunderttausend IOPS bereitstellen.
- EBS verarbeitet heute über eine verteilte SSD-Flotte täglich mehr als 140 Billionen Operationen.
-
Queuing-Theorie
- Die Art und Weise, wie Computersysteme mit Storage interagieren, hat sich grundlegend nicht verändert.
- Die CPU stellt Anfragen in eine Queue, und das Storage-Gerät holt die Daten aus dem CPU-Speicher und speichert sie auf einem dauerhaften Medium oder überträgt die Daten umgekehrt in den CPU-Speicher.
- Die Queuing-Theorie spielt eine wichtige Rolle beim Verständnis dieses Prozesses.
-
Der Übergang von HDD zu SSD
- Frühes EBS nutzte HDDs, deren Leistung durch physische Grenzen eingeschränkt war.
- Mit dem Aufkommen von SSDs konnten auch zufällige Anfragen fast so schnell wie sequentielle Anfragen verarbeitet werden.
- 2012 wurden ein neuer Storage-Server-Typ mit SSDs sowie ein neuer EBS-Volume-Typ namens Provisioned IOPS eingeführt.
-
Messung und Betrieb
- 2012 verfügte EBS nur über grundlegende Telemetrie.
- Um die Systemleistung zu verbessern, musste zuerst herausgefunden werden, was genau das Problem war, und es musste nach Priorität behoben werden.
- Es wurden Verfahren aufgebaut, um IO in mehreren Subsystemen zu messen, und durch kontinuierliches Monitoring wurden Veränderungen erkannt.
-
Divide and Conquer in der Organisation
- Das EBS-Storage-Server-Team wurde in kleine Teams umstrukturiert, die sich auf bestimmte Bereiche wie Datenreplikation, Haltbarkeit und Snapshot-Hydration konzentrierten.
- Jedes Team konnte Änderungen unabhängig iterieren und committen.
-
Annahmen hinterfragen
- Es wurde entdeckt, dass die Standardeinstellungen des Xen-Hypervisors die Leistung begrenzten.
- Mithilfe der Nitro-Offload-Karte wurden Netzwerk- und Storage-Verarbeitungsaufgaben auf Hardware ausgelagert.
-
Experimente zur Netzwerkoptimierung
- Mit der Migration von EBS auf Nitro nahm der Overhead des Netzwerks selbst zu.
- Zur Verbesserung der Netzwerkleistung wurde anstelle von TCP das Protokoll SRD (Scalable Relatable Diagram) entwickelt.
-
Beschränkungen fördern Innovation
- Um allen Kunden die Vorteile von SSDs zu bieten, wurden SSDs hinzugefügt, ohne die bestehende Hardware auszutauschen.
- SSDs wurden manuell in die Server eingebaut, neue Schreibvorgänge zunächst auf SSDs gespeichert und anschließend asynchron auf HDDs geflusht.
-
Rückblick auf die Skalierung der Performance
- Eine persönliche Wachstumsgeschichte: der Übergang von der Kultur eines kleinen Unternehmens zu einer großen Organisation.
- Durch gemeinschaftliche Debugging-Sessions wurden Probleme gelöst und die Effizienz des Teams gesteigert.
-
Fazit
- EBS hat sich nicht durch eine einzelne große Veränderung entwickelt, sondern durch eine Reihe schrittweiser Verbesserungen.
- Die Anforderungen der Kunden werden weiter steigen, und genau das treibt fortlaufende Innovation und Iteration an.
# Zusammenfassung von GN⁺
- Dieser Beitrag bietet die Insider-Perspektive darauf, wie sich AWS EBS entwickelt hat.
- Er behandelt verschiedene technische Herausforderungen und Lösungsansätze wie Queuing-Theorie, die Einführung von SSDs und Netzwerkoptimierung.
- Er betont die Bedeutung kontinuierlicher Messung und Steuerung zur Verbesserung der Performance.
- Ähnliche Produkte sind Google Cloud Persistent Disk und Microsoft Azure Disk Storage.
1 Kommentare
Hacker-News-Kommentare
Wenn man sich für große Systeme interessiert, lohnt es sich, diesen Artikel zu lesen
Um ein Problem zu lösen, muss man wissen, was falsch läuft
Das Projekt, 2013 SSDs in EBS-Server einzubauen, ist eine der interessanten Geschichten von AWS
Der ungefähr viertägige Ausfall von AWS wurde durch EBS verursacht und erschütterte das Vertrauen in AWS
Reddit war 2008 einer der frühen Nutzer von EBS
Das Hinzufügen zufälliger Latenz kann den Effekt haben, die durchschnittliche Latenz und Ausreißer zu verringern
Durch die Arbeit bei großen Internetunternehmen wurden viele Lektionen gelernt
Der Teil, in dem 2013 manuell SSDs in alle EBS-Einheiten eingebaut wurden, war interessant
2009 wurde ein Vortrag über das Innenleben von Amazon S3 gehalten
In den frühen Tagen der Cloud wurde General-Purpose-Hardware verwendet, heute wird für einzelne Services spezialisierte Hardware eingesetzt
Das erste Diagramm ist falsch oder veraltet
Es wird nach dem besten Weg gesucht, einem neuen EC2-Instance ein schnelles 256-GB-Dataset-Verzeichnis bereitzustellen