Есть ли способ отправить ТОЛЬКО последние снимки состояния в резервную систему zfs, даже если в ней есть предыдущие снимки? Когда я пытаюсь, я получаю ошибку:
«не может получить поток новой файловой системы: у места назначения есть снимки (например, mirrorpool / ETC / Stuff), необходимо уничтожить их, чтобы перезаписать»
И я уже использовал zfs send receive с -F.
Обычно принимающая система не получала кучу снимков, так как я обнаружил, что на ней закончилось место. Поэтому я удалил кучу ОЧЕНЬ старых снимков в получающей файловой системе zfs и оставил более свежие, но система zfs, которая отправляет zfs, имеет много еще более свежих снимков, которых нет в получателе zfs (резервная копия сервер). Но я НЕ хочу реплицировать ВСЕ отсутствующие снимки обратно в общий снимок. Я хотел бы просто отправить самые последние снимки пары снимков в приемник zfs.
В настоящее время у получателя zfs есть первая пара моментальных снимков, когда-либо созданных, а затем остальные были удалены, и остались только те, которые были последними, которые у него были примерно с октября 2018 года. Поэтому я бы не хотел отправлять каждый ежедневный снимок с октября 2018 года из Zfs Sender системе на приемник zfs и просто отправьте только пару последних снимков.
Или есть что-то вроде "rsync" типа zfs send | zfs получить, где я могу просто синхронизировать два набора данных без отправки снимков?
У меня небольшие трудности с анализом вашей проблемы, но я думаю, что это работает так:
BoxA:pool/dataset@1,2,3,4,5,6,7,8,9,10
BoxB:pool/dataset@1,2,3
Вы хотите получить снимок 10 на BoxB, но не хотите иметь все промежуточные снимки (4,5,6,7,8,9).
Предполагая, что это так, это достаточно просто:
root@BoxA:~# zfs send -Ri pool/dataset@3 pool/dataset@10 | ssh root@BoxB zfs receive pool/dataset
После этого (обратите внимание, мы использовали нижний регистр -i
не верхний регистр -I
!), вы получите следующую ситуацию:
BoxA:pool/dataset@1,2,3,4,5,6,7,8,9,10
BoxB:pool/dataset@1,2,3,10
Обратите внимание: поскольку мы указываем -R
для zfs send
, мы на самом деле также будем отправлять (и получать) любые гипотетические дочерние наборы данных или zvols, например pool/dataset/child0
, pool/dataset/child1
, и так далее. (Также имейте в виду, что все становится немного странно, если у вас нет точно таких же снимков, доступных для всех дочерних наборов данных, когда вы используете -R
с участием zfs send
.)