Описание тега journaling

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

Ведение журнала - это область, в которой файловая система регистрирует свои действия и другую информацию, так что если она прервана (сбой, отключение питания и т. Д.), Файловая система сможет восстановить себя и завершить любые незавершенные действия.

Пример сценария того, какие типы ошибок может решить журналирование, представлен в Википедии:

Например, удаление файла в файловой системе Unix включает два этапа:

  1. Удаление его записи в каталоге.
  2. Пометка пространства для файла и его индекса как свободного на карте свободного пространства.

Если сбой происходит между шагами 1 и 2, то будет потерянный инод и, следовательно, утечка памяти. С другой стороны, если перед сбоем сначала выполняется только шаг 2, еще не удаленный файл будет помечен как свободный и, возможно, будет перезаписан чем-то другим.

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

Большинство современных файловых систем записываются в журнал, в частности:

  • ext3 (по умолчанию в большинстве дистрибутивов Linux)
  • ReiserFS
  • XFS
  • JFS
  • NTFS (стандартная файловая система Windows NT и выше)
  • HFS + (стандартная файловая система OSX)