F2FS

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
F2FS
Разработчик

Ким Хэ Гык (Kim Jaegeuk, Hangul: 김재극)

Файловая система

Флеш-дружелюбная файловая система (англ. Flash-Friendly File System)

Дата представления

Февраль 2013[1] (Linux)

Структура
Содержимое папок

Многоуровневая хэш таблица

Размещение файлов

Битовые поля, Таблица

Ограничения
Максимальный размер файла

3,94 тебибайт

Максимум файлов

Зависит от размера тома

Максимальная длина имени файла

255 байт

Максимальный размер тома

16 тебибайт

Возможности
Свойства

время модификации (mtime), время изменения атрибута (ctime), время доступа (atime)

Точность хранения даты

1 нс

Атрибуты

POSIX, расширенные атрибуты

Права доступа

POSIX, ACL

Фоновая компрессия

Нет

Фоновое шифрование

Нет

Поддерживается ОС

Linux

F2FS (англ. Flash-Friendly File System) - файловая система, ориентированная на использование на флеш-памяти, в том числе оптимизирована для использования с SSD-накопителями, картами памяти(eMMC/SD) и встроенных в различные потребительские устройства флеш-чипов. Автором является Ким Хэ Гык (Kim Jaegeuk, Hangul: 김재극) из корпорации «Samsung». Исходный код F2FS был открыт компанией в октябре 2012 [2][3], после чего доработан инженерами «Samsung» с учётом замечаний сообщества. Параллельно развивается пакет f2fs-tools, содержащий набор утилит для обслуживания разделов F2FS (mkfs.f2fs, fsck.f2fs).

F2FS разработана специально с учётом специфики флеш-памяти и учитывает такие особенности, как неизменное время доступа и ограниченный ресурс количества циклов перезаписи данных.

Из особенностей F2FS можно выделить :

  • Хранение структур данных организовано в форме журнала, а при обновлении информации используется механизм копирования при записи (Copy-On-Write, COW), при котором при изменении данные не перезаписываются, но сохраняются в новом месте. Метод работы F2FS позволит существенно продлить жизнь флеш-накопителей, поскольку файловая система учитывает внутреннюю геометрию расположения чипов в носителе и работу контроллера. Для снижения износа флеш-накопителя данные по возможности распределяются равномерно, сводя к минимуму повторную запись в одни и те же блоки. С этой целью используется алгоритм последовательного заполнения накопителя, при котором новые данные всегда записываются только в области, следующие после ранее записанных данных, без оглядки на возможную фрагментацию. После достижения конца главы запись начинается с начала, занимая, по возможности, освобождённые блоки. Для исключения конфликтов с логикой контроллера накопителя, в F2FS учитывается специфика работы прослойки FTL (Flash Translation Layer), выполняющего на многих накопителях подобную задачу по равномерному заполнению.
  • Для обеспечения целостности используется модель с фиксацией точек и возможностью отката изменений (roll-back) в случае возникновения проблем.
  • Для адаптации F2FS к различным видам флеш-накопителей, отличающихся своими характеристиками в зависимости от внутренней геометрии и схемы управления, предусмотрен широкий спектр параметров для управления структурой распределения данных в разделе и предоставлена возможность выбора различных алгоритмов очистки и выделения блоков.
  • Раздел F2FS формируется из сегментов размером 2 Мб, сегменты группируются в секции, которые в свою очередь объединяются в зоны.
  • В процессе разработки F2FS учтены проблемы предыдущих специализированных файловых систем на основе структур в форме журнала и приложены все усилия для устранения известных недостатков, таких как большое потребление памяти и высокие накладные расходы при выполнении операций очистки.
  • Файловая система F2FS защищена от «эффекта снежного кома», проявляющегося при использовании Wandering-деревьев: в ситуации, когда вместо перезаписи создаются новые элементы (меняется номер блока), для деревьев, в которых родительский узел ссылается на дочерние узлы, изменение узла приводит к перестройке всех вышележащих узлов.
  • Для ускорения выполнения операций в процессе работы индексы c информацией о распределении данных хранятся в оперативной памяти.
  • Для выполнения операций сборки мусора реализован специальный сборщик, выполняющийся в фоне в моменты простоя системы.
  • В F2FS поддерживается как традиционная для UNIX схема разграничения доступа, так и такие расширенные механизмы, как xattr и POSIX ACL.

Поддержка файловой системы F2FS включена в ядро Linux начиная с 3.8.[4]

Сноски[править | править вики-текст]

Ссылки[править | править вики-текст]