Pomoc zdalna
  • tag
  • kopia
Tag

#kopia

Kopia to program do kopii zapasowych, który dzieli dane na fragmenty, każdy przechowuje raz i szyfruje przed wysłaniem. Opis repozytorium, magazynów i konserwacji.

5 wpisów z tym tagiem

Nazwa myli i warto to rozstrzygnąć od razu: mowa o programie Kopia rozwijanym pod adresem kopia.io, a nie o kopii zapasowej jako pojęciu. Sam mechanizm kopii, retencji i zasady trzech egzemplarzy opisuje tag backup. Tutaj chodzi o konkretne narzędzie: napisane w Go, wydane na licencji Apache 2.0, działające pod Windowsem, pod macOS oraz pod Linuksem, dostępne zarówno jako polecenie wiersza poleceń, jak i program okienkowy o nazwie KopiaUI.

Skrytka, do której klucz ma tylko właściciel

Repozytorium najłatwiej wyobrazić sobie jako wynajętą skrytkę depozytową. Właściciel przynosi rzeczy zapakowane i zaplombowane, obsługa przyjmuje ponumerowane paczki i nigdy nie widzi zawartości. Numer paczki nie bierze się z kolejności przyjęcia, tylko z tego, co jest w środku, więc ta sama rzecz przyniesiona trzeci raz trafia do tej samej paczki, która już leży na półce.

To nie jest ozdobnik, tylko dokładny opis działania. Szyfrowanie dzieje się na komputerze użytkownika, przed wysłaniem czegokolwiek, a hasło do repozytorium nie opuszcza tej maszyny. Dostawca miejsca widzi ponumerowane, zaszyfrowane obiekty. Numer jest skrótem kryptograficznym liczonym z zawartości, dlatego identyczny fragment danych przechowywany jest raz, choćby występował w kopiach z pięciu komputerów.

Skąd bierze się oszczędność miejsca

Plik nie idzie do repozytorium w całości. Najpierw zostaje pocięty na fragmenty, a granice cięcia wyznacza tak zwany skrót kroczący, liczony po przesuwającym się oknie danych. Ma to jedną konsekwencję wartą zapamiętania: dopisanie akapitu na początku dużego pliku przesuwa całą resztę, a mimo to granice fragmentów za miejscem zmiany wypadają tam, gdzie poprzednio. Zmienia się garść fragmentów, nie cały plik.

Fragmenty pakowane są po kilka do wspólnych obiektów o rozmiarze rzędu dwudziestu do czterdziestu megabajtów, żeby magazyn nie musiał obsługiwać milionów drobnych zapisów. Przedrostek w nazwie mówi, co jest w środku: p oznacza dane, q metadane, x indeksy. Ponad tym stoi warstwa manifestów, czyli drobnych obiektów JSON opisujących migawki i zasady.

Warstwa

Za co odpowiada

Skróty

SHA2 oraz BLAKE2S, wyznaczają identyfikator fragmentu

Szyfrowanie

AES-256 albo ChaCha20, po stronie klienta

Kompresja

pgzip, s2 albo zstd, włączana zasadą

Korekcja błędów

kod Reeda i Solomona, przeciw przekłamaniom nośnika

Pakowanie

obiekty 20 do 40 MB z przedrostkami p, q, x

Gdzie to wszystko może leżeć

Repozytorium nie jest związane z jednym dostawcą. Program obsługuje Amazon S3 i magazyny zgodne z jego interfejsem, Azure Blob Storage, Backblaze B2, Google Cloud Storage, serwery WebDAV i SFTP, dysk lokalny oraz zasób sieciowy. Przez pośrednika rclone dochodzą kolejne usługi, w tym Dropbox, OneDrive i Dysk Google, przy czym ta droga ma status eksperymentalny.

Osobną możliwością jest własny serwer repozytorium. Wtedy komputery w firmie nie dostają danych dostępowych do magazynu, tylko rozmawiają z serwerem, a ten trzyma jedno repozytorium dla wielu maszyn. Wspólne repozytorium wzmacnia deduplikację, bo powtarzające się pliki systemowe i biblioteki leżą w nim raz na wszystkich.

Konserwacja, bez której repozytorium puchnie

Skasowanie migawki nie zwalnia miejsca od razu i to bywa zaskoczeniem. Fragment znika dopiero wtedy, gdy żadna żyjąca migawka już go nie wskazuje, a ustala to osobny przebieg konserwacyjny.

Konserwacja szybka idzie domyślnie mniej więcej co godzinę i pilnuje, żeby liczba często odpytywanych obiektów pozostała niska, bo od niej zależy szybkość działania. Konserwacja pełna idzie domyślnie raz na dobę i to ona wypycha z repozytorium zawartość nieosiągalną z żadnej migawki. Skutek nie jest natychmiastowy: usunięcie nieużywanych obiektów potrafi zająć kilka godzin i kilka przebiegów. Oba odstępy da się zmienić poleceniem kopia maintenance set.

Czym to różni się od synchronizacji i od obrazu dysku

Synchronizacja katalogów odwzorowuje stan bieżący. Skasowany plik znika po obu stronach, zaszyfrowany przez atak plik zostaje zaszyfrowany po obu stronach, i dzieje się to w ciągu minut. Migawka jest zapisem stanu z konkretnej chwili, którego kolejne wykonania nie nadpisują.

Obraz całego dysku różni się z drugiej strony. Odtwarza maszynę razem z systemem i rozruchem, ale kopiuje wszystko, także to, czego nikt nie potrzebuje. Kopia nie robi obrazu maszyny, tylko migawki wskazanych plików i katalogów, więc po awarii sprzętu system stawia się osobno, a dane wracają z repozytorium.

Czego ten program nie zabezpieczy

Serwer, na którym pracuje baza danych, nie da się poprawnie zabezpieczyć samym skopiowaniem plików bazy w locie. Potrzebny jest zrzut albo wyciszenie bazy, a program do kopii plików dostaje dopiero gotowy plik zrzutu.

Drugi przypadek to firma bez kogokolwiek, kto zajmie się hasłem do repozytorium. Szyfrowanie po stronie klienta oznacza, że utrata hasła jest utratą danych i żadne zgłoszenie do dostawcy tego nie odwróci. To cena za to, że dostawca nie widzi zawartości, i nie da się jej obejść.

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?