
Echipa de stocare S3 a obiectelor a tradus un articol despre criteriile importante la alegerea stocării de obiecte. Iată textul din perspectiva autorului.
Când se discută despre stocarea de obiecte, de obicei, oamenii se gândesc doar la o singură caracteristică — prețul pe TB/GB. Desigur, această metrică este importantă, dar face abordarea unilaterala și reduce stocarea de obiecte la un instrument pentru arhivarea datelor. În plus, această abordare micșorează importanța stocării de obiecte în cadrul tehnologic al unei companii.
Atunci când alegeți o stocare de obiecte, este important să acordați atenție la cinci caracteristici:
- performanță;
- scalabilitate;
- compatibilitate cu S3;
- reacția la defecțiuni;
- integritate.
Aceste cinci caracteristici sunt noile metrici ale stocării de obiecte, pe lângă cost. Să le analizăm pe toate.
Performanță
Stocările de obiecte tradiționale nu excelează în performanță. Furnizorii de servicii au sacrificat continuu performanța în favoarea prețurilor mai mici. Cu toate acestea, cu stocările de obiecte moderne, lucrurile stau altfel.
Viteza diferitelor stocări se apropie de Hadoop sau chiar o depășește. Cerințele actuale de viteză de citire și scriere variază între 10 GB/s - pentru hard disk-uri, până la 35 GB/s - pentru NVMe.
Această lățime de bandă este suficientă pentru Spark, Presto, Tensorflow, Teradata, Vertica, Splunk și alte cadre de calcul moderne din stiva analitică. Faptul că bazele de date MPP sunt configurate pe stocările de obiecte arată că acestea sunt utilizate din ce în ce mai frecvent ca stocare principală.
Dacă sistemul dvs. de stocare nu oferă viteza necesară, nu puteți utiliza datele și extrage valoare din ele. Chiar dacă extrageți date din stocarea de obiecte într-o structură de procesare în memorie, va fi totuși nevoie de lățime de bandă pentru transferul datelor în și din memorie. La stocările de obiecte învechite, aceasta este insuficientă.
Acesta este un aspect esențial: noul indicator de performanță este lățimea de bandă, nu întârzierea. Aceasta este necesară pentru datele scalabile și este norma în infrastructura modernă de date.
Deși testele de performanță sunt o modalitate bună de a determina performanța, aceasta nu poate fi măsurată cu exactitate până când aplicația nu este rulată în mediu. Abia după aceasta se poate spune unde se află, de fapt, problema: în software, discuri, rețea sau la nivel de calcul.
Scalabilitate
Prin scalabilitate se înțelege numărul de petabytes care pot fi stocate într-un singur spațiu de nume. Furnizorii declară că scalabilitatea este ușoară, dar omisă este informația că, pe măsură ce se scalează, sistemele monolitice masive devin fragile, complexe, instabile și costisitoare.
Noua măsură a scalabilității este numărul de spații de nume sau clienți pe care îi poți deservi. Această metrică este preluată direct de la hyperscaleri, unde blocurile de stocare sunt mici, dar scalabile până la miliarde de unități. În general, aceasta este o metrică de cloud.
Când blocurile standard sunt de dimensiuni mici, acestea sunt mai ușor de optimizat, adică de a asigura securitatea, controlul accesului, gestionarea politicilor, a ciclului de viață și a actualizărilor fără a întrerupe funcționarea. Și, în cele din urmă, de a asigura performanța. Dimensiunea blocului de construcție este o funcție a gestionabilității zonei de eșec, așa se construiesc sistemele cu rezistență ridicată.
Multicliența are multe caracteristici. Deși parametrul indică modul în care organizațiile oferă acces la date și aplicații, el se referă de asemenea la aplicații în sine și la logica izolării acestora una de cealaltă.
Caracteristicile abordării moderne a multiclienței:
- Într-un timp scurt, numărul de clienți poate crește de la câteva sute la câteva milioane.
- Clienții sunt complet izolați unul de celălalt. Aceasta le permite să ruleze versiuni diferite ale aceluiași software și să stocheze obiecte cu configurații, permisiuni, funcții, niveluri de securitate și întreținere diferite. Acest lucru este necesar atunci când se scalează noi servere, actualizări și regiuni geografice.
- Stocarea se scalează elastic, resursele sunt furnizate la cerere.
- Fiecare operațiune este gestionată prin API și automatizată fără intervenția umană.
- Software-ul poate fi găzduit în containere și poate utiliza sisteme standard de orchestrare, cum ar fi Kubernetes.
Compatibilitate cu S3
Amazon S3 API este, practic, standardul pentru stocarea de obiecte. Fiecare furnizor de software pentru stocarea de obiecte declară că este compatibil cu acesta. Compatibilitatea cu S3 este binară: fie este implementată complet, fie nu este deloc.
În practică, pot apărea sute sau mii de scenarii limită în care ceva nu funcționează bine atunci când folosiți o stocare de obiecte. În special, la furnizorii de software și servicii proprietare. Principalele sale scenarii de utilizare sunt arhivarea directă sau backupul, așa că motivele pentru a apela la API sunt puține, iar opțiunile de utilizare sunt omogene.
Există avantaje semnificative pentru software-ul cu sursă deschisă. Acesta acoperă majoritatea scenariilor limită, având în vedere dimensiunea și diversitatea aplicațiilor, sistemelor de operare și arhitecturii hardware.
Toate acestea sunt importante pentru dezvoltatorii de aplicații, așa că este bine să testați funcționarea aplicației cu furnizorii de stocare. Sursa deschisă simplifică procesul — este mai ușor de înțeles ce platformă se potrivește aplicației dumneavoastră. Furnizorul poate fi utilizat ca un singur punct de acces la stocări — ceea ce înseamnă că va satisface nevoile dumneavoastră.
Sursa deschisă înseamnă: aplicațiile nu sunt legate de un furnizor și sunt mai transparente. Aceasta oferă un ciclu de viață lung pentru aplicație.
Și câteva observații suplimentare referitoare la sursa deschisă și S3.
Dacă lansați o aplicație pentru date mari, S3 SELECT îmbunătățește semnificativ performanța și eficiența. Acest lucru se datorează utilizării SQL pentru a extrage din stocare doar obiectele de care aveți nevoie.
Un aspect cheie este suportul pentru notificări de bucket. Notificările de bucket simplifică procesarea serverless — un component esențial pentru orice arhitectură microservicii care se oferă ca serviciu. Având în vedere că stocarea de obiecte este, practic, o stocare cloud, această capacitate devine decisivă atunci când aplicațiile cloud utilizează stocare de obiecte.
În cele din urmă, implementarea S3 ar trebui să susțină API-urile de criptare Amazon S3 la nivel de server: SSE-C, SSE-S3, SSE-KMS. Cu atât mai bine dacă S3 susține măsuri de protecție împotriva accesului neautorizat, care sunt cu adevărat sigure.
Răspuns la defecțiuni
Un indicator pe care probabil că îl omiteți frecvent este modul în care sistemul gestionează defecțiunile. Eșecurile apar din diverse motive, iar stocarea obiectelor trebuie să le gestioneze pe toate.
De exemplu, există un singur punct de eșec, iar această metrică este egală cu zero.
Din păcate, multe sisteme de stocare a obiectelor folosesc noduri speciale care trebuie activate pentru ca clusterul să funcționeze corect. Acestea includ noduri de nume sau servere de metadate — acest lucru creează un singur punct de eșec.
Chiar și în cazul în care sunt prevăzute mai multe puncte de eșec, capacitatea de a rezista defecțiunilor catastrofale este esențială. Discurile se defectează, serverele se defectează. Cheia este crearea unui software conceput pentru a trata eșecurile ca pe o stare normală. Atunci când un disc sau un nod se defectează, acest software va continua să funcționeze fără modificări.
Protecția încorporată împotriva ștergerii și degradării datelor garantează: puteți pierde atât de multe discuri sau noduri cât aveți blocuri de paritate — de obicei, este vorba de jumătate din discuri. Și doar atunci software-ul nu va putea recupera datele.
Defectarea este rareori testată sub sarcină, dar un astfel de test este obligatoriu. Simularea eșecului sub sarcină va arăta costurile totale suportate după o defecțiune.
Consistență
Un indicator de consistență de 100% este de asemenea numit consistență strictă. Consistența este componenta cheie a oricărui sistem de stocare, dar consistența strictă este destul de rar întâlnită. De exemplu, Amazon S3 ListObject nu este strict consistent, este consistent doar la final.
Ce se înțelege prin consistență strictă? Pentru toate operațiile după o operațiune PUT confirmată, trebuie să se îndeplinească următoarele:
- Valoarea actualizată este vizibilă la citirea de pe orice nod.
- Actualizarea este protejată prin rezervare împotriva defectării nodului.
Aceasta înseamnă: dacă deconectați cablul în mijlocul unei înregistrări, nu se va pierde nimic. Sistemul nu va returna niciodată date corupte sau învechite. Aceasta este o standardă înaltă, care are relevanță pentru multe scenarii: de la aplicații tranzacționale la backup și recuperare.
Concluzie
Acestea sunt noile metrici ale stocării de obiecte, care reflectă modelele de utilizare din organizațiile moderne, unde performanța, consistența, scalabilitatea, domeniile de faliment și compatibilitatea cu S3 sunt blocurile fundamentale pentru aplicațiile cloud și analiza big data. Recomand utilizarea acestei liste împreună cu prețul la crearea stivelor de date moderne.
Despre stocarea de obiecte Mail.ru Cloud Solutions: .
Ce altceva să citești:
- .
- .
- .
Sursa: habr.com
