Что такое журналируемая файловая система в Linux?

«Что такое журналируемая файловая система в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Журналируемая файловая система (Journaling File System) — это ФС (например, ext4, XFS, Btrfs), которая для обеспечения целостности данных ведет специальный журнал (журнал или лог) перед выполнением операций записи метаданных (а иногда и данных).

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

  1. Перед изменением структуры ФС (например, при создании файла) запись о планируемой операции вносится в журнал.
  2. Выполняется сама операция.
  3. После успешного завершения операция помечается в журнале как выполненная.

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

Типы журналирования в ext4:

  • journal (полное): Журналируются и метаданные, и данные. Максимальная надежность, но самая низкая производительность из-за двойной записи.
  • ordered (по умолчанию): Журналируются только метаданные. Данные записываются на диск до того, как соответствующие им метаданные будут помечены в журнале как завершенные. Хороший баланс надежности и скорости.
  • writeback: Журналируются только метаданные. Данные могут быть записаны до или после журнала метаданных. Самая высокая производительность, но выше риск повреждения данных в случае сбоя.

Практическое использование в DevOps:

  • Выбор ФС: Для рабочих серверов баз данных часто выбирают XFS из-за высокой производительности с большими файлами, для стандартных рабочих нагрузок — ext4 с настройкой ordered.
  • Проверка параметров:
    # Просмотр информации о ФС, включая параметры журнала
    sudo tune2fs -l /dev/sda1 | grep -A5 -B5 "journal"
    # Для XFS
    sudo xfs_info /mount/point
  • Настройка в облаке: При создании инстансов в AWS/GCP/Azure выбор ФС и ее параметров влияет на отказоустойчивость и производительность дисковых томов.