Il viaggio di F2FS e perché i file system sono importanti: intervista a Stan Dmitriev di Tuxera

click fraud protection

XDA intervista Stan Dmitriev di Tuxera, un'azienda finlandese specializzata in file system. Stan parla dei file system e del futuro di F2FS.

I file system non vengono discussi su XDA o su qualsiasi altro forum troppo spesso. L'argomento coinvolge molto sviluppo di basso livello, quindi gli sviluppatori preferiscono concentrarsi su applicazioni, ROM o kernel. Tuttavia, il file system è una parte vitale di ogni archiviazione. È la tecnologia che delinea il modo in cui i dati nella memoria del tuo dispositivo vengono archiviati e recuperati. Esistono molti tipi diversi di file system, ciascuno con i propri vantaggi e svantaggi, e sceglierne uno piuttosto che un altro può fare un'enorme differenza in termini di stabilità e prestazioni. Quindi, come fanno gli OEM a fare questa scelta? Ho avuto il piacere di parlare con Stan Dimitriev, il responsabile PR e comunicazione di Tuxera, un'azienda finlandese che fornisce soluzioni di file system a molti grandi OEM.

D: Puoi presentare te stesso e Tuxera?

R: Sono Stan Dmitriev. Da quando ho ricevuto il mio primo telefono Android (HTC EVO 3D), sono diventato un fan attivo della community XDA. Diciamo solo che ho installato una ROM personalizzata e ho invalidato la mia garanzia il primo giorno (Stan. Dmitriev è un membro del forum su XDA). Un paio di anni fa ho co-fondato un progetto startup chiamato Corgi for Feedly, a quel tempo la comunità XDA ci ha aiutato molto nella definizione e nello sviluppo dell'applicazione.

Attualmente sono PR e Communications Manager presso Tuxera, che è l'azienda leader sul mercato di software di archiviazione incorporata, file system per essere precisi. Il nostro software alimenta più di un miliardo di dispositivi e può essere trovato nei più recenti telefoni, automobili, router, droni e fotocamere di punta. La storia dell'azienda è iniziata con NTFS-3G, quando il nostro presidente e CTO Szabolcs “Szaka” Szakactics ha realizzato NTFS per funzionare con i dispositivi Linux. Attualmente sviluppiamo i nostri file system e le nostre implementazioni sia per l'archiviazione esterna che incorporata e collaboriamo con la maggior parte delle aziende automobilistiche presenti sul mercato, nonché con molte aziende di smartphone.

Qui a Tuxera visitiamo spesso i forum XDA, soprattutto quando risolviamo i problemi di un dispositivo in muratura o quando troviamo una ROM/kernel personalizzata con cui giocare. Molti dei miei colleghi visitano spesso XDA per leggere le ultime novità sulla tecnologia profonda sugli ecosistemi Android e Linux.

D: I file system sono parte integrante dei nostri dispositivi, ma pochissime persone ne conoscono il ruolo, i miglioramenti, i punti di forza e di debolezza. Qual è il vantaggio e perché più persone dovrebbero interessarsi ai file system che tengono insieme i loro dati?

R: I file system sono un elemento vitale del kernel Linux che è responsabile di tutte le interazioni tra il dispositivo e il suo dispositivo di archiviazione. Ogni volta che scatti una foto, apri un'app o guardi un video, il file system svolge un ruolo fondamentale affinché il sistema operativo possa accedere e archiviare tutti i file. I file system non erano così entusiasmanti da un po’ di tempo, il motivo principale è che il collo di bottiglia nelle prestazioni proveniva dallo storage.

Ma poiché le velocità del flash stanno diventando estremamente elevate, soprattutto con l’introduzione di UFS, ora è il software che deve essere modernizzato per tenere il passo con le prestazioni del flash. Il file system non solo può influire sulla velocità di archiviazione, ma svolge anche un ruolo importante nel mantenimento delle prestazioni del telefono a lungo termine. Se fatto in modo errato, lo spazio di archiviazione diventerà frammentato, un fenomeno in cui un uso inefficiente dello spazio di archiviazione può ridurre le prestazioni del dispositivo. Ridurre al minimo tale possibilità è una caratteristica importante di un file system.

D: Cos'è F2FS (primer) e perché ha iniziato a diffondersi su Android? Quali OEM erano in testa alla classifica?

R: F2FS è un file system open source, con la caratteristica principale di essere progettato per l'architettura di archiviazione flash. L'archiviazione NAND (flash) viene utilizzata in tutti gli attuali telefoni Android solitamente come soluzioni eMMC o UFS. Il progetto è stato inizialmente sviluppato da Samsung e ha suscitato un forte interesse da parte di alcuni OEM di telefonia mobile. Non disponiamo di dati su quali OEM abbiano iniziato questo cambiamento. Ma da quello che so, personalmente, Motorola è stata la prima, mentre molti altri OEM come OnePlus e Huawei hanno seguito questo cambiamento a breve.

D: Quali sono stati i vantaggi che ha fornito? Gli OEM citano operazioni di archiviazione e prestazioni dell'interfaccia utente più veloci, ma ci sono altri vantaggi?

R: Il pece è stato abbastanza semplice, F2FS offre prestazioni più elevate allo storage basato su flash. Il tuo sistema si avvierà più velocemente (velocità di lettura più elevate), le velocità di scrittura saranno più elevate, consentendo di registrare 4K pesanti, slow motion con frame rate più elevato e video a 360 gradi. Inoltre, la latenza tra il sistema e lo spazio di archiviazione sarebbe estremamente bassa, il che significa che l'animazione e l'apertura delle app sembrerebbero molto più rapide.

D: I problemi, nello specifico, sembrano incentrati sul peggioramento delle prestazioni. Potresti spiegarlo più approfonditamente? Qual è la causa?

R: L'idea di F2FS era davvero fantastica, per ottenere le prestazioni più veloci possibili per i dispositivi flash. Ma è anche importante concentrarsi sulla performance a lungo termine. L'hardware può sempre essere veloce fin da subito, ma mantenere costantemente queste velocità è una sfida molto più difficile. Per un caso d'uso Android, la memoria del dispositivo è quasi piena per la maggior parte del tempo e ci sono migliaia di operazioni di lettura e scrittura che si verificano a volte anche in un secondo. Molte delle app più popolari eseguono servizi in background, ciò significa che l'app esegue alcune operazioni di lettura/scrittura anche quando non la apri. Se eseguite in modo errato, le operazioni di scrittura possono aumentare drasticamente la frammentazione dello storage, rendendo ogni successiva operazione di lettura/scrittura ancora più lenta.

Consideriamo la frammentazione dello spazio di archiviazione come una delle cause del degrado delle prestazioni nei dispositivi Android. Ora ciò che deve essere determinato è se i problemi sono causati dalla compatibilità hardware e dalle prestazioni del file system storage di vari OEM o se l'architettura F2FS si concentra sulle velocità iniziali e ciò influisce sul lungo termine prestazione. I problemi possono essere causati anche da bug, poiché il file system è ancora in fase di sviluppo.

D: Esistono altri problemi di prestazioni o affidabilità meno noti?

R: Una cosa interessante che abbiamo scoperto è che F2FS ha un sovraccarico inaspettato, almeno un paio di centinaia di MB di spazio di archiviazione per la memorizzazione nella cache e la manutenzione dello spazio di archiviazione. Questo ha sicuramente senso se disponi di 64 GB di spazio di archiviazione o più, ma su telefoni economici con dimensioni ROM da 8 GB, 16 GB, questo potrebbe essere un problema.

La scoperta principale è che l’attuale implementazione di F2FS è ottima per gli ambienti di sola lettura quando si desidera raggiungere velocità più elevate. F2FS deve concentrarsi sul miglioramento delle prestazioni di archiviazione a lungo termine in un'elevata interazione con file di piccole dimensioni, poiché questo è ciò che accade nell'ambiente Android.

Questa è in un certo senso una battaglia di teorie. Puoi immaginare che le prestazioni dell'hardware siano così veloci che il degrado non sarà un problema. Oppure lo guardi dal punto di vista opposto, dove l'hardware è così veloce, che avere prestazioni un po' più lente che possono essere mantenute a lungo termine, è ciò che dovrebbe essere ottenuto. F2FS ha scelto il primo approccio e qui non ci sono opzioni sbagliate, è un esperimento importante da fare e una curva di apprendimento per l’intero settore. Detto questo, quello che stiamo vedendo attualmente è che la performance a lungo termine dovrebbe essere l’obiettivo principale in questo momento.

D: Alcuni OEM hanno abbandonato l'utilizzo di F2FS, mentre altri come Huawei supportano ancora F2FS sui dispositivi recenti. Pensi che ci sia una tendenza in entrambi i casi? (Adozione lenta o abbandono completo)

R: Esistono diversi scenari per cui gli OEM continuerebbero a utilizzare F2FS.

  • Un OEM potrebbe avere la propria implementazione di F2FS, che apporta alcune correzioni ai problemi noti.

  • Un OEM potrebbe avere ottimi legami con il produttore di memoria flash, poiché ha accesso al livello FTL della NAND e alla messa a punto il fatto che il file system funzioni bene con l'hardware può apportare miglioramenti significativi, inclusa la frammentazione del flash magazzinaggio.

  • Un OEM potrebbe preferire concentrarsi sulle prestazioni iniziali del telefono, poiché il ciclo di vita medio di uno smartphone è di circa 2 anni e, man mano che il telefono diventa lento, ne acquisterà già uno nuovo.

  • Un OEM potrebbe anche avere un servizio di deframmentazione in esecuzione, questo può risolvere parzialmente i problemi di F2FS.

Questi sono alcuni degli scenari possibili e, allo stesso tempo, stiamo vedendo che alcuni OEM lo stanno già facendo tornando all'utilizzo di Ext4, ad esempio OnePlus 3T utilizzava F2FS, ma tutti i modelli OnePlus più recenti utilizzano Est4.

D: F2FS ha attualmente bisogno di una soluzione di deframmentazione in movimento, che potrebbe risolvere il problema attualmente riscontrato con F2FS.

R: Gli strumenti di deframmentazione esistono da tempo, il vantaggio principale è che possono riallocare/riscrivere i blocchi di memoria per ridurre la frammentazione dello spazio di archiviazione. Ma il problema con questo approccio è che riscrivi le celle della memoria flash, riducendo la durata dello spazio di archiviazione. Lo scenario migliore sarebbe innanzitutto scrivere i dati in modo intelligente. Fare il controllo dei danni non è la soluzione giusta.

Immaginalo come fare un pasticcio in una stanza gettando un sacco di cose ovunque e poi iniziando a sistemarle nei cassetti. Perché non farlo subito?

D: Gli OEM sono riusciti a contrastare o risolvere alcuni dei problemi che frenano F2FS? Ad esempio, Huawei respinge le prestazioni degradanti e pubblicizza una UX più veloce nel tempo, in parte grazie alla sua "AI".

R: Beh, se un'intelligenza artificiale può analizzare il comportamento di archiviazione e riscrivere il file system affinché funzioni per uno specifico dispositivo flash, questo potrebbe probabilmente risolvere i problemi di frammentazione. L'intelligenza artificiale può anche analizzare quali app o funzionalità la persona utilizza maggiormente e precaricarle/memorizzarle di conseguenza, rendere le funzionalità del telefono più scattanti, ciò non risolverebbe il problema della frammentazione Anche se. Il mio presupposto principale è che la maggior parte delle ottimizzazioni siano legate allo spazio utente e non ad alcune ottimizzazioni del file system di tecnologia avanzata.

D: Quali sono altri interessanti sviluppi del file system di cui dovremmo essere a conoscenza? Che impatto avrebbero sull'esperienza dell'utente, anche se a un livello sottile o basso?

R: F2FS ed Ext4 sono ancora molto vitali e sono i file system di riferimento per l'open source. Ext4 è più maturo e affidabile ma potrebbe limitare le prestazioni del flash; F2FS è più scattante ma anche più sperimentale. L'intera situazione in cui il software diventa il collo di bottiglia è ciò che rende nuovamente entusiasmanti i file system. Ci stiamo spostando dall'importanza di ogni secondo all'importanza di ogni millisecondo. Gli ambienti e i file system svolgeranno un ruolo importante in questo incremento delle prestazioni. Lo sviluppo più interessante per i file system sarebbe creare una soluzione veramente ottimizzata per Flash in grado di mantenerne le prestazioni.

A Tuxera stiamo sviluppando Tuxera Flash File System, dove facciamo cose come software specifico per l'hardware ottimizzazioni che garantiscono che il file system sia ottimizzato per un dispositivo, un caso d'uso e un flash specifici memoria. Essendo presenti nel settore automobilistico, ci concentriamo principalmente sulle prestazioni a lungo termine e sul degrado della memoria flash. Si tratta più del tipo di ottimizzazione hardware x software, di cui parlava Steve Jobs. Applicare il machine learning per creare tali “driver” è qualcosa che riteniamo possa essere davvero entusiasmante per l’intero settore dello storage.

D: Anche il nostro storage flash fisico continua a diventare più veloce. Come ritieni che questo influenzi sia l'esperienza dell'utente finale che il futuro dei file system?

R: Man mano che l'hardware diventa più veloce, il software deve garantire di poter tenere il passo con queste architetture hardware avanzate, questa è la sfida principale che i file system devono risolvere attualmente. Puoi avere incredibili caratteristiche di velocità di lettura e scrittura del dispositivo, ma se lo stack software apporta una latenza aggiuntiva, l'esperienza dell'utente non sembrerà così scattante. Questo è un momento entusiasmante per lo sviluppo di file system, poiché esiste una chiara necessità di una tecnologia più veloce, più scattante e allo stesso tempo più affidabile per i dispositivi mobili.

Ma man mano che la tecnologia Flash diventa più veloce, la domanda principale diventa: qual è la velocità con cui le prestazioni diventano irrilevanti? Pensala come la risoluzione dello schermo Retina, dove una densità di pixel più elevata non rende l'immagine più nitida per l'occhio umano.

D: Grazie per il tuo tempo.

R: Grazie!