Структура файловой системы, которая записывает всю информацию в кольцевой буфер
Файловая система с лог-структурой — это файловая система , в которой данные и метаданные последовательно записываются в кольцевой буфер , называемый журналом . Впервые этот дизайн был предложен в 1988 году Джоном К. Оустерхаутом и Фредом Дуглисом и впервые реализован в 1992 году Оустерхаутом и Менделем Розенблюмом для Unix-подобной распределенной операционной системы Sprite . [1]
Обоснование
Традиционные файловые системы, как правило, размещают файлы с большой осторожностью с точки зрения пространственной локальности и вносят изменения в их структуры данных на месте, чтобы обеспечить хорошую работу на оптических и магнитных дисках, которые, как правило, выполняют поиск относительно медленно.
Проектирование файловых систем с лог-структурой основано на гипотезе, что это больше не будет эффективно, поскольку постоянно растущие объемы памяти на современных компьютерах приведут к тому, что ввод-вывод станет интенсивно записывать, поскольку чтения будут почти всегда удовлетворяться из кэша памяти. Таким образом, файловая система с лог-структурой рассматривает свое хранилище как циклический журнал и последовательно записывает в заголовок журнала.
Это имеет несколько важных побочных эффектов:
- Пропускная способность записи на оптические и магнитные диски повышается, поскольку их можно объединять в большие последовательные циклы, а дорогостоящие операции поиска сводятся к минимуму.
- Записи создают несколько хронологически продвигающихся версий как файловых данных, так и метаданных. Некоторые реализации делают эти старые версии файлов именуемыми и доступными, эта функция иногда называется путешествием во времени или моментальным снимком . Это очень похоже на файловую систему с управлением версиями .
- Восстановление после сбоев проще. При следующем монтировании файловой системе не нужно проходить все свои структуры данных, чтобы исправить любые несоответствия, но она может восстановить свое состояние из последней согласованной точки в журнале.
Однако файловые системы с лог-структурой должны освобождать свободное пространство из хвоста журнала, чтобы предотвратить заполнение файловой системы, когда заголовок журнала заворачивается, чтобы встретиться с ним. Хвост может освободить пространство и двигаться вперед, пропуская данные, для которых более новые версии существуют дальше вперед в журнале. Если более новых версий нет, то данные перемещаются и добавляются в голову.
Чтобы уменьшить накладные расходы, возникающие при сборке мусора , большинство реализаций избегают чисто циклических журналов и делят свое хранилище на сегменты. Заголовок журнала просто продвигается в несмежные сегменты, которые уже свободны. Если требуется место, сначала освобождаются наименее заполненные сегменты. Это снижает нагрузку ввода-вывода (и уменьшает усиление записи ) сборщика мусора, но становится все менее эффективным по мере того, как файловая система заполняется и приближается к емкости.
Недостатки
Обоснование дизайна для файловых систем с лог-структурой предполагает, что большинство чтений будут оптимизированы за счет постоянно увеличивающихся кэшей памяти. Это предположение не всегда выполняется:
- На магнитных носителях, где поиск обходится сравнительно дорого, структура журнала может фактически значительно замедлить чтение, поскольку она фрагментирует файлы, которые обычные файловые системы обычно хранят смежными при записи на месте.
- На флэш-памяти, где время поиска обычно незначительно, структура журнала может не дать существенного прироста производительности, поскольку фрагментация записи оказывает гораздо меньшее влияние на пропускную способность записи. Другая проблема заключается в размещении одного журнала поверх другого журнала, что не очень хорошая идея, поскольку это приводит к многократным стираниям с невыровненным доступом. [4] Однако многие устройства на основе флэш-памяти не могут перезаписать часть блока, и они должны сначала выполнить (медленный) цикл стирания каждого блока, прежде чем смогут перезаписать, поэтому, помещая все записи в один блок, это может повысить производительность в отличие от записей, разбросанных по различным блокам, каждый из которых должен быть скопирован в буфер, стерт и записан обратно, что является явным преимуществом для так называемой «сырой» флэш-памяти, где слой трансляции флэш-памяти обойден. [ необходима цитата ]
Смотрите также
Ссылки
- ^ Джон К. Оустерхаут, Мендель Розенблюм. (1991), Проектирование и реализация файловой системы с журнальной структурой (PDF) , Калифорнийский университет в Беркли
- ^ Команды инженеров оборудования Magic Pocket. «Расширение инноваций Magic Pocket с первым развертыванием накопителя SMR петабайтного масштаба». dropbox.tech .
- ^ Рид, Колин; Бернстайн, Фил (1 января 2010 г.). «Реализация интерфейса только для добавления для полупроводникового хранилища» (PDF) . IEEE Data Eng. Bull . 33 : 14-20.
- ^ Сваминатан Сундарараман, Цзинпей Ян (2014), Не кладите свой журнал на мой журнал (PDF) , SanDisk Corporation
Дальнейшее чтение
- Журнально-структурированные файловые системы (2014), Арпачи-Дюссо, Ремзи Х.; Арпачи-Дюссо, Андреа К.; Книги Арпачи-Дюссо