Flash-Friendly File System (F2FS): Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 36: Line 36:
Samsung viis F2FS testimiseks läbi mitmeid eksperimente ja võrdlevaid katsetusi. F2FS´i väidetavale välkmälu eluea pikendamise lubadusele lisab kandepinda joonisel 1 esitatud eksperimendi tulemus (võrdlus EXT4 failisüsteemiga), mille arvnäitajad iseloomustavad mäluseadme kulumise kiirenemise indeksit. Kõrgem indeks märgib kiiremat kulumist.  
Samsung viis F2FS testimiseks läbi mitmeid eksperimente ja võrdlevaid katsetusi. F2FS´i väidetavale välkmälu eluea pikendamise lubadusele lisab kandepinda joonisel 1 esitatud eksperimendi tulemus (võrdlus EXT4 failisüsteemiga), mille arvnäitajad iseloomustavad mäluseadme kulumise kiirenemise indeksit. Kõrgem indeks märgib kiiremat kulumist.  


[[wai_joonis1.jpg]]<br>
[[Wai_joonis1.jpg]]<br>
Joonis 1: Kulumise kiirenemise indeks.[http://elinux.org/images/1/12/Elc2013_Hwang.pdf]
Joonis 1: Kulumise kiirenemise indeks.[http://elinux.org/images/1/12/Elc2013_Hwang.pdf]



Revision as of 18:30, 3 December 2016

Autor

Nimi: Veiko Villo

Rühm: A21

Esitamise kuupäev: xx.xx.xxxx

Sissejuhatus

Flash-Friendly File System (F2FS) on Samsungi poolt loodud välkmäludele suunatud Linuxi failisüsteem, mis on Linuxi tuumas saadaval alates tuuma versioonist 3.8 [1]. F2FS ehk välkmälusõbralik failisüsteem jõudis avalikkuseni 2012 aasta lõpus [2]. F2FS puhul on loomise algusest saadik eesmärgiks seatud jõudluse ja usaldusväärsuse tõstmine, mitte uute ilustatud funktsioonide lisamine [3]. F2FS on loodud laiatarbekasutuses olevate NAND tehnoloogial põhinevate välkmälude (sealhulgas SSD) omadusi silmas pidades ning on adresseeritud probleemide lahendamisele, mis tekkisid pöörlevatele ketastele mõeldud failisüsteemide kasutamisel välkmälul põhinevatel andmekandjatel.

F2FS omadused

NAND tehnoloogial põhinevate välkmälude eripära avaldub pistelisel kirjutamisel mäluseadmele (võrrelda pistelist kirjutamist järjestikuse kirjutamisega)[4]. Sagedane pisteline kirjutamine SSD mäluseadmele tekitab mäluseadmes sisemist killustatust ja langetab seadme võimekust [5]. Sealjuures on pisteline kirjutamine üpriski tavapärane, olles esile kutsutud näiteks selliste populaarsete rakenduste poolt nagu Facebook ja Twitter [6]. Tähelepanuväärne on asjaolu, et sagedane pisteline kirjutamine võib tugevalt langetada välkmälu sisend-väljund (I/O) kosteaega (latentsust) ja langetada seadme eluiga [7].

F2FS failisüsteemi eesmärgiks on optimeerida välkmäluseadme võimekust ja eluiga ning sellest tulenevalt omab järgnevaid eripärasid:

  • Välkmälusõbralik andmestruktuuride paigutus.

F2FS failisüsteemi andmestruktuuride paigutus mäluseadmel on viidud vastavusse NAND tehnoloogial põhinevate välkmäluseadmete ülesehituse ja toimimispõhimõtetega.[8]

  • Tulutoov indeksite ülesehitus.

Andmeploki uuendamisel tuleb uuendada ka sellele vastavat otsest indeksite plokki. Otsese indeksi ploki uuendamine tekitab omakorda vajaduse uuendada vastavat kaudsete indeksite plokki. Taoline rekursiivne indeksite uuendamine kutsub esile ahelkirjutamise, mis tekitab „uitamisprobleemi.“[9] F2FS failisüsteemis on antud probleem lahendatud meetodiga, mille kohaselt uuendatakse ainult üks otseste sõlmpunktide plokk ja sellele vastav sõlmpunkti adresseerimistabeli sissekanne [10].

  • Mitmene logimine

F2FS on omaks võtnud struktureeritud logidel põhineva failisüsteemi (LFS) omadused, kuid on lisanud sellele omapoolsed täiendused. Varasematel LFS failisüsteemidel on üks suur logimisala, F2FS seevastu omab kuute logimisala, koos andmete jaotamisega kolme kategooriasse: kuum, soe ja külm.[11] Üldiselt allub jaotus põhimõttele, et sagedamini kasutatavad andmed jagunevad kuuma kategooriasse ning harvemini kasutatavad andmed külma kategooriasse. Kuum/külm andmete jaotusskeem rakendub logimise ajal, käivitades samaaegselt mitu aktiivset logimislõiku, lisades andmed ja metaandmed eraldiseisvatesse logimislõikudesse vastavalt nende oodatavale uuendamissagedusele [12].

  • Kohanev logimine

F2FS logimisüsteem muudab pistelised kirjutamised järjestikusteks (normaalne logimine), kuid mäluseadme kõrge kasutusastme korral kohandab F2FS failisüsteem logimisstrateegia normaalselt logimiselt lõimitud logimisele, mis aitab vältida mäluseadmele kirjutamise kosteaja pikaks muutumist. F2FS jälgib failisüsteemi staatust, täpsemalt muutujat k, mis iseloomustab teatud protsenti puhastest lahtritest (vaikimisi väärtuseks 5% kõigist puhastest lahtritest). Juhul, kui vabade lahtrite arv on üle 5%, siis rakendatakse normaalset logimist.[13] Vastasel juhul rakendub lõimitud logimine, mis paraku võib esile kutsuda vähesel määral pistelist kirjutamist [14]. Muutuja k väärtust saab süsteemiadministraator vastavalt soovile ise muuta, leides enda jaoks sobiva tasakaalu kiiruse ja mäluseadme eluea pikendamise vahel. Antud muutuja väärtus muutub oluliseks enamasti vaid suure koormusega süsteemides, kus kettaruumi täitumise tõenäosus on kõrge ning sealjuures ei tohi kirjutamiskiirus oluliselt langeda.

  • fsync´i kiirendamine taastumise edasilükkamisega

Andmebaasirakendused kirjutavad sagedasti faili väikesemahulisi andmeid ja kasutavad andmete säilivuse garanteerimiseks fsync´i. F2FS kasutab fsync´i jõudluse tõstmiseks efektiivset taastumise edasilükkamise mehhanismi. Võtmeideeks on kirjutada andmeplokid ja ainult nende otsesed sõlmpunktide plokid, jättes kirjutamata ülejäänud sõlmpunktid ja F2FS metaandmete plokid. Stabiilse seisu taastamise vajadusel leiab failisüsteem vajalikud andmeplokid kiiresti üles tänu otseste sõlmpunktide plokki jäetud lippudele.[15]

F2FS heaks omaduseks on veel ka äkilise elektrikatkestuse korral tagatav taastumisvõime. Elektrikatkestuse korral pöördub F2FS tagasi viimase tervikliku kontrollpunkti juurde. Selleks, et tagada alati vähemalt ühe tervikliku kontrollpunkti olemasolu, hoiab F2FS alal kahte kontrollpunkti paketti.[16] Kontrollpunkti paketi uuendamise korral kirjutab F2FS ainult ühte kontrollpunkti paketti, tänu millele on elektrikatkestuse korral andmekao ja rikete tekkimise tõenäosus väiksemaks viidud. Kirjeldatud meetod tagab ka failisüsteemi kiirema toimimise. Lisaks on F2FS-is laialipaisatud ja kehtetuks muutunud plokkide uuesti kasutuselevõtuks ning logimiseks vabade lõikude tagamiseks olemas automaatne puhastussüsteem. F2FS teostab puhastamist kahel viisil: esiplaanil ja tagaplaanil puhastamine. Esiplaanil puhastamine rakendub ainult olukorras, kus enam ei ole piisaval hulgal vabasid lahtreid. Automaatne tagaplaanil puhastamine jõustub süsteemi tegevuseta oleku ajal.[17][18][19]

F2FS võrdluses

Samsung viis F2FS testimiseks läbi mitmeid eksperimente ja võrdlevaid katsetusi. F2FS´i väidetavale välkmälu eluea pikendamise lubadusele lisab kandepinda joonisel 1 esitatud eksperimendi tulemus (võrdlus EXT4 failisüsteemiga), mille arvnäitajad iseloomustavad mäluseadme kulumise kiirenemise indeksit. Kõrgem indeks märgib kiiremat kulumist.

Wai_joonis1.jpg
Joonis 1: Kulumise kiirenemise indeks.[20]

Ekperiment näitas F2FS failisüsteemi korral 2,7 korda madalamat mäluseadme kulumismäära võrreldes EXT4 failisüsteemiga.