ZFS Snapshot для резервного копирования с резервным копированием

У меня есть локальная система FreeNAS и вы хотите использовать моментальные снимки ZFS для резервного копирования.
FreeNAS имеет встроенные задачи репликации, которые используют

zfs send snapshot_name 

для отправки моментального снимка в удаленную систему. Но для этого нужна система с ZFS на другом конце.

Я хочу отправить моментальный снимок в файл aa и отправить этот сжатый и зашифрованный файл на удаленный компьютер.

Это возможно с помощью

 zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl 

Каждый день я делаю снимок пула хранения и сохраняю каждый снимок в течение 30 дней.
С каждым сделанным снимком я передам этот снимок в файл.
– snapshot_file 1 имеет в нем все файлы (скажем, 2 ГБ)
– snapshot_file 2 имеет только изменения в snapshot_file 1 (скажем, 5 МБ)
– snapshot_file 3 содержит изменения в snapshot_file 2; и так далее.

На 31-й день snapshot_file 1 удаляется (потому что я хочу только изменения за последние 30 дней)

Поэтому snapshot_file 2 должен хранить каждый файл (2 ГБ изменений моментального снимка 1 + 5 МБ)

Но при таком подходе каждый день (начиная с 31-го дня) необходимо создать новый файл 2GB и отправить в удаленную систему. Это слишком много накладных расходов.

Какой был бы лучший подход к использованию моментальных снимков, передаваемых в файл в качестве стратегии резервного копирования с историей X дней?

PS: Я знаю, что есть много программного обеспечения для резервного копирования (например, rdiff-backup), который я мог бы использовать. Но мне любопытно, как это можно сделать.

One Solution collect form web for “ZFS Snapshot для резервного копирования с резервным копированием”

Если вы храните снимки в файлах, в отличие от файловой системы (например, с помощью zfs receive ), я боюсь, это невозможно.

ZFS на принимающей стороне

Если вы используете ZFS на отправке и на принимающей стороне, вы можете избежать переноса всего моментального снимка и передавать только отличия моментального снимка по сравнению с предыдущим:

 ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' | \ zfs receive 

ZFS знает о моментальных снимках и хранит взаимные блоки только один раз. Благодаря тому, что файловая система понимает моментальные снимки, вы можете без проблем удалить старые.

Другая файловая система на принимающей стороне

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

 ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' \ > incremental-2014-02-04:05 

Чтобы восстановить инкрементный снимок, вам понадобятся и предыдущие снимки. Это означает, что вы не можете удалить старые приращения.

Возможные решения

Вы можете делать инкременты, как показано в моем последнем примере, и делать новый неинкрементный каждый месяц. Новые приращения зависят от этого неинкрементного, и вы можете удалить старые снимки.

Или вы могли бы изучить другие решения для резервного копирования. Существует rsnapshot , который использует rsync и жесткие ссылки. Он очень хорошо работает при вращении и обладает очень высокой пропускной способностью, так как он требует полной резервной копии только один раз.

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

Лучшее решение, однако, заключается в использовании ZFS на принимающей стороне. Это будет эффективная пропускная способность, эффективность хранения и намного быстрее, чем другие решения. Единственный недостаток, о котором я могу думать, это то, что на этом ящике должно быть не менее 8 GiB ECC-памяти (вы можете быть в порядке с 4 GiB, если вы не запускаете никаких сервисов и используете его только для zfs receive ).

  • Ошибка экспорта / импорта ZPool
  • Что вы собираетесь делать с вашими машинами OpenSolaris?
  • Почему система не реагирует, когда сетевая нагрузка составляет 90-95 Мбит / с?
  • ZFS в Linux снимок рекурсивно объема и подвыборки
  • Помощь, необходимая для понимания сообщения об ошибках ZFS (в Linux)
  • Невозможно установить zfsutils-linux на новейший Raspbian (июль 2017 г.)
  • Любой способ сделать диск (ZFS) недоступным?
  • Как остановить людей, нарушающих dataset ZFS, который используется только для получения?
  • Загадочные ошибки разрешения Samba после миграции службы
  • Разрешенные и безопасные символы для файловой системы ZFS во FreeBSD
  • rsync терпит неудачу / зависает при копировании из Linux ext4 в FreeBSD ZFS (через SSH)
  • Linux и Unix - лучшая ОС в мире.