Резервное копирование, встроенное в файловую систему на уровне ядра — без агентов, без накладных расходов, без потери данных
ZFS — это не просто файловая система. Это архитектура хранения, в которой резервное копирование является нативной функцией ядра, а не внешним инструментом, прикрученным сверху. Именно поэтому ZFS используется как основа во всех продуктах и решениях IgNix: NAS, виртуализация, Jail-контейнеры, ВМ bhyve — всё живёт на ZFS и всё одинаково защищено.
Как работает ZFS-снапшот
Снапшот в ZFS — это мгновенная, read-only копия состояния файловой системы в конкретный момент времени. Технически это не копирование данных: ZFS использует принцип Copy-on-Write (COW) — данные записываются в новое место, а старые блоки остаются нетронутыми. Снапшот — это просто ссылка на эти старые блоки.
Что это даёт на практике:
Снапшот создаётся мгновенно — буквально за миллисекунды, независимо от размера пула (хоть 100 ТБ)
Снапшот не занимает место до тех пор, пока данные не изменились — хранится только дельта изменений
Снапшот консистентен — это атомарная операция: никакого «половину записали, половину нет»
Откат мгновенный —
zfs rollbackвозвращает систему в точку снапшота за секунды
Это работает для всего: обычные датасеты, Jail-контейнеры, zvol-диски виртуальных машин bhyve — механизм один и тот же. Снапшот ВМ — это снапшот zvol, на котором она живёт. Никаких агентов внутри гостевой системы не требуется.
ZFS Send/Receive — репликация как транспорт
zfs send сериализует снапшот (или инкрементальную дельту между двумя снапшотами) в поток байт. zfs receive принимает этот поток и воссоздаёт снапшот на удалённом узле.
Ключевые свойства:
Инкрементальная передача — после первой полной репликации передаётся только изменённые блоки между двумя снапшотами. При снапшотах каждые 15 минут объём передачи минимален
Шифрование в транспорте —
zfs sendподдерживает передачу зашифрованных датасетов в raw-формате: данные дешифруются только на узле-получателе, по сети идёт шифртекстResumable send — если репликация прервалась (сбой сети, перезагрузка), она продолжается с точки останова, а не начинается заново
Репликация всего дерева — флаг
-Rпередаёт датасет со всеми дочерними датасетами, снапшотами, свойствами и клонами. Принимающая сторона получает точную копиюНулевой overhead на источнике — репликация читает снапшот, не трогая «живые» данные. Производительность основной системы не затрагивается
Дополнительные возможности ZFS, которые работают в фоне всегда
Scrub — фоновая проверка целостности всех данных: ZFS читает каждый блок и сверяет с контрольной суммой. Тихое повреждение данных (bit rot) обнаруживается и исправляется автоматически
Self-healing — при наличии зеркала или RAID-Z ZFS автоматически восстанавливает повреждённый блок из копии
Compression —
lz4илиzstdна уровне файловой системы: снапшоты и поток репликации меньше, репликация быстрееDeduplication — идентичные блоки хранятся один раз. Критично для сред с однотипными ВМ или Jail
Block cloning (FreeBSD 15 / ZFS 2.4) — мгновенное копирование файлов без физического дублирования блоков