XDA intervjuer Stan Dmitriev fra Tuxera, et finsk selskap som spesialiserer seg på filsystemer. Stan diskuterer filsystemer og fremtiden til F2FS.
Filsystemer blir ikke diskutert på XDA eller noe annet forum alt for ofte. Emnet involverer mye utvikling på lavt nivå, så utviklere foretrekker å fokusere på applikasjoner, ROM-er eller kjerner. Ikke desto mindre er filsystemet en viktig del av hver lagring. Det er teknologien som skisserer hvordan data i enhetens lagring lagres og hentes. Det finnes mange forskjellige typer filsystemer – hver med sine egne fordeler og ulemper – og å velge hverandre kan utgjøre en stor forskjell i stabilitet og ytelse. Så hvordan tar OEM-er det valget? Jeg hadde gleden av å snakke med Stan Dimitriev, PR- og kommunikasjonssjef på Tuxera, et finsk selskap som leverer filsystemløsninger til mange store OEM-er.
Spørsmål: Kan du presentere deg selv og Tuxera?
A: Jeg er Stan Dmitriev. Helt siden jeg fikk min første Android-telefon (HTC EVO 3D), har jeg blitt en aktiv fan av XDA-fellesskapet. La oss bare si at jeg har installert en tilpasset ROM og annullert garantien min på dag én (
Stan. Dmitriev er forummedlem på XDA). For et par år siden var jeg med på å grunnlegge et oppstartsprosjekt kalt Corgi for Feedly, på den tiden hjalp XDA-fellesskapet oss mye med å definere og utvikle applikasjonen.For tiden er jeg PR- og kommunikasjonssjef hos Tuxera, som er den ledende innebygde lagringsprogramvaren, filsystemer for å være nøyaktig, selskapet på markedet. Programvaren vår driver mer enn én milliard enheter og kan finnes i de nyeste flaggskiptelefonene, bilene, ruterne, dronene og kameraene. Historien om selskapet startet med NTFS-3G, da vår president og CTO Szabolcs “Szaka” Szakactics fikk NTFS til å fungere med Linux-enheter. For tiden utvikler vi våre egne filsystemer og implementeringer både for ekstern og innebygd lagring og samarbeider med de fleste bilselskaper der ute, så vel som mange smarttelefonselskaper.
Her på Tuxera besøker vi ganske ofte XDA-foraene, spesielt når vi feilsøker en mursteinsenhet eller finner en tilpasset ROM/kjerne å leke med. Mange av mine kolleger besøker XDA ofte for å lese om de siste dypteknologiske nyhetene rundt Android- og Linux-økosystemer.
Spørsmål: Filsystemer er en integrert del av enhetene våre, men svært få mennesker vet om deres rolle, forbedringer, styrker og svakheter. Hva er gaven med det, og hvorfor skal flere interessere seg for filsystemene som holder sammen dataene deres?
A: Filsystemer er et viktig element i Linux-kjernen som er ansvarlig for all interaksjon mellom enheten og dens lagring. Hver gang du tar et bilde, åpner en app eller ser på en video – spiller filsystemet en sentral rolle for operativsystemet for å få tilgang til og lagre alle filene. Filsystemer var ikke så spennende på en stund, hovedårsaken er at flaskehalsen i ytelse kom fra lagringen.
Men ettersom blitshastigheten blir ekstremt rask, spesielt med introduksjonen av UFS, er det nå programvaren som må moderniseres for å holde tritt med blitsytelsen. Ikke bare kan filsystemet påvirke lagringshastighetene, men det spiller også en viktig rolle for å opprettholde telefonens ytelse i det lange løp. Hvis det gjøres feil, vil lagringen bli fragmentert, et fenomen der en ineffektiv bruk av lagring kan redusere ytelsen til enheten. Å redusere denne muligheten til et minimum, er en viktig egenskap ved et filsystem.
Spørsmål: Hva er F2FS (primer), og hvorfor begynte den å finne veien til Android? Hvilke OEM-er ledet satsingen?
A: F2FS er et åpen kildekode-filsystem, med hovedpitch at det er designet for flash-lagringsarkitektur. NAND-lagring (flash) brukes i alle de nåværende Android-telefonene, vanligvis som eMMC- eller UFS-løsninger. Prosjektet ble utviklet av Samsung i utgangspunktet og har fått sterk interesse fra noen av de mobile OEM-ene. Vi har ikke dataene som OEM-er startet dette skiftet på. Men etter det jeg personlig vet, var Motorola den første, med mange andre OEM-er som OnePlus og Huawei som fulgte dette skiftet om kort tid.
Spørsmål: Hva var fordelene det ga? OEM-er nevner raskere lagringsoperasjoner og UI-ytelse, men er det noen andre fordeler?
A: Den tonehøyde var ganske enkelt, F2FS gir høyere ytelse til flashbasert lagring. Systemet ditt vil starte opp raskere (raskere lesehastigheter), skrivehastighetene vil være høyere, noe som gjør det mulig å ta opp tunge 4K, høyere bildehastigheter i sakte film og 360-graders videoer. I tillegg vil ventetiden mellom systemet og lagringen være ultralav, noe som betyr at animasjonen og åpningsappene vil føles mye raskere.
Spørsmål: Problemene ser ut til å dreie seg om forringende ytelse. Kan du forklare det i større dybde? Hva er årsaken?
A: Ideen med F2FS var virkelig flott, for å oppnå raskest mulig ytelse for flash-enheter. Men det er også viktig å fokusere på prestasjonene på sikt. Maskinvare kan alltid være raskt ut av esken, men å opprettholde disse hastighetene kontinuerlig er mye tøffere utfordring. For et Android-bruk er lagringen av enheten nesten full mesteparten av tiden, og det er tusenvis av lese-skriveoperasjoner som skjer noen ganger til og med i løpet av et sekund. Mange av de populære appene kjører tjenester i bakgrunnen, dette betyr at appen gjør noen lese-/skriveoperasjoner selv når du ikke åpner den. Hvis det gjøres feil, kan skriveoperasjoner øke fragmenteringen av lagring drastisk, noe som gjør hver neste lese-/skriveoperasjon enda tregere.
Vi ser på lagringsfragmentering som en av årsakene til forringet ytelse på Android-enheter. Det som nå må bestemmes er om problemene er forårsaket av maskinvarekompatibilitet og hvordan filsystemet fungerer med lagring fra ulike OEM-er, eller om F2FS-arkitekturen fokuserer på starthastigheter, og dette påvirker det langsiktige opptreden. Problemene kan også være forårsaket av feil, siden filsystemet fortsatt er under utvikling.
Spørsmål: Er det andre ytelses- eller pålitelighetsproblemer som er mindre kjente?
A: En interessant ting vi fant er at F2FS har en uventet overhead, minst et par hundre MB lagringsplass for caching og lagringsvedlikehold. Dette er definitivt fornuftig hvis du har 64 GB lagringsplass eller mer, men på budsjetttelefoner med 8 GB, 16 GB ROM-størrelser, kan dette være et problem.
Hovedfunnet er at den nåværende implementeringen av F2FS er flott for skrivebeskyttede miljøer når du ønsker å oppnå høyere hastigheter. F2FS må fokusere på å forbedre sin langsiktige lagringsytelse i høy interaksjon med små filer, siden det er dette som skjer i Android-miljøet.
Dette er på en måte en teorikamp. Du kan enten se for deg at maskinvareytelsen er så rask at degraderingen ikke vil være et problem. Eller du ser på det motsatt, der maskinvaren er så rask, at det å ha litt tregere ytelse som kan opprettholdes i det lange løp, er det som bør oppnås. F2FS valgte den første tilnærmingen, og det er ingen feil alternativer her, det er et viktig eksperiment å gjøre, og en læringskurve for hele bransjen. Når det er sagt, det vi ser nå, er at langsiktig ytelse bør være hovedfokus akkurat nå.
Spørsmål: Noen OEM-er har gått tilbake til bruken av F2FS, mens andre som Huawei fortsatt støtter F2FS på nyere enheter. Tror du det er en trend uansett? (Langsom adopsjon, eller fullstendig oppgivelse)
A: Det er flere scenarier hvorfor OEM-er vil fortsette å bruke F2FS.
En OEM kan ha sin egen implementering av F2FS, som bringer noen fikser på de kjente problemene.
En OEM kan ha veldig gode bånd med flashlagringsprodusenten, siden han har tilgang til FTL-laget NAND og tuning filsystemet for å fungere godt med maskinvaren kan gi betydelige forbedringer, inkludert fragmentering av flash Oppbevaring.
En OEM kan foretrekke å fokusere på den første ytelsen til telefonen, siden den gjennomsnittlige levetiden til en smarttelefon er rundt 2 år, og ettersom telefonen blir treg, vil de allerede kjøpe en ny.
En OEM kan også ha en defragmenteringstjeneste i gang, dette kan delvis løse problemene med F2FS.
Dette er noen av de mulige scenariene, samtidig ser vi at noen OEM-er allerede er det gå tilbake til å bruke Ext4, for eksempel brukte OnePlus 3T F2FS, men alle de nyere OnePlus-modellene bruker Ext4.
Spørsmål: F2FS har for øyeblikket behov for en defragmenteringsløsning underveis, som kan løse problemet som for øyeblikket dukker opp med F2FS.
A: Defragmenteringsverktøy har eksistert en stund, den største fordelen er at de kan omfordele/omskrive minneblokkene for å redusere lagringsfragmenteringen. Men problemet med denne tilnærmingen er at du omskriver flashminnecellene, noe som reduserer levetiden til lagringen. Det beste scenariet ville være å skrive data intelligent i utgangspunktet. Å gjøre skadekontroll er ikke den beste løsningen.
Tenk på det som å lage søl i et rom ved å kaste masse ting rundt, og deretter begynne å ordne dem i skuffene. Hvorfor ikke gjøre det med en gang?
Spørsmål: Har OEM-er klart å motvirke eller løse noen av problemene som holder tilbake F2FS? Huawei avviser for eksempel nedverdigende ytelse og annonserer en raskere UX over tid, delvis takket være deres "AI".
A: Vel, hvis en AI kan analysere lagringsatferden og omskrive filsystemet til å fungere for en spesifikk flash-enhet, kan dette sannsynligvis løse problemene med fragmentering. AI-en kan også analysere hvilke apper eller funksjoner personen bruker mest, og forhåndslaste/lagre dem følgelig – å få telefonfunksjonene til å føles raskere, det ville ikke løse problemet med fragmentering selv om. Min hovedantakelse er at de fleste optimaliseringene er relatert til brukerplass, og ikke noen dypteknologiske filsystemoptimaliseringer.
Spørsmål: Hva er noen andre spennende filsystemutviklinger som vi bør være oppmerksomme på? Hvordan vil de påvirke brukeropplevelsen, selv om de er på et subtilt eller lavt nivå?
A: F2FS og Ext4 er fortsatt svært viktige og er de viktigste filsystemene for åpen kildekode. Ext4 er mer moden og pålitelig, men kan begrense blitsytelsen; F2FS er raskere, men også mer eksperimentell. Hele situasjonen der programvare blir flaskehalsen er det som gjør filsystemer spennende igjen. Vi beveger oss fra hvert sekund, til hvert millisekund teller miljøer og filsystemer vil spille en viktig rolle i denne ytelsesøkningen. Den mest spennende utviklingen for filsystemer ville være å lage en virkelig flash-optimalisert løsning som kan opprettholde ytelsen til flash.
Hos Tuxera utvikler vi Tuxera Flash File System, der vi gjør ting som maskinvarespesifikk programvare optimaliseringer som sikrer at filsystemet er optimalisert for en spesifikk enhet, brukscase og flash hukommelse. Med en tilstedeværelse i bilindustrien fokuserer vi hovedsakelig på langsiktig ytelse og forringelse av flashminnet. Dette er mer av typen hardware x software optimalisering, som Steve Jobs pleide å snakke om. Å bruke maskinlæring for å lage slike "drivere" er noe vi tror kan være veldig spennende for hele lagringsindustrien.
Spørsmål: Vår fysiske flash-lagring blir stadig raskere også, hvordan ser du for deg at dette påvirker både sluttbrukeropplevelsen og fremtiden til filsystemer?
A: Ettersom maskinvaren blir raskere, må programvaren sikre at den kan holde seg til disse avanserte maskinvarearkitekturene, dette er hovedutfordringen for filsystemer å løse for øyeblikket. Du kan ha utrolige lese- og skrivehastighetsegenskaper til enheten, men hvis programvarestabelen gir ekstra ventetid - vil brukeropplevelsen ikke føles så rask. Dette er en spennende tid for filsystemutvikling, siden det er et klart behov for en raskere, raskere og enda mer pålitelig teknologi for mobil.
Men etter hvert som blitsen blir raskere, blir hovedspørsmålet, hvor raskt ytelsen blir irrelevant? Tenk på det som Retina-skjermoppløsningen, der en høyere pikseltetthet egentlig ikke gjør bildet sprøere for det menneskelige øyet.
Q: Takk for at du tok deg tid.
A: Takk!