F2FS

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
F2FS
Розробник Samsung Electronics[1], Motorola Mobility[d] і Huawei
Файлова система Flash-Friendly File System
Дата представлення v3.8, 2012-12-20[2] (Linux)
Структура
Структура директорій багаторівнева хеш-таблиця
Структура файлів bitmap (вільний простір), таблиця
Обмеження
Максимальний розмір файлу 3.94 TB
Максимум файлів Залежить від розміру обсягу
Максимальна довжина імені файлу 512 байт[3]
Максимальний розмір тому 16 TB
Можливості
Властивості модифікація (mtime), модифікація атрибута (ctime), доступ (atime)
Точність збереження дати 1 ns
Атрибути POSIX, розширені атрибути
Права доступу POSIX, ACL
Фонова компресія

LZO, LZ4 (від Linux 5.6),[4]

zstd[en] (від Linux 5.7)[5]
Фонове кодування Наявне
Підтримується ОС Linux і Android

F2FS (англ. Flash-Friendly File System) — файлова система, орієнтованої на використання на флеш-пам'яті, в тому числі оптимально придатна для SSD-накопичувачів, карт пам'яті (eMMC/SD) і вбудованих в різні споживчі пристрої флеш-чипів. Сирцевий код F2FS був відкритий компанією Samsung у жовтні 2012[6][7], після чого доопрацьований інженерами Samsung з урахуванням зауважень співтовариства. Додатково розвивається пакет f2fs-tools, що містить набір утиліт для обслуговування розділів F2FS (mkfs.f2fs, fsck.f2fs).

F2FS розроблена спеціально з урахуванням специфіки флеш-пам'яті і враховує такі особливості, як незмінний час доступу і обмежений ресурс з числа перезапису даних. З особливостей F2FS можна виділити:

  • зберігання структур даних організовано у формі логу, а при оновленні інформації використовується підхід Copy-on-Write, при якому при зміні дані не перезаписуються, а зберігаються в новому місці. При цьому, для зниження зносу флеша дані по можливості розподіляються рівномірно, зводячи до мінімуму повторний запис в одні і ті ж блоки. Для цього використовується алгоритм послідовного заповнення накопичувача, при якому нові дані завжди записуються тільки в області, наступні після вже записаних даних без оглядки на можливу фрагментацію. Після досягнення кінця розділу запис починається з початку, займаючи, в міру можливостей, звільнені блоки. Для виключення конфліктів з логікою контролера накопичувача, в F2FS враховується специфіка роботи прошарку FTL (Flash Translation Layer), що виконує на багатьох накопичувачах подібну задачу з рівномірного заповнення;
  • для забезпечення цілісності використовується модель з фіксацією контрольних точок і можливістю відкоту змін (roll-back) у разі проблем.
  • Для адаптації F2FS до різних видів флеша, які відрізняються своїми характеристиками в залежності від внутрішньої геометрії і схеми управління, передбачений широкий спектр параметрів для управління структурою розподілу даних в розділі і надана можливість вибору різних алгоритмів очищення і виділення блоків;
  • розділ F2FS формується із сегментів розміром 2 Мб, сегменти групуються в секції, які в свою чергу об'єднуються в зони;
  • у процесі розробки F2FS враховані проблеми раніше доступних спеціалізованих файлових систем на основі структур у формі логу і докладено всіх зусиль для усунення відомих недоліків, таких як велике споживання пам'яті і високі накладні витрати при виконанні операцій очищення;
  • файлова система F2FS захищена від ефекту снігової лавини, що проявляється для Wandering-дерев: у ситуації, коли замість перезапису створюються нові елементи (змінюється номер блоку), для дерев в яких батьківський вузол посилається на дочірні вузли, зміна вузла приводить до перебудови всіх вищерозміщених вузлів;
  • для прискорення виконання операцій в процесі роботи основні індекси з інформацією про розподіл даних зберігаються в оперативній пам'яті;
  • для виконання операцій чищення реалізований спеціальний складальник сміття, виконуваний у фоні в моменти простою системи;
  • підтримується традиційна для UNIX схема розмежування доступу і такі розширені механізми, як xattr[en] і POSIX ACL.

Підтримка файлової системи F2FS включена в ядро Linux починаючи з гілки 3.8.[8][7]

Див. також[ред. | ред. код]

  • exFAT — файлова система для флеш-пам'яті і SSD-накопичувачів від Microsoft.

Примітки[ред. | ред. код]

Посилання[ред. | ред. код]