بنية S3: 3 سنوات من التطور في Mail.ru Cloud Storage



ممر التخزين بواسطة St-Pete



مرحبا! أنا مونس أندرسون ، مهندس منصة Mail.ru Cloud Solutions ، وسأخبرك كيف قمنا ببناء تخزين S3 الخاص بنا ، وكيف يعمل ، وما هي الحلول التي أثبتت نجاحها ، وأيها يستحق التغيير إذا بدأنا نفس المشروع من الصفر الآن.



@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 + البيانات الوصفية

Nginx + S3 API +





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



: , , . , : uploads chunks. .



مخطط البيانات



b2b- , .

Tarantool.



الفواتير



S3-:



, : , .



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



, - , , S3.



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



نظام حد السعر



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



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



ذاكرة التخزين المؤقت للبيانات



, , capacity (), , , , .



:



, - — .



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



تجاوز الفشل النشط



,



, — . , .



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



أخرج الأشياء التي لا فائدة من تجزئتها



, — , . .



يتم نقل الكائنات المتنامية بعيدًا إلى كتلة مجزأة



, : , ACL. . , , , .



:



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


مخطط نهائي مجزأ



, . , , , , .



وكيل تقاسم



, , .



, . 256 . . — , , :



f(bucket, shards) = subset



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



— , , . , :



f(object, subset) = shard



, , — .



مخطط تقسيم الجرافة



, , . . , — , , .



مخطط التقسيم النهائي





— . , . , .



, . nginx, S3 API, , primary- ,



صنودق حار



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



التخزين الساخن والبارد



Icebox , Hotbox, - . Hotbox Icebox , .



, , , , , . . .



primary-. Tarantool :



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

    مزامنة الجرافات



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



Migrating, , , , .



. API Icebox, Hotbox, , Nginx.



, , Nginx API Icebox .

Icebox nginx S3 API — :



تبديل الطلبات الواردة



, — , Migrating, Local.



ترحيل البيانات



, , .



ميراث التنظيف



:



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



تخزين شهادة SSL



, -,





. . , , , , , , . .



Tarantool . . , .



. , , . S3 .



S3 «». , . .



. , , , , .





. , Amazon, , .



. , .



Tarantool. Tarantool , , , .



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

, S3 .






All Articles