F2FS | |
---|---|
Vývojář | Kim Hae Geuk (Kim Jaegeuk, Kor. 김재극 ), Samsung Electronics , Motorola Mobility , Huawei a Google |
Souborový systém | Flash – přívětivý souborový systém |
Datum podání | února 2013 [1] ( Linux ) |
Struktura | |
Obsah složky | Víceúrovňová hashovací tabulka |
Umístění souboru | Bitová pole (volné místo), Tabulka |
Omezení | |
Maximální velikost souboru | 3,94 TB |
Maximální počet souborů | Závisí na velikosti objemu |
Maximální délka souboru | 255 bajtů, 512 unicode pro označení svazku |
Maximální velikost svazku | 16 TB |
Schopnosti | |
Vlastnosti | čas modifikace (mtime), čas změny atributu (ctime), čas přístupu (atime) |
Přesnost ukládání data | 1 ns |
Atributy | Rozšířené atributy POSIX (xattrs) |
Přístupová práva | POSIX , ACL |
Komprese pozadí | LZO, LZ4, zstd |
Šifrování na pozadí | ano [2] |
OS podporován | Linux a Android |
F2FS ( anglicky Flash-Friendly File System ) je souborový systém zaměřený na používání flash paměti , včetně použití s SSD pro servery a osobní počítače, s paměťovými kartami ( eMMC / SD ) a s vestavěnými flash čipy různých spotřebitelských zařízení.
Autorem je vývojář Samsung Kim Jaegeuk (Kim Jaegeuk, Kor. 김재극 ). Zdrojový kód systému otevřel Samsung v říjnu 2012 [3] [4] , poté jej dokončili inženýři Samsungu s přihlédnutím k připomínkám komunity.
Podpora F2FS je součástí linuxového jádra od verze 3.8 [5] . Souběžně s tím je vyvíjen balíček f2fs-tools, který obsahuje sadu utilit pro obsluhu F2FS oddílů (mkfs.f2fs, fsck.f2fs).
Navrženo speciálně pro specifika flash paměti a bere v úvahu takové vlastnosti, jako je konstantní přístupová doba a omezený zdroj pro počet cyklů přepisování dat .
Ukládání datových struktur je organizováno formou LSM stromu , při aktualizaci informací se využívá mechanismus copy-on-write - při změně se data nepřepisují, ale ukládají na nové místo. Pro urychlení provádění operací v procesu práce jsou indexy s informacemi o distribuci dat uloženy v paměti RAM . Schéma provozu systému je zaměřeno na prodloužení životnosti flash disků s přihlédnutím k vnitřní geometrii umístění čipů v nosiči a provozu řadiče; data jsou distribuována co nejrovnoměrněji, čímž se minimalizuje opakovaný zápis do stejných bloků. K tomuto účelu se používá algoritmus sekvenčního ukládání, při kterém se nová data zapisují vždy pouze do oblastí následujících za dříve zaznamenanými daty, bez ohledu na možnou fragmentaci. Po dosažení konce hlasitosti se nahrávání spustí od začátku, zabírá pokud možno uvolněné bloky. Aby se eliminovaly konflikty s logikou řadiče disku, bere F2FS v úvahu specifika vrstvy FTL ( Flash Translation Layer ), která plní podobný úkol rovnoměrného plnění na mnoha jednotkách. Pro přizpůsobení F2FS různým typům flash disků, které se liší svými charakteristikami v závislosti na vnitřní geometrii a schématu ovládání, je k dispozici široká škála parametrů pro řízení struktury distribuce dat v oddílu a možnost výběru různých algoritmů pro vymazání. a je zajištěna alokace bloků.
Systém je chráněn před „efektem sněhové koule“, který se projevuje při použití potulných stromů ( putující strom ): v situaci, kdy jsou místo přepisování vytvářeny nové prvky (mění se číslo bloku), u stromů, ve kterých nadřazený uzel odkazuje na potomka uzlů, změna uzlu vede k přebudování všech upstream uzlů. Systém potřebuje garbage collector , který běží na pozadí, když je systém nečinný.
Pro zajištění integrity se používá model s fixováním bodů provádění a možností vrátit změny ( anglicky rollback ) pro uložení bodů v případě problémů.
Oddíl F2FS je tvořen segmenty o velikosti 2 MB, segmenty jsou seskupeny do sekcí, které jsou zase sloučeny do zón.
Podporováno je jak tradiční unixové schéma řízení přístupu, tak pokročilé mechanismy jako xattr a POSIX ACL .
Počínaje GRUB 2.04 (5. července 2019) je možné použít oddíl F2FS jako spouštěcí. U dřívějších verzí jste museli vytvořit samostatný spouštěcí oddíl na ext4 nebo jiných souborových systémech podporovaných GRUBem.
Souborové systémy ( seznam , srovnání ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribuované (síť) | |||||||
Speciální |
|