Что такое файловая система ведения журнала?
Даже википедия не дает много информации. Какие другие файловые системы (в Windows / Linux), помимо NTFS, поддерживают ведение журнала и как это повышает производительность?
Журналирующая файловая система записывает изменения в файловую систему до того, как она их фактически выполнит. Таким образом, он может восстанавливаться после сбоя (например, сбоя питания) с минимальной потерей данных.
В Характеристики раздел Википедии, посвященный сравнению файловых систем, которые заносятся в журнал.
Ведение журнала не повышает производительность. Фактически, операция журналирования немного снижает скорость в обмен на вышеупомянутую надежность.
По сути, журналируемая файловая система добавляет дополнительный уровень абстракции между жестким диском и операционной системой. Вместо того, чтобы выполнять операции непосредственно на диске, он отслеживает сначала то, что пытается сделать, а затем то, удастся ли это сделать.
Например, если вы хотите переместить файл с одного диска на другой, процедура будет выглядеть примерно так:
Точный процесс зависит от файловой системы, но идею вы поняли. Обычно это работает нормально, но в случае сбоя системы все может быть прервано на полпути. Вы можете получить физически скопированный файл, но никакая запись в каталоге не указывает на него. Вы можете удалить ссылку на каталог на старом диске, но пространство не будет освобождено. В некоторых случаях вы можете получить поврежденную файловую систему, которая даже больше не будет работать, потому что запись в каталоге записана только частично.
Другими словами, многое может пойти не так.
Журналируемая файловая система будет использовать ту же основную процедуру с несколькими дополнительными шагами. Что-то вроде:
Если этот процесс будет прерван по какой-либо причине, например, из-за сбоя системы, файловая система теперь знает, что происходило, и завершился он или нет. Затем он может быстро и изящно восстановиться, либо попытавшись завершить транзакцию с самого начала, либо вернув файловую систему в то состояние, в котором она была раньше. И все это без необходимости прибегать к поблочной проверке файловой системы для поиска ошибок, что может занять мучительно много времени, учитывая размер современных жестких дисков.
Это может значительно повысить надежность файловой системы и сократить время восстановления в случае сбоя. Различные уровни надежности можно получить, изменив степень детализации записей журнала - это опять же зависит от файловой системы.
Поскольку ведение журнала неизбежно включает в себя больше шагов, чем альтернатива, никакого повышения производительности не будет, если только вы не почувствуете частые сбои. Однако разница в производительности часто незначительна по сравнению с преимуществами.
Статья в Википедии о Файловая система журналирования содержит гораздо больше деталей о том, что это такое, как это работает и почему.
Журналируемая файловая система - это термин, который широко используется для обозначения файловых систем, которые, в конце концов, не журналируются.
В контексте файловых систем «ведение журнала» означает, что файловая система способна восстанавливаться после сбоев и потерь мощности до согласованного состояния. Это не означает повышения производительности, это не означает, что файловая система восстанавливается до полного снимка за некоторое время до сбоя, это даже не означает, что не будет операции в стиле «проверка файловой системы» для восстановления после авария.