ext4: что это, особенности и команды управления | Глоссарий FREEHOSTING

ext4

Fourth Extended Filesystem
ext4 — Журналируемая файловая система Linux, развитие ext3 с поддержкой экстентов, файлов до 16 ТБ, томов до 1 ЭБ, отложенного выделения и быстрых fsck. Базовый выбор для большинства серверов и десктопов.

Определение простыми словами

ext4 — это четвёртая версия расширенной файловой системы для Linux, наследник ext2 и ext3. Появилась в 2008 году и быстро стала дефолтом в Ubuntu, Debian, RHEL и большинстве других дистрибутивов. Внутри использует экстенты вместо блочных карт, поддерживает отложенное выделение пространства, контрольные суммы метаданных и быстрый fsck по битовым картам неиспользованных групп.

В отличие от ext3, ext4 уверенно работает с томами до экзабайта и файлами до 16 ТБ, лучше держит фрагментацию и заметно быстрее восстанавливается после сбоя. Не такая гибкая, как Btrfs или ZFS, но проще, надёжнее в продакшене и не требует тонкой настройки.

Сравнение с альтернативами

ФС Журнал Снапшоты Подходит для
ext4 Да Через LVM Универсальные серверы и десктопы
XFS Да Через LVM Большие тома и параллельные нагрузки
Btrfs CoW Встроенные Снапшоты и подтомá из коробки
ZFS CoW Встроенные Сторадж-боксы и большие пулы

Кейсы использования

  • Корневой раздел типового VPS с Linux — стандартный выбор по умолчанию.
  • Хранение баз данных PostgreSQL и MySQL средних размеров с регулярными бэкапами.
  • Файловые серверы общего назначения с правами POSIX и ACL.
  • Контейнерные тома Docker и Kubernetes на одиночных хостах.
  • Архивные разделы с долгим временем хранения и редкой записью.

Негативный сценарий: на сервере включили discard в опциях монтирования, диск SSD у провайдера медленный по командам TRIM, и каждое удаление файла подвешивает I/O на сотни миллисекунд. Лучше включать fstrim по таймеру раз в неделю и не забывать про noatime, чтобы не плодить лишние записи в метаданные.

Технические детали

# создание файловой системы и метки
sudo mkfs.ext4 -L data -O ^has_journal /dev/sdb1   # без журнала, для scratch
sudo mkfs.ext4 -L root /dev/sda1                    # дефолтный вариант

# проверка и настройка
sudo tune2fs -l /dev/sda1
sudo tune2fs -m 1 /dev/sda1                         # резерв root до 1%

# online ресайз тома
sudo resize2fs /dev/sda1

# принудительная проверка после сбоя
sudo e2fsck -fy /dev/sdb1

# рекомендации монтирования в /etc/fstab
UUID=... / ext4 defaults,noatime,errors=remount-ro 0 1

В большинстве случаев ext4 работает «из коробки» без настройки. Тонкие подкрутки помогают только под конкретные нагрузки: data=writeback для журнала только метаданных, отключение has_journal на временных томах, опция noatime для уменьшения записи. Снимки и сжатие лучше делать на уровне LVM или соседних ФС вроде Btrfs и ZFS.

Частые вопросы

Чем ext4 отличается от ext3?

ext4 использует экстенты вместо блочных карт, поддерживает тома до 1 эксабайта и файлы до 16 ТБ, ускоряет fsck и добавляет контрольные суммы метаданных. Со старым форматом ext4 совместим — ext3 можно смонтировать как ext4 без переформатирования.

Стоит ли отключать журнал ext4?

На временных или scratch-томах журнал отключают ради скорости и снижения износа SSD. Для системных и важных данных журнал обязателен — он защищает целостность метаданных при внезапном отключении питания и заметно сокращает время восстановления.

Как изменить размер ext4-раздела?

Сначала меняется размер блочного устройства (LVM, partition или mdadm), затем выполняется resize2fs. Для увеличения это можно делать на смонтированном томе, для уменьшения раздел сначала размонтируют и проверяют через e2fsck.