Jak rozmiar fragmentów kopii zapasowej wpływa na szybkość przywracania i oszczędności dzięki deduplikacji?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Mniejsze fragmenty kopii zapasowych zwykle poprawiają oszczędności wynikające z deduplikacji, natomiast większe fragmenty zmniejszają ilość metadanych i często sprawiają, że przywracanie przebiega bardziej sekwencyjnie i przewidywalnie.

Wyobraź sobie serwer domowy chroniący obrazy maszyn wirtualnych, rodzinne zdjęcia i często edytowane dokumenty na jednej macierzy dyskowej. Podzielenie każdego strumienia na bardzo małe fragmenty pozwala znaleźć więcej powtarzających się obszarów, ale jednocześnie tworzy więcej skrótów, wpisów indeksu i rozproszonych odczytów podczas odzyskiwania. Większe fragmenty upraszczają rekonstrukcję, lecz pomijają drobne podobieństwa, dlatego optymalny rozmiar zależy od charakterystyki danych i ścieżki przywracania, a nie od uniwersalnego celu oszczędzania miejsca.

Rozmiar fragmentu określa szczegółowość wykrywania duplikatów

System kopii zapasowych z deduplikacją przechowuje fragment tylko raz, a późniejsze kopie zastępuje odwołaniami do tego samego odcisku. Jeśli niewielka zmiana znajduje się w bardzo dużym stałym fragmencie, cały fragment może zostać uznany za nowy. Mniejsze fragmenty izolują zmieniony obszar, umożliwiając dopasowanie niezmienionych sąsiednich danych do wcześniejszych kopii zapasowych i zwiększając ilość danych, do których można się odwołać zamiast przechowywać je ponownie.

Mniejsze fragmenty zazwyczaj zapewniają lepszą deduplikację, ponieważ porównują dane z większą szczegółowością — zależność tę zmierzono w badaniach nad tworzeniem kopii zapasowych plików opartym na fragmentach. Nie jest to magiczna kompresja. Każda dodatkowa granica stwarza kolejną szansę na odizolowanie powtarzających się bajtów, szczególnie w przypadku dokumentów wersjonowanych, obrazów maszyn wirtualnych i archiwów oprogramowania z niewielkimi zmianami wewnętrznymi.

Korzyść ta maleje wraz z dalszym zmniejszaniem fragmentów. Zmniejszenie średniego rozmiaru fragmentu o połowę z grubsza podwaja liczbę rekordów fragmentów dla tej samej logicznej ilości danych, zwiększając zapotrzebowanie na obliczanie odcisków, pamięć indeksu, manifesty i operacje wyszukiwania. Większa liczba fragmentów pozwala oszczędzać miejsce tylko wtedy, gdy zbiór danych zawiera możliwe do ponownego wykorzystania podobszary; skompresowane zdjęcia i zaszyfrowane archiwa często oferują niewiele dodatkowej deduplikacji w zamian za zwiększoną ilość metadanych.

Granice definiowane na podstawie zawartości chronią oszczędności przy przesunięciu bajtów

Dzielenie na fragmenty o stałym rozmiarze odbywa się według przesunięć bajtowych, więc wstawienie kilku bajtów na początku powoduje przesunięcie wszystkich późniejszych granic i może sprawić, że zasadniczo podobny plik będzie wyglądał na całkowicie nowy. Dzielenie na fragmenty definiowane na podstawie zawartości wyznacza granice na podstawie samego strumienia bajtów. Po lokalnym wstawieniu późniejsze punkty charakterystyczne mogą ponownie się wyrównać, umożliwiając dopasowanie dalszej zawartości do wcześniej zapisanych fragmentów.

Dzielenie na fragmenty definiowane na podstawie zawartości rozwiązuje problem przesuwania granic, ale nadal zużywa czas procesora na ich wyszukiwanie. Ma to znaczenie, ponieważ określenie „fragmenty 8 MB” w wielu systemach CDC opisuje docelową średnią, a nie identyczne elementy. Limity minimalne, średnie i maksymalne wpływają zarówno na prawdopodobieństwo dopasowania, jak i na narzut obliczeniowy, a wybrany algorytm decyduje o tym, ile obliczeń wymaga wyszukiwanie granic.

Metoda dzielenia na fragmenty może więc mieć równie duże znaczenie jak nominalny rozmiar. Strumień CDC o umiarkowanym rozmiarze może zachować podobieństwa, które mniejsze stałe fragmenty tracą po wstawieniach, a jednocześnie tworzyć mniej rekordów. CDC nie sprawia jednak, że dane o wysokiej entropii lub zaszyfrowane będą dobrze podlegać deduplikacji: zmiana bloku szyfrogramu może modyfikować rozległe obszary, a kompresja celowo usuwa powtarzające się wzorce, zanim silnik kopii zapasowych je zobaczy.

Szybkość przywracania zależy od lokalności, a nie tylko od liczby fragmentów

Przywracanie odczytuje wskazane fragmenty w kolejności wymaganej do odbudowania plików. Jeśli fragmenty są rozmieszczone w wielu kontenerach i na wielu dyskach, system może wykonywać małe losowe odczyty zamiast długich transferów sekwencyjnych. Małe fragmenty zwiększają liczbę odwołań, lecz rzeczywiste spowolnienie pojawia się wtedy, gdy ich fizyczne rozmieszczenie odbiega od kolejności przywracania, a chybienia pamięci podręcznej wymuszają wielokrotne pobieranie kontenerów.

Fragmentacja może znacząco obniżyć przepustowość odzyskiwania w całym okresie użytkowania repozytorium, co pokazują pomiary szybkości przywracania po deduplikacji. Ograniczanie tego zjawiska może oznaczać rezygnację z części deduplikacji lub dodanie pracy związanej z łączeniem danych w celu poprawy lokalności przywracania. Oddziela to szczegółowość fragmentów od ich rozmieszczenia: dwa repozytoria o podobnej liczbie fragmentów mogą przywracać dane z zupełnie inną szybkością, jeśli w jednym z nich powiązane fragmenty są przechowywane razem.

Większe fragmenty często poprawiają lokalność, ponieważ każde odwołanie pobiera więcej użytecznych, ciągłych danych, a manifesty zawierają mniej obiektów. Większy rozmiar nie oznacza jednak automatycznie większej szybkości. Jeśli przywracanie wymaga tylko małego pliku lub zakresu danych, duży skompresowany kontener może powodować wzrost ilości odczytywanych danych; na szybkich dyskach SSD ważniejsze od czasu wyszukiwania mogą stać się dekompresja i obliczanie skrótów. Wydajność odzyskiwania obejmuje cały potok: wyszukiwanie, odczyt, weryfikację, dekompresję i zapis.

Obciążenie indeksu i pamięci podręcznej tworzy ukryty kompromis

Małe fragmenty wymagają większego indeksu odcisków, który na skromnym serwerze domowym może przestać mieścić się w pamięci RAM i zostać przeniesiony do pamięci masowej. Gdy indeks nie mieści się już w przeznaczonej dla niego pamięci podręcznej, przyjmowanie kopii zapasowych i wyszukiwanie podczas przywracania konkurują z danymi plików o dostęp do operacji wejścia-wyjścia. Duże fragmenty zmniejszają indeks, ale ograniczają liczbę możliwości dopasowania, tworząc zakres pośredni, w którym metadane pozostają w szybkiej pamięci bez rezygnacji z dopasowywania typowych powtarzających się obszarów.

Wektorowe CDC może znacząco zwiększyć przepustowość dzielenia na fragmenty, zachowując większość oszczędności miejsca. Wynik ten zwraca uwagę na często pomijany w domowych testach czynnik utrzymywany na stałym poziomie: implementację algorytmu. Jednoczesna zmiana rozmiaru fragmentów i mechanizmu dzielenia uniemożliwia wyciągnięcie jednoznacznych wniosków, ponieważ szybsze wykrywanie granic może ukryć koszt procesora związany z większą szczegółowością.

Skróty zawartości mają zastosowanie wykraczające poza przechowywanie kopii zapasowych. Przewodnik ZimaSpace dotyczący haszowania zawartości pokazuje tę samą zasadę odcisków stosowaną do pomijania niezmienionych materiałów RAG. W obu przypadkach przechowywanie i wyszukiwanie metadanych musi być tańsze niż praca, której pozwalają uniknąć; w przeciwnym razie dokładniejsze śledzenie staje się narzutem zamiast oszczędnością.

Testuj rozmiar fragmentów za pomocą macierzy testów skoncentrowanej na przywracaniu

Przygotuj reprezentatywny zbiór danych złożony z trzech klas: wersjonowanych dokumentów lub obrazów maszyn wirtualnych, skompresowanych multimediów oraz wielu małych plików. Uruchom co najmniej trzy profile fragmentacji, zachowując stałe ustawienia kompresji, szyfrowania, wiek repozytorium, sprzęt pamięci masowej i współbieżność. Rejestruj liczbę fizycznie zapisanych bajtów, liczbę fragmentów, szczytowe zużycie pamięci indeksu, przepustowość tworzenia kopii zapasowych i przepustowość pełnego przywracania, zamiast oceniać rozwiązanie wyłącznie na podstawie wyświetlanego współczynnika deduplikacji.

Wydajność przywracania należy traktować jako cel pierwszoplanowy, zamiast zakładać, że maksymalna deduplikacja jest optymalna. Eliminacja nadmiarowości uwzględniająca fragmentację wykorzystuje informacje o układzie fragmentów do analizy zachowania systemu podczas odzyskiwania. Powtórz test domowy po kilku generacjach przyrostowych, ponieważ świeże repozytorium może wyglądać na sekwencyjne, podczas gdy po miesiącach odwołań między kopiami zapasowymi ujawni się rzeczywista kara za przywracanie.

Wybierz najmniejszy profil, którego czas przywracania nadal mieści się w założonym celu odzyskiwania, a indeks pozostaje z bezpiecznym zapasem w pamięci podczas najgorszego przebiegu. Jeśli dwa profile spełniają ten warunek, wybierz ten z mniejszą liczbą fragmentów i prostszą obsługą. Powtórz test po zmianie szyfrowania repozytorium, rozmiaru pakietów, typu dysku lub profilu obciążenia; średni rozmiar fragmentu jest parametrem dostrajania, a nie stałą miarą jakości kopii zapasowej.

Metryka Dlaczego ma znaczenie Odrzuć profil, gdy
Liczba fizycznych bajtów Mierzy rzeczywiste oszczędności Oszczędności są nieznaczne
Liczba fragmentów Prognozuje obciążenie metadanymi Indeks przekracza budżet pamięci
Pełne przywracanie w MB/s Sprawdza cel odzyskiwania Przywracanie nie mieści się w terminie
Wiek repozytorium Ujawnia fragmentację Wydajność spada w kolejnych generacjach

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.