Что такое журнал?


8

Я тяжело выключил свой компьютер, и при следующем запуске в течение нескольких секунд появлялось сообщение о загрузке recovering journal. Четыре стартапа спустя и сообщения там не было - только в первый раз. Похоже, что нет никаких последствий или побочных эффектов. Благодаря этому вопросу я знаю, почему это произошло, но нигде в интернете не говорится, что это за журнал. С этим проблем нет, мне просто интересно, что это такое.

Ответы:


5

Многие современные файловые системы используют журнал, включая NTFS, Ext3 / 4, XFS, HFS + и другие. Журнал помогает в двух вещах: избежать повреждения файловой системы и ускорить восстановление после сбоя, такого как сбой питания или сбой системы. Файловая система состоит из двух основных компонентов: данных и метаданных. Данные - это содержимое файла, изображения, видео, документы, и в конечном итоге это то, что придает файловой системе ценность. Метаданные - это то, что описывает структуру файловой системы, включая то, как файлы именуются, хранятся в каталогах, права доступа, время изменения файлов и области записи на диске используются, или могут быть свободно выделены для других файлов по мере их роста или созданы. Если метаданные будут повреждены из-за сбоя системы, это может привести к дальнейшей потере / повреждению данных. Например, часть диска может быть выбрана для размещения в файле, но если она не записана правильно перед сбоем, она может быть добавлена ​​в список блоков данных файла, но все еще в списке свободных блоков данных и выделена для второго файла позже. Теперь есть два файла, которые используют одни и те же блоки данных / контент.

Журнал - это место на диске, зарезервированное для записи изменений в файловой системе. Точные подробности того, что изменяется, записываются сначала в журнал, расположенный в одном месте на диске, а затем, после обновления журнала, изменения применяются к соответствующим местам на диске, которые могут потребовать несколько записей. После завершения обновления запись в журнале помечается как завершенная. После сбоя системе нужно только проверить журнал на наличие неполных записей и заполнить их, чтобы исправить файловую систему. Это ускоряет восстановление и обеспечивает внесение изменений полностью или не вносится вообще. Если блок выделен растущему файлу, он будет добавлен в список заблокированных файлов и также помечен как используемый.

Кроме того, в файловых системах, которые поддерживают журналирование, чаще всего для сохранения структуры используются только журналирование метаданных, но не сами данные. Журналирование полных данных обычно довольно дорого и медленно, но менее важно, чем метаданные. Можно также включить данные, если это необходимо.

Кроме того, чтобы завершить это, есть некоторые файловые системы, которые в настоящее время не предлагают журналирование, включая FAT32, exFAT, Ext2 и UDF. Если во время обновления происходит сбой, необходимо выполнить полное сканирование файловой системы, чтобы отследить любые ошибки или повреждения.


8

Кто-нибудь знает, что такое журнал?

Часть современной файловой системы - это функция, которая называется «ведение журнала». Мы используем "ext4" в качестве файловой системы. (ext3, ext2 - более старые версии. NTFS является эквивалентом Microsoft.)

Журналируемая файловая система - это файловая система, которая отслеживает изменения, еще не зафиксированные в основной части файловой системы, путем записи намерений таких изменений в структуре данных, известной как «журнал», которая обычно представляет собой циклический журнал. В случае сбоя системы или сбоя питания такие файловые системы могут быть быстрее подключены к сети с меньшей вероятностью повреждения.

Источник: Википедия - Файловая система журналирования , цитирует: IBM - Анатомия журналируемых файловых систем Linux

По сути, это сообщение означает, что система провела проверку целостности этой части вашей файловой системы. Это навязывается системой, поэтому, как правило, беспокоиться не о чем. Когда у вас отключение электричества, журнал может быть поврежден и, если ваш жесткий диск действительно не сломан, имеет тенденцию ремонтироваться во время этой проверки.


1
Правильно ли говорить, что ведение журнала используется для защиты целостности файловых систем, но не обязательно целостности файлов (их содержимого)?
Ральф

2
@Ralf: Это зависит исключительно от того , что в журнале. JFFS2, например, ведет журнал каждой записи, таким образом, он защищает целостность всех данных. Apple HFS + только регистрирует метаданные файловой системы, таким образом, он защищает только метаданные файловой системы, но не данные файла. Ext4 настраивается: вы можете записывать все, ничего или только метаданные файловой системы. По умолчанию используется журнал, но только метаданные файловой системы. В этом случае он защищает только метаданные файловой системы, но не данные файла. Основная причина такого выбора заключается в том, что ведение журнала означает запись дважды.
Йорг Миттаг

2
Другая крайность так называемые лог-структурированные файловые системы , которые имеют только журнал. Другими словами, они только добавляются в журнал, но у них нет обычной области данных. Таким образом, они избегают «двойной записи» журнальной файловой системы, но теперь у них есть проблема, заключающаяся в том, что файловая система никогда не сжимается, потому что даже удаления просто добавляются в журнал. Поэтому им нужен своего рода «сборщик мусора», чтобы очистить избыточные записи журнала и снова сжать журнал. (Некоторые из этих ФС называют это «пылесосом».)
Йорг Миттаг

1
@ JörgWMittag Спасибо. Я думаю, что важно понимать, что журналирование FS обычно не означает, что вы не можете потерять данные.
Ральф

1
@Ralf: Да, ведение журнала не защищает вас от потери данных, только от повреждения данных. Это только гарантирует, что операция либо полностью завершится, либо не произойдет вообще, это не гарантирует, что операция всегда будет успешной. А во-вторых, ведение журнала защищает только то, что заносится в журнал, что для большинства распространенных реализаций является только метаданными FS.
Йорг Миттаг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.