У мене локальна система 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 ГБ)
- у знімку_файла 2 є лише зміни в знімок_файлу 1 (скажімо, 5 МБ)
- знімок_файл 3 вміщує зміни у знімок_файлу 2; і так далі.
31-го дня знімок_file 1 видаляється (оскільки я хочу лише зміни за останні 30 днів)
Тому snapshot_file 2 повинен вмістити кожен файл (2 Гб знімка_файлу 1 + 5 МБ змін)
Але при такому підході щодня (з 31 дня) слід створити новий 2 ГБ файл і відправити у віддалену систему. Це занадто багато накладних витрат.
Який найкращий підхід використовувати знімки, перенесені на файл, як резервну стратегію з історією X днів?
PS: Я знаю, що там є багато програмного забезпечення для резервного копіювання (наприклад, rdiff-backup), яким я міг би скористатися. Але мені цікаво, як це можна було зробити.
zfs recv
на іншому кінці (наприклад, у пуліzfs set compression=gzip-9
). Зберігання файлів знімків для мене звучить дуже неефективно.