F2FS

Материал из Сайт инструкций
Перейти к: навигация, поиск

Шаблон:Карточка файловой системы F2FS () - файловая система, ориентированная на использование на флеш-памяти, в том числе оптимизирована для использования с SSD-накопителями, картами памяти( eMMC/SD) и встроенных в различные потребительские устройства флеш-чипов. Автором является Ким Хэ Гык (Kim Jaegeuk, Hangul: 김재극) из корпорации «Samsung». Исходный код F2FS был открыт компанией в октябре 2012 [1][2], после чего доработан инженерами «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. [3]

Сноски

Ссылки

Шаблон:Файловые системы



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