LogFS
LogFS — файловая система для Linux, оптимизированная для быстрого монтирования флеш-накопителей большого объёма. Основной разработчик — Jörn Engel[1].
Описание
Создание LogFS было продиктовано трудностями JFFS2 при работе с большими Flash-накопителями. LogFS сохраняет индексный дескриптор дерева на диске, а JFFS2 этого не делает, что требует сканирования всего диска при монтировании и кэширования всего дерева в оперативной памяти. Для больших дисков сканирование может занять несколько десятков секунд, а дерево может занять значительное количество оперативной памяти. LogFS позволяет избежать этих издержек, но выполняет больше работы, в то время как система работает и использует некоторое пространство диска для хранения индексных дескрипторов дерева.
LogFS сохраняет индексные дескрипторы файлов дерева на диске, а значит, при записи в файл каждый родительский узел в дереве должен быть переписан. Самые нижние узлы в дереве (т. е. данные) записываются первыми, каждый узел записывается по восходящей к корню дерева, пока корневой индексный дескриптор не будет обновлен. Запись корня в последнюю очередь обеспечивает атомарность обновления.
Блок Flash-памяти является единицей стирания и, как правило, больше, чем блок файловой системы. LogFS обрабатывает это несоответствие путём упаковки нескольких блоков файловой системы в один блок Flash-памяти. Когда все блоки файловой системы, входящие в блок Flash-памяти, перемещены или удалены, блок Flash-памяти можно стирать и использовать для новых данных.
Текущее состояние
По состоянию на ноябрь 2008 года LogFS была достаточно зрелой, чтобы пройти весь набор тестов, после чего была включена в основную ветвь ядра Linux, в версии 2.6.34 выпущенном 16 мая 2010 года, и помечена как «экспериментальная».
Свежие исходные коды LogFS доступны на GitHub[2].
См. также
Примечания
- ↑ Ian Kleinert, Achim Leitner. Flash memory and the LogFS filesystem. Friend of flash (англ.) (недоступная ссылка). Linux Magazine (1 января 2008). Архивировано 3 сентября 2014 года.
- ↑ prasad-joshi/logfs_upstream · GitHub . Дата обращения: 24 сентября 2013. Архивировано 10 июня 2018 года.
Ссылки
- Jonathan Corbet. LogFS (англ.). LWN.net (15 мая 2007). Дата обращения: 24 сентября 2013.
- Koen Vervloesem. NLUUG: The bright future of Linux filesystems (англ.). LWN.net (13 мая 2009). Дата обращения: 24 сентября 2013.
- Jonathan Corbet. LogFS returns (англ.). LWN.net (24 ноября 2009). Дата обращения: 24 сентября 2013.
- Ian Kleinert, Achim Leitner. Flash memory and the LogFS filesystem. Friend of flash (англ.) (недоступная ссылка). Linux Magazine (1 января 2008). Архивировано 3 сентября 2014 года.
- Joe 'Zonker' Brockmeier. LogFS: A new way of thinking about flash filesystems (англ.) (недоступная ссылка). Linux.com (17 мая 2007). Дата обращения: 24 сентября 2013. Архивировано 27 сентября 2013 года.
- LogFS - новая файловая система оптимизированная для работы на Flash . OpenNET (9 мая 2007). Дата обращения: 24 сентября 2013.
- В состав Linux ядра принят код файловой системы LogFS . OpenNET (8 марта 2010). Дата обращения: 24 сентября 2013.
- Thorsten Leemhuis. Kernel Log: Coming in 2.6.34 (Part 2) - File Systems (англ.). The H Open. Verlag Heinz Heise (23 апреля 2010). — (немецкий оригинал). Дата обращения: 24 сентября 2013.
- Logfs initial design document
- Документация LogFS в исходном коде ядра Linux (англ.)
- LogFS утилита форматирования
- Intro to logfs video
- LogFS (wiki) (недоступная ссылка) Архивировано 16 июня 2010. Проверено 26 сентября 2013.