ЛогФС
Разработчик(и) | Йорн Энгель, Прасад Джоши |
---|---|
Другой | |
Поддерживается операционные системы | Линукс |
Веб-сайт | logfs.org/logfs/ на Wayback Machine (архивировано 16 июня 2010 г.) |
LogFS — это Linux лог-структурированная и масштабируемая флэш-файловая система , предназначенная для использования на устройствах с большой флэш-памятью . Это написал Йорн Энгель. [1] и частично спонсируется CE Linux Forum .
LogFS была представлена в основном ядре Linux в версии 2.6.34, выпущенной 16 мая 2010 года. Она была удалена из кодовой базы во время окна слияния версии 4.10 в декабре 2016 года, поскольку «не поддерживалась в течение многих лет и, по-видимому, не использовалась». . [2]
История
[ редактировать ]По состоянию на ноябрь 2008 г. [update]LogFS была достаточно зрелой, чтобы пройти весь набор тестов, и впоследствии была включена в основное ядро Linux с пометкой «экспериментальная» в версии 2.6.34, выпущенной 16 мая 2010 года. Однако она не привлекла большую базу пользователей. и был удален из ядра в декабре 2016 года.
Операция
[ редактировать ]Использование LogFS было мотивировано трудностями JFFS2 с накопителями флэш-памяти большего размера. LogFS сохраняет дерево индексных дескрипторов на диске; JFFS2 этого не делает, поэтому ему необходимо сканировать весь диск при монтировании и кэшировать все дерево в оперативной памяти. Для более крупных дисков сканирование может занять десятки секунд, а дерево может занять значительный объем оперативной памяти. LogFS позволяет избежать этих штрафов, но выполняет больше работы во время работы системы и использует часть пространства диска для хранения дерева индексных дескрипторов.
LogFS хранит дерево индексных дескрипторов файла на диске, а это означает, что при записи в файл каждый родительский узел в дереве должен быть перезаписан. Это делается с помощью обновления «блуждающего дерева». Самый нижний узел в дереве (т. е. данные) записывается первым, каждый узел записывается по возрастанию дерева, пока корневой индекс не будет обновлен. Запись корня последним сохраняет атомарность обновления.
Блок флэш-памяти представляет собой единицу стирания и обычно больше блока файловой системы. LogFS устраняет это несоответствие, упаковывая несколько блоков файловой системы в один блок флэш-памяти. Запись «сумма» в конце блока флэш-памяти записывает, какие данные в нем хранятся. Когда в блоке флэш-памяти все блоки файловой системы перемещены или удалены, его можно стереть и использовать для новых данных.
Для пикового использования флэш-накопителя необходимо уплотнять данные, чтобы блоки флэш-памяти были заполнены полезными данными. Это достигается сбором мусора . Стратегия сбора мусора LogFS основана на том, что данные файла определенным образом помещаются в блоки флэш-памяти: блок флэш-памяти будет содержать только данные файла с одного и того же уровня в дереве индексных дескрипторов. LogFS может собирать мусор верхнего уровня деревьев, используя всего один пустой блок флэш-памяти. Он может собирать мусор на двух верхних уровнях деревьев, используя два пустых блока флэш-памяти. И может собрать мусор на всех N уровнях деревьев, используя N пустых блоков флэш-памяти. В худшем случае алгоритм работает с экспоненциальным временем , но худший случай встречается редко, и алгоритм требует резервирования лишь нескольких блоков флэш-памяти.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Йорн Энгель; Роберт Мертенс (18 сентября 2005 г.). «LogFS — наконец-то масштабируемая файловая система флэш-памяти» (PDF) .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Джонатан Корбет (21 декабря 2016 г.). «4.10 Окно объединения, часть 2» . Проверено 2 июня 2020 г.
Файловая система logfs, не поддерживаемая в течение многих лет и, по-видимому, не используемая, была удалена из ядра.
Внешние ссылки
[ редактировать ]- logfs.org/logfs/ на Wayback Machine (архивировано 16 июня 2010 г.)
- Введение в LogFS (видео)