wtorek, 22 marca 2011

Deduplikacja - kopie idą precz! (Część 6 - NetApp)

Kolejny z graczy na rynku storage i kolejne ciekawe rozwiązania.

Jeżeli chodzi o NetApp-a to można powiedzieć, że deduplikacja jest w tym przypadku nie dodatkową funkcjonalnością dołączona na którymś etapie, ale funkcją natywnie wbudowaną i zintegrowaną z samym systemem operacyjnym (ONTAP od wersji 7.2.2) i systemem plików (WAFL). Dlatego też NetApp nie ma dedykowanych urządzeń czy oprogramowania umożliwjającego deduplikację ale opcja ta jest dostępna we wszyskich jego produktach z głównych linii (macierze FAS3xxx i FAS6xxx oraz seria V). Sama deduplikacja (nazywana często A-SIS) mimo iż wbudowana w system jest opcją płatną i aby ją uruchomić trzeba wykupić odpowiednią licencję.


Budowa macierzy Netapp i sposób deduplikowania:

Patrząc na macierze NetApp z perspektywy deduplikacji oraz tego w jaki sposób obsługiwane są polecenia wejścia/wyjścia można wyróżnić w nich trzy poziomy:

Na samej górze znajduje się system operacyjny Data ONTAP. On obsługuje żądania zapisu/odczytu oraz zapewnia dodatkowe funkcjonalności takie jak np: migawki (snapshot), mechanizmy replikacji oraz oczywiście deduplikację.
Pod systemem operacyjnym znajduje sie system plików (lub pseudo-system plików) nazwany WAFL - Write Anywhere File System. WAFL dzieli przychodzące do niego dane na 4kb bloki i zapisuje na dyskach. Te zapisane bloki z danymi możemy uznać za trzeci i ostatni poziom.
Kolejną cechą WAFLa jest fakt, iż z każdego bloku liczy on tzw: skrót - czyli pewną unikalną sumę kontrolną . Mechanizm ten został zaimplementowany aby wykryć potencjalną korupcję danych zapisanych na dysku. Jeżeli odczytane dane wygenerują inny skrót, niż ten który powstał przy ich zapisie, oznacza to, że zostały one uszkodzone. Ten istniejący już mechanizm generowania i przechowywania skrótów z każdego 4kb bloku danych, został w bardzo prosty sposób wykorzystany do zaimplementowania deduplikacji. Jedyny element jaki trzeba było dodać, to sprawdzanie tablicy skrótów i usuwanie z niej duplikatów.
Sprawdzanie i redukcja powielonych bloków danych nie odbywa się w czasie rzeczywistym ale jest ustawiana cyklicznie (np: raz na dobę w nocy) lub inicjowana ręcznie, czyli NetApp wykorzystuje deduplikację  w trybie "post-process". Do czasu uruchomienia procesu, dane na dyskach są przechowywane w stanie oryginalnym. Wykorzystanie tego sposobu razem z długim czasem przechowywania danych bez deduplikacji, wynika z jednego prostego powodu: NetApp nie jest macierzą dedykowaną pod przechowywanie backupów (choć oczywiście można ją tak wykorzystać), dane jakie na nie spływają to nie są nieaktywne archiwa,.NetApp jest zwykle używany jako normalna macierz do przechowywania danych produkcyjnych i używanych do codziennej pracy aplikacji (tzw: primary storage). Deduplikowane są dane z których użytkownicy cały czas korzystają. Połączenie deduplikacji z thin provisioningiem sprawia, że uzyskujemy bardzo duże oszczędności na zajętości przestrzeni podstawowej/produkcyjnej. Oczywiście nie ma róży bez kolców, włączenie deduplikacji powoduje spadek (o kilka procent) wydajności, no i wymusza przeprowadzanie usuwania duplikatów jedynie w czasie gdy macierz jest mało obciążona (np: raz dziennie w nocy). Coś za coś.





W sumie tyle podstawowych informacji o deduplikacji w macierzach NetApp.
Kolejny wpis dalej będzie dotyczył rozwiązań stosowanych u poszczególnych producentów, ale całkiem możliwe że pogrupuję ich już po kilku w jednym. Zbyt dużo ich zostało, żeby każdemu poświęcać osobny wpis, a w sumie różnice między nimi to jakiś bardzo wielkich nie należą (przynajmniej jeżeli chodzi o deduplikację)

1 komentarz:

  1. Witam,

    Pozwole sobie zamiescic 2 uwagi nt. deduplikacji (A-SIS) w NetAppach.

    1. Zarowno licencje NearStore jak i A-SIS sa obecnie darmowe, ale wymagaja uzyskania kodu od NetAppa. Zakladam, ze wymagane jest posiadanie aktualnego supportu dla filera zeby je uzyskac.

    2. Wlaczenie deduplikacji nie powoduje spadku wydajnosci (poza okresem, kiedy trwa deduplikacja), a wrecz moze zwiekszyc wydajnosc. Wynika to z faktu ze read cache moze pomiescic wiecej blokow po deduplikacji.

    pozdrawiam,
    jacek@skaznik.com

    OdpowiedzUsuń