Co naprawdę ogranicza szybkość odtwarzania z backupu?

Co naprawdę ogranicza szybkość odtwarzania z backupu?

Gdy przychodzi „ten moment”, że trzeba odtwarzać dane i systemy z kopii zapasowych bardzo szybko przekonujemy się, że nasze dwugodzinne RTO nijak się ma do rzeczywistości. W dodatku, przyczyna powolnego odtwarzania z backupu rzadko leży tam, gdzie się jej intuicyjnie spodziewamy. Codzienna rutyna związana z wykonywaniem kopii zapasowych zostaje gwałtownie przerwana i mamy oto nowe wyzwanie, którym jest odtwarzanie. Co ciekawe dla wielu ta sytuacja jest pierwszą próbą całego procesu i nierzadko bardzo bolesną lekcją.

Odtwarzanie to proces, a nie pojedyncza operacja

Myśląc o szybkim odtwarzaniu z kopii zapasowych albo planując obniżenie RTO warto pamiętać, że odtwarzanie to nie jest tylko „kopiowanie pliku z repozytorium na serwer docelowy”. To łańcuch kilku następujących po sobie operacji, gdzie przepustowość całego procesu jest równa przepustowości najwolniejszego ogniwa. Aby zrozumieć złożoność odtwarzania z kopii zapasowej, przedstawię uproszczoną sekwencję procesu:

  1. Odczyt metadanych. Oprogramowanie backupowe (w tym przykładzie Veeam) odczytuje plik metadanych i identyfikuje, jakie pliki składają się na wybrany punkt przywracania: ostatni pełny backup plus wszystkie kolejne przyrostowe, które trzeba nałożyć, żeby dotrzeć do żądanego momentu w czasie.
  2. Rehydratacja. Dane w repozytorium nie są gotowym do skopiowania obrazem maszyny. Są skompresowanymi i zdeduplikowanymi blokami rozrzuconymi po wielu plikach. Żeby mogły wrócić w postaci maszyny wirtualnej (VM) na serwer produkcyjny, muszą zostać najpierw zdekompresowane i złożone w logiczny obraz. Ten etap to właśnie rehydratacja i to tutaj najczęściej chowa się wąskie gardło.
  3. Transfer przez „pośredników” (proxy). W przypadku technologii Veeam, do transferu używane są dwa procesy: jeden po stronie repozytorium (czyta i rehydratuje), drugi po stronie docelowej (zapisuje dane na produkcyjną pamięć masową poprzez silnik wirtualizacji). To, co mierzymy jako „prędkość odtwarzania w MB/s”, to efektywna prędkość tego strumienia, a nie odczyt z repozytorium backupu, ani nie przepustowość łącza.
  4. Zapis na docelowej pamięci masowej (target). Szybkość zapisu na macierzy produkcyjnej zależna jest od trybu transportu (Direct SAN, Hot-Add, NBD), bo każdy ma inną charakterystykę wydajnościową.
  5. Rejestracja i uruchomienie VM. Po zapisaniu wszystkich bloków maszyna jest rejestrowana w inwentarzu silnika wirtualizacji na klastrze produkcyjnym i może zostać uruchomiona.

Gdzie najczęściej jest wąskie gardło?

Skoro wiemy już jak wygląda proces odtwarzania, łatwo się domyśleć, że nie wystarczy mieć wysoko przepustową sieć, bo słaba wydajność repozytorium albo klastra wirtualizacji kompletnie zdegraduje szybkość odtwarzania, a to przecież nie wyczerpuje tematu.

Poniżej lista typowych wąskich gardeł procesu odtwarzania z backupu uszeregowana od najczęstszych.

1️⃣ Repozytorium (source). Odtwarzanie z backupu to operacja zarówno dyskowa jak i obliczeniowa, więc duże znaczenie ma I/O i CPU urządzenia. Repozytorium na wolnych dyskach SATA albo z niedowymiarowanym CPU potrafi dać stały sufit na poziomie 200–300 MB/s, niezależnie od tego, co będziemy mieli w innych miejscach.

2️⃣ Docelowa pamięć masowa (target). Macierz produkcyjna i klaster wirtualizacji pod obciążeniem odtwarzania często okazuje się wolniejsza, niż było to w ulotce produktowej producenta. Szczególnie gdy równolegle musi obsługiwać inne maszyny wirtualne lub kilka równoczesnych sesji odtwarzania.

3️⃣ Pośrednik (proxy). Serwer proxy Veeam odbiera dane ze źródła, przetwarza je i przekazuje do miejsca docelowego. W praktyce proxy staje się wąskim gardłem rzadziej niż repozytorium czy storage docelowy. Może się to jednak zdarzyć, gdy damy mu za mało mocy obliczeniowej przy wielu równoległych sesjach albo zbyt wiele zadań odtwarzania jednocześnie.

4️⃣ Sieć (network). Dopiero na tym etapie dochodzimy do limitów związanych z interfejsami sieciowymi i przepustowością sieci. Łącze staje się wąskim gardłem głównie, gdy odtwarzanie realizowane jest przez sieć rozległą (WAN), np. gdy źródłem jest off-site backup zlokalizowany w centrum danych. W przypadku sieci lokalnej (LAN) w większości przypadków przepustowość sieci nie jest problemem.

Warto też mieć na uwadze, że w przypadku backupu, a nie odtwarzania, źródłem jest pamięć masowa macierzy, a nośnik docelowy to repozytorium backupu, czyli odwrotnie niż w procesie odtwarzania.

Dlaczego repozytorium jest częstym winowajcą?

Przez rehydratację. Dane w repozytorium backupu nie są gotowym obrazem maszyny, to skompresowane i zdeduplikowane bloki danych. Rehydratacja to proces odwrotny: dekompresja i złożenie tych bloków z powrotem w pełny, logiczny obraz, który wirtualizator (target) potrafi uruchomić.

Żeby to zrobić, serwer repozytorium musi wykonać trzy rzeczy naraz:

  • zdekompresować bloki – algorytm kompresji (LZ4, zlib lub inny wybrany przy tworzeniu zadania backupu) musi zostać odwrócony dla każdego bloku danych,
  • odnaleźć fizyczne bloki – deduplikacja oznacza, że jeden blok fizyczny może być referencjonowany przez wiele maszyn lub wiele punktów przywracania, proces musi to „rozplątać”,
  • złożyć łańcuch – zaczynając od ostatniego pełnego backupu, nakłada kolejne przyrostowe aż do wybranego punktu w czasie, blok po bloku.

Efektem jest strumień „gotowych” danych płynący do klastra produkcyjnego. I właśnie ten strumień jest tym, co mierzymy jako prędkość odtwarzania.

Jak więc widać, rehydratacja potrzebuje mocy obliczeniowej i sprawnego systemu dyskowego. Tymczasem, częstym błędem popełnianym przez zespoły jest budowa repozytorium backupu na starym gracie, który został wycofany z pracy w klastrze produkcyjnym.

Od czego zacząć szukanie wąskiego gardła?

Proponuje analizę w 3 krokach poprzez odpowiedzi na poniższe pytania.

1. Czy problem jest od początku, czy narasta? Jeśli odtwarzanie idzie wolno od pierwszej minuty, może to wskazywać na problem po stronie repozytorium lub proxy. Jeżeli start jest przyzwoity, ale proces zwalnia w trakcie, wówczas możliwe, że docelowa pamięć masowa nie wyrabia pod narastającym obciążeniem.

2. Ile zadań odtwarzania odbywa się równolegle? Każda równoległa sesja konkuruje o te same zasoby. Czasem uruchomienie mniejszej liczby sesji daje każdej więcej zasobów i łączny czas odtwarzania jest krótszy.

3. Jaki mamy najstarszy punkt przywracania? Im dalej wstecz sięgamy, tym więcej przyrostowych kopii Veeam musi złożyć w całość. To przekłada się bezpośrednio na obciążenie repozytorium i na czas odtwarzania.

Testowe odtwarzanie jako panaceum na niespodzianki

Rzadko kiedy sprawdzamy, czy coś działa, gdy nie jesteśmy do tego zmuszeni. W standardowych operacjach odtwarzanie z kopii zapasowych dotyczy zwykle przywracania określonych plików lub folderów, skrzynek pocztowych lub obiektów bazy danych. Sytuacja, gdy odtwarzamy większość systemów jest scenariuszem niezwykle rzadkim.

Jednak, gdy już dojdzie do odtwarzania całego systemu po incydencie bezpieczeństwa, a biznes stoi, wszyscy patrzą na ręce zespołu IT. Nie ma wówczas miejsca na tuning konfiguracji infrastruktury, bo każda godzina to realne straty finansowe. Dlatego, namawiam, testujcie odtwarzanie w miarę regularnie, chociaż raz na kwartał. Warto też użyć mechanizmów automatyzujących proces, w przypadku Veeam będzie to SureBackup. Da Wam to odpowiedzi, czy nadal mieścicie się w zakładanym RTO, co zmniejszy ciśnienie w już i tak stresującym procesie przywracania systemów. Pamiętajmy, że istotą systemu backup nie jest tworzenie kopii zapasowych, lecz odtwarzanie z kopii zapasowych!

Made by human BRAIN

Jaki jest koszt nienaruszalności kopii zapasowych?

Jaki jest koszt nienaruszalności kopii zapasowych?

Gdy znamy metodykę ataku malware i mamy świadomość, że celem pierwszoplanowym są kopie zapasowe, motywacji do aktywnej ochrony infrastruktury backupu zwykle nie brakuje. Pozostaje kwestia, jak się do tego zabrać, aby osiągnąć zadowalający efekt i jakie to wygeneruje nakłady? Warto pamiętać, że bezpieczeństwo kopii zapasowych jest funkcją wielu działań, a nie jednego czynnika. Mimo to przedstawię drogę na skróty, która na początek daje najwięcej korzyści. Mowa będzie o nienaruszalnych repozytoriach na kopie zapasowe.

Czym jest nienaruszalność kopii zapasowych?

„NIENARUSZALNOŚĆ backupu to zdolność systemu kopii zapasowych do zagwarantowania, że utworzone kopie pozostaną integralne (niezmienione), nieusuwalne i gotowe do odtworzenia przez cały wymagany okres retencji (przechowywania) – niezależnie od awarii sprzętowych, błędów ludzkich czy celowych ataków.”

Źródło definicji: https://viability.pl/blog/nienaruszalna-kopia-zapasowa/

Skoro kopie zapasowe mają być de facto nietykalne przez zadany czas, pozostaje pytanie, jak to w praktyce zrealizować?

Kluczowe czynniki sukcesu w bezpieczeństwie backupu

Bezpieczeństwo backup osiąga się poprzez synergię 4 obszarów:

  1. Architektura systemu. Właściwe zaprojektowanie i wykonanie systemu backupu zgodnie z podejściem Secure by Design, gdzie bezpieczeństwo jest fundamentem projektu, a nie dodatkiem po fakcie. Kluczowa jest segmentacja, czyli wydzielenie systemu backupu i repozytorium do osobnych stref sieciowych, tak by zminimalizować powierzchnię ataku i ograniczyć zasięg ewentualnego włamania.
  2. Bezpieczne repozytorium. Czyli pamięć masowa, którą dzisiaj może być serwer lub usługa chmurowa, honorująca politykę retencji naszych zadań backupu. Istotne w tym jest, by mechanizm niezmienności był natywny, a więc wbudowany w system plików, storage lub API, a nie zapewniony wyłącznie przez oprogramowanie backupowe (które można odinstalować).
  3. Ograniczanie uprawnień. Stosowanie zasady minimalnych przywilejów i polityki Zero Trust. W praktyce oznacza, że tworzymy konta z uprawnieniami wystarczającymi do działania. Nadto, zakładamy z góry, że naruszenie bezpieczeństwa nastąpi, więc każdy dostęp wymaga weryfikacji, a krytyczne operacje jak usunięcie kopii powinny wymagać zgody dwóch osób (zasada czterech oczu).
  4. Testowanie backupu. Cykliczne odtwarzanie kopii zapasowych i weryfikacja integralności danych plus profilaktyczne skanowanie silnikiem antywirusowym.

Bezpieczne repozytorium, czyli co?

Repozytorium dla backupu musi zapewniać niezmienność danych najczęściej przez mechanizm WORM (Write Once Read Many) lub równoważny. Rzecz jasna, nie w nieskończoność, lecz zgodnie z naszą polityką backupu. A konkretnie to retencja określa nam jak długo mamy przechowywać kopie zapasowe. Jeśli masz 30-dniową retencję, możesz wrócić do stanu danych sprzed miesiąca. Jeśli incydent bezpieczeństwa lub błąd wykryjesz po 31 dniach, tego stanu danych już nie ma.

No dobrze, to teraz jakie repozytorium najlepiej, przy rozsądnym budżecie zrealizuje nasze cele. Oto przykłady, które różnią się modelem kosztowym: lokalne to głównie CapEx (sprzęt i licencje), a chmurowe to OpEx (subskrypcja). Obie ścieżki prowadzą do tego samego celu.

  1. Repozytorium lokalne (on-prem):
    • Veeam Hardened Repository (uniwersalne).
    • Scality ARTESCA (uniwersalne).
  2. Repozytorium chmurowe (cloud):
    • Object Storage – AWS S3 lub Azure Blob (uniwersalne),
    • Veeam Data Cloud Vault (dla Veeam).
    • Veeam Cloud Connect (dla Veeam).

Jak zacząć, żeby szybko zyskać dużo?

Najwięcej rezultatów przy minimalnych nakładach osiągniesz przechowując backup lokalnie na niezmiennym repozytorium (immutable storage), a dodatkowo kopiując backup do repozytorium poza siedzibą (Off-site Backup). W ten sposób dane będą zabezpieczone przed sporą grupą typowych wektorów ataków.

Gdy Twój system backupu pochodzi od Veeam, masz do wyboru natywnie wspierany Veeam Cloud Connect (usługi realizowane przez partnerów Veeam), albo Veeam Data Cloud Vault (usługa oparta na AWS i Azure oferowana przez Veeam). Jeżeli masz system backupu od innego producenta, to zawsze możesz skorzystać ze zdalnego magazynu obiektowego w chmurze (S3 Object Storage). Która opcja jest najtańsza i którą warto wybrać? O tym w następnym akapicie.

Ile kosztuje bezpieczeństwo backupu?

Backup to de facto nadmiarowość w zakresie danych, czyli tworzenie kopii zapasowych to dublowanie stanu danych produkcyjnych i obsługujących je systemów. Jeżeli uwzględnić czas przechowywania, a nawet osiągnięte oszczędności z tytułu deduplikacji i kompresji kopii to może okazać się, że backup i tak wymagał będzie 2 lub nawet 3 razy więcej miejsca na pamięci masowej niż dane podstawowe.

Czas na wyliczenia. Przyjmijmy założenie, że mamy 20 TB danych produkcyjnych, co przy retencji 30 dni pozwala przyjąć, że wystarczy nam 50 TB repozytorium na backup. Poniżej opcje spełniające te warunki.

Repozytoria lokalne (on-prem):

🟪 Veeam Hardened Repository | Podstawowy serwer z kontrolerem macierzowym (RAID6) z 5 dyskami SAS 18 TB, co daje nam 54 TB przestrzeni na backup. Licencja na system jest bezpłatna | Przeciętny koszt: 43 000 zł netto, co przy amortyzacji na 3 lata daje22 zł/1 TB/ m-c + koszt energii*.

🟪 Scality ARTESCA (S3 Object Storage) | W przypadku tego magazynu obiektowego musimy zastosować 12 dysków SAS 6 TB, aby zagwarantować dalszą rozbudowę oraz o wiele droższą konfigurację sprzętową (między innymi – 256 GB RAM) ze względu na technologię zapisu danych (erasure-coding). Miejsce na backup ok. 55 TB. Licencjonowanie rozliczane jest za każdy TB | Przeciętny koszt: 87 000 zł netto, co przy amortyzacji na 3 lata daje 44 zł/1 TB/m-c + koszt energii*.

Repozytoria chmurowe (cloud):

🟦 S3 Object Storage – AWS S3 / Azure Blob (uniwersalne) | Oferta w zakresie obiektowej pamięci masowej jest bardzo bogata. Analizując ceny przyjąłem usługi typu „rzadki dostęp”, co limituje wolumen odtworzeni danych z backupu i przyjąłem, że nie nastąpi rozliczenie za egress. | Średni koszt usługi: 45 zł netto/1 TB/m-c.

🟦 Veeam Data Cloud Vault (dla Veeam) | Natywnie rozwiązanie dla Veeam Backup & Replication w dwóch wariantach:

  1. Veeam Data Cloud Vault Foundation (Core Region) | Niezawodność na poziomie „11 dziewiątek”. Odtwarzanie limitowane, więc mogą się pojawić koszty dodatkowe. | Koszt usługi: 34 599 zł netto za rok, co daje ok. 58 zł/1 TB/m-c. >>> Skalkuluj u nas.
  2. Veeam Data Cloud Vault Advanced (Core Region) Niezawodność na poziomie „12 dziewiątek”. Odtwarzanie bez limitów. | Koszt usługi: 59 199 zł netto za rok, co daje 99 zł/1 TB/m-c. >>> Sprawdź cenę u nas.

🟦 Veeam Cloud Connect (dla Veeam) | Ceny są zróżnicowane, bo zależne są od polityki cenowej partnerów programu VCSP. Zwykle mamy dwa składniki cenowe: storage i licencja połączeniowa rozliczana za VM/serwer (do kalkulacji przyjąłem 50 VM i 50 TB). | Koszt usługi: 5 150 zł netto/m-c, czyli 103 zł /1 TB/m-c.

Wnioski końcowe

Jak widać, najtańszą formułą na pozyskanie nienaruszalnego repozytorium jest lokalny Veeam / Linux Hardened Repository. W dodatku, gdy użyjemy jakiegoś starszego, wycofanego z użytkowania serwera, inwestycja sprowadzić się wyłącznie do kosztu zakupu dysków HDD + koszt energii elektrycznej. Uzyskanie immutable storage w cenie 22 zł/1 TB jest najtańszą możliwą opcją (dla block storage).

Jeżeli Capex odpada albo zależy nam na uruchomieniu nienaruszalnego repozytorium w ciągu godziny, wówczas do wyboru mamy chmurę z dość powszechną ofertą w zakresie S3 Object Storage. Cena repozytorium tego typu, przyjmując typowe użytkowanie pod backup nie powinna przekroczyć 45 zł/1TB m-c.


* Mały serwer może generować 250W ciągłego poboru, co przy polskich cenach prądu (~1,00 zł/kWh) daje ok. 108 zł/miesiąc (w przykładzie podnosi to cenę storage o ok. 2 zł / 1 TB / m-c).

O pozostałych środkach, które prowadzą do wzmocnienia bezpieczeństwa backupu, a więc zwiększenia cyberodporności poczytać można w moim artykule na blogu firmowym.

Made by human BRAIN