Программные обновления
Мягкие обновления — это подход к поддержанию файловой системы целостности метаданных в случае сбоя или отключения электроэнергии. Мягкие обновления работают путем отслеживания и обеспечения зависимостей между обновлениями метаданных файловой системы. Мягкие обновления являются альтернативой более часто используемому подходу журналирования файловых систем .
Метод работы
[ редактировать ]Мягкие обновления допускают только асинхронную запись метаданных, которая не приводит к несогласованности файловой системы на диске или что единственное несоответствие, которое когда-либо происходит, — это утечка пространства хранения (пространство, помеченное как выделенное, когда оно не используется каким-либо файлом). Это позволяет избежать необходимости выполнять упорядоченную синхронную запись метаданных путем временного «отката» любой части блока метаданных, которая зависит от другого потенциально не сбрасываемого или частично откатанного блока при его записи.
Фактически, блоки могут быть сброшены в любое время, и код мягких обновлений всегда будет предоставлять диску согласованную версию метаданных (при условии, что он знает, какие блоки были физически сброшены). Тогда восстановление становится просто вопросом фонового обхода файловой системы при ее следующем монтировании для сбора мусора любого выделенного пространства, которое было потеряно. Это также позволяет файловой системе выборочно очищать определенные файлы без необходимости очистки всех блоков метаданных или всех записей.
Данные, которые не связаны с графом зависимостей метаданных до начала их записи на диск, вообще не нужно записывать на диск. Например, создание файла, использование его в течение короткого периода времени, а затем его удаление может вообще не привести к исчезновению активности диска.
Программные обновления требуют периодической очистки метаданных в энергонезависимое хранилище.
Реализации
[ редактировать ]FreeBSD поддерживает мягкие обновления UFS. файловой системы [1] и они были включены по умолчанию во время установки в течение многих лет. Программные обновления включаются или отключаются вручную во время создания файловой системы с возможностью newfs команда. [2] Их можно отключить или включить в любое время после этого с помощью опции tunefs команда. [3] В FreeBSD 9.0 добавлено дополнение к программным обновлениям для ведения журнала с целью устранения фонового fsck для сбора мусора после аварии. [4] [5] Однако включение ведения журнала в файловой системе с программными обновлениями отключает возможность создания снимков файловой системы. [6] Это может вызвать проблемы при создании дампа файловых систем с опцией -L, поскольку снимки используются для обеспечения согласованности файловой системы во время дампа.
OpenBSD поддерживала программные обновления файловой системы FFS до выпуска 7.4 (2023 г.), после чего оно было отключено. [7]
NetBSD поддерживала программные обновления до версии 6.0 (2012 г.), после чего она была признана устаревшей в пользу ведения журнала WAPBL . [8]
Сравнение с журналируемыми файловыми системами
[ редактировать ]Ни ведение журнала, ни программные обновления не гарантируют, что никакие данные не будут потеряны, но они гарантируют, что файловая система останется согласованной.
Преимущество файловой системы с программными обновлениями состоит в том, что ее можно смонтировать сразу после сбоя, поскольку воспроизведение журнала не воспроизводится.
Примечания
[ редактировать ]- Гангер, Грегори Р.; Патт, Йель Н. (ноябрь 1994 г.). «Производительность обновления метаданных в файловых системах» (PDF) . Материалы симпозиума USENIX по проектированию и внедрению операционных систем (OSDI) : 49–60.
- МакКьюсик, Маршалл Кирк (2002). «Запуск «fsck» в фоновом режиме» . Материалы BSDCon 2002 . стр. 55–64.
- МакКьюсик, Маршалл Кирк; Гангер, Грегори Р. (1999). «Мягкие обновления: метод устранения большинства синхронных записей в быстрой файловой системе» . Ежегодная техническая конференция USENIX . стр. 1–18.
- Марго И. Зельцер; и др. (2000). «Журналирование и мягкие обновления: асинхронная защита метаданных в файловых системах» . Ежегодная техническая конференция USENIX . стр. 71–84.
Внешние ссылки
[ редактировать ]- Маршалл Кирк МакКьюсик: информация о программных обновлениях, снимках и фоновом Fsck
Ссылки
[ редактировать ]- ^ МакКьюсик, Маршалл Кирк; Невилл-Нил, Джордж В. (2005). «8,6». Проектирование и реализация операционной системы FreeBSD . Аддисон-Уэсли . ISBN 978-0321968975 .
- ^ "newfs(8)" . FreeBSD . 07.07.2017 . Проверено 2 февраля 2019 г.
- ^ "тюнефы(8)" . FreeBSD. 19 апреля 2016 г. Проверено 2 февраля 2019 г.
- ^ «Примечания к выпуску FreeBSD 9.0-RELEASE» . FreeBSD. 12 января 2012 г. Проверено 2 февраля 2019 г.
- ^ МакКьюсик, Маршалл Кирк; Роберсон, Джефф (23 января 2010 г.). «Журналируемые программные обновления» (PDF) . Проверено 2 февраля 2019 г.
- ^ «Ошибка 195485 — [ufs] mksnap_ffs(8) не может создать снимок с включенными программными обновлениями с журналированием» . FreeBSD. 28 ноября 2014 г. Проверено 2 февраля 2019 г.
- ^ «Программные обновления отключены для будущей работы VFS» . OpenBSD_Журнал . 05.07.2023 . Проверено 9 марта 2024 г.
- ^ «Анонс NetBSD 6.0» . НетБСД . 17 октября 2012 г. Проверено 2 февраля 2019 г.