Jump to content

Файловая система с журнальной структурой (BSD)

Файловая система с журнальной структурой (или LFS ) — это реализация файловой системы с журнальной структурой (концепция, первоначально предложенная и реализованная Джоном Оустерхаутом ), изначально разработанная для BSD . Он был удален из FreeBSD и OpenBSD ; реализация NetBSD была нефункциональной до тех пор, пока работа, предшествовавшая выпуску 4.0, не сделала ее снова жизнеспособной в качестве производственной файловой системы. [1]

Большая часть дискового формата LFS заимствована из UFS . Форматы косвенного блока, индексного дескриптора и каталога практически идентичны. Это позволяет повторно использовать хорошо протестированный код файловой системы UFS; текущие реализации LFS используют код UFS более высокого уровня и код более низкого уровня для FFS, поскольку обе эти файловые системы имеют много общего с UFS.

LFS делит диск на сегменты , только один из которых активен в любой момент времени. Каждый сегмент имеет заголовок, называемый сводным блоком . Каждый сводный блок содержит указатель на следующий сводный блок, связывающий сегменты в одну длинную цепочку, которую LFS рассматривает как линейный журнал. Сегменты не обязательно должны быть соседними на диске; по этой причине рекомендуется использовать сегменты большего размера (от 384 КБ до 1 МБ), поскольку они амортизируют затраты на поиск между сегментами. [2]

Всякий раз, когда файл или каталог изменяется, LFS записывает в заголовок этого журнала:

  1. Любые измененные или новые блоки данных.
  2. Косвенные блоки обновлены и теперь указывают на (1).
  3. Индексные дескрипторы обновлены и теперь указывают на (2).
  4. Блоки карты индексных дескрипторов обновлены и теперь указывают на (3). [3]

В отличие от UFS, индексные дескрипторы в LFS не имеют фиксированного местоположения. Карта индексных дескрипторов — плоский список местоположений блоков индексных дескрипторов — используется для их отслеживания. Как и все остальное, блоки карты индексных дескрипторов также записываются в журнал при их изменении.

Когда сегмент заполнен, LFS продолжает заполнять следующий свободный или чистый сегмент. Сегменты называются « грязными» , если они содержат активные блоки или блоки, для которых в журнале нет более новых копий. LFS Сборщик мусора превращает грязные сегменты в чистые , копируя живые блоки из грязного сегмента в текущий сегмент и пропуская остальные. Сводный блок в каждом сегменте содержит карту для отслеживания живых блоков.

Обычно сбор мусора откладывается до тех пор, пока не останется чистых сегментов; его также можно отложить на время простоя системы. Даже в этом случае для сбора отбираются только наименее загрязненные сегменты. Это сделано для того, чтобы избежать штрафа за очистку полных сегментов, когда полоса пропускания ввода-вывода наиболее необходима. [2]

В контрольной точке (обычно запланированной примерно раз в 30 секунд) LFS записывает последние известные местоположения блоков карты индексного дескриптора и номер текущего сегмента в область контрольной точки в фиксированном месте на диске. Таких регионов два; ОРС чередует их на каждой контрольной точке. После написания контрольная точка представляет собой последний согласованный снимок файловой системы. Восстановление после сбоя и обычное монтирование работают одинаково — файловая система просто восстанавливает свое состояние с последней контрольной точки и возобновляет ведение журнала оттуда.

Недостатки

[ редактировать ]
  • В LFS может возникнуть серьезная фрагментация файловой системы , особенно для медленно растущих файлов или для нескольких одновременных операций записи больших объемов. Это приводит к серьезному снижению производительности, хотя обоснование конструкции файловых систем с журнальной структурой предполагает, что операции чтения с диска в основном будут кэшироваться.
  • LFS становится все менее эффективной по мере приближения к максимальной емкости, когда сборщику мусора приходится работать почти постоянно, чтобы обеспечить доступность чистых сегментов.
  • LFS не позволяет создавать снимки или управлять версиями, хотя обе функции в целом легко реализовать в файловых системах с журнальной структурой.

Примечания

[ редактировать ]
  • Зельцер, Марго; Бостик, Кейт; МакКьюсик, Маршалл Кирк; Стаелин, Карл (январь 1993 г.), «Реализация файловой системы с журнальной структурой для UNIX» (PDF) , Материалы зимнего Usenix 1993 г.
  • Мэтьюз, Джинна Нифе; Роселли, Дрю; Костелло, Адам М.; Ван, Рэндольф Ю.; Андерсон, Томас Э. (октябрь 1997 г.), «Улучшение производительности файловых систем с журнальной структурой с помощью адаптивных методов», Труды шестнадцатого симпозиума ACM по принципам операционных систем - SOSP '97 , стр. 238–251, doi : 10.1145/ 268998.266700 , ISBN  978-0897919166 , S2CID   11858758
  1. ^ Буйе, Мануэль (15 декабря 2007 г.). «СИСТЕМА ИЗМЕНЕНИЙ выпуска NetBSD 4.0» . Проверено 4 февраля 2019 г. .
  2. ^ Перейти обратно: а б Розенблюм, Мендель; Оустерхаут, Джон К. (февраль 1992 г.), «Проектирование и реализация файловой системы с журнальной структурой» (PDF) , Транзакции ACM в компьютерных системах , 10 (1): 26–52, doi : 10.1145/146941.146943 , S2CID   28452863 .
  3. ^ Розенблюм, Мендель; Оустерхаут, Джон К. (июнь 1990 г.), «Менеджер хранилища LFS» (PDF) , Proceedings of the Summer Usenix 1990 г .: 315–324 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 39f55af8ece4efe7b86ac480ba9b4f08__1715571840
URL1:https://arc.ask3.ru/arc/aa/39/08/39f55af8ece4efe7b86ac480ba9b4f08.html
Заголовок, (Title) документа по адресу, URL1:
Log-structured File System (BSD) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)