stringtranslate.com

ЛогФС

LogFS — это лог-структурированная и масштабируемая флэш-файловая система Linux , предназначенная для использования на устройствах с большой флэш-памятью . Он написан Йорном Энгелем [1] и частично спонсируется CE Linux Forum .

LogFS была представлена ​​в основном ядре Linux в версии 2.6.34, выпущенной 16 мая 2010 года. Она была удалена из кодовой базы во время окна слияния версии 4.10 в декабре 2016 года, поскольку «не поддерживалась в течение многих лет и, по-видимому, не использовалась». . [2]

История

По состоянию на ноябрь 2008 года LogFS была достаточно зрелой, чтобы пройти весь набор тестов, и впоследствии была включена в основное ядро ​​Linux с пометкой «экспериментальная» в версии 2.6.34, выпущенной 16 мая 2010 года. Однако она не привлекла внимания. большую базу пользователей и был удален из ядра в декабре 2016 года.

Операция

Использование LogFS было мотивировано трудностями JFFS2 с накопителями флэш-памяти большего размера. LogFS сохраняет дерево индексных дескрипторов на диске; JFFS2 этого не делает, поэтому ему необходимо сканировать весь диск при монтировании и кэшировать все дерево в оперативной памяти. Для более крупных дисков сканирование может занять десятки секунд, а дерево может занять значительный объем оперативной памяти. LogFS позволяет избежать этих штрафов, но выполняет больше работы во время работы системы и использует часть пространства диска для хранения дерева индексных дескрипторов.

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

Блок флэш -памяти представляет собой единицу стирания и обычно больше блока файловой системы. LogFS устраняет это несоответствие, упаковывая несколько блоков файловой системы в один блок флэш-памяти. Запись «сумма» в конце блока флэш-памяти записывает, какие данные в нем хранятся. Когда в блоке флэш-памяти все блоки файловой системы перемещены или удалены, его можно стереть и использовать для новых данных.

Для пикового использования флэш-накопителя необходимо уплотнять данные, чтобы блоки флэш-памяти были заполнены полезными данными. Это достигается сбором мусора . Стратегия сбора мусора LogFS основана на том, что данные файла определенным образом помещаются в блоки флэш-памяти: блок флэш-памяти будет содержать только данные файла с одного и того же уровня в дереве индексных дескрипторов. LogFS может собирать мусор верхнего уровня деревьев, используя всего лишь один пустой блок флэш-памяти. Он может собирать мусор на двух верхних уровнях деревьев, используя два пустых блока флэш-памяти. И может собрать мусор на всех N уровнях деревьев, используя N пустых блоков флэш-памяти. В худшем случае алгоритм работает с экспоненциальным временем , но худший случай встречается редко, и алгоритм требует резервирования лишь нескольких блоков флэш-памяти.

Смотрите также

Рекомендации

  1. ^ Йорн Энгель; Роберт Мертенс (18 сентября 2005 г.). «LogFS — наконец-то масштабируемая файловая система флэш-памяти» (PDF) . {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  2. ^ Джонатан Корбет (21 декабря 2016 г.). «4.10 Объединить окно, часть 2» . Проверено 2 июня 2020 г. Файловая система logfs, не поддерживаемая в течение многих лет и, по-видимому, не используемая, была удалена из ядра.

Внешние ссылки