Журналируемая файловая система

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Журналируемая файловая система — файловая система (ФС), в которой осуществляется ведение журнала, хранящего список изменений и, в той или иной степени, помогающего сохранить целостность файловой системы при сбоях.

Принцип работы[править | править вики-текст]

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

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

По типу внесения в журнал журналируемые ФС подразделяются на:[1]

  • в режиме обратной связи (журналируются только метаданные): XFS, ext3fs;
  • упорядоченные (журналируются только метаданные синхронно относительно данных): JFS2, ext3fs (по умолчанию), ReiserFS (основной);
  • в режиме данных (журналируются как метаданные, так и данные): ext3fs;

Примеры[править | править вики-текст]

В Mac OS X — HFS+.

Во FreeBSD журналирование транзакций файловой системы UFS может осуществляться на уровне GEOM модулем gjournal.

В Linux существует несколько доступных журналируемых файловых систем. Наиболее известные из них:

  • XFS — журналируемая файловая система, разработанная Silicon Graphics, но сейчас выпущенная с открытым исходным кодом;
  • ReiserFS (Reiser4) — журналируемая файловая система разработанная специально для Linux;
  • JFS (JFS1 и JFS2) (Smart File System) — журналируемая файловая система, первоначально разработанная IBM, но сейчас выпущенная с открытым исходным кодом;
  • ext3fs (extended file system) — журналируемое расширение (можно подключать и отключать (tune2fs), а также выбирать режим журналирования) файловой системы ext2, используемой на большинстве версий GNU/Linux;
  • ext4fs — логическое продолжение ext3;
  • btrfs — разрабатываемая (альфа-версия) ФС, возможна прямая и обратная конвертация с ext3fs.[2]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

  • Робачевский А. Н., Немнюгин С. А., Стесик О. Л. Журнальные файловые системы / Глава 4. Файловая система // Операционная система UNIX. — 2-е изд. — СПб.: БХВ-Петербург, 2008. — С. 351 — 353. — 656 с. — ISBN 978-5-94157-538-1.