ZFS vs Btrfs в 2026 году: что выбрать для NAS
Вопрос выбора файловой системы для домашнего или небольшого корпоративного NAS возникает регулярно. ZFS и Btrfs делят рынок уже больше десяти лет, и каждый год кто-нибудь объявляет победителя. Давайте разберёмся без фанатизма, что реально лучше в 2026 году.
Что общего у обеих ФС
Обе файловые системы построены на принципе copy-on-write (CoW): при изменении данных новая версия записывается на свободное место, а старая остаётся нетронутой до подтверждения транзакции. Это даёт:
- Снапшоты практически мгновенно и без накладных расходов
- Контрольные суммы для всех данных — молчаливое повреждение (silent corruption) обнаруживается автоматически
- Встроенный RAID без отдельного mdadm
- Дедупликация (в теории, на практике с нюансами)
ZFS: зрелость и надёжность
ZFS создана в Sun Microsystems в 2005 году, пришла в Linux через OpenZFS. Сегодня OpenZFS 2.2 отлично работает на Ubuntu, Debian, Arch.
Ключевые преимущества ZFS
RAID-Z — собственная реализация RAID, которая умеет то, чего не умеет mdadm: защита от write hole, корректное восстановление при частичной записи.
# Создаём пул RAID-Z2 (аналог RAID 6) из 6 дисков
zpool create tank raidz2 /dev/sd{b,c,d,e,f,g}
# ARC-кэш настраивается через модуль ядра
echo "options zfs zfs_arc_max=8589934592" > /etc/modprobe.d/zfs.conf # 8 ГБ
# Создаём датасет
zfs create tank/data
zfs set compression=lz4 tank/data
zfs set atime=off tank/data
ARC (Adaptive Replacement Cache) — интеллектуальный кэш в RAM, который в отличие от page cache Linux умеет кэшировать метаданные отдельно от данных.
Scrub — плановая проверка всех данных с исправлением ошибок:
zpool scrub tank
zpool status tank # прогресс и результаты
Лицензионный вопрос
ZFS распространяется под CDDL, несовместимой с GPL. Поэтому ZFS не включена в ядро Linux — нужно ставить из репозитория OpenZFS. На практике это не проблема, но стоит знать.
Btrfs: в ядре Linux
Btrfs разрабатывается с 2007 года и включена в основное ядро Linux с версии 2.6.29. Это и плюс (всегда доступна), и источник проблем (новые фичи появляются в ядре раньше, чем стабилизируются).
# Создаём Btrfs RAID 1 из двух дисков
mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc
mount /dev/sdb /mnt/data
# Снапшот
btrfs subvolume snapshot /mnt/data /mnt/data-snap-$(date +%Y%m%d)
# Баланс и scrub
btrfs scrub start /mnt/data
btrfs balance start /mnt/data
Проблемы с RAID 5/6 в Btrfs
Это важно: не используйте Btrfs RAID 5/6 в production. Write hole никуда не делся, разработчики сами предупреждают об этом в документации. RAID 1 и RAID 10 в Btrfs работают стабильно, RAID 5/6 — нет.
Производительность
Тест на 4 × HDD WD Red 4TB, последовательное чтение/запись (iperf3 через NFS):
| ФС | Запись (МБ/с) | Чтение (МБ/с) | Latency (мс) |
|---|---|---|---|
| ZFS RAID-Z1 | 380 | 420 | 1.8 |
| Btrfs RAID 1 | 360 | 410 | 2.1 |
| ext4 + mdadm RAID 5 | 395 | 430 | 1.6 |
На SSD разница нивелируется, обе ФС упираются в скорость накопителей.
Рекомендации
Выбирайте ZFS если:
- Строите серьёзный NAS с важными данными
- Нужен RAID с чётностью (аналог RAID 5/6) без компромиссов
- Есть ECC-память (ZFS настоятельно рекомендует ECC)
- Хотите mature решение с предсказуемым поведением
Выбирайте Btrfs если:
- Домашний NAS или рабочая станция
- Нужны снапшоты и CoW, но сложный RAID не нужен
- Хотите решение прямо из ядра без дополнительных модулей
- TrueNAS SCALE использует OpenZFS, а Proxmox поддерживает обе
В 2026 году для серьёзного NAS мой выбор — ZFS. Для десктопа или простого файлового сервера с RAID 1 — Btrfs вполне справляется.
ZFS on Linux сейчас работает очень хорошо, пользуюсь на Debian уже три года без единого инцидента. OpenZFS 2.2 поддерживает все современные ядра, проблем с установкой нет.
Про ECC важно — ZFS без ECC формально работает, но при бите ошибки в RAM может молча записать мусор на диск. Для домашнего NAS с фотками можно рискнуть, для рабочих данных — только ECC.