Wszystko o deduplikacji danych

0

Deduplikacja – technika umożliwiająca oszczędność przestrzeni dyskowej poprzez eliminację powtarzających się danych – staje się coraz bardziej dojrzała i wreszcie zyskuje uznanie użytkowników. Dzięki temu, że jest obecna w coraz większej liczbie macierzy dyskowych, oferowana jest też jako oprogramowanie, jest w stanie przynosić firmom wymierne finansowe zyski.

Praprzodkowie technologii deduplikacji – kompresja plików i próby przechowywania ich w tylko jednej instancji – są obecne w rozwiązaniach IT już od kilkunastu lat. Pomagały głównie oszczędzać cenną pojemność w latach 90., gdy była ona na wagę złota (i nadal wszyscy korzystają z ZIP-a, wielu Czytelników z pewnością pamięta też program Stacker do kompresji całych twardych dysków). Wówczas ogromnym sukcesem było uzyskanie kilkukrotnego współczynnika oszczędności miejsca.

Wydawałoby się, że w dziedzinie kompresji nie da się już uzyskać znacznego postępu. Jednym z ostatnich usprawnień jest wyposażenie oprogramowania kompresującego o wiedzę odnośnie charakteru przetwarzanych danych, aby podczas procesu kompresji możliwe było wybranie najbardziej optymalnego algorytmu. Podanie informacji z jakiej aplikacji pochodzą dane znacznie poprawia efekty kompresji i zwiększa jej współczynnik, ale wciąż odbywa się to kosztem wydajności całego rozwiązania i nie wprowadza możliwości analizy powtarzalności części danych pomiędzy różnymi plikami.

Wobec kompresji konkurencyjną techniką jest eliminacja duplikatów plików lub zarządzanie ich wersjami (w poszczególnych wersjach znakomita część kodu powtarza się). Eliminacja powtarzających się plików (Single Instance Storage, SIS) to ciekawe rozwiązanie, czasem wręcz bardziej skuteczne od kompresji, jako że większość przetwarzanych dziś danych jest już dość mocno skompresowanych, a coraz pojemniejsze dyski powodują, że zarządzanie plikami zostało trochę zaniedbane. Natomiast tradycyjne systemy SIS rzadko są w stanie przeprowadzić kompresję. Eliminacja dotyczy zresztą wyłącznie identycznych plików, które posiadają ten sam kod kontrolny. Zmiana w nich nawet jednego bajta powoduje, że nie zostanie zrealizowana eliminacja – rozwiązanie to zatem nie sprawdzi się w ogóle tam, gdzie jest wiele wersji tych samych plików.

Początki deduplikacji

Pierwsze próby podejścia do deduplikacji obejmowały połączenie kompresji i techniki SIS. Analizowano dane wewnątrz pliku i ich podatność na kompresję. Później szukano powtarzających się plików – zarówno wśród tych skompresowanych, jak też nie. Pozwoliło to na uzyskanie znacznie lepszych wyników w środowiskach zawierających zróżnicowane rodzaje plików.

Szybko zauważono jednak, że zakrojony na szeroką skalę proces deduplikacji bardzo szybko wykorzystuje duże ilości dostępnej mocy obliczeniowej serwerów, gdzie uruchamiana jest deduplikacja. Pojawił się problem skalowania – czasem dołożenie kolejnego serwera, który miał podlegać deduplikacji powodowało, że ilość potrzebnej mocy rosła kilkukrotnie. Stąd konieczne było umiejętne balansowanie pomiędzy potrzebami oszczędności, a dostępną wydajnością serwerów i pamięci masowych.

Te sposoby deduplikowania danych znalazły wielu zwolenników. Duża grupa pierwszych wdrożeń została zrealizowana w środowiskach, gdzie wykonywanych jest wiele kopii tych samych danych – naturalnymi systemami są tu środowiska, w których przeprowadzany jest backup. To w nich – w krótkim okresie czasu – wykonywanych jest wiele kopii tych samych danych, co w praktyce może dać nawet kilkusetkrotne współczynniki deduplikacji przy niewielkim wpływie na utratę wydajności. Natomiast zastosowanie tej techniki do przetwarzanych na bieżąco danych okazało się nieskuteczne.

Drugie podejście…

Aby zaadresować opisane powyżej problemy, nowsze systemy deduplikacyjne starają się umieć poradzić sobie z bardziej zróżnicowanymi rodzajami danych – zarówno tych w plikach, jak i zapisanych blokowo w bazach danych – przy jednoczesnej próbie utrzymania w ryzach wydajności całego systemu. Kolejnymi rodzajami systemów, gdzie próbuje się obecnie wprowadzić deduplikację, są rozwiązania do archiwizacji i macierze dyskowej drugiej warstwy, przechowujące mniej ważne dane, do których nie następuje tak częsty dostęp jak do danych z warstw pierwszej i zerowej. Czy kiedyś deduplikacja będzie realizowana w tych dwóch ostatnich – wszystko zależy od tego, czy obsługujące je systemy staną się wystarczająco wydajne, aby przyjąć dodatkowe obciążenie związane z analizą danych poddawanych deduplikacji.

Systemy deduplikacji coraz częściej także potrafią wykorzystać wiedzę o strukturach ułożenia informacji specyficznych dla danych z poszczególnych rodzajów aplikacji, co pozwala na stworzenie szybszych algorytmów i łatwiejsze wykrycie powtarzających się grup danych.

Coraz częściej do systemów deduplikacji włączane są także funkcje kompresji danych. Wcześniej realizowano to w różnych fazach – najpierw wyszukiwano duplikaty, a po wyeliminowaniu ich resztę kompresowano. Dziś rezygnuje się z tej metody i wszystkie procedury mające na celu ograniczenie miejsca realizuje się równolegle, przy zachowaniu bardzo dobrej wydajności i niższych kosztach sprzętu.

Chociaż deduplikacja może znacznie zredukować ilość miejsca potrzebnego na przechowywanie danych, duża wartość płynie także z możliwości ograniczenia ilości danych, które mają być przetransportowane przez sieć w celu ich ochrony. Systemy do deduplikacji potrafią dziś przygotowywać paczki danych o optymalnej wielkości do przesłania przez sieć, dzięki czemu możliwe staje się odciążenie sieci podczas wykonywania procesu backupu i zaspokojenie coraz większych potrzeb, gdy rośnie ilość danych, które należy zabezpieczyć, bez konieczności powiększania dostępnego pasma. Jest też dodatkowa korzyść – gdy przesyłamy przez sieć zdeduplikowane dane, w tej postaci będą mogły być zapisane w macierzy dyskowej, dzięki czemu odpada konieczność udostępniania większej pojemności dyskowej i ponownego przeprowadzania deduplikacji.

Warianty deduplikacji

Wszystkie techniki eliminacji powtarzających się danych „balansują” pomiędzy wydajnością i współczynnikiem deduplikacji, uwzględniając rodzaj deduplikowanych danych. Chociaż oferują niepodważalne korzyści, implementacje są realizowane na tak różne sposoby, w różnym czasie i z różnymi kosztami, że warto poznać bardziej szczegółowo poszczególne procesy.

Wariant „inline” przetwarza przychodzące dane w pamięci, usuwając powtarzające się bloki tak, że tylko unikalne bloki i odpowiednie odnośniki są zapisywane na dysku. Wykorzystanie tej metody ma sens tylko wtedy, gdy ilość zapisywanych danych nie jest duża, w strumieniu danych duża liczba bloków powtarza się, a sama ilość danych też jest ograniczona. Wówczas przepustowość systemu jest używana optymalnie, efektywnie jest wykorzystywana przestrzeń dyskowa, a w procesie replikacji nie ma żadnych opóźnień. Natomiast żeby skorzystać z tych benefitów, nie można dopuścić do dużego obciążenia wydajności, bo w przeciwnym wypadku ucierpi na tym wydajność systemu przy przyjmowaniu danych. Z tego też powodu wciąż deduplikacja nie pojawiła się w pojedynczych napędach dyskowych.

Ponieważ realizacja wariantu „inline” jest ograniczona poprzez dostępność i koszt zasobów mocy obliczeniowej i pamięci, model ten najczęściej jest obecny w mniejszych systemach pamięci masowych udostępnianych przez sieć Ethernet, gdzie jest ograniczona przepustowość, a także istnieje możliwość zapanowania nad wzrostem ilości danych.

W wariancie „post-process” przychodzące dane są zapisywane na dysku w tradycyjny sposób (szczególnie gdy nadchodzi ich duża ilość), a gdy ten proces się zakończy, są ponownie przeglądane i poddawane deduplikacji. Schemat „post-process” efektywnie ogranicza wykorzystanie zasobów mocy obliczeniowej i pamięci serwerów, pozwala na unikanie przestojów i wąskich gardeł, ale to wszystko kosztem opóźnienia procesu deduplikacji i replikacji danych oraz chwilowym nieoptymalnym wykorzystaniem pojemności. Wariant „post-process” najbardziej pasuje do zaawansowanych środowisk sieci SAN, gdzie przepustowość jest najcenniejszym zasobem. Dostawcy wskazują na jeszcze jedną zaletę tego rozwiązania: jako że wobec najświeższych danych następuje konieczność najczęstszego odczytu, fakt, że nie są poddawane deduplikacji powoduje, iż ten odczyt jest znacznie szybszy, niż gdyby były jej poddane. Rośnie więc wydajność, kosztem chwilowej utraty pojemności.

Istnieje też wariant hybrydowy, który łączy zalety metod „inline” i „post-process”, przy jednoczesnej próbie minimalizowania negatywnego wpływu na środowisko. Jeśli dane są dostarczane w małych ilościach, mogą być poddawane deduplikacji w trybie „inline”, ale gdy ich ilość nagle znacznie wzrośnie, aby uniknąć wąskich gardeł, z dysku robiony jest jakby cache drugiego poziomu. Deduplikacja wówczas jest wykonywana równolegle, wraz z przyjmowaniem danych.

Największą zaletą tej metody jest fakt, że działa równie dobrze zarówno w mniej wydajnych systemach opartych na sieciach IP, jak też w dużych środowiskach SAN. Wymaga też niewielkich prac konfiguracyjnych, aby spełnić oczekiwania użytkowników oraz – co najważniejsze – pozwala klientom na większą swobodę we wdrożeniu, więcej opcji do tuningu i generalnie lepszą kontrolę nad pilnowaniem polityk.

Deduplikacja po stronie źródła czy macierzy?

Deduplikacja po stronie źródła oznacza, że wszystkie procesy deduplikacji są wykonywane w systemie klienta przed przeniesieniem ich do macierzy dyskowej. Jeśli macierz oferuje taką funkcję, możliwe także jest przesyłanie do macierzy nie zdeduplikowanych danych i wykonanie tam deduplikacji.

Jedną z kluczowych korzyści deduplikacji po stronie macierzy jest to, że moc obliczeniowa źródła nie jest „marnowana” na wykonanie procesu deduplikacji. Macierz jest odpowiednio przygotowana do przeprowadzenia tego procesu – ma zapas mocy obliczeniowej i pojemności. Ale – co najważniejsze – macierz z funkcją deduplikacji można wdrożyć bez konieczności przeprowadzania jakichkolwiek zmian w istniejącym środowisku serwerów czy sieci.

Systemy te ukrywają deduplikację za typowymi standardowymi protokołami, nie ma więc konieczności wdrażania żadnych dodatkowych przełączników czy instalacji specjalnego oprogramowania. Ale ta przezroczystość kosztuje – w tym modelu do macierzy trafiają dane w swojej pełnej wersji, nie skompresowanej, ani nie zdeduplikowanej, może to więc mieć wpływ na ilość danych, które muszą przepłynąć przez sieć.

Natomiast deduplikacja po stronie źródła powoduje, że w deduplikację danych jest zaangażowanych wiele klientów (sumarycznie daje to większą moc obliczeniową), a dane mogą być przechowywane na znacznie tańszym systemie pamięci masowych. Natomiast ta korzyść przychodzi kosztem efektywności – deduplikacja u źródła często degraduje wydajność aplikacji, a dodatkowo konieczność instalacji i konfiguracji oprogramowania klienckiego i protokołów transferu może wymusić przerwy w pracy kluczowych systemów.

Technika eliminacji nadmiarowych danych jest coraz silniejsza, dojrzewa bardzo szybko i staje się krytyczną dla wszystkich systemów związanych z przechowywaniem i zabezpieczaniem danych. Umożliwia ograniczenie koniecznej do zapewnienia pojemności, redukuje też koszt transferu danych pomiędzy ośrodkami. Ale nie wszystkie techniki deduplikacji oferują podobne korzyści. Klienci powinni rozważnie przeanalizować płynące „za” i „przeciw”, określić swoje oczekiwania płynące z takiego systemu i zdefiniować wymogi związane z wydajnością.

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ