S3-Architektur: 3 Jahre Evolution fĂĽr Mail.ru Cloud Storage



Speicherkorridor von St-Pete



Hallo! Ich bin Mons Anderson, der Architekt der Mail.ru Cloud Solutions- Plattform , und ich werde Ihnen sagen, wie wir unseren S3-Speicher aufgebaut haben, wie er funktioniert, welche Lösungen sich als erfolgreich erwiesen haben und welche es wert wären, geändert zu werden, wenn wir dasselbe Projekt jetzt von Grund auf neu starten würden.



@Databases Meetup by Mail.ru Cloud Solutions & Tarantool. :



  • Mail.ru, S3-;
  • , Mail.ru Cloud Storage;
  • ;
  • : ;
  • ;
  • SSL-.


, .



Mail.ru, S3-



S3 Mail.ru, , .



Mail.ru . storage- — 36 12–14 . , .



«» (pair). — unit . , , , , .



— , , . , , 3/2.





(pair) —



PairDB — Tarantool. , , — Tarantool, .



PairDB , , , , . , , , . PairDB — .





Pair DB:



, , , , — FileDB. , : - -, .



File DB: ,

— Nylon, . , PairDB, FileDB. stateless-, , , FileDB , , , .





Nylon:



- . — Streamer. HTTP-: PUT, , GET, . HTTP — .



Streamer'y, Nylon PairDB, , , WebDAV .



, storage — nginx , . Streamer , , . .





Streamer:



, S3-



, , S3-. PUT . . S3. S3, , :



  • — ;
  • HTTP;
  • — ;
  • HTTP-S3 Endpoint. S3 — , .


. .





, S3 API. S3 API Amazon, XML . - , .



Nginx. SSL, , Lua (, ).



S3 Tarantool. S3 , Streamer.



Nginx + S3 API + Metadaten

Nginx + S3 API +





, S3. — . . . URL. — blob, , . : — URL, ACL ( ), — .



: , , . , : uploads chunks. .



Datenschema



b2b- , .

Tarantool.



Abrechnung



S3-:



, : , .



-. , - . - : S3- , , - . , -.



, - , , S3.



Tarantool. - — 21 , , . : -, . . , , . , Token Bucket. -, , , , . S3-, .



Ratenbegrenzungssystem



. S3 , . : Streamer, FileDB, PairDB, Storage. .



nginx, , SSD RAM-. Tarantool, , . , 32 , Tarantool .



Datencache



, , capacity (), , , , .



:



, - — .



S3- Tarantool. Tarantool, - . , API, — Tarantool, . , . .



Aktives Failover



,



, — . , .



: , , . , , . , , , . , .



Brachte Gegenstände, die keinen Sinn zum Scherben machen



, — , . .



Wachsende Objekte werden in einen Splittercluster verschleppt



, : , ACL. . , , , .



:



  • , , ;
  • , , ;
  • lifecycle — , , .


EndgĂĽltiges Sharded-Schema



, . , , , , .



Proxy teilen



, , .



, . 256 . . — , , :



f(bucket, shards) = subset



, , . map-reduce , , , . , . , , .



— , , . , :



f(object, subset) = shard



, , — .



Schaufelscherbenschema



, , . . , — , , .



EndgĂĽltiges Scherbenschema





— . , . , .



, . nginx, S3 API, , primary- ,



heiĂźe Box



, : « , , — , ». , , URL .



Warm- und Kaltlagerung



Icebox , Hotbox, - . Hotbox Icebox , .



, , , , , . . .



primary-. Tarantool :



  • , Hotbox;
  • Tarantool ( — Icebox), ;
  • , , , .

    Buckets synchronisieren



, , , , . , Hotbox, Icebox — , .



Migrating, , , , .



. API Icebox, Hotbox, , Nginx.



, , Nginx API Icebox .

Icebox nginx S3 API — :



Eingehende Anfragen wechseln



, — , Migrating, Local.



Datenmigration



, , .



Vermächtnis reinigen



:



  • Non-sharded. , .
  • Sharded.
  • , Migrating .


:



  • , .
  • .
  • : , , .


SSL-



Nginx. Nginx, OpenResty, Nginx LuaJIT.

— SSL-. S3- , CNAME. HTTPS : SSL-.



, SSL Nginx. Nginx, OpenResty, Nginx LuaJIT.



Nginx . ( ). ssl_certificate_by_lua, TLS-. Tarantool: .



, , Let's Encrypt.



Speicherung von SSL-Zertifikaten



, -,





. . , , , , , , . .



Tarantool . . , .



. , , . S3 .



S3 «». , . .



. , , , , .





. , Amazon, , .



. , .



Tarantool. Tarantool , , , .



@Databases Meetup by Mail.ru Cloud Solutions&Tarantool. Telegram Kubernetes Mail.ru Group.

, S3 .






All Articles