Журналируемая файловая система
Журналируемая файловая система — файловая система, в которой осуществляется ведение журнала, хранящего список изменений и, в той или иной степени, помогающего сохранить целостность файловой системы при сбоях.
Принцип работы
Журналируемая файловая система сохраняет список изменений, которые она будет проводить с файловой системой, перед фактическим их осуществлением. Эти записи хранятся в отдельной части файловой системы, называемой журналом (англ. journal) или логом (англ. log). Как только изменения файловой системы внесены в журнал, она применяет эти изменения к файлам или метаданным, а затем удаляет эти записи из журнала. Записи журнала организованы в наборы связанных изменений файловой системы.
При перезагрузке компьютера программа монтирования может гарантировать целостность журналируемой файловой системы простой проверкой лог-файла на наличие ожидаемых, но не произведённых изменений и последующей записью их в файловую систему. То есть, при наличии журнала в большинстве случаев системе не нужно проводить проверку целостности файловой системы. Соответственно, шансы потери данных в связи с проблемами в файловой системе значительно снижаются.
По типу внесения в журнал журналируемые файловые системы подразделяются на:[1]
Примеры
Во 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]
Примечания
- М. Тим Джонс. Анатомия журналируемых файловых систем Linux (07.10.2008). Дата обращения: 4 августа 2010. Архивировано 26 августа 2011 года.
- btrfs | Русскоязычная документация по Ubuntu . help.ubuntu.ru. Дата обращения: 8 мая 2018.
Литература
- Робачевский А. Н., Немнюгин С. А., Стесик О. Л. Журнальные файловые системы / Глава 4. Файловая система // Операционная система UNIX. — 2-е изд. — СПб.: БХВ-Петербург, 2008. — С. 351—353. — 656 с. — ISBN 978-5-94157-538-1.