F2FS

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 .

Funktioner

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.

Anteckningar

  1. Dra nytt F2FS-filsystem från Jaegeuk Kim Arkiverad 30 juni 2016 på Wayback Machine sammanslagna av Linus Torvalds
  2. Jaegeuk Kim. f2fs-uppdateringar för v4.2 (24 juni 2015). Hämtad 7 oktober 2020. Arkiverad från originalet 17 januari 2016.
  3. Detta är en ny patchuppsättning för f2fs-filsystemet Arkiverad 18 januari 2013 på Wayback Machine , LKML, 2012-10-05
  4. Samsung öppnade koden för F2FS, ett nytt filsystem för Flash-enheter Arkiverad 18 april 2021 på Wayback Machine // opennet.ru , 10/05/2012
  5. Linux 3.8-kärnan kommer att inkludera filsystemet F2FS , OpenNET . Arkiverad 12 oktober 2020. Hämtad 7 oktober 2020.

Länkar