Определение простыми словами
Btrfs (произносится «баттер-эф-эс») — это файловая система для Linux, разработанная Oracle с 2007 года и включённая в ядро с версии 2.6.29. В её основе — структура данных B-tree, отсюда и название. Главное отличие от привычной ext4: Btrfs не перезаписывает блоки на диске, а копирует их в новое место и обновляет указатели — это и есть copy-on-write. Благодаря такой модели делать снимок состояния тома можно мгновенно: в новый каталог записываются только изменённые с момента снимка блоки.
Btrfs объединяет функции файловой системы и менеджера томов: создавать программный RAID, добавлять диски в пул и расширять тома можно без сторонних инструментов вроде LVM. По сравнению с ZFS Btrfs занимает меньше памяти и поставляется с ядром, но реализация RAID 5/6 до сих пор считается нестабильной.
Сравнение (таблица)
| Параметр | Btrfs | ext4 | XFS |
|---|---|---|---|
| Снимки | Встроены, мгновенные | Нет | Только через LVM |
| CoW | Да | Нет | Нет (есть reflinks) |
| Контрольные суммы | Да, для данных и метаданных | Только метаданные | Только метаданные |
| Сжатие | zlib, lzo, zstd | Нет | Нет |
| Программный RAID | 0/1/10 (5/6 нестабильно) | Только через mdadm | Только через mdadm |
| Сокращение тома | Онлайн | Только offline | Невозможно |
Кейсы использования
- Домашние и рабочие станции на openSUSE и Fedora — снимки конфигурации перед обновлением системы (snapper).
- Файловые серверы, где нужны прозрачное сжатие и контрольные суммы.
- Резервное копирование через
btrfs send/receiveмежду хостами без лишних копий. - Контейнеры: Docker умеет хранить слои образов как Btrfs subvolumes, что ускоряет запуск.
- Негативный сценарий: базы данных PostgreSQL и MySQL с интенсивной записью — CoW порождает фрагментацию. Решение — отключить CoW для каталога с данными атрибутом
chattr +Cили выбрать XFS.
Технические детали
# Создание Btrfs на одном диске
mkfs.btrfs -L data /dev/sdb
# Монтирование с zstd-сжатием
mount -o compress=zstd:3,noatime /dev/sdb /mnt/data
# Создание subvolume и снимка
btrfs subvolume create /mnt/data/projects
btrfs subvolume snapshot -r /mnt/data/projects /mnt/data/snap-2026-05-11
# Программный RAID 1 на двух дисках
mkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc
# Состояние тома и баланс данных
btrfs filesystem usage /mnt/data
btrfs balance start -dusage=50 /mnt/data
Перед миграцией продакшена с ext4 проверьте поведение под реальной нагрузкой: для нагруженных VPS с базами данных XFS часто остаётся предпочтительнее.
🔥 Где это применяется
Частые вопросы
Стабильна ли Btrfs в продакшене?
Базовый функционал — снимки, RAID 1/10, сжатие — стабилен с 2014 года. RAID 5/6 до сих пор считается экспериментальным: для критичных данных используйте mdadm под Btrfs или ZFS.
Btrfs медленнее ext4?
На последовательной записи и чтении разница в пределах 5–10 %. На случайной записи в крупные файлы (БД, виртуальные диски) Btrfs проигрывает из-за CoW — отключайте CoW для таких каталогов.
Можно ли уменьшить том Btrfs без размонтирования?
Да: btrfs filesystem resize -10G /mnt/data. Это редкая возможность, недоступная XFS и большинству других ФС.