Baza wiedzy

Typy kopii zapasowych: pełna, przyrostowa i CBT

backup
incremental
cbt
deduplication

Typy kopii zapasowych: pełna, przyrostowa i CBT

Dokumentacja kopii zapasowych używa terminów „pełna" i „przyrostowa" swobodnie, a implementacje różnią się między dostawcami na tyle, że wspólne założenia przestają działać. Ten artykuł definiuje klasyczne słownictwo, wyjaśnia, jak StateWarden faktycznie wykonuje kopie zapasowe, i pokazuje, jak interpretować wskaźniki rozmiarów w panelu.


1. Klasyczne słownictwo

Pełna kopia zapasowa

Kompletna, samowystarczalna kopia źródła z określonego punktu w czasie. Odczytywany i przesyłany jest każdy blok. Pełna kopia zapasowa przywraca się samodzielnie, bez zależności od jakiejkolwiek innej kopii, kosztem najwyższego obciążenia I/O, wolumenu transferu i długości okna wykonywania kopii.

Przyrostowa kopia zapasowa

Przechwycenie wyłącznie danych zmienionych od ostatniej kopii zapasowej dowolnego rodzaju (pełnej lub przyrostowej). Kopie przyrostowe są szybkie i małe, ale w klasycznych implementacjach tworzą łańcuch: przywrócenie wymaga ostatniej pełnej kopii zapasowej plus każdej przyrostowej wykonanej po niej. Jeśli którykolwiek element łańcucha zostanie utracony lub uszkodzony, ucierpi każdy późniejszy punkt przywracania.

Różnicowa kopia zapasowa

Przechwycenie wszystkich danych zmienionych od ostatniej pełnej kopii zapasowej. Kopie różnicowe rosną z każdym wykonaniem, ale utrzymują krótką zależność przywracania: ostatnia pełna plus najnowsza różnicowa. StateWarden nie stosuje strategii różnicowej; jest tu wymieniona wyłącznie dla kompletności słownictwa.

StrategiaOdczyt na wykonanieKlasyczna zależność przywracania
Pełna100% źródłaSamowystarczalna
PrzyrostowaZmiany od ostatniej kopiiPełny łańcuch (pełna + wszystkie przyrostowe)
RóżnicowaZmiany od ostatniej pełnejOstatnia pełna + najnowsza różnicowa

2. Jak StateWarden faktycznie działa: model ciągłych kopii przyrostowych

StateWarden przetwarza woluminy na poziomie bloków (zobacz Smart NTFS i kopie zapasowe na poziomie bloków). Agent dzieli strumień danych na porcje (chunki), wyznacza ich skróty, szyfruje je i przesyła wyłącznie te porcje, których nie ma jeszcze w zdeduplikowanym magazynie porcji Realmu w warstwie danych (Driad). Tożsamość porcji jest oparta na treści, więc identyczne dane są przechowywane raz, niezależnie od tego, które urządzenie lub która kopia je wyprodukowała (zobacz Przegląd architektury: Artemis, Driad i Agent).

Po początkowej bazie każda zaplanowana kopia zapasowa wykonuje się jako przyrostowa: Agent odczytuje wyłącznie zmienione bloki i przesyła tylko wynikające z nich unikalne porcje. Nie ma zaplanowanej rotacji okresowych kopii pełnych; w normalnej pracy źródło jest odczytywane w całości dokładnie raz (wyjątki w sekcji 4).

Kluczowa różnica wobec modelu klasycznego leży po stronie przywracania. Chociaż każde wykonanie zapisuje tylko zmienione porcje, każdy punkt przywracania jest prezentowany w panelu i na stronie Przywracanie danych jako kompletna, samodzielnie użyteczna migawka źródła, zsyntetyzowana z magazynu porcji. Konsekwencje są operacyjne, nie kosmetyczne:

  • Nie istnieje łańcuch przyrostowy, który można by przerwać. Dowolny pojedynczy punkt przywracania wystarcza sam w sobie.
  • Wygaśnięcie lub usunięcie starego punktu przywracania nie wpływa na integralność nowszych; porcje nadal wskazywane przez pozostałe punkty przywracania są zachowywane.
  • Zarządzanie retencją nigdy nie wymaga ponownego wykonania pełnej kopii zapasowej, aby utrzymać ważność łańcucha.

Historia kopii zapasowych rejestruje strategię każdego wykonania w kolumnie Typ: Full, Incremental lub Synthetic Full. Syntetyczna pełna (Synthetic Full) powstaje dla obrazów całych dysków: Agent przechwytuje układ dysku i wszystkie partycje, wykorzystując odczyty przyrostowe tam, gdzie dostępne jest śledzenie zmian, a wynikiem jest kompletny, rozruchowy obraz dysku nadający się do Bare Metal Recovery (zobacz Bare Metal Recovery: przewodnik krok po kroku).

3. Czym jest CBT - a czym nie jest

Changed Block Tracking (CBT) to akcelerator detekcji zmian, a nie format przechowywania ani typ kopii zapasowej. Smart CBT w StateWarden korzysta z natywnych mechanizmów systemu operacyjnego:

  • Windows: dziennik USN (Update Sequence Number) systemu NTFS.
  • Linux: śledzenie oparte na erach w device-mapperze (dm-era).

CBT odpowiada na dokładnie jedno pytanie: które bloki Agent musi odczytać w tym wykonaniu? Zamiast skanować wolumin w poszukiwaniu zmian, Agent odpytuje system operacyjny o listę bloków zmodyfikowanych od ostatniej migawki i odczytuje wyłącznie je. Redukuje to fazę detekcji z pełnego skanu woluminu do zapytania o metadane.

CBT nie zmienia tego, co jest przechowywane. Ścieżka zapisu jest identyczna dla każdego wykonania: dzielenie na porcje, wyznaczanie skrótów, deduplikacja, szyfrowanie, przesłanie unikalnych porcji. Punkt przywracania utworzony z CBT nie jest kopią częściową; jest kompletnym, punktowym w czasie obrazem źródła, złożonym z tego samego magazynu porcji co każdy inny punkt przywracania.

Dwie praktyczne implikacje:

  • CBT jest kontrolowane dla każdego woluminu osobno w panelu, który raportuje też stan śledzenia każdego woluminu. Tam, gdzie CBT nie może zostać włączone (na przykład na surowych zaszyfrowanych woluminach, takich jak BitLocker lub LUKS, gdzie detekcja zmian na poziomie bloków jest nieskuteczna), wolumin jest zabezpieczany pełnymi odczytami.
  • Ponieważ CBT przyspiesza wyłącznie detekcję, powrót do pełnego odczytu zmienia czas trwania wykonania i obciążenie I/O, nigdy kompletność przywracania.

Włączanie, wyłączanie i rozwiązywanie problemów z CBT dla poszczególnych woluminów opisuje artykuł Smart CBT: przyrostowe kopie zapasowe.

4. Kiedy pełny odczyt nadal występuje

W StateWarden „pełna" opisuje stronę odczytu: Agent odczytuje całe źródło sekwencyjnie zamiast odpytywać śledzenie zmian. Pełny odczyt występuje w następujących przypadkach:

  • Pierwsza kopia zapasowa źródła. Baza śledzenia nie istnieje jeszcze, więc początkowe wykonanie zawsze odczytuje cały wolumin i ustanawia bazę.
  • CBT niedostępne lub wyłączone. Jeśli śledzenie nie jest włączone dla woluminu lub mechanizm systemowy nie jest użyteczny, Agent wraca do pełnego odczytu źródła przy każdym wykonaniu.
  • Po wymuszonej pełnej kopii. Wymuszona pełna kopia ponownie odczytuje źródło i ustanawia na nowo bazę śledzenia (zobacz sekcję 5).
  • Unieważniony stan śledzenia. Wyłączenie CBT usuwa metadane śledzenia, a poważne zmiany systemowe (na przykład aktualizacja jądra lub przywracanie bare-metal) mogą je unieważnić; następne wykonanie odbudowuje bazę pełnym odczytem.

Nawet podczas pełnego odczytu przesyłanie pozostaje deduplikowane: Agent przesyła wyłącznie porcje, których magazyn jeszcze nie przechowuje. Ponowny pełny odczyt niezmienionego woluminu kosztuje zatem czas i I/O, ale niewiele przepustowości i żadnej dodatkowej przestrzeni.

5. Rotacja kluczy i wymuszone pełne kopie zapasowe

Kopie zapasowe są szyfrowane kluczem szyfrującym Realmu, a każdy punkt przywracania jest powiązany z kluczem, którym został zapisany. Po rotacji klucza na poziomie Realmu na stronie Bezpieczeństwo i zgodność (zobacz Klucze globalne a klucze urządzeń: strategia szyfrowania enterprise):

  • Punkty przywracania zapisane poprzednim kluczem są oznaczane w panelu znacznikiem STARY KLUCZ. Pozostają na liście, ale ich przywrócenie wymaga poprzedniego klucza odzyskiwania.
  • Stan śledzenia przyrostowego powiązany z poprzednim kluczem zostaje odrzucony przy następnym wykonaniu. Pierwsza kopia po rotacji wykonuje się automatycznie jako pełna baza.
  • Akcja Utwórz kopię oferuje opcję Wymuś pełną kopię na wypadek, gdy urządzenie powinno zostać natychmiast odbazowane zamiast przy najbliższym zaplanowanym wykonaniu. Wymuszenie pełnej kopii odczytuje całe źródło i resetuje śledzenie zmian; przesyłanie nadal podlega deduplikacji.

Spodziewaj się czasowego wzrostu przechowywanego rozmiaru po rotacji: dane zapisane poprzednim kluczem są zachowywane, dopóki dotknięte punkty przywracania nie wygasną lub nie zostaną usunięte, więc te same logiczne dane mogą zajmować miejsce pod oboma kluczami, aż zastąpione dane zostaną zebrane jako śmieci.

6. Odczyt wskaźników

Wokół każdej kopii zapasowej pojawiają się trzy wskaźniki rozmiaru. Mierzą różne rzeczy, a ich mylenie prowadzi do błędnych wniosków o kondycji i koszcie kopii zapasowych.

PojęcieEtykieta w paneluCo mierzy
Rozmiar źródłaRozmiar po przywróceniuNieskompresowany rozmiar danych źródłowych po przywróceniu na dysk. Stały między wykonaniami niezależnie od typu kopii; służy do weryfikacji, że kopia obejmuje oczekiwany zakres.
Rozmiar przesłanyRozmiar po deduplikacjiDane faktycznie wysłane do węzła pamięci po deduplikacji i kompresji. Dlatego wykonanie dla źródła o rozmiarze 100 GB może zakończyć się w kilka sekund: przez sieć przechodzą tylko zmienione, jeszcze nieprzechowywane porcje.
Rozmiar przechowywanyLimit / Kopie + metadaneFizyczna przestrzeń zajmowana po stronie pamięci przez zaszyfrowane porcje i metadane kopii, mierzona po deduplikacji i kompresji. To wskaźnik istotny rozliczeniowo (zobacz Limity operacyjne i zasada Fair Use).

Czytane razem, trzy wskaźniki opisują efektywność strategii w jednym rzucie oka: Rozmiar po przywróceniu pozostaje płaski, rozmiar przesłany podąża za rzeczywistym tempem zmian obciążenia, a rozmiar przechowywany rośnie wyłącznie wraz z autentycznie nowymi, niezduplikowanymi danymi. Nagły skok rozmiaru przesłanego w wykonaniu przyrostowym oznacza, że obciążenie zmieniło się znacząco lub doszło do pełnego odczytu; nie oznacza, że punkt przywracania zawiera więcej danych.

Czy ten artykuł był pomocny?