Deduplikacja – tak, ale jaka?
Transkrypt
Deduplikacja – tak, ale jaka?
PRAKTYKA Deduplikacja – tak, ale jaka? Wybierając backup dla firmy musimy zainwestować w odpowiednie nośniki do przechowywania danych . Dla firm archiwizujących duże ilości danych, koszty ich przechowywania mogą być palącym problemem. Dlatego warto od razu na etapie wyboru rozwiązania sprawdzić, czy Twój dostawca rozwiązań backupu potrafi skutecznie deduplikować dane. Skuteczna deduplikacja sprawi, że zapisane dane zajmą znacznie mniej miejsca i pozwoli zaoszczędzić tysiące złotych na kosztach storage’u. Ale jak wybrać dobrą deduplikację? Dowiesz się: t Deduplikacja – tak, ale jaka? t Co to jest deduplikacja danych i jakie daje ona korzyści? t Jak się tradycyjne metody deduplikacji danych Sławomir Pruchnicki Product Manager, specjalizuje się w rozwiązaniach backupu danych dla firm. DAGMA Sp. z o.o., www.dagma.com.pl I dealne rozwiązanie backupowe powinno pozwalać na krótki czas wykonywania backupu i osiągać jak najwyższy współczynnik kompresji danych, by użytkownik mógł zaoszczędzić na drogiej infrastrukturze dyskowej. Takie rezultaty daje technologia progresywnej deduplikacji. Co to jest deduplikacja danych i jakie daje ona korzyści Deduplikacja danych jest rodzajem „globalnej kompresji” wyszukującej podobieństwa w backupowanych zbiorach. Z uwagi na fakt, iż dana zawartość występująca w zbiorze musi 47 by HAKIN9 Powinieneś wiedzieć t Na czym polega eliminacja identycznych duplikatów (Single-Instance Storage) t Deduplikacja blokiem o stałej wielkości (fixed-block deduplication) t Deduplikacja blokiem o zmiennej wielkości (variable-block deduplication) być zapisana tylko raz, może ona zostać drastycznie skompresowana, co znacząco zmniejsza zapotrzebowanie na pojemność dyskową. Należy zwrócić uwagę, iż „globalna kompresja” jest procesem odmiennym od „lokalnej kompresji”, polegającej na zmniejszaniu rozmiaru pliku, której przykładowym efektem jest plik o rozszerzeniu JPEG. Istnieją dwa podstawowe powody, dla których deduplikacja znajduje zastosowanie w backupie. Po pierwsze, na wielu komputerach w sieci firmowej często znajdują się takie same bądź podobne dane: dokumenty, pliki systemowe, czy bazy danych. Po drugie, każdy kolejny backup danej maszy- 10/2011 (8) PRAKTYKA ny zawiera dane, które tylko częściowo różnią się od tych uprzednio zbackupowanych. Schemat działania obydwóch rodzajów kompresji jest podobny. Rozpoznają one powtarzalne sekwencje bajtów (zwane tez blokami) w plikach. Zamiast zapisywania powtarzalnych sekwencji wielokrotnie, druga i każda kolejna identyczna sekwencja jest zapisywana tylko w formie referencji do sekwencji uprzednio zapisanej. Deduplikacja danych jest możliwa odkąd w latach osiemdziesiątych ubiegłego wieku wynaleziono hash. Ten ostatni jest rodzajem odcisku palca dla pliku, bądź – jak w przypadku kompresji – sekwencji bajtów wewnątrz pliku. Jeśli dwa „odciski” są identyczne, odpowiadające im sekwencje są również traktowane jako jednakowe z prawdopodobieństwem zapewniającym bezpieczny margines błędu. Przewaga kompresji globalnej nad lokalną wynika przede wszystkim z nieporównywalnie większego zakresu operacji. Im większy zasięg działania deduplikacji, tym lepszy ogólny współczynnik kompresji. Deduplikacja zawartości jednego serwera nigdy nie osiągnie współczynnika kompresji osiąganego przez deduplikację kilku serwerów. Innymi słowy, podobieństwo danych pośród wielu stacji roboczych czy serwerów powoduje wzrost współczynnika kompresji wraz ze wzrostem ilości danych z różnych lokalizacji, na których odbywa się deduplikacja. Tradycyjne metody deduplikacji danych Deduplikacja danych jest używana by zmniejszyć ilość danych – zarówno do przechowywania, jak i do przesyłu przez sieć – od lat dziewięćdziesiątych ubiegłego wieku. Fenomen deduplikacji polega na dwóch czynnikach. Po pierwsze, deduplikacja wykorzystuje algorytmy hash’owe zamiast tradycyjnego porównywania danych bajt-po-bajcie. Zapewnia to szybkość całemu procesowi, bez rezygnowania z niezawodności. Po drugie, globalna kompresja rozbija dane na małe kawałki (bloki), co usprawnia proces ich porównywania. To właśnie metody rozbijania danych na porównywalne cząstki sprawiły, iż spotykane są cztery metody deduplikacji. Eliminacja identycznych duplikatów (Single-Instance Storage) Historia deduplikacji rozpoczęła się od eliminacji plików będących identycznymi kopiami pliku uprzednio zapisanego. Była to pierwsza metoda globalnej kompresji oparta na algorytmie hashowym – jeśli hashe dwóch plików są takie same, pliki są traktowane jako identyczne, nawet jeśli mają inne nazwy, czy daty modyfikacji. Metoda ta była szczególnie przydatna w przypadku eliminacji duplikatów w postaci załączników rozsyłanych pocztą elektroniczną lub plików systemowych rezydujących na komputerach spiętych 48 by HAKIN9 w sieć. Dużą wadą tego rozwiązania jest fakt, iż jeśli plik zostanie w jakikolwiek sposób zmodyfikowany (wystarczy zmiana pojedynczego bajtu), musi on zostać w całości zapisany na nowo. Deduplikacja blokiem o stałej wielkości (fixedblock deduplication) Deduplikacja fixed-block dzieli pliki na bloki (czyli omawiane wyżej sekwencje bajtów) o stałej wielkości (typowo między 4kB a 64kB). Nie porównuje ona hash’ów całych plików, jak w przypadku Single-Instance Storage, lecz tworzy hash dla każdego bloku z osobna. Daje to wymierne korzyści, gdy duże pliki rosną przez dodawanie do nich nowych danych, lub kiedy długie sekwencje bajtów są modyfikowane między zadaniami backupowymi. Przykładem danych, które rosną w sposób umożliwiający deduplikację fixed-block są pliki poczty elektronicznej (np. MS Outlook .PST) oraz niektóre rodzaje baz danych. Minusem tego rodzaju deduplikacji jest niemożność rozpoznania kopii sekwencji bajtów, gdy dane zostają zmodyfikowane w miejscu innym niż na końcu – jedynie dopisanie nowych rekordów danych w miejscu, gdzie uprzednio zapisany plik się kończy umożliwia efektywne działanie deduplikacji fixed-block. Deduplikacja blokiem o zmiennej wielkości (variable-block deduplication) Deduplikacja variable-block ustala „w locie” wielkość bloku porównującego. Dzięki temu ten rodzaj deduplikacji jest w stanie rozpoznać zmiany nie tylko dodane na końcu pliku, ale też te dokonane na jego początku, bądź w środku. Przykładowo, jeśli dane są modyfikowane wewnątrz pliku (pomiędzy poszczególnymi blokami), wielkość bloku zmienia się wraz ze zmianą zawartości, co umożliwia zapis jedynie nowo dodanych danych i referencję do następujących po nich danych uprzednio zapisanych. Mimo większej efektywności pod względem osiąganego współczynnika kompresji, deduplikacja variable-block wymaga znacznie bardziej żmudnego przetwarzania danych niż fixed-block. Jest to o tyle problematyczne, iż w przypadku tego rodzaju globalnej kompresji nie ma możliwości prostej kontroli nad wielkością bloku. Co prawda średnie wielkości bloków mogą zostać predefiniowane, ale nie zmienia to faktu, iż pozostałe bloki mogą mieć rozmiar od pojedynczego bajtu aż do wielkości całego pliku. W rezultacie proces eliminacji duplikatów jest wolny. Ogólną efektywność deduplikacji blokiem o zmiennej wielkości pogarszają także przypadki skrajnych wielkości bloków. Referencje bloków zbyt małych nie zajmują wymiernie mniej miejsca od duplikatów tych sekwencji. Z kolei rozmiar bloków zbyt dużych ogranicza użyteczność deduplikacji do poziomu eliminacji identycznych duplikatów (Single-Instance Storage). 10/2011 (8) PRAKTYKA Deduplikacja progresywna Wprowadzana na polski rynek backupu technologia progresywnej deduplikacji czerpie możliwości z deduplikacji fixed-block i variable-block. Szybkością dorównuje tej pierwszej, wykorzystując bloki o stałej wielkości jeżeli tylko jest to możliwe. Te ostatnie pozwalają też na bardzo praktyczne rozpoznawanie typu pliku, z jakim deduplikacja ma do czynienia (np. plik .ppt), co pozwala na jeszcze większe oszczędności czasowe. Możliwościami deduplikacja progresywna dorównuje tej o zmiennej wielkości bloku, rozpoznając wszelkie zmiany dokonane w dowolnym miejscu pliku, co wyraźnie zwiększa współczynnik kompresji. Niemniej jednak, w ostatecznym rozrachunku deduplikacja progresywna przewyższa tą variable-block dzięki rozpoznawaniu typu pliku z jakim ma do czynienia, oraz przetwarzaniu uprzednio zapisanych części danych z prędkością osiąganą przez deduplikację fixed-block. Progresywna deduplikacja różni się od innych rodzajów sposobem dostosowywania wielkości bloków skanujących plik w poszukiwaniu duplikatów. Na początku, progresywna deduplikacja dzieli plik na bloki identycznych rozmiarów, tak jak w przypadku typu fixed-block. Jednak pozwala ona blokom na nachodzenie na siebie, dzięki czemu granica bloku może wystąpić w dowolnym miejscu. Ma to znaczenie w przypadku zmian dokonanych wewnątrz pliku. Modyfikacje tego typu powodują, iż uprzednio zapisane, znane już Single-Instance Storage Deduplikacja Fixed-block Deduplikacja Variable-block Deduplikacja progresywna Szybkość Rewelacyjna Bardzo dobra Zadowalająca Bardzo dobra Współczynnik kompresji Niski Zadowalający Dobry Bardzo dobry Zastosowanie progresywnej deduplikacji Nie ulega wątpliwości, iż każdy rodzaj deduplikacji backupowanych danych jest opłacalny w porównaniu z backupem tradycyjnym. Niemniej jednak, dla uzyskania prawdziwie wymiernych korzyści z zastosowania technologii deduplikacji warto zastanowić się wyborem deduplikacji progresywnej. Zapewni ona nie tylko znacznie szybszy backup, ale i jednocześnie zdecydowanie lepszy współczynnik kompresji, co znajdzie odzwierciedlenie w niższych kosztach związanych z przechowywaniem backupu. Efektywnie, progresywna deduplikacja łączy zalety innych rozwiązań tego typu, eliminując ich wady. 49 bloki ulegają przesunięciu w dół sekwencji pliku, wskutek czego nie byłyby rozpoznane przez tradycyjne typy deduplikacji. Są natomiast rozpoznawane przez deduplikację progresywną. Ponadto, progresywna deduplikacja ustala optymalną wielkość bloku dla konkretnego typu pliku. W zależności od deduplikowanego pliku, rozmiar bloku to 1k, 2k, 4k, 8k, 16k, lub 32k bajty. Dzięki tej funkcji osiągalne są lepsze współczynniki kompresji. Progresywna deduplikacja wykorzystuje przesuwające się okienko skanujące plik w poszukiwaniu zduplikowanych bloków. Jest to metoda na tyle efektywna, że wykrywa duplikaty w każdym bajcie pliku. Wnikliwy czytelnik zauważy zapewne, iż taka efektywność wymaga sporej mocy obliczeniowej. Zapewne byłaby to prawda gdyby nie fakt, że branża IT dysponuje dwoma rodzajami algorytmu hashowego. Hash lekki jest krótki i dzięki temu umożliwia szybkie porównywanie. Hash ciężki jest długi, za to bardzo dokładny. Progresywna deduplikacja w sprytny sposób wykorzystuje oba rodzaje tego swoistego „odcisku palca”. Szybki i lekki algorytm hashowy rozpoznaje możliwe duplikaty. Te ostatnie są wnikliwie badane dokładnym algorytmem hashowym. Z uwagi na fakt, iż ponad 99 procent możliwych duplikatów okazuje się być dokładnymi kopiami, progresywne skanowanie jest niewiarygodnie efektywne przy rozsądnym obciążeniu zasobów systemowych. by HAKIN9 Terminologia Deduplikacja Proces eliminacji duplikatów uprzednio zapisanych danych Hash Krótka, losowa wartość przyporządkowana danemu ciągu znaków, rodzaj “odcisku palca” Blok w deduplikacji Fragment deduplikowanego pliku służący porównaniu celem eliminacji duplikatów 10/2011 (8)