Определение простыми словами
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.