Interested Article - F2FS

F2FS ( англ. Flash-Friendly File System ) — файловая система , ориентированная на использование на флеш-памяти , в том числе для использования с SSD для серверов и персональных компьютеров, с картами памяти ( eMMC / SD ) и со встроенными в различные потребительские устройства флеш-чипами.

Автор — разработчик Samsung Ким Чэ Гык (Kim Jaegeuk, кор. 김재극 ). Исходный код системы был открыт Samsung в октябре 2012 , после чего доработан инженерами «Samsung» с учётом замечаний сообщества.

Поддержка F2FS включена в ядро Linux начиная с версии 3.8 . Параллельно развивается пакет f2fs-tools, содержащий набор утилит для обслуживания разделов F2FS (mkfs.f2fs, fsck.f2fs).

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

Особенности

Хранение структур данных организовано в форме LSM-дерева , при обновлении информации используется механизм копирования при записи — при изменении данные не перезаписываются, а сохраняются в новом месте. Для ускорения выполнения операций в процессе работы индексы с информацией о распределении данных хранятся в оперативной памяти . Схема работы системы нацелена на продление жизни флеш-накопителей, учитывает внутреннюю геометрию расположения чипов в носителе и работу контроллера; данные по возможности распределяются равномерно, сводя к минимуму повторную запись в одни и те же блоки. С этой целью используется алгоритм последовательного заполнения накопителя, при котором новые данные всегда записываются только в области, следующие после ранее записанных данных, без оглядки на возможную фрагментацию. После достижения конца тома запись начинается с начала, занимая, по возможности, освобождённые блоки. Для исключения конфликтов с логикой контроллера накопителя в F2FS учитывается специфика работы прослойки FTL ( Flash Translation Layer ), выполняющего на многих накопителях подобную задачу по равномерному заполнению. Для адаптации F2FS к различным видам флеш-накопителей, различающихся своими характеристиками в зависимости от внутренней геометрии и схемы управления, предусмотрен широкий спектр параметров для управления структурой распределения данных в разделе и предоставлена возможность выбора различных алгоритмов очистки и выделения блоков.

Система защищена от «эффекта снежного кома», проявляющегося при использовании гуляющих деревьев ( wandering tree ): в ситуации, когда вместо перезаписи создаются новые элементы (меняется номер блока), для деревьев, в которых родительский узел ссылается на дочерние узлы, изменение узла приводит к перестройке всех вышележащих узлов. Системе необходим сборщик мусора , выполняющийся в фоне в моменты простоя системы.

Для обеспечения целостности используется модель с фиксацией точек выполнения и возможностью отката изменений ( англ. rollback ) к точкам сохранения в случае возникновения проблем.

Раздел F2FS формируется из сегментов размером 2 МБ, сегменты группируются в секции, которые в свою очередь объединяются в зоны.

Поддерживается как традиционная для Unix схема разграничения доступа, так и такие расширенные механизмы, как и POSIX ACL .

Начиная с GRUB 2.04 (5 Июля 2019) можно использовать раздел с F2FS как загрузочный. Для ранних версий приходилось создавать отдельный загрузочный раздел на ext4 или других файловых системах, поддерживаемых GRUB.

Примечания

  1. от 30 июня 2016 на Wayback Machine merged by Linus Torvalds
  2. Jaegeuk Kim. (24 июня 2015). Дата обращения: 7 октября 2020. 17 января 2016 года.
  3. от 18 января 2013 на Wayback Machine , LKML, 2012-10-05
  4. от 18 апреля 2021 на Wayback Machine // opennet.ru , 05.10.2012
  5. . OpenNET . из оригинала 12 октября 2020 . Дата обращения: 7 октября 2020 .

Ссылки

  • лекция от авторов (2015-02-17)
  • документация для Linux: опции монтирования и конфигурация
  • (2013-02-22)
  • (2012-10-10)
  • сравнение с другими ФС и стратегии оптимизации (2013-05-24)
Источник —

Same as F2FS