Arsitektur S3: evolusi 3 tahun untuk Mail.ru Cloud Storage



Koridor Penyimpanan oleh St-Pete



Halo! Saya Mons Anderson, arsitek platform Mail.ru Cloud Solutions , dan saya akan memberi tahu Anda cara kami membangun penyimpanan S3 kami, cara kerjanya, solusi mana yang berhasil, dan solusi mana yang layak diubah jika kami memulai proyek yang sama dari awal sekarang.



@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 + Metadata

Nginx + S3 API +





, S3. โ€” . . . URL. โ€” blob, , . : โ€” URL, ACL ( ), โ€” .



: , , . , : uploads chunks. .



Skema data



b2b- , .

Tarantool.



Penagihan



S3-:



, : , .



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



, - , , S3.



Tarantool. - โ€” 21 , , . : -, . . , , . , Token Bucket. -, , , , . S3-, .



Sistem Batas Tarif



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



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



Cache data



, , capacity (), , , , .



:



, - โ€” .



S3- Tarantool. Tarantool, - . , API, โ€” Tarantool, . , . .



Pengalihan aktif



,



, โ€” . , .



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



Membawa benda yang tidak masuk akal untuk dihancurkan



, โ€” , . .



Objek yang tumbuh dibawa ke cluster yang dipecah



, : , ACL. . , , , .



:



  • , , ;
  • , , ;
  • lifecycle โ€” , , .


Skema sharded akhir



, . , , , , .



Berbagi proxy



, , .



, . 256 . . โ€” , , :



f(bucket, shards) = subset



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



โ€” , , . , :



f(object, subset) = shard



, , โ€” .



Skema sharding bucket



, , . . , โ€” , , .



Skema sharding terakhir





โ€” . , . , .



, . nginx, S3 API, , primary- ,



kotak panas



, : ยซ , , โ€” , ยป. , , URL .



Penyimpanan panas dan dingin



Icebox , Hotbox, - . Hotbox Icebox , .



, , , , , . . .



primary-. Tarantool :



  • , Hotbox;
  • Tarantool ( โ€” Icebox), ;
  • , , , .

    Menyinkronkan keranjang



, , , , . , Hotbox, Icebox โ€” , .



Migrating, , , , .



. API Icebox, Hotbox, , Nginx.



, , Nginx API Icebox .

Icebox nginx S3 API โ€” :



Mengalihkan permintaan masuk



, โ€” , Migrating, Local.



Migrasi data



, , .



Membersihkan Legacy



:



  • 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.



Penyimpanan sertifikat SSL



, -,





. . , , , , , , . .



Tarantool . . , .



. , , . S3 .



S3 ยซยป. , . .



. , , , , .





. , Amazon, , .



. , .



Tarantool. Tarantool , , , .



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

, S3 .






All Articles