345f1bf5

Журналирование только метаданных


Интересно то, что ext3 выполняет журналирование совсем иначе, чем ReiserFS и другие журналируемые файловые системы. В ReiserFS, XFS и JFS журналируются метаданные их и не предусмотрено какое либо журналирование самих данных. При при журналировании метаданных (metadata-only journaling) метаданные хранятся так надежно, что, скорее всего вам не придется пользоваться fsck. Однако, неожиданные перезагрузки и сбои в электропитании могут приводить к утере данных, которые в момент сбоя записывались на диск. Ext3 использует несколько творческих решений для избежания таких проблем.

Сначала поясним ситуацию с журналированием только метаданных. Например, вы редактировали файл /tmp/myfile.txt в момент, когда машина неожиданно блокировалась. В случае с журналируемыми системами, журналирующими только метаданные (например, ReiserFS, XFS или JFS), метаданные вашей файловой системы утрачены не будут и запуска fsck не потребуется.

Однако, в случае такого сбоя имеется высокая вероятность, что в файле /tmp/myfile.txt останется один мусор, а то и просто он станет нечитабельным.

Причина в следующем. "Обычные" журналируемые файловые системы, подобные ReiserFS, XFS и JFS опекают метаданные, но для повышения производительности заботу о данных не проявляют. В нашем примере происходила модификация некоторых блоков и соответствующих им метаданных, но синхронизация была неожиданно прервана. "Непротиворечивость" файловых блоков будет восстановлена, чего нельзя сказать об их "наполнении".



Содержание раздела