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

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

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

I file system non vengono discussi troppo spesso su XDA o su qualsiasi altro forum. L’argomento prevede molto sviluppo di basso livello, quindi gli sviluppatori preferiscono concentrarsi su applicazioni, ROM o kernel. Tuttavia, il file system è una parte vitale di ogni archivio. È 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 rispetto all’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 PR & Communications Manager di Tuxera, un’azienda finlandese che fornisce soluzioni di file system a molti grandi OEM.

D: Puoi presentare te stesso e Tuxera?

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

Attualmente sono PR & Communications Manager di Tuxera, che è l’azienda leader nel mercato dei software di storage embedded, file system per la precisione. Il nostro software gestisce più di un miliardo di dispositivi e può essere trovato negli ultimi telefoni, auto, router, droni e fotocamere di punta. La storia dell’azienda è iniziata con NTFS-3G, quando il nostro presidente e CTO Szabolcs 淪zaka Szakactics ha creato NTFS per funzionare con i dispositivi Linux. Attualmente, sviluppiamo i nostri file system e implementazioni sia per l’archiviazione esterna che incorporata e lavoriamo con la maggior parte delle aziende automobilistiche e con molte aziende di smartphone.

Qui a Tuxera visitiamo abbastanza spesso i forum XDA, specialmente durante la risoluzione dei problemi di un dispositivo in muratura o la ricerca di una ROM / kernel personalizzata con cui giocare. Molti dei miei colleghi visitano spesso XDA per leggere le ultime notizie di deep tech 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 i punti deboli. Qual è il dono di questo, 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 storage. Ogni volta che si scatta una foto, si apre un’app o si guarda un video, il file system svolge un ruolo fondamentale affinché il sistema operativo possa accedere e archiviare tutti i file. I file system non sono stati così entusiasmanti per 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, specialmente con l’introduzione di UFS, ora è il software che deve essere modernizzato per stare al passo con le prestazioni del flash. Non solo il file system può influenzare le velocità di archiviazione, ma svolge anche un ruolo importante nel mantenimento delle prestazioni del telefono a lungo termine. Se fatto male, lo storage diventerà frammentato, un fenomeno in cui un uso inefficiente dello storage può ridurre le prestazioni del dispositivo. Ridurre al minimo tale possibilità è una caratteristica importante di un file system.

D: Che cos’è F2FS (primer) e perché ha iniziato a diffondersi su Android? Quali OEM stavano guidando la carica?

A: F2FS è un file system open source, con il passo principale che è progettato per l’architettura di archiviazione flash. L’archiviazione NAND (flash) viene utilizzata in tutti gli attuali telefoni Android di solito come soluzioni eMMC o UFS. Il progetto è stato inizialmente sviluppato da Samsung e ha riscosso un forte interesse da parte di alcuni OEM mobili. Non abbiamo i dati su cui gli OEM hanno iniziato questo cambiamento. Ma da quello che so, personalmente, Motorola è stato il primo, con molti altri OEM come OnePlus e Huawei che hanno seguito questo cambiamento a breve.

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

R: Il discorso era abbastanza semplice, F2FS offre prestazioni più elevate per l’archiviazione basata su flash. Il tuo sistema si avvierebbe più velocemente (velocità di lettura più elevate), le velocità di scrittura sarebbero più elevate, consentendo di registrare video 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ù veloci.

D: I problemi, in particolare, sembrano essere incentrati su prestazioni degradanti. Potresti spiegarlo in modo più approfondito? 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 sulle prestazioni nel lungo periodo. L’hardware può essere sempre veloce, ma mantenere queste velocità continuamente è 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 popolari eseguono servizi in background, questo significa che l’app sta eseguendo 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 dell’archiviazione una delle cause del peggioramento 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 con lo storage di vari OEM o se l’architettura F2FS si concentra sulle velocità iniziali e ciò influisce sulle prestazioni a lungo termine. I problemi possono essere causati anche da bug, poiché il file system è ancora in fase di sviluppo.

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

R: Una cosa interessante che abbiamo scoperto è che F2FS ha un sovraccarico imprevisto, 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 si dispone di 64 GB o più di spazio di archiviazione, ma su telefoni economici con dimensioni ROM da 8 GB e 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 nel modo 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 non ci sono opzioni sbagliate qui, è un esperimento importante da fare e una curva di apprendimento per l’intero settore. Detto questo, quello che stiamo vedendo attualmente è che le prestazioni a lungo termine dovrebbero essere l’obiettivo principale in questo momento.

D: Alcuni OEM hanno abbandonato l’uso 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 dell’archiviazione flash, dal momento che l’accesso al livello FTL della NAND e la messa a punto del file system per funzionare bene con l’hardware può apportare miglioramenti significativi, inclusa la frammentazione dell’archiviazione flash.

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

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

Questi sono alcuni degli scenari possibili, allo stesso tempo, stiamo vedendo che alcuni OEM stanno già tornando a utilizzare Ext4, ad esempio OnePlus 3T utilizzava F2FS, ma tutti i modelli OnePlus più recenti utilizzano Ext4.

D: F2FS ha attualmente bisogno di una soluzione di deframmentazione in movimento, che possa risolvere il problema che si verifica attualmente 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 storage. Ma il problema con questo approccio è che riscrivi le celle di memoria flash, il che riduce la durata della memoria. Lo scenario migliore sarebbe scrivere i dati in modo intelligente in primo luogo. Fare il controllo dei danni non è la soluzione giusta.

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

D: Gli OEM sono riusciti a contrastare o affrontare 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 loro “AI”.

A: Bene, se un’intelligenza artificiale può analizzare il comportamento di archiviazione e riscrivere il file system in modo che funzioni per un dispositivo flash specifico, questo può probabilmente risolvere i problemi di frammentazione. L’intelligenza artificiale può anche analizzare quali app o funzionalità la persona utilizza principalmente e pre-caricarle/memorizzarle di conseguenza, rendendo le funzionalità del telefono più scattanti, il che tuttavia non risolverebbe il problema della frammentazione. La mia ipotesi principale è che la maggior parte delle ottimizzazioni siano correlate 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? In che modo influirebbero 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 i file system di nuovo entusiasmanti. Ci stiamo muovendo da ogni secondo, a ogni millisecondo conta gli ambienti e i file system giocheranno un ruolo importante in questo aumento delle prestazioni. Lo sviluppo più entusiasmante per i file system sarebbe quello di creare una soluzione veramente ottimizzata per flash in grado di mantenere le prestazioni del flash.

In Tuxera, stiamo sviluppando Tuxera Flash File System, dove facciamo cose come ottimizzazioni software specifiche dell’hardware assicurando che il file system sia ottimizzato per un dispositivo, caso d’uso e memoria flash specifici. Essendo presenti nel settore automobilistico, ci concentriamo principalmente sulle prestazioni a lungo termine e sul degrado della memoria flash. Questo è più il tipo di ottimizzazione hardware x software di cui parlava Steve Jobs. L’applicazione dell’apprendimento automatico per creare tali river è 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, in che modo secondo te questo fatto influisce sia sull’esperienza dell’utente finale che sul futuro dei file system?

R: Poiché l’hardware diventa più veloce, il software deve garantire che possa 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 del software porta una latenza aggiuntiva, l’esperienza dell’utente non sembrerà così scattante. Questo è un momento entusiasmante per lo sviluppo di file system, poiché c’è una chiara necessità di una tecnologia mobile più veloce, più scattante e ancora più affidabile.

Ma man mano che il 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 davvero l’immagine più nitida per l’occhio umano.

D: Grazie per il tuo tempo.

R: Grazie!

Leave a Reply