Я отвечаю на это в общем контексте "журналируемых файловых систем".
Я думаю , что если вы сделали несколько «нечистыми остановов» (от потянув за кабель питания или что - то ) , рано или поздно вы получите в состояние файловой системы , что потребует fsck
или морального эквивалента FSCK, xfs_repair
. ext4
Fileystsm на моем ноутбуке , по большей части просто переигрывает журнал при каждой перезагрузке, включены чистые остановы, но каждый раз в то время, он делает полный на fsck
.
Но спросите себя, чего добивается «воспроизведение журнала». Воспроизведение журнала просто гарантирует, что дисковые блоки остальной части файловой системы соответствуют порядку, который требуют записи журнала. Воспроизведение журнала составляет небольшую fsck
часть или полную часть fsck
.
Я думаю, что происходит некоторая словесная ловкость рук: воспроизведение журнала делает часть того, что fsck
делает традиционное , и xfs_repair
является точно такой же программой, как e2fs.fsck
(или любая другая файловая система fsck
). Люди XFS просто верили, или их опыт привел их к тому, что они не запускались xfs_repair
при каждой загрузке, а просто воспроизводили журнал.
fsck
не «педантичный». Я преобразовалext3
LVM
раздел вext4
и начал получать ошибки «ext4_mb_generate_buddy» из-за, как я понимаю, ошибки вext4
коде, которая приводила к несоответствию в копиях на диске и в памяти растрового изображения на преобразованных разделах «LVM». Насколько я могу судитьfsck
, коррупции не было. Решением было либо отключитьUNINIT_BG
опцию, либо переместить данные и повторно инициализировать раздел какext4
; Я взял последний курс. Но я все еще думаю, что несколько минут ожиданияfsck
не стоит потерять данные!Первое, что следует отметить, это то, что XFS, reiser и большинство конфигураций ext реализуют только журналирование метаданных, что позволяет избежать fsck. Журнал не всегда воспроизводится при запуске - его можно удалить, если он неполный.
Существуют системы, которые поддерживают полное журналирование данных, но на практике уровень гарантии, который они дают только для журналирования метаданных, очень мал в сценариях реального мира.
Таким образом, «несогласованное состояние» и проблемы, устраняемые с помощью fsck, представляют собой несоответствие между метаданными и самими файлами. Чтобы избежать этого, ОС записывает предложенные изменения метаданных в журнал, затем записывает фактические данные на диск, а затем применяет изменения метаданных, которые реплицируются в журнале, на диск. Единственный улов этого заключается в том, что контроллер диска будет буферизовать и потенциально переупорядочивать запросы. Чтобы избежать этого, большинство регистрирующих файловые системы реализуют барьеры: они разделяют каждую операцию и ждут, пока диск подтвердит, что он завершил операцию. Но многие современные диски фактически подтверждают завершение записи до фиксации данных. Следовательно, вещи могут стать грязными.
Большинство файловых систем поддерживают счетчик монтирования - при достижении этого значения полный fsck будет запущен при следующей попытке монтирования диска. Причина в том, что данные на диске могут быть повреждены, даже если они явно не записываются, даже без ошибок в программном обеспечении. Комментарий Псуси выше неверен.
источник
hdparm -W
), то диск не выполнит запросы записи, пока не окажется на носителе. Как вы думаете, почему этот вариант существует? Барьеры препятствуют переупорядочению при выдаче нескольких запросов. Без барьеров fs просто не выдает больше запросов до тех пор, пока не завершатся предыдущие, тем самым поддерживая порядок без барьеров ... при условии, что кэш записи на диск не включен. Цель барьеров - позволить вам включить кэш записи, не повреждая fs при сбое.sync
. Дай мне попробовать снова. Процедура записи на диск без барьеров заключается в записи в журналsync
, что приводит к сбросу всех кэшей записи и записи реальных данных. Это гарантирует, что журнал всегда можно будет использовать для восстановления файловой системы после сбоя, но синхронизация замедляет работу и наполовину нарушает назначение кэша записи. Таким образом, барьеры были добавлены в качестве лучшей заменыsync
, и при надлежащей поддержке диска они могут безопасно восстановить большую часть производительности, которую отнимает синхронизация.Нет необходимости использовать файловую систему журналирования просто из-за нечистого завершения работы.
Вся причиной перенося производительностью выполнения штрафа метаданных журналирования является обеспечение того , файловая система может быть 100% последовательно снова автоматически Воспроизводится журнал метаданных на следующем монтировании, если файловая система не была отмонтирована.
Единственная роль fsck заключается в обеспечении согласованности метаданных, поэтому запускать fsck излишне просто потому, что файловая система не была должным образом размонтирована.
Журналируемая файловая система может быть повреждена по другим причинам - аппаратный сбой, ошибки драйвера, ошибки администратора и т. Д. - поэтому инструменты fsck, безусловно, необходимы. Нет никаких причин вызывать их исключительно из-за нечистого отключения.
источник