golodyaev.ru ЗаметкиО сайте

Куда отправлять снапшоты ZFS

2 декабря 2025

Снапшот хранится внутри пула. ZFS помечает блоки, на которые он ссылается, и перестаёт их переиспользовать. Никакой отдельной сущности при этом не появляется: те же диски, те же метаданные, то же управление.

Отсюда список аварий, после которых снапшотов не останется. Отказ пула. Ошибка администратора уровня zpool destroy. Повреждение метаданных. Кража сервера. Шифровальщик с правами root.

Что снапшот всё-таки закрывает

Логическую порчу данных при исправном пуле. Удалили каталог, выкатили миграцию с ошибкой, поймали шифровальщик без прав на ZFS. Откат занимает секунды, восстановление из архива заняло бы часы. Такие случаи составляют большую часть инцидентов, поэтому снапшоты долго кажутся достаточными.

Отправка на вторую машину

zfs snapshot -r tank/data@2025-12-02
zfs send -R -I tank/data@2025-12-01 tank/data@2025-12-02 | \
  ssh backup zfs recv -Fu backup/data

Теперь копия лежит в другом пуле, на другой машине, желательно в другом здании. Если приёмник смонтирован на том же хосте, обе копии находятся в одной зоне отказа.

На приёмнике стоит ограничить права отправителя. Учётке, которая делает recv, обычно не нужен destroy. При компрометации отправителя это сохраняет архив.

Проверка

Раз в квартал поднимаю данные из архива на отдельной машине и открываю. Наличие файла на диске о его пригодности ничего не говорит: у меня был случай, когда recv отрабатывал молча, а датасет приезжал без половины дочерних.

Все заметки