Определение простыми словами
XFS — файловая система, изначально созданная для рабочих станций IRIX, а в 2001 году портированная в Linux. Сегодня это стандарт для серверных дистрибутивов на базе Red Hat: RHEL, AlmaLinux, Rocky. XFS проектировалась под большие объёмы и параллельный доступ — её аллокаторы делят том на «группы аллокации», каждая из которых обслуживается независимо. Это позволяет нескольким потокам писать в файловую систему одновременно без блокировок.
В отличие от Btrfs и ZFS, XFS не делает copy-on-write по умолчанию и не объединяет функции менеджера томов — для снимков и RAID нужен LVM или mdadm. Зато XFS показывает почти линейный рост производительности при увеличении числа CPU и не деградирует на больших каталогах с миллионами файлов.
Сравнение (таблица)
| Параметр | XFS | ext4 | Btrfs |
|---|---|---|---|
| Максимальный том | 8 ЭБ | 1 ЭБ | 16 ЭБ |
| Параллельная запись | Высокая (allocation groups) | Средняя | Средняя |
| Уменьшение тома | Не поддерживается | Только offline | Онлайн |
| Дефрагментация | xfs_fsr (онлайн) | e4defrag | btrfs filesystem defrag |
| Reflinks | Да (с XFS v5) | Нет | Через CoW |
| Поведение при обрыве питания | Журнал метаданных, нулевые файлы возможны | Журнал данных и метаданных | CoW исключает повреждения |
Кейсы использования
- СУБД PostgreSQL, MySQL, MariaDB — стабильная производительность на случайной записи в крупные файлы.
- Файловые хранилища с миллионами файлов — например, S3-совместимое MinIO или Ceph OSD на голом железе.
- Виртуальные диски qcow2/raw для KVM-гипервизоров — низкие накладные расходы.
- Рендер-фермы и видеомонтаж: параллельный доступ к одному тому с нескольких воркеров.
- Негативный сценарий: root-раздел рабочей станции, который вы планируете уменьшать. XFS не умеет shrink — придётся пересоздавать том. Для таких сценариев берите Btrfs или ext4.
Технические детали
# Создание XFS на разделе
mkfs.xfs -L data /dev/sdb1
# Монтирование с типичными опциями
mount -o noatime,inode64,logbufs=8 /dev/sdb1 /mnt/data
# Расширение тома (только в большую сторону)
xfs_growfs /mnt/data
# Дефрагментация в онлайне
xfs_fsr /mnt/data
# Проверка целостности (только на размонтированном томе)
umount /mnt/data
xfs_repair /dev/sdb1
# Создание копии-reflink (без дублирования блоков)
cp --reflink=always backup.tar /mnt/data/backup-2026.tar
Опции noatime и inode64 снимают типовые узкие места: первая отключает обновление времени доступа, вторая разрешает разместить inodes по всему диску, а не только в первых 1 ТБ.
🔥 Где это применяется
Частые вопросы
Можно ли уменьшить том XFS?
Нет. XFS поддерживает только расширение через xfs_growfs. Если нужно уменьшить том — выгрузите данные через xfsdump, пересоздайте файловую систему меньшего размера и восстановите данные через xfsrestore.
XFS теряет данные при сбое питания?
Журналируются только метаданные. Файлы, открытые на запись в момент сбоя, могут оказаться нулевой длины. Для серверов на UPS это не проблема, для рабочих станций включайте барьеры записи (по умолчанию включены).
Что такое reflinks в XFS?
Это «дешёвые копии» файлов: cp --reflink создаёт второй файл, который указывает на те же блоки, и расходится с оригиналом только при изменении. Появились в XFS v5 с включённой опцией reflink=1 при mkfs.