Открыть сервис

F2FS

F2FS (Flash-Friendly File System) — это файловая система с журналированием, разработанная компанией Samsung Electronics в 2012 году специально для устройств хранения данных на основе флеш-памяти NAND, включая твердотельные накопители (SSD), карты памяти и встроенные решения (eMMC, UFS). Основное назначение F2FS — учет особенностей флеш-памяти, таких как необходимость выравнивания износа (wear leveling) и сборки мусора (garbage collection), для обеспечения высокой производительности и долговечности накопителя. Файловая система оптимизирована для работы с блоками данных на физическом уровне, что отличает её от традиционных файловых систем, разработанных для механических жёстких дисков (например, ext4 или NTFS).

История

Разработка F2FS была начата в Samsung в 2010 году как ответ на растущее распространение флеш-памяти в мобильных устройствах и серверах. Первая версия была выпущена в 2012 году для ядра Linux (начиная с версии 3.8). В 2013 году поддержка F2FS была включена в ядро Linux 3.8, что сделало её доступной для широкого круга пользователей. В 2014 году компания Google начала использовать F2FS в Android-устройствах для улучшения скорости работы флеш-памяти. С тех пор F2FS остаётся основной файловой системой для многих смартфонов на Android, особенно в сегменте высокопроизводительных моделей.

В 2016 году F2FS получила поддержку шифрования на уровне файлов (fs-encryption), что повысило её популярность в корпоративном сегменте и мобильных ОС. В 2020–2022 годах в F2FS были добавлены режимы для работы с новыми типами NAND (например, QLC, 3D NAND) и улучшен алгоритм сбора мусора.

Архитектура и принципы работы

F2FS основана на концепции «сегментированного хранения» (segment-based layout), которая позволяет адаптировать операции ввода-вывода к физическим характеристикам флеш-памяти. В отличие от традиционных файловых систем, F2FS оперирует не секторами (обычно 512 байт), а страницами (страницы NAND — от 4 КБ до 16 КБ) и блоками (от 64 КБ до 2 МБ). Структура на диске включает несколько ключевых областей:

Основные метаданные

Зона данных

Данные в F2FS организованы в сегменты (обычно по 2 МБ). Каждый сегмент содержит несколько страниц. При записи новых данных F2FS использует стратегию «добавочной записи» (append-only), когда новые данные пишутся в свободные блоки, а старые версии помечаются как устаревшие. Это минимизирует операции стирания, так как флеш-память требует полного стирания блока перед повторной записью.

Особенности и преимущества

F2FS включает ряд механизмов, критических для долговечности и производительности флеш-памяти:

Выравнивание износа

F2FS использует алгоритм LFS (Log-structured File System), при котором данные и метаданные записываются последовательно в новые сегменты. Это позволяет равномерно распределять операции стирания по всем блокам NAND, что предотвращает преждевременный отказ некоторых секторов.

Сборка мусора

Файловая система имеет встроенный механизм сборки мусора (garbage collection). В фоновом режиме F2FS перераспределяет данные из сегментов с большим количеством устаревших страниц в новые сегменты, затем освобождённые блоки стираются. У пользователя есть возможность настроить порог запуска сборки мусора (например, при заполнении диска на 80–90 %).

Журналирование

F2FS поддерживает журналирование для защиты от сбоев питания. В отличие от ext4, где журнал может быть отдельным файлом или областью, в F2FS журнал интегрирован в структуру контрольных точек. Это снижает накладные расходы и повышает надёжность.

Разреженные файлы

Поддержка разреженных файлов (sparse files) позволяет создавать файлы большого размера, занимающие на диске только фактически записанные данные. Это экономит место на носителях с ограниченной ёмкостью.

Применение

F2FS широко используется в следующих областях:

Ограничения и критика

Несмотря на преимущества, F2FS имеет ряд ограничений:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →