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

Czym się różni PaaS od hostingu?

Czym się różni PaaS od hostingu?

PaaS (Platform as a Service) i współdzielony hosting są usługami dla zupełnie innych odbiorców, dlatego istotnie się różnią, pomimo pozornego podobieństwa. Platforma jako usługa ma konsolę z ilością ustawień przypominającą kokpit samolotu. Hosting z kolei bardziej przypomina pilota od Apple TV 😊 Kto korzystał z obu tych usług, nigdy ich nie pomyli. Nadmienię jednak, że ostatnio, szczególnie u największych usługodawców, oblicze hostingu trochę się zmienia.

Mniej więcej 20 lat temu zbudowałem biznes „hostingowy” B2B (nie podejmuje się tłumaczenia tej nazwy), i byłem wówczas w Polsce jednym z nielicznych dostawców. Sam od lat jestem użytkownikiem współdzielonego hostingu od GoDaddy (cPanel) i Zenbox. Jakieś 3 lata temu odkryłem alternatywę w postaci Platformy jako Usługi (PaaS). A w ubiegłym roku postanowiłem włączyć się do gry jako usługodawca PaaS. Poznałem zatem blaski i cienie każdego rozwiązania, w dodatku z obu perspektyw – dostawcy i klienta.

Zacznę od tego, że hosting nie spełnia kryteriów chmury. Otóż, według National Institute of Standards and Technology, chmurę definiuje kilka charakterystycznych elementów (str 2). O ile przy hostingu możemy mówić w jakimś stopniu o samoobsłudze, o tyle już o rozliczeniu za użycie, czy automatycznej skalowalności możemy zapomnieć. Hosting ma być prosty i ładnie opakowany. Zwykle klient dostaje do wyboru 3 sztywne pakiety, bo większy wybór wywołuje niepotrzebny ból głowy. Niekiedy usługodawca umożliwia klientowi przełączanie się między pakietami, trzeba to jednak zrobić ręcznie. Tyle w kwestii skalowalności, a teraz przejdźmy do kwestii rozliczeń.

Cechą podstawową hostingu jest ryczałt. Zapewne ten fakt, jak i agresywna polityka cenowa dostawców sprawia, że hosting jest tak atrakcyjny dla klientów. Ale uwaga, bo tu jest haczyk. Jak wiemy z lekcji ekonomii, zasoby są zwykle ograniczone. Bardzo to uwydatnia się przy hostingu, gdzie współdzielenie mocy obliczeniowej, pamięci i przestrzeni dyskowej nie zawsze odbywa się w sposób uczciwy. Każdy dostawca zakłada jakąś nadsubskrypcję usług. Przyjmuje zatem, że kupujący nie wykorzysta 100% zasobów przypisanych mu w ramach pakietu. Mało tego, często przyjmuje się, że klient sięgnie po nie więcej niż 10-20%. Przy kilkuset klientach to już spora oszczędność. I tu jest właśnie największa słabość tej oferty.

No dobrze, a co z odpornością na awarie? Wybierając ofertę dostawców hostingu nie mamy zupełnie kontroli nad poziomem niezawodności usługi. Owszem, możemy robić backup bazy danych, czy kopię zapasową plików, jednak na tym kończy się nasza lista możliwości.

Takie opcje jak balansowanie ruchu, klastry wysokiej dostępności, regiony geograficzne, replikacja czy autoskalowalność to domena rozwiązań klasy PaaS lub IaaS, a więc chmury publicznej. W rezultacie, niezawodność usług hostingowych zależy od decyzji biznesowych dostawcy. Te decyzje są zwykle pokłosiem poziomu świadomości technicznej, nakładów oraz wynikającej z nich architektury rozwiązania.

Jak wygląda odtwarzanie awaryjne naszego e-commerce w sytuacji jakiegoś incydentu po stronie dostawcy hostingu? Oznacza najczęściej oczekiwanie aż usługa znowu zacznie działać. Można oczywiście podjąć próbę uruchomienia wszystkiego u innego usługodawcy, a potem zrobić przekierowanie domeny w serwerze nazw, ale będzie to proces żmudny i, może się okazać, że niepotrzebny. Tutaj trzeba oddać sprawiedliwość hostingodawcom, bo choć wpadki zaliczają, to zwykle przerwy w dostępności są krótkotrwałe. Gorzej, gdy wydarzy się coś katastrofalnego w skutkach. Wówczas, RTO może wynieść nawet kilka dni (wspomniana odbudowa w innym miejscu), a RPO może oznaczać zgubienie transakcji z 24 godzin, pod warunkiem, że kopie zapasowe bazy trzymamy w innym miejscu.

Spójrzmy na zagadnienie z perspektywy Platformy jako Usługi. Możliwości konfiguracyjne są bardzo rozbudowane, co sprawia, że nieobeznany użytkownik poczuje się zagubiony.

PaaS nie jest dla kogoś kto nie wie, co to jest Apache, NGINX, Varnish, PHP, Memcached, albo czym różni się baza SQL od NoSQL, czy skalowanie stanowe od bezstanowego. Nagrodą za tę wiedzę jest kontrolowana skalowalność, nadmiarowość i bezpieczeństwo usługi oraz spore możliwości.

Przyjmijmy, że aplikacja, którą mamy używać wymaga różnych, precyzyjnie skonfigurowanych bibliotek oprogramowania, aby działać optymalnie. W hostingu jest to właściwie niemożliwe, a w PaaS to podstawowa funkcjonalność. Podobnie jest z dynamicznym przydzielaniem większej ilości zasobów obliczeniowych. Gdy uruchomicie kampanię i nagle do Waszego sklepu „zajrzy” 1000x więcej klientów niż dotychczas, co wtedy? W 99% przypadków wasz dostawca hostingu wyświetli im komunikat błędu kategorii pięćset – np. limit zasobów, wewnętrzny błąd serwera, itp. Coś takiego nie wydarzy się jednak w przypadku PaaS. Chmura załatwia to w locie, dodając pamięć, moc, a jak trzeba także kolejne serwery. Dostaniecie też powiadomienie, że obciążenie wzrosło, aby ewentualnie samemu zdecydować jak ma się dalej zachować wasze środowisko.

Sceptyk od razu przyczepi się, że to pewnie sporo kosztuje. I tak i nie. Owszem, nie ma ryczałtu, więc jest trochę niepewności dotyczącej tego, jaki będzie ostateczny koszt. Dużo zależy od sposobu korzystania z usługi. Moje analizy wykazały, że dla podobnych usług ceny są prawie takie same. W GoDaddy na przykład ryczałt roczny za 1 publiczny adres IP to koszt 287 zł netto. Na platformie PaaS Cloudlets.Zone to 3 gr za godzinę, a więc 262 zł brutto za rok. W dodatku nie trzeba przedpłacać. Jeśli uwzględnić możliwość usypiania środowisk w chmurze to już naprawdę hosting staje się mało opłacalny. Po co na przykład system do wideokonferencji ma działać całą dobę? Można go przecież automatycznie zagasić, powiedzmy o 22:00, by potem kalendarzowo włączyć o 7:00.

Mam nadzieję, że lektura tego artykułu dała odpowiedzi na postawione w tytule pytanie. Choć hosting pojawił się o wiele wcześniej, niż moda na chmurę, wciąż jeszcze ma się dziś dobrze, z resztą nie tylko w Polsce. Tym niemniej, wraz z rosnącymi potrzebami i świadomością klientów, PaaS może okazać się potencjalnym, bardzo ciekawym następcą rozwiązań hostingowych.

Wypróbuj PaaS

Nadmiarowość, czy odtwarzanie po awarii?

Nadmiarowość, czy odtwarzanie po awarii?

Czym jest uptime i jak się to ma do czasu przestoju?  Ile dziewiątek po przecinku gwarantuje względny spokój, gdy mowa jest o wysokiej dostępności infrastruktury informatycznej? I na koniec, na co postawić: na nadmiarowość, czy może na błyskawiczne odtwarzanie po awarii?

Czy wiesz jaki poziom dostępności mają Twoje systemy?  Najlepsze centra danych w Polsce (np.: Atman, Beyond, Exea, Polcom, T-mobile), mogą pochwalić się niezawodnością na poziomie 99,99%. Oznacza to, że ich przestój w skali roku nie przekroczy godziny. Zwracam jednak uwagę, że procenty dotyczą określonych usług. Już tłumaczę. Powiedzmy, że zdecydujemy się na usługę kolokacji, czyli wynajmujemy miejsce w szafach teletechnicznych w centrum danych. Usługodawca deklaruje cztery dziewiątki. Czy w związku z tym nasze środowisko także będzie miało dostępność na poziomie 99,99%? Najprawdopodobniej nie. Wysoka dostępność dotyczy systemów zbudowanych w centrum danych, w tym zasilania, łączności, klimatyzacji, itp. Wystarczy, że architektura naszego rozwiązania została zaprojektowana bez nadmiarowości. Czyli do szaf wynajętych w centrum danych włożymy pojedyncze urządzenia. Wówczas niestety, poziom dostępności naszego środowiska IT będzie równy poziomowi dostępności najsłabszego elementu.

Czas nieprzerwanej pracy systemów określany jako uptime, dotyczy każdego elementu infrastruktury IT. Projektując wysokodostępne środowisko IT należy eliminować pojedyncze punkty awarii. Robimy to dublując urządzenia z najniższym przeciętnym uptime. Właściwie, to robimy to dublując wszystko co się da 🙂 Jedyne odstępstwa dotyczą usług, których niedostępność nie zatrzymuje procesów krytycznych dla działalności operacyjnej. W ten sposób istotnie zmniejszamy ryzyko wystąpienia przestojów. Naturalnie, poszczególne systemy nie muszą mieć jednakowego poziomu dostępności. Ustalanie precyzyjnych wskaźników dla każdej usługi wpływa wprost na poziom nakładów na środowisko IT i na rodzaj i koszt Disaster recovery.

Wysoka dostępność (HA) jest pochodną nadmiarowości. Odtwarzanie awaryjne uznać powinniśmy za uzupełnienie HA, bo odpowiada na problemy, których nie rozwiąże nawet rozproszony geograficznie klaster wysokiej dostępności. Disaster recovery (np. DRaaS) to ostatnia deska ratunku, gdy nasze systemy padną ofiarą cyberataku lub co bardziej prawdopodobne, staną się niedostępne przez jakiegoś wirusa szyfrującego. Moje doświadczenia pokazują, że nadmiarowość i odtwarzanie po awarii, które według najlepszych praktyk ITIL powinny być komplementarne, bardzo często rozdziela tytułowe „czy”.

Darmowa konsultacja - anty.expert

IT Disaster Recovery Plan w wersji mini

IT Disaster Recovery Plan w wersji mini

Krótko i konkretnie o tym, co powinno się znaleźć w Planie Odtwarzania po awarii dla obszaru IT. Kto zmierzył się z tym tematem ten wie, że są atrakcyjniejsze formy spędzania czasu. Mimo wszystko, gdy się już go popełni, satysfakcja gwarantowana 😉 Jeśli zabieracie się za samodzielne opracowanie planu, być może ten artykuł pomoże Wam uporządkować myśli.

Dla porządku, IT Disaster Recovery Plan jest częścią Zarządzania Ciągłością Działania (Business Continuity Management – BCM), a dokładnie jest jednym z dokumentów Planu Ciągłości Działania. Celem BCM jest zapewnienie dostępności krytycznych procesów i zasobów nawet w sytuacji kryzysowej, a więc na przykład w trakcie awarii. BCM obejmuje wszelkie procesy i zasoby występujące w organizacji. Tymczasem Plan Odtwarzania po awarii skupia się na obszarze teleinformatycznym.

Jak każdy plan, wymaga formy pisemnej. Warto go mieć pod ręką. Co powinien zawierać IT Disaster Recovery Plan, wymieniam w kolejności:

  1. Analiza Ryzyk, czyli przed czym mamy się chronić. Podczas analizy proponuję skupić się na procesach krytycznych. Biznes musi wiedzieć też o pozostałych operacjach, które nie zostaną obsłużone w razie awarii. Pamiętajmy, że to zarząd ostatecznie zdecyduje, które procesy mamy podtrzymać.
  2. Analiza Wpływu na Biznes (BIA) skoro mamy już opisane zagrożenia, to teraz przypisujemy im oddziaływanie. Przyczyna – skutek – konsekwencje. Polecam tutaj proste tabelki i matrycę, która „wyostrza optykę”. Bardzo ważne to wyliczenia, np. koszty przestoju, utraconych korzyści, itd.
  3. Katalog usług i map zależności – to zadanie może być przykre, bo pisanie katalogu usług dla klienta wewnętrznego, gdy służyć ma tylko jednemu celowi, słabo się broni. Jak dla mnie, wystarczy przyłożyć każdy proces krytyczny do odpowiedniego systemu czy aplikacji i tak powstanie nam lista zasobów, które musimy podtrzymać podczas awarii.
  4. Parametryzacja RTO & RPO, czyli określamy dla każdego procesu oczekiwany czas odtworzenia oraz akceptowalny przez organizację poziom utraty danych. Namawiam, by „odczarować” akronimy.

Koniecznie trzeba zrobić przymiarkę, ile będzie kosztował przyjęty zakres ochrony. Jeśli poza podstawowymi procesami mamy chronić także coś więcej, koniecznie sprawdźmy czy to ekonomicznie uzasadnione. Znowu, niech zdecyduje biznes.

Według mnie to najważniejsze punkty IT Disaster Recovery Planu. Mniej znaczy więcej. Zawsze można coś dopisać 🙂

Darmowa konsultacja - anty.expert