The Journey of F2FS och varför filsystem är viktiga: Intervju med Stan Dmitriev från Tuxera

XDA intervjuar Stan Dmitriev från Tuxera, ett finskt företag som är specialiserat på filsystem. Stan diskuterar filsystem och framtiden för F2FS.

Filsystem diskuteras inte alltför ofta på XDA eller något annat forum. Ämnet involverar mycket utveckling på låg nivå, så utvecklare föredrar att fokusera på applikationer, ROM eller kärnor. Ändå är filsystemet en viktig del av varje lagring. Det är tekniken som beskriver hur data i din enhets lagring lagras och hämtas. Det finns många olika typer av filsystem – var och en med sina egna för- och nackdelar – och att välja det ena framför det andra kan göra en enorm skillnad i stabilitet och prestanda. Så hur gör OEM-tillverkare det valet? Jag hade nöjet att prata med Stan Dimitriev, PR- och kommunikationschef på Tuxera, ett finskt företag som tillhandahåller filsystemlösningar till många stora OEM-tillverkare.

F: Kan du presentera dig själv och Tuxera?

A: Jag är Stan Dmitriev. Ända sedan jag fick min första Android-telefon (HTC EVO 3D) har jag blivit ett aktivt fan av XDA-communityt. Låt oss bara säga att jag har installerat en anpassad ROM och upphävt min garanti på dag ett (
Stan. Dmitriev är forummedlem på XDA). För ett par år sedan var jag med och grundade ett startup-projekt som heter Corgi for Feedly, på den tiden hjälpte XDA-communityt oss mycket med att definiera och utveckla applikationen.

För närvarande är jag PR & Communications Manager på Tuxera, som är det ledande inbäddade lagringsprogramvaran, filsystem för att vara exakt, företaget på marknaden. Vår programvara driver mer än en miljard enheter och kan hittas i de senaste flaggskeppets telefoner, bilar, routrar, drönare och kameror. Berättelsen om företaget började med NTFS-3G, när vår VD och CTO Szabolcs "Szaka" Szakactics fick NTFS att fungera med Linux-enheter. För närvarande utvecklar vi våra egna filsystem och implementeringar både för extern och inbäddad lagring och arbetar med de flesta av fordonsföretagen där ute såväl som många smartphoneföretag.

Här på Tuxera besöker vi ganska ofta XDA-forum, speciellt när vi felsöker en murad enhet eller hittar en anpassad ROM/kärna att spela med. Många av mina kollegor besöker XDA ofta för att läsa om de senaste deep tech-nyheterna kring Android- och Linux-ekosystem.

F: Filsystem är en integrerad del av våra enheter, men väldigt få människor känner till deras roll, förbättringar, styrkor och svagheter. Vad är gåvan med det, och varför skulle fler människor intressera sig för filsystemen som håller ihop deras data?

S: Filsystem är en viktig del av Linux-kärnan som är ansvarig för all interaktion mellan enheten och dess lagring. Varje gång du tar en bild, öppnar en app eller tittar på en video spelar filsystemet en central roll för operativsystemet att komma åt och lagra alla filer. Filsystem var inte så spännande på en tid, den främsta anledningen är att flaskhalsen i prestanda kom från lagringen.

Men eftersom blixthastigheterna blir extremt snabba, särskilt med introduktionen av UFS, är det nu programvaran som behöver moderniseras för att hålla jämna steg med blixtens prestanda. Filsystemet kan inte bara påverka lagringshastigheterna, utan det spelar också en viktig roll för att bibehålla telefonens prestanda i det långa loppet. Om det görs fel kommer lagringen att bli fragmenterad, ett fenomen där en ineffektiv användning av lagring kan minska enhetens prestanda. Att reducera denna möjlighet till ett minimum är en viktig egenskap hos ett filsystem.

F: Vad är F2FS (primer), och varför började den göra sin väg till Android? Vilka OEM-tillverkare ledde satsningen?

S: F2FS är ett filsystem med öppen källkod, med den huvudsakliga tonhöjden att det är designat för flashlagringsarkitektur. NAND-lagring (flash) används i alla nuvarande Android-telefoner, vanligtvis som eMMC- eller UFS-lösningar. Projektet utvecklades av Samsung initialt och har fått stort intresse från några av de mobila OEM: erna. Vi har inte uppgifterna om vilka OEM-tillverkare började det här skiftet. Men vad jag personligen vet var Motorola först, med många andra OEM-tillverkare som OnePlus och Huawei som följde detta skifte inom kort.

F: Vilka var fördelarna det gav? OEM-tillverkare nämner snabbare lagringsoperationer och UI-prestanda, men finns det några andra fördelar?

A: Den tonhöjd var ganska enkelt, F2FS ger högre prestanda till flashbaserad lagring. Ditt system skulle starta snabbare (snabbare läshastigheter), skrivhastigheterna skulle vara högre, vilket gör det möjligt att spela in tunga 4K, högre bildhastighet i slowmotion och 360-graders videor. Dessutom skulle latensen mellan systemet och lagringen vara extremt låg, vilket innebär att animeringen och öppningsapparna skulle kännas mycket snabbare.

F: Problemen verkar specifikt handla om försämrande prestanda. Kan du förklara det mer ingående? Vad är orsaken?

S: Idén med F2FS var verkligen fantastisk, att uppnå snabbast möjliga prestanda för blixtenheter. Men det är också viktigt att fokusera på prestationen på lång sikt. Hårdvara kan alltid vara snabb ur lådan, men att upprätthålla dessa hastigheter kontinuerligt är mycket tuffare utmaning. För ett Android-användningsfall är enhetens lagring nästan full för det mesta, och det finns tusentals läs-skrivoperationer som händer ibland till och med på en sekund. Många av de populära apparna kör tjänster i bakgrunden, detta betyder att appen gör vissa läs-/skrivoperationer även när du inte öppnar den. Om de görs fel kan skrivoperationer drastiskt öka fragmenteringen av lagringen, vilket gör varje nästa läs-/skrivoperation ännu långsammare.

Vi ser lagringsfragmentering som en av orsakerna till försämrad prestanda i Android-enheter. Vad som nu måste bestämmas är om problemen orsakas av hårdvarukompatibilitet och hur filsystemet fungerar med lagring från olika OEM, eller om F2FS-arkitekturen fokuserar på initiala hastigheter, och detta påverkar det långsiktiga prestanda. Problemen kan också orsakas av buggar, eftersom filsystemet fortfarande är under utveckling.

F: Finns det några andra prestanda- eller tillförlitlighetsproblem som är mindre kända?

S: En intressant sak vi hittade är att F2FS har en oväntad overhead, åtminstone ett par hundra MB av ditt lagringsutrymme för cachning och lagringsunderhåll. Detta är definitivt vettigt om du har 64 GB lagringsutrymme eller mer, men på budgettelefoner med 8 GB, 16 GB ROM-storlekar kan detta vara ett problem.

Huvudresultatet är att den nuvarande implementeringen av F2FS är utmärkt för skrivskyddade miljöer när du vill uppnå högre hastigheter. F2FS behöver fokusera på att förbättra sin långsiktiga lagringsprestanda i en hög interaktion med små filer, eftersom det är vad som händer i Android-miljön.

Detta är på sätt och vis en teoristrid. Du kan antingen föreställa dig att hårdvaruprestandan är så snabb att försämringen inte kommer att vara ett problem. Eller så ser man på det tvärtom, där hårdvaran är så snabb, att det är att ha lite långsammare prestanda som kan bibehållas på lång sikt. F2FS valde det första tillvägagångssättet, och det finns inga fel alternativ här, det är ett viktigt experiment att göra och en inlärningskurva för hela branschen. Med det sagt, det vi ser just nu är att långsiktig prestation bör vara i fokus just nu.

F: Vissa OEM-tillverkare har gått tillbaka till sin användning av F2FS, medan andra som Huawei fortfarande stöder F2FS på de senaste enheterna. Tror du att det finns en trend på något sätt? (Långsam adoption eller helt övergiven)

S: Det finns flera scenarier varför OEM-tillverkare skulle fortsätta använda F2FS.

  • En OEM kan ha sin egen implementering av F2FS, som ger några korrigeringar till kända problem.

  • En OEM kan ha mycket goda band med flashlagringstillverkaren, eftersom han har tillgång till FTL-lagret av NAND och tuning att filsystemet fungerar bra med hårdvaran kan ge betydande förbättringar, inklusive fragmenteringen av flash lagring.

  • En OEM skulle föredra att fokusera på telefonens initiala prestanda, eftersom den genomsnittliga livscykeln för en smartphone är cirka 2 år, och eftersom telefonen blir långsam kommer de redan att köpa en ny.

  • En OEM kan också ha någon defragmenteringstjänst igång, detta kan delvis lösa problemen med F2FS.

Detta är några av de möjliga scenarierna, samtidigt ser vi att vissa OEM: er redan är det gå tillbaka till att använda Ext4, till exempel använde OnePlus 3T F2FS, men alla de nyare OnePlus-modellerna använder Ext4.

F: F2FS är för närvarande i behov av någon defragmenteringslösning som är på väg, som kan lösa problemet som för närvarande dyker upp med F2FS.

S: Defragmenteringsverktyg har funnits ett tag, den största fördelen är att de kan omallokera/skriva om minnesblocken för att minska lagringsfragmenteringen. Men problemet med detta tillvägagångssätt är att du skriver om flashminnescellerna, vilket minskar lagringens livslängd. Det bästa scenariot skulle vara att skriva data intelligent i första hand. Att göra skadekontroll är inte den bästa lösningen.

Tänk på det som att göra oreda i ett rum genom att slänga en massa saker runt om och sedan börja lägga in dem i lådorna. Varför inte göra det direkt?

F: Har OEM-tillverkare lyckats motverka eller ta itu med några av de problem som håller tillbaka F2FS? Huawei avfärdar till exempel förnedrande prestanda och annonserar för en snabbare UX över tid, delvis tack vare deras "AI".

S: Tja, om en AI kan analysera lagringsbeteendet och skriva om filsystemet för att fungera för en specifik flashenhet, kan detta förmodligen lösa problemen med fragmentering. AI: n kan också analysera vilka appar eller funktioner personen använder mest, och förladda/lagra dem följaktligen – att få telefonfunktionerna att kännas snabbare, det skulle inte lösa problemet med fragmentering fastän. Mitt huvudsakliga antagande är att de flesta av optimeringarna är relaterade till användarutrymme, och inte några djupteknologiska filsystemoptimeringar.

F: Vad är några andra spännande filsystemutvecklingar som vi bör vara medvetna om? Hur skulle de påverka användarupplevelsen, även om de är på en subtil eller låg nivå?

S: F2FS och Ext4 är fortfarande mycket viktiga och är de bästa filsystemen för öppen källkod. Ext4 är mer mogen och pålitlig men kan begränsa blixtens prestanda; F2FS är snabbare men också mer experimentellt. Hela situationen där mjukvara blir flaskhalsen är det som gör filsystemen spännande igen. Vi går från varje sekund, till varje millisekund räknar miljöer och filsystem kommer att spela en viktig roll i denna prestandaökning. Den mest spännande utvecklingen för filsystem skulle vara att skapa en verkligt flashoptimerad lösning som kan bibehålla flashprestanda.

På Tuxera utvecklar vi Tuxera Flash File System, där vi gör saker som hårdvaruspecifik mjukvara optimeringar som säkerställer att filsystemet är optimerat för en specifik enhet, användningsfall och flash minne. Med en närvaro inom fordonsindustrin fokuserar vi främst på den långsiktiga prestandan och försämringen av flashminnet. Det här är mer av typen hårdvara x mjukvaruoptimering, som Steve Jobs brukade prata om. Att tillämpa maskininlärning för att skapa sådana "drivrutiner" är något som vi tror kan vara riktigt spännande för hela lagringsbranschen.

F: Vår fysiska flashlagring blir också snabbare, hur ser du på att detta påverkar både slutanvändarupplevelsen och framtiden för filsystem?

S: När hårdvaran blir snabbare måste programvaran säkerställa att den kan hålla sig till dessa avancerade hårdvaruarkitekturer, detta är den största utmaningen för filsystem att lösa för närvarande. Du kan ha otroliga läs- och skrivhastighetsegenskaper hos enheten, men om mjukvarustacken ger extra latens - kommer användarupplevelsen inte att kännas så snabb. Det här är en spännande tid för filsystemutveckling, eftersom det finns ett tydligt behov av en snabbare, snabbare och ännu mer pålitlig teknik för mobilen.

Men när blixten blir snabbare blir huvudfrågan, med vilken hastighet blir prestanda irrelevant? Tänk på det som Retina-skärmupplösningen, där en högre pixeldensitet inte riktigt gör bilden krispigare för det mänskliga ögat.

F: Tack för din tid.

A: Tack!