Călătoria F2FS și de ce contează sistemele de fișiere: interviu cu Stan Dmitriev din Tuxera

XDA îl intervievează pe Stan Dmitriev de la Tuxera, o companie finlandeză specializată în sisteme de fișiere. Stan discută despre sistemele de fișiere și despre viitorul F2FS.

Sistemele de fișiere nu sunt discutate prea des pe XDA sau pe orice alt forum. Subiectul implică multă dezvoltare la nivel scăzut, așa că dezvoltatorii preferă să se concentreze pe aplicații, ROM-uri sau nuclee. Cu toate acestea, sistemul de fișiere este o parte vitală a oricărei stocări. Este tehnologia care descrie modul în care sunt stocate și recuperate datele din stocarea dispozitivului dvs. Există multe tipuri diferite de sisteme de fișiere – fiecare cu propriile avantaje și dezavantaje – iar alegerea unuia față de altul poate face o diferență enormă în ceea ce privește stabilitatea și performanța. Deci, cum fac OEM-urile această alegere? Am avut plăcerea să vorbesc cu Stan Dimitriev, Managerul PR și Comunicații la Tuxera, o companie finlandeză care oferă soluții de sisteme de fișiere multor mari OEM.

Î: Vă puteți prezenta pe dumneavoastră și pe Tuxera?

R: Eu sunt Stan Dmitriev. De când am primit primul meu telefon Android (HTC EVO 3D), am devenit un fan activ al comunității XDA. Să spunem că am instalat un ROM personalizat și mi-am anulat garanția în prima zi (Stan. Dmitriev este membru al forumului pe XDA). În urmă cu câțiva ani, am co-fondat un proiect de pornire numit Corgi for Feedly, la acea vreme comunitatea XDA ne-a ajutat foarte mult cu definirea și dezvoltarea aplicației.

În prezent, sunt PR & Communications Manager la Tuxera, care este cea mai importantă companie de software de stocare embedded, mai exact sisteme de fișiere, companie de pe piață. Software-ul nostru alimentează mai mult de un miliard de dispozitive și poate fi găsit în cele mai recente telefoane emblematice, mașini, routere, drone și camere. Povestea companiei a început cu NTFS-3G, când președintele nostru și CTO Szabolcs „Szaka” Szakactics a făcut ca NTFS să funcționeze cu dispozitive Linux. În prezent, dezvoltăm propriile noastre sisteme de fișiere și implementări atât pentru stocarea externă, cât și încorporată și lucrăm cu majoritatea companiilor de automobile, precum și cu multe companii de smartphone-uri.

Aici, la Tuxera, vizităm destul de des forumurile XDA, mai ales atunci când depanăm un dispozitiv blocat sau găsim un ROM / kernel personalizat cu care să te joci. Mulți dintre colegii mei vizitează frecvent XDA pentru a citi despre cele mai recente știri de deep tech despre ecosistemele Android și Linux.

Î: Sistemele de fișiere sunt o parte integrantă a dispozitivelor noastre, dar foarte puțini oameni știu despre rolul, îmbunătățirile, punctele forte și punctele lor slabe. Care este darul și de ce ar trebui mai mulți oameni să se intereseze de sistemele de fișiere care le țin împreună datele?

R: Sistemele de fișiere sunt un element vital al nucleului Linux care este responsabil pentru toate interacțiunile dintre dispozitiv și stocarea acestuia. De fiecare dată când faceți o fotografie, deschideți o aplicație sau vizionați un videoclip - sistemul de fișiere joacă un rol esențial pentru ca sistemul de operare să acceseze și să stocheze toate fișierele. Sistemele de fișiere nu au fost atât de interesante de ceva timp, motivul principal este că blocajul în performanță a venit din stocare.

Dar, deoarece vitezele blițului devin extrem de rapide, mai ales odată cu introducerea UFS, acum software-ul trebuie modernizat pentru a ține pasul cu performanța blițului. Nu numai că sistemul de fișiere poate afecta vitezele de stocare, dar joacă și un rol important în menținerea performanței telefonului pe termen lung. Dacă este făcută greșit, stocarea va deveni fragmentată, fenomen în care o utilizare ineficientă a stocării poate reduce performanța dispozitivului. Reducerea la minimum a unei astfel de posibilități este o caracteristică importantă a unui sistem de fișiere.

Î: Ce este F2FS (primer) și de ce a început să se îndrepte spre Android? Ce producători OEM au condus acuzația?

R: F2FS este un sistem de fișiere open source, cu pitch-ul principal că este proiectat pentru arhitectura de stocare flash. Stocarea NAND (flash) este utilizată în toate telefoanele Android actuale, de obicei, ca soluții eMMC sau UFS. Proiectul a fost dezvoltat de Samsung inițial și a câștigat un interes puternic din partea unora dintre producătorii de echipamente mobile. Nu avem datele despre care OEM-urile au început această schimbare. Dar din câte știu, personal, Motorola a fost primul, cu mulți alți OEM precum OnePlus și Huawei urmând această schimbare în scurt timp.

Î: Care au fost avantajele pe care le-a oferit? OEM-urile citează operațiuni de stocare mai rapide și performanță UI, dar există și alte avantaje?

A: The pas a fost destul de simplu, F2FS aduce performanțe mai mari stocării bazate pe flash. Sistemul dvs. s-ar porni mai repede (viteze de citire mai mari), vitezele de scriere ar fi mai mari, permițând să înregistrați 4K grele, cu o rată de cadre mai mare în slow-motion și videoclipuri la 360 de grade. În plus, latența dintre sistem și stocare ar fi foarte scăzută, ceea ce înseamnă că animația și deschiderea aplicațiilor s-ar simți mult mai rapide.

Î: Problemele, în special, par să se concentreze în jurul performanței degradate. Ați putea explica asta mai în profunzime? Care este cauza?

R: Ideea F2FS a fost într-adevăr grozavă, pentru a obține cea mai rapidă performanță posibilă pentru dispozitivele flash. Dar este important să ne concentrăm și pe performanță pe termen lung. Hardware-ul poate fi întotdeauna rapid din cutie, dar menținerea continuă a acestor viteze este o provocare mult mai grea. Pentru un caz de utilizare Android, stocarea dispozitivului este aproape plină de cele mai multe ori și există mii de operațiuni de citire și scriere care au loc uneori chiar și într-o secundă. Multe dintre aplicațiile populare rulează servicii în fundal, ceea ce înseamnă că aplicația efectuează unele operațiuni de citire/scriere chiar și atunci când nu o deschideți. Dacă sunt făcute greșit, operațiunile de scriere pot crește drastic fragmentarea stocării, făcând fiecare operație următoare de citire/scriere și mai lentă.

Considerăm fragmentarea stocării ca fiind una dintre cauzele scăderii performanței pe dispozitivele Android. Acum, ceea ce trebuie determinat este dacă problemele sunt cauzate de compatibilitatea hardware și cum funcționează sistemul de fișiere stocare de la diferiți OEM sau dacă arhitectura F2FS se concentrează pe vitezele inițiale, iar acest lucru afectează pe termen lung performanţă. Problemele pot fi cauzate și de erori, deoarece sistemul de fișiere este încă în dezvoltare.

Î: Există alte probleme de performanță sau fiabilitate care sunt mai puțin cunoscute?

R: Un lucru interesant pe care l-am găsit este că F2FS are o suprasarcină neașteptată, cel puțin câteva sute de MB de stocare pentru stocarea în cache și întreținerea stocării. Acest lucru cu siguranță are sens dacă aveți 64 GB de spațiu de stocare sau mai mult, dar pe telefoane cu buget redus cu dimensiuni ROM de 8 GB, 16 GB, aceasta ar putea fi o problemă.

Principala constatare este că implementarea actuală a F2FS este excelentă pentru mediile de numai citire, când doriți să obțineți viteze mai mari. F2FS trebuie să se concentreze pe îmbunătățirea performanței de stocare pe termen lung într-o interacțiune ridicată cu fișiere mici, deoarece acest lucru se întâmplă în mediul Android.

Aceasta este într-un fel o bătălie de teorii. Vă puteți imagina că performanța hardware este atât de rapidă, încât degradarea nu va fi o problemă. Sau priviți în sens invers, unde hardware-ul este atât de rapid, încât să aveți o performanță ceva mai lentă, care poate fi menținută pe termen lung, este ceea ce ar trebui atins. F2FS a ales prima abordare și nu există opțiuni greșite aici, este un experiment important de făcut și o curbă de învățare pentru întreaga industrie. Acestea fiind spuse, ceea ce vedem în prezent este că performanța pe termen lung ar trebui să fie principalul obiectiv în acest moment.

Î: Unii producători OEM au renunțat la utilizarea F2FS, în timp ce alții precum Huawei încă acceptă F2FS pe dispozitivele recente. Crezi că există vreo tendință în orice caz? (Adopție lentă sau abandon complet)

R: Există mai multe scenarii pentru care OEM-urile ar continua să folosească F2FS.

  • Un OEM ar putea avea propria implementare a F2FS, care aduce unele remedieri la problemele cunoscute.

  • Un OEM ar putea avea legături foarte bune cu producătorul de stocare flash, deoarece are acces la stratul FTL de NAND și tuning sistemul de fișiere să funcționeze bine cu hardware-ul poate aduce îmbunătățiri semnificative, inclusiv la fragmentarea flash-ului depozitare.

  • Un OEM ar putea prefera să se concentreze pe performanța inițială a telefonului, deoarece ciclul de viață mediu al unui smartphone este de aproximativ 2 ani, iar pe măsură ce telefonul încetinește, va cumpăra deja unul nou.

  • Un OEM ar putea rula și un serviciu de defragmentare, acest lucru poate rezolva parțial problemele F2FS.

Acestea sunt câteva dintre scenariile posibile, în același timp, vedem că unii OEM sunt deja revenind la utilizarea Ext4, de exemplu, OnePlus 3T folosea F2FS, dar toate modelele mai noi OnePlus folosesc Ext4.

Î: F2FS are nevoie în prezent de o soluție de defragmentare în mișcare, care ar putea rezolva problema care apare în prezent cu F2FS.

R: Instrumentele de defragmentare există de ceva timp, principalul avantaj este că pot realoca/rescrie blocurile de memorie pentru a reduce fragmentarea stocării. Dar problema cu această abordare este că rescrieți celulele de memorie flash, ceea ce reduce durata de viață a stocării. Cel mai bun scenariu ar fi să scrieți datele în mod inteligent, în primul rând. Controlul daunelor nu este soluția de bază.

Gândiți-vă la asta ca și cum ați face mizerie într-o cameră, aruncând o mulțime de lucruri de jur împrejur și apoi începeți să le aranjați în sertare. De ce să nu faci asta imediat?

Î: Au reușit OEM-urile să contracareze sau să abordeze unele dintre problemele care împiedică F2FS? De exemplu, Huawei respinge performanța degradantă și promovează o UX mai rapidă în timp, în parte datorită „AI”.

R: Ei bine, dacă un AI poate analiza comportamentul de stocare și rescrie sistemul de fișiere pentru a funcționa pentru un anumit dispozitiv flash, acest lucru poate rezolva probabil problemele de fragmentare. AI poate, de asemenea, să analizeze ce aplicații sau funcții le folosește cel mai mult persoana și să le preîncărcare/să le stocheze în consecință – făcând ca funcțiile telefonului să pară mai rapide, asta nu ar rezolva problema fragmentării deşi. Presupunerea mea principală este că majoritatea optimizărilor sunt legate de spațiul utilizatorului și nu de unele optimizări ale sistemului de fișiere profund tech.

Î: Care sunt alte dezvoltări interesante ale sistemului de fișiere de care ar trebui să fim conștienți? Cum ar avea impact asupra experienței utilizatorului, chiar dacă la un nivel subtil sau scăzut?

R: F2FS și Ext4 sunt încă foarte vitale și sunt sistemele de fișiere de bază pentru open source. Ext4 este mai matur și mai fiabil, dar ar putea limita performanța blițului; F2FS este mai rapid, dar și mai experimental. Întreaga situație în care software-ul devine blocajul este ceea ce face sistemele de fișiere din nou interesante. Trecem de la fiecare secundă la fiecare milisecundă contează mediile și sistemele de fișiere vor juca un rol important în această creștere a performanței. Cea mai interesantă dezvoltare pentru sistemele de fișiere ar fi crearea unei soluții cu adevărat optimizate pentru flash, care să poată menține performanța flash-ului.

La Tuxera, dezvoltăm Tuxera Flash File System, unde facem lucruri precum software-ul specific hardware-ului optimizări care asigură că sistemul de fișiere este optimizat pentru un anumit dispozitiv, caz de utilizare și flash memorie. Având o prezență în domeniul auto, ne concentrăm în principal pe performanța pe termen lung și pe degradarea memoriei flash. Acesta este mai mult tipul de optimizare hardware x software, despre care Steve Jobs obișnuia să vorbească. Aplicarea Machine Learning pentru a crea astfel de „drivere” este ceva despre care credem că ar putea fi cu adevărat interesant pentru întreaga industrie de stocare.

Î: De asemenea, stocarea noastră fizică flash continuă să devină mai rapidă, cum vedeți acest fapt care afectează atât experiența utilizatorului final, cât și viitorul sistemelor de fișiere?

R: Pe măsură ce hardware-ul devine mai rapid, software-ul trebuie să se asigure că poate ține pasul cu aceste arhitecturi hardware avansate, aceasta este principala provocare pe care o rezolvă sistemele de fișiere în prezent. Puteți avea caracteristici incredibile de viteză de citire și scriere ale dispozitivului, dar dacă stiva de software aduce o latență suplimentară - experiența utilizatorului nu se va simți atât de rapidă. Acesta este un moment interesant pentru dezvoltarea sistemului de fișiere, deoarece există o nevoie clară de o tehnologie mai rapidă, mai rapidă și totuși mai fiabilă pentru mobil.

Dar pe măsură ce flash-ul devine mai rapid, întrebarea principală devine, care este viteza cu care performanța devine irelevantă? Gândiți-vă la asta ca la rezoluția ecranului Retina, unde o densitate mai mare a pixelilor nu face imaginea mai clară pentru ochiul uman.

Î: Vă mulțumim pentru timpul acordat.

A: Mulțumesc!