У меня ZFS-диск с включенной дедупликацией. Я скопировал данные со многих других старых жестких дисков на этот диск ZFS, в конечном счете, с намерением избавиться от всех исходных дисков. Мне нужно сделать резервную копию диска ZFS, но у меня ужасные проблемы с тем, чтобы это работало.
Для резервного диска я подготовил второй диск такого же размера, что и исходный диск, и подключил его к той же машине. Оба они являются внешними USB-накопителями. Я создал снимок на исходном диске, а затем использовал следующую инструкцию, чтобы отправить его на резервный диск:
zfs send srcpool/dedup@snap1 | zfs recv backuppool/dedup
Но это никогда не завершится (по причинам, которые я не могу вспомнить). Чтобы попытаться исключить какую-нибудь глупую ошибку в конфигурации или синтаксисе команды, я с тех пор пытался использовать синкоид вместо. Однако это также постоянно терпит неудачу, каждый раз после дня или двух копирования, например:
$ sudo syncoid srcpool/dedup backuppool/dedup
INFO: Sending oldest full snapshot srcpool/dedup@snap1 (~ 3227.7 GB) to new target filesystem:
warning: cannot send 'srcpool/dedup@snap1': Input/output error=============================================> ] 46% ETA 21:18:35
1.45TiB 18:15:37 [23.2MiB/s] [=========================================================================> ] 46%
cannot receive new filesystem stream: checksum mismatch or incomplete stream.
Partially received snapshot is saved.
A resuming stream can be generated on the sending system by running:
zfs send -t 1-b12345678-b8-1234567890
CRITICAL ERROR: zfs send 'srcpool/dedup'@'snap1' | mbuffer -q -s 128k -m 16M 2>/dev/null | pv -p -t -e -r -b -s 3465678004032 | zfs receive -s -F 'backuppool/dedup' failed: 256 at /usr/sbin/syncoid line 474.
Когда затем пытаюсь возобновить работу, я сразу и последовательно получаю следующее:
$ sudo syncoid srcpool/dedup backuppool/dedup
Resuming interrupted zfs send/receive from srcpool/dedup to backuppool/dedup (~ 1738.2 GB remaining):
warning: cannot send 'srcpool/dedup@snap1': Input/output error
264KiB 0:00:00 [ 745KiB/s] [> ] 0%
cannot receive resume stream: checksum mismatch or incomplete stream.
Partially received snapshot is saved.
A resuming stream can be generated on the sending system by running:
zfs send -t 1-b87654321-b8-0987654321
CRITICAL ERROR: zfs send -t 1-b12345678-b8-1234567890 | mbuffer -q -s 128k -m 16M 2>/dev/null | pv -p -t -e -r -b -s 1866392479776 | zfs receive -s -F 'backuppool/dedup' 2>&1 failed: 256 at /usr/sbin/syncoid line 559.
Ни экспорт / повторный импорт дисков, ни перезапуск всей машины не позволяют мне пройти этот момент. Он будет постоянно говорить cannot receive resume stream: checksum mismatch or incomplete stream
при попытке возобновить.
Поэтому вместо этого я уничтожил резервный пул (на резервном диске) и попробовал еще несколько раз. Каждый раз, когда процесс в конечном итоге завершается сбоем с «ошибкой ввода / вывода», как указано выше, примерно в середине процесса.
В настоящее время я снова запускаю этот процесс с опцией syncoid "--debug", но, без сомнения, пройдет еще полтора дня, пока он снова не выйдет из строя с (надеюсь) дополнительной информацией.
Будем очень признательны за любые подсказки о том, как я могу отладить или решить эту проблему! Спасибо.