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

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

Принцип работы

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

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

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

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

Примеры

В Mac OS X — APFS.

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

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

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

Примечания

  1. М. Тим Джонс. Анатомия журналируемых файловых систем Linux (07.10.2008). Дата обращения: 4 августа 2010. Архивировано 26 августа 2011 года.
  2. btrfs | Русскоязычная документация по Ubuntu. help.ubuntu.ru. Дата обращения: 8 мая 2018.

Литература

  • Робачевский А. Н., Немнюгин С. А., Стесик О. Л. Журнальные файловые системы / Глава 4. Файловая система // Операционная система UNIX. — 2-е изд. СПб.: БХВ-Петербург, 2008. — С. 351—353. — 656 с. — ISBN 978-5-94157-538-1.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.