F2FS | |
---|---|
Utvecklaren | Kim Hae Geuk (Kim Jaegeuk, Kor. 김재극 ), Samsung Electronics , Motorola Mobility , Huawei och Google |
Filsystem | Flash - vänligt filsystem |
Inlämningsdatum | Februari 2013 [1] ( Linux ) |
Strukturera | |
Mappinnehåll | Flernivå hashtabell |
Filplacering | Bitfält (fritt utrymme), Tabell |
Restriktioner | |
Maximal filstorlek | 3,94 TB |
Maximalt antal filer | Beror på volymstorlek |
Maximal filnamnslängd | 255 byte, 512 unicode för volymetikett |
Maximal volymstorlek | 16 TB |
Förmågor | |
Egenskaper | ändringstid (mtime), attributändringstid (ctime), åtkomsttid (atime) |
Datumlagringsnoggrannhet | 1 ns |
Attribut | POSIX utökade attribut (xattrs) |
Åtkomsträttigheter | POSIX , ACL |
Bakgrundskomprimering | LZO, LZ4, zstd |
Bakgrundskryptering | Ja [2] |
OS stöds | Linux och Android |
F2FS ( engelsk Flash-Friendly File System ) är ett filsystem fokuserat på att använda flashminne , inklusive för användning med SSD för servrar och persondatorer, med minneskort ( eMMC / SD ) och med inbyggda olika konsumentenheter flashchips.
Författaren är Samsung -utvecklaren Kim Jaegeuk (Kim Jaegeuk, Kor. 김재극 ). Källkoden för systemet öppnades av Samsung i oktober 2012 [3] [4] , varefter den slutfördes av Samsungs ingenjörer, med hänsyn till kommentarerna från communityn.
F2FS-stöd har inkluderats i Linux-kärnan sedan version 3.8 [5] . Parallellt utvecklas paketet f2fs-tools, som innehåller en uppsättning verktyg för att serva F2FS-partitioner (mkfs.f2fs, fsck.f2fs).
Designad specifikt för specifikationerna av flashminne och tar hänsyn till sådana funktioner som en konstant åtkomsttid och en begränsad resurs för antalet dataomskrivningscykler .
Lagring av datastrukturer organiseras i form av ett LSM-träd , vid uppdatering av information används kopierings-på-skriv- mekanismen - vid ändring skrivs inte data över, utan lagras på en ny plats. För att påskynda utförandet av operationer under arbetets gång lagras index med information om distributionen av data i RAM . Systemdriftsschemat syftar till att förlänga livslängden för flash-enheter, med hänsyn till den interna geometrin för platsen för chipsen i bäraren och styrenhetens funktion; data fördelas så jämnt som möjligt, vilket minimerar upprepad skrivning till samma block. För detta ändamål används en sekventiell lagringsalgoritm, i vilken ny data alltid skrivs endast i områdena efter de tidigare registrerade data, utan hänsyn till eventuell fragmentering. Efter att ha nått slutet av volymen börjar inspelningen från början och upptar, om möjligt, de frigjorda blocken. För att eliminera konflikter med enhetskontrollerns logik tar F2FS hänsyn till detaljerna i FTL-lagret ( Flash Translation Layer ), som utför en liknande uppgift med enhetlig fyllning på många enheter. För att anpassa F2FS till olika typer av flash-enheter, som skiljer sig i deras egenskaper beroende på den interna geometrin och kontrollschemat, tillhandahålls ett brett utbud av parametrar för att styra strukturen för datadistributionen i partitionen och möjligheten att välja olika algoritmer för att rensa och blocktilldelning tillhandahålls.
Systemet är skyddat från den "snöbollseffekt" som visar sig vid användning av vandrande träd ( vandrande träd ): i en situation där nya element skapas istället för att skriva om (blocknumret ändras), för träd där föräldranoden refererar till barn noder leder ändring av nod till att alla uppströmsnoder återuppbyggs. Systemet behöver en sophämtare som körs i bakgrunden när systemet är inaktivt.
För att säkerställa integriteten används en modell med fixering av exekveringspunkter och möjlighet att återställa ändringar ( engelska rollback ) för att spara poäng vid problem.
F2FS-partitionen är bildad av 2 MB segment, segmenten är grupperade i sektioner, som i sin tur kombineras till zoner.
Både det traditionella Unix åtkomstkontrollschemat stöds, såväl som avancerade mekanismer som xattr och POSIX ACL .
Från och med GRUB 2.04 (5 juli 2019) är det möjligt att använda en F2FS-partition som startbar. För tidigare versioner var du tvungen att skapa en separat startpartition på ext4 eller andra filsystem som stöds av GRUB.
Filsystem ( lista , jämförelse ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribuerat (nätverk) | |||||||
Särskild |
|