linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Файловая система/filesystems

kb/filesystem ── Файловая система ── intermediate

Файловые системы: ext4, xfs, btrfs, zfs

ext4 - дефолт, надёжный. xfs - для больших файлов и parallel I/O. btrfs/zfs - снапшоты, чексуммы, RAID встроенный, но сложнее.

view as markdownaka: zfs, fs-comparison, filesystem-comparison

Зачем разные ФС

Файловая система решает: как разложить блоки block-devices по inode'ам, как искать файлы по имени, как быть с crash-recovery, параллельностью, fragmentation. Разные приоритеты → разные ФС.

ext4 - рабочая лошадь

  • Default на большинстве Linux-дистро
  • Journaling (защита от crash'а во время записи)
  • До 1 EiB ФС, 16 TiB файлов
  • Хорошо изучен, стабилен 15+ лет
  • Минусы: число inode фиксируется при создании; нет нативных снапшотов; ограничен parallelism для большой нагрузки
bash
sudo mkfs.ext4 /dev/sdb1
sudo mkfs.ext4 -L data -m 1 /dev/sdb1   # label "data", reserve 1% (вместо default 5%)
sudo tune2fs -l /dev/sdb1                # параметры existing ФС
sudo e2fsck -f /dev/sdb1                 # проверить (только на размонтированной!)
sudo resize2fs /dev/sdb1                 # подогнать под размер раздела (после parted)

xfs - для больших и параллельных нагрузок

  • Default на RHEL/CentOS 7+, частый выбор для БД, файловых серверов
  • Прекрасно масштабируется на множество CPU и больших файлах
  • До 8 EiB
  • Минусы: нельзя уменьшить размер ФС (только grow); тяжелее восстанавливать при corruption
bash
sudo mkfs.xfs /dev/sdb1
sudo mkfs.xfs -f -L data /dev/sdb1       # -f: force overwrite
sudo xfs_info /mnt/data                   # параметры
sudo xfs_growfs /mnt/data                 # увеличить (grow only!)

btrfs - copy-on-write

  • Снапшоты (как у ZFS), subvolumes, нативный RAID 0/1/10
  • Чексуммы данных и метаданных - обнаружение bit rot
  • Минусы: RAID 5/6 исторически нестабилен; complex; на high-write нагрузках может фрагментироваться; recovery сложнее ext4
bash
sudo mkfs.btrfs -L data /dev/sdb1
sudo btrfs subvolume create /mnt/data/snap-base
sudo btrfs subvolume snapshot /mnt/data/work /mnt/data/snap-2024-01
sudo btrfs balance start /mnt/data        # перераспределить блоки

zfs - самый продвинутый, не в mainline kernel

  • Чексуммы, COW, снапшоты, send/receive, дедупликация, нативный RAID-Z
  • Защита от bit rot уровня enterprise SAN
  • Минусы: в mainline kernel'е НЕТ (CDDL+GPL конфликт); ставится отдельно (zfsonlinux); жадная до RAM (ARC-cache); меньше распространён
  • Главный пользователь: TrueNAS, Proxmox, многие storage-серверы

Какую выбрать

Use caseРекомендация
Server root, обычные файлыext4
БД, virt-диски, parallel I/Oxfs
Домашний NAS со снапшотамиbtrfs или zfs
Backup-таргет с дедупликациейzfs
Ephemeral container layeroverlay (поверх ext4/xfs)
Embedded / маленькие FSf2fs (NAND-aware)

Tmpfs / overlay / proc / sysfs - псевдо-ФС

Не все ФС лежат на диске:

  • tmpfs - в RAM (/tmp, /run, /dev/shm)
  • proc - /proc - интерфейс к ядру и process-and-pid
  • sysfs - /sys - интерфейс к device tree и драйверам
  • devtmpfs - /dev - динамические device-nodes
  • overlay - слои Docker images (lower + upper = merged view)
  • fuse - userspace ФС (sshfs, cephfs, любые свои)

Журналирование

Когда крашнулась запись, журнал помогает восстановиться:

  • ext4 - журналит метаданные (default data=ordered); data=journal = и данные тоже (медленнее, безопаснее)
  • xfs - log в отдельной области, можно вынести на отдельный диск (-l logdev=...)
  • btrfs/zfs - COW = журнал не нужен в традиционном виде

Проверка целостности

bash
sudo umount /mnt/data           # ВСЕГДА размонтировать перед fsck
sudo fsck -f /dev/sdb1           # ext-семейство
sudo xfs_repair /dev/sdb1        # XFS (только в crash-режиме; на здоровой ФС no-op)
sudo btrfs check /dev/sdb1       # btrfs (только diagnostics, не правит)
sudo btrfs scrub start /mnt/data # btrfs: пройти все данные, проверить чексуммы

§ команды

bash
sudo mkfs.ext4 -L data /dev/sdb1

Создать ext4 с меткой data - для использования через LABEL=data в fstab

bash
sudo xfs_growfs /mnt/data

Расширить XFS до полного размера раздела (после parted resize)

bash
sudo tune2fs -l /dev/sdb1 | head

Параметры ext-ФС: размер блока, число inode, mount-count, last fsck

bash
sudo btrfs subvolume snapshot /data /data/.snap-$(date +%F)

Снапшот btrfs одной командой - мгновенный, COW

bash
df -hT

Все ФС с типом - быстрый обзор что где смонтировано

§ см. также

  • ext4ext4 - рабочая лошадь Linux-ФСext4 - дефолтная ФС большинства дистро: журналирование, extents, фиксированное число inode при mkfs. Главные тюны - data-mode, noatime, lazy init. Стабилен 15+ лет. Не масштабируется как XFS.
  • xfsXFS - extents и параллельный I/OXFS - дефолт RHEL 7+: allocation groups (параллельный I/O), extents-based allocation, online grow. **Нельзя уменьшить** - только grow. Идеален для big files, БД, parallel workload.
  • btrfsbtrfs - copy-on-write, subvolumes и снапшотыbtrfs - copy-on-write ФС с subvolume'ами, снапшотами за O(1), нативным RAID 0/1/10 и чексуммами данных. RAID 5/6 проблемен. COW-фрагментация бьёт БД и VM-image - выключай для них.
  • mount-and-fstabmount и /etc/fstab - подключение ФС`mount` подключает блочное устройство или ФС к точке монтирования в дереве. `/etc/fstab` - список того что монтировать при загрузке.
  • fsck-and-recoveryfsck и recovery - проверка и восстановление ФСfsck, проверка ФС на размонтированной файловой системе. e2fsck (ext), xfs_repair (XFS), btrfs check (btrfs). Journal replay при mount решает 90% проблем после crash'а.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки