Zpět na domů

AWS S3: 1 PB/s na pomalých HDD

AWS S3 zajišťuje 1+ PB/s na HDD díky erasure coding 5/9, masivnímu paralelizmu a LSM-struktuře. Analýza fyzických omezení disků, mechanismů shardingu a boje s hot spots. Materiál pro technické specialisty.

S3: petabajty za sekundu na tvrdých discích
Advertisement 728x90

Architektura AWS S3: petabajtová propustnost na HDD

AWS S3 zpracovává více než 400 trilionů objektů, 150 milionů požadavků za sekundu a špičkový provoz přes 1 PB/s. Základem tohoto systému jsou pevné disky, i když mají omezení v IOPS (přibližně 120) a zpoždění až 16 ms při náhodném čtení 0,5 MB. Ekonomika uchování na HDD umožňuje uchovávat eksabajty dat za minimální cenu: kapacita vzrostla 7,2 milionkrát a cena za bajt klesla o 6 miliard krát během desetiletí.

Fyzika HDD určuje výkon: vyhledávání po stopě trvá 8–9 ms (průměr), zpoždění rotace je 4 ms a přenos 2,5 ms. Sekvenční přístup je efektivní (až 300 MB/s), ale náhodný je omezen na 32 MB/s na disk kvůli mechanickým pohybům hlavy.

Paralelizmus prostřednictvím Erasure Coding

S3 kompenzuje omezení HDD masivním paralelismem. Data se rozdělí do shardů pomocí schématu erasure coding (EC) 5 z 9: 5 datových + 4 kontrolních shardů. To poskytuje 1,8x nadbytečnost místo 3x při replikaci, odolnost proti 4 selháním a 5 zdrojů pro čtení.

Google AdInline article slot

Výhody EC:

  • Rozložení zatížení mezi 9 shardů minimalizuje hot spots.
  • Paralelní čtení z 5 shardů zrychluje přístup.
  • Shardování usnadňuje hedgeové dotazy pro obejití zpoždění.

Soubor 1 TB na jednom HDD dává 300 MB/s, na 20 tisících diskech – TB/s díky sčítání propustnosti.

Mechanismy paralelizmu na všech úrovních

Paralelizmus je realizován ve třech rovinách:

Google AdInline article slot
  • Klient-front-end: fondy HTTP spojení rozdělují požadavky na mnoho koncových bodů, vyhýbají se přetížení proxy a mezipamětí.
  • Front-end-back-end: EC sharduje objekty na tisíce disků v ShardStore (LSM-strom na logové struktuře).
  • Operace PUT/GET: multipart uploady pro zápis, byte-range GET pro čtení – rozdělení na 100+ proudů po 10 MB/s místo jednoho gigabajtu.

Zápis je sekvenční (logový), čtení vyžaduje náhodné rozložení shardů pro zabránění frontám.

Boj proti hot spots

S desítkami milionů disků a stovkami milionů shardů za sekundu je klíčovým výzvou rovnoměrné zatížení. Jeden disk na 32 MB/s je bottleneck, plus overhead z rebalancingu.

Strategie S3:

Google AdInline article slot
  • Náhodné rozložení: hashování shardů pro rovnoměrné využití.
  • Rebalancování: kontinuální přesun dat bez výpadku.
  • Horizontální škálování: přidávání disků bez dopadu na dostupnost.

LSM-struktura ShardStore je optimalizovaná pro append-only logy, kde PUT je rychlý, a GET probíhá přes indexy s paralelním hledáním.

Co je důležité

  • S3 dosahuje 1+ PB/s na HDD díky EC 5/9 a paralelismu 100+ proudů.
  • Průměrné zpoždění náhodného I/O: 16 ms/0,5 MB, kompenzováno 5 zdroji čtení.
  • Ekonomika: 1,8x nadbytečnost EC vs 3x replikace šetří eksabajty.
  • Náhodné rozložení + rebalancování předejde domino efektům od hot spots.
  • Backend na LSM-stromu vytěžuje sekvenční výkon HDD.

— Editorial Team

Advertisement 728x90

Číst dál