Сбой отправки/приема ZFS, цель была изменена из-за запроса пользовательского пространства zfs?

Сбой отправки/приема ZFS, цель была изменена из-за запроса пользовательского пространства zfs?

Я использую zfs send/receive для репликации файловой системы zfs на другой сервер каждый день. Рабочий процесс — стандартный send receive:

# 1. create snapshot on source
zfs snapshot ${source_fs}@${today}
# 2. send incremental update from yesterday to today to target
zfs send -i ${one_day_ago} ${source_fs}@${today} | ssh user@${target_host} "zfs receive ${target_fs}"
# 3. destroy old snapshots from two days ago on source and target
zfs destroy ${source_fs}@${two_days_ago}
ssh user@${target_host} "sudo zfs destroy ${target_fs}@${two_days_ago}"

Некоторое время это работало нормально. Однако теперь я получаю эту ошибку от zfs receive:

cannot receive incremental stream: destination pool/filesystem has been modified since most recent snapshot

zfs list -t snapshotна цели показывает небольшое значение в USEDстолбце последнего снимка (что-то около 100К). Оно должно быть равно нулю. Файловая система не смонтирована на цели.

У меня есть скрипт, который проверяет квоты zpools и zfs. Запрос текущих квот (с zfs userspace $filesystem -pH -o name,used,quota -s used) похоже изменяет файловую систему. Этого следовало ожидать? Я не понимаю, почему запрос некоторых чисел изменяет файловую систему.

Я использую Ubuntu 20.04 с OpenZFS 0.8.3 из репозиториев Ubuntu.

решение1

Непримонтированные файловые системы zfs не могут быть изменены ничем, кроме запросов receive/destroy и .... (ну, это почти все). Любые запросы zfs о статистике файловой системы не должны изменять содержимое fs. Итак, в заключение, я очень сомневаюсь, что это zfs userspaceчто-то изменяет (и я сомневаюсь, что ваши наборы данных zfs не примонтированы). Но если я не прав (насчет zfs userspace) - это явно ошибка, и огромная.

Связанный контент