Mam lokalny system FreeNAS i chcę używać migawek ZFS do tworzenia kopii zapasowych.
FreeNAS ma wbudowane zadania replikacji, które wykorzystują
zfs send snapshot_name
aby wysłać migawkę do zdalnego systemu. Ale to wymaga systemu z ZFS na drugim końcu.
Chcę wysłać migawkę do pliku i wysłać ten skompresowany i zaszyfrowany plik do zdalnego komputera.
Jest to możliwe dzięki
zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl
Codziennie robię migawkę puli pamięci i przechowuję każdą migawkę przez 30 dni.
Z każdą wykonaną migawką potokuję tę migawkę do pliku.
- plik migawki 1 zawiera każdy plik (powiedzmy 2 GB)
- plik migawki 2 ma tylko zmiany w pliku migawki 1 (powiedzmy 5 MB)
- plik migawki 3 przechowuje zmiany w pliku migawki 2; i tak dalej.
31 dnia plik snapshot_file 1 jest usuwany (ponieważ chcę tylko zmiany z ostatnich 30 dni)
Dlatego plik snapshot_file 2 musi przechowywać każdy plik (2 GB pliku snapshot_file 1 + 5 MB)
Ale przy takim podejściu codziennie (od 31 dnia) należy utworzyć nowy plik 2 GB i wysłać go do zdalnego systemu. To za dużo narzutów.
Jakie byłoby najlepsze podejście do używania migawek przesyłanych do pliku jako strategii tworzenia kopii zapasowych z historią X dni?
PS: Wiem, że istnieje wiele programów do tworzenia kopii zapasowych (na przykład rdiff-backup), których mógłbym użyć. Ale jestem ciekawy, jak można to zrobić.
zfs recv
na drugim końcu (na przykład w pulizfs set compression=gzip-9
). Przechowywanie plików migawek wydaje mi się bardzo nieefektywne.