← Назад к вопросам

Какие знаешь файловые системы в Linux?

2.0 Middle🔥 191 комментариев
#Linux и операционные системы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Файловые системы в Linux

Как backend разработчик, работал с различными файловыми системами. Вот полный обзор:

1. ext4 (Fourth Extended Filesystem)

Самая распространённая в Linux-системах

# Создание
mkfs.ext4 /dev/sda1

# Монтирование
mount /dev/sda1 /mnt/data

# Проверка
tune2fs -l /dev/sda1
fsck.ext4 /dev/sda1

Характеристики:

  • Max file size: 16TB
  • Max partition size: 1EB
  • Journaling: да (журналирование для надёжности)
  • Extent-based: да (для оптимизации фрагментации)

2. XFS

High-performance файловая система

mkfs.xfs /dev/sda1
mount -t xfs /dev/sda1 /mnt/data
xfs_info /mnt/data

Характеристики:

  • Max file size: 16EB
  • Max partition size: 16EB
  • Journaling: да (metadata journal)
  • Parallel I/O: отлично
  • Large files: оптимизирована

Преимущества:

  • Выше производительность на больших файлах
  • Better scalability на многопроцессорных системах
  • Быстрее ext4 для параллельных операций

3. Btrfs (B-tree filesystem)

Modern файловая система с advanced features

mkfs.btrfs /dev/sda1
mount /dev/sda1 /mnt/data

# Snapshots
btrfs subvolume snapshot /mnt/data /mnt/data_snap

# Compression
mount -o compress=zstd /dev/sda1 /mnt/data

# RAID
mkfs.btrfs -m raid1 /dev/sda1 /dev/sda2

Характеристики:

  • Copy-on-write: безопасные снимки
  • Compression: встроенная
  • RAID: встроенный
  • Subvolumes: логическое разделение
  • Max file size: 16EB

Недостатки:

  • Ещё считается экспериментальной для некоторых use cases
  • Медленнее ext4 в некоторых сценариях
  • Более сложна в администрировании

4. tmpfs

В памяти, сверхбыстрая

mount -t tmpfs -o size=2G tmpfs /dev/shm
mount -t tmpfs -o size=1G tmpfs /run

Когда использовать:

  • Временные файлы
  • Кэши
  • Высокоскоростные операции
  • /tmp, /run в современных Linux системах

5. NFS (Network File System)

Сетевая файловая система

# На сервере
exportfs -a

# На клиенте
mount -t nfs server:/export /mnt/nfs
mount -t nfs4 server:/export /mnt/nfs

Характеристики:

  • Network: через сеть
  • Distributed: несколько клиентов могут монтировать
  • Stateless (NFSv3): простая, надежная
  • Stateful (NFSv4): более сложная, лучше для WAN

6. ZFS

Enterprise-уровень, из мира Solaris

# Создание пула
zpool create tank /dev/sda1

# Создание файловой системы
zfs create tank/data

# Snapshots
zfs snapshot tank/data@backup

# Compression
zfs set compression=lz4 tank/data

Особенности:

  • Data integrity: контрольные суммы для всех данных
  • Snapshots: мгновенные и дешевые
  • RAID-Z: собственная реализация RAID
  • Copy-on-write: как Btrfs
  • Self-healing: может исправлять ошибки

7. FAT32 / exFAT

Для переносимых носителей

mkfs.fat -F 32 /dev/sdb1
mount -t vfat /dev/sdb1 /mnt/usb

Характеристики:

  • Простота: легко читается на всех ОС
  • Max file size: 4GB (FAT32) или нет лимита (exFAT)
  • Journaling: нет
  • Надёжность: низкая

8. ISO 9660

Для CD/DVD

mkisofs -o image.iso /path/to/files
mount -o loop image.iso /mnt/iso

Сравнительная таблица

FSMax fileJournalingPerformanceUse case
ext416TBДаGoodGeneral purpose
XFS16EBДаExcellentBig data, DB
Btrfs16EBCoWGoodModern, advanced
tmpfsRAM-ExcellentCache, temp
NFSDepends-NetworkShared storage
ZFSUnlimitedCoWGoodEnterprise
FAT324GBНетFairPortable media

Выбор файловой системы

// Проверка типа FS в runtime
#include <sys/vfs.h>

struct statfs fs_stat;
statfs("/", &fs_stat);

switch (fs_stat.f_type) {
    case 0x4d44:      // EXT4_SUPER_MAGIC
        std::cout << "ext4" << std::endl;
        break;
    case 0x58465342:  // XFS_SUPER_MAGIC
        std::cout << "XFS" << std::endl;
        break;
}

Рекомендации

  • Production серверы: ext4 (стабильность) или XFS (производительность)
  • Big data / Data warehouse: XFS
  • Modern systems: Btrfs (если готово)
  • Enterprise: ZFS
  • Высокоскоростные операции: tmpfs + backing storage
  • Network shares: NFS v4 или SMB
  • Database servers: XFS для PostgreSQL/MySQL

Вывод: Выбор файловой системы критичен для производительности и надёжности. ext4 — безопасный выбор, XFS — для производительности, ZFS/Btrfs — для advanced features.