← Назад к вопросам
Какие знаешь файловые системы в 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
Сравнительная таблица
| FS | Max file | Journaling | Performance | Use case |
|---|---|---|---|---|
| ext4 | 16TB | Да | Good | General purpose |
| XFS | 16EB | Да | Excellent | Big data, DB |
| Btrfs | 16EB | CoW | Good | Modern, advanced |
| tmpfs | RAM | - | Excellent | Cache, temp |
| NFS | Depends | - | Network | Shared storage |
| ZFS | Unlimited | CoW | Good | Enterprise |
| FAT32 | 4GB | Нет | Fair | Portable 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.