Dostępny system tworzenia kopii zapasowych Restic 0.15

Opublikowano wersję restic 0.15 systemu tworzenia kopii zapasowych, umożliwiającego przechowywanie kopii zapasowych w formie zaszyfrowanej w wersjonowanym repozytorium. System został pierwotnie zaprojektowany w taki sposób, aby zapewnić, że kopie zapasowe będą przechowywane w niezaufanych środowiskach i że jeśli kopia zapasowa dostanie się w niepowołane ręce, nie powinna zagrozić systemowi. Możliwe jest zdefiniowanie elastycznych reguł włączania i wyłączania plików i katalogów podczas tworzenia kopii zapasowej (format reguł jest podobny do rsync lub gitignore). Obsługuje pracę na systemach Linux, macOS, Windows, FreeBSD i OpenBSD. Kod projektu jest napisany w Go i rozpowszechniany na licencji BSD.

Kopie zapasowe można przechowywać w lokalnym systemie plików, na serwerze zewnętrznym z dostępem poprzez SFTP/SSH lub HTTP REST, w chmurach Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage i Google Cloud Storage, a także w dowolnym magazynie dla których dostępne są backendy rclone. Do organizacji pamięci można również wykorzystać specjalny serwer odpoczynku, który zapewnia wyższą wydajność w porównaniu do innych backendów i może działać w trybie tylko dopisywania, co nie pozwoli na usunięcie ani zmianę kopii zapasowych, jeśli serwer źródłowy i dostęp do kluczy szyfrowania są skompromitowany.

Obsługiwane są migawki odzwierciedlające stan określonego katalogu ze wszystkimi plikami i podkatalogami w określonym momencie. Za każdym razem, gdy tworzona jest nowa kopia zapasowa, tworzona jest powiązana z nią migawka, umożliwiająca przywrócenie stanu z tego momentu. Możliwe jest kopiowanie migawek pomiędzy różnymi repozytoriami. Aby zaoszczędzić ruch, podczas procesu tworzenia kopii zapasowej kopiowane są tylko zmienione dane. Aby wizualnie ocenić zawartość repozytorium i ułatwić odzyskiwanie, można zamontować migawkę z kopią zapasową w postaci partycji wirtualnej (montaż odbywa się za pomocą FUSE). Dostępne są także polecenia służące do analizowania zmian i selektywnego wyodrębniania plików.

System nie manipuluje całymi plikami, ale blokami o zmiennym rozmiarze, wybranymi za pomocą sygnatury Rabina. Informacje są przechowywane w odniesieniu do treści, a nie nazw plików (nazwy i obiekty powiązane z danymi są definiowane na poziomie metadanych bloku). W oparciu o hash treści SHA-256 wykonywana jest deduplikacja i eliminowane jest niepotrzebne kopiowanie danych. Na serwerach zewnętrznych informacje są przechowywane w postaci zaszyfrowanej (do sum kontrolnych używany jest SHA-256, do szyfrowania AES-256-CTR, a do zapewnienia integralności wykorzystywane są kody uwierzytelniające oparte na Poly1305-AES). Istnieje możliwość weryfikacji kopii zapasowej za pomocą sum kontrolnych i kodów uwierzytelniających, aby upewnić się, że integralność plików nie jest naruszona.

W nowej wersji:

  • Zaimplementowano nową komendę rewrite, która umożliwia usunięcie zbędnych danych ze migawki, gdy do kopii zapasowej przypadkowo włączono pliki, które pierwotnie nie były przeznaczone do tworzenia kopii zapasowej (na przykład pliki zawierające poufne informacje lub bardzo duże logi bez wartości) .
  • Do polecenia tworzenia kopii zapasowych dodano opcję „--read-concurrency”, aby ustawić poziom równoległości podczas odczytu plików, co pozwala przyspieszyć kopiowanie na szybkich dyskach, takich jak NVMe.
  • Do polecenia tworzenia kopii zapasowej dodano opcję „--no-scan”, aby wyłączyć etap skanowania drzewa plików.
  • Polecenie Prune znacznie zmniejszyło zużycie pamięci (do 30%).
  • Do polecenia przywracania dodano opcję „--sparse”, aby skutecznie przywracać pliki z dużymi pustymi obszarami.
  • Dla platformy Windows zaimplementowano obsługę przywracania dowiązań symbolicznych.
  • macOS dodał możliwość zamontowania repozytorium z kopiami zapasowymi za pomocą macFUSE.

Źródło: opennet.ru

Dodaj komentarz