Automatyczny tiering, czyli jak trafić na odpowiedni poziom

0

Zrób więcej, mniej inwestuj, to sentencja, która znakomicie oddaje oczekiwania prezesów firm względem działów IT. Czy w przypadku pamięci masowych istnieją rozwiązania mogące spełnić żądania biznesu? Jedną z takich technologii jest automatyczny tiering.

Użytkownik końcowy najszybciej dostrzega dwa współczynniki charakteryzujące pracę systemu – wydajność i stabilność. Aplikacja szybko wykonująca zadania zawsze będzie lepsza od tej, która co chwilę pokazuje klepsydrę. Podobnie jest ze stabilnością, jeśli oprogramowanie jest niedostępne przez większość czasu z powodu awarii, zostanie szybko odrzucone przez użytkownika. W przypadku systemów pamięci masowych zapewnienie stabilności wiąże się z odpowiednią konfiguracją macierzy, na której znajdują się dane, oraz z usuwaniem preparowanych lub uszkodzonych pakietów danych zarówno w samej macierzy, jak i jej otoczeniu. Jednak automatyczny tiering ma niewiele wspólnego ze stabilnością, natomiast poprawia wydajność systemu. Wydajność możemy mierzyć w ilości I/O na sekundę, operacji odczytu/zapisu danych, które macierz przyjąć w ciągu jednej sekundy. Aplikacje bądź bazy zgłaszają zapytania dotyczące danych lub wysyłają pliki do składowania na dyskach. Ważne, aby ilość danych nie przekroczyła możliwości macierzy. Wydajność można poprawiać na dwa sposoby. Pierwszy polega na dopasowaniu odpowiedniej grupy RAID. Dla przykładu RAID 1+0 jest szybszy niż RAID5, również rozrzucenie danych po wielu dyskach może przyśpieszyć pracę macierzy. Niestety wraz ze wzrostem wydajności zmniejsza się pojemności. Przy RAID 1+0 utrata pojemności wynosi 50 procent, a w przypadku poziomu RAID 5 (2+1) jest to 33 procent.

Druga kwestia to umieszczenie danych na szybkich dyskach. Obecnie najtańsze, a zarazem najbardziej pojemne są dyski SATA, klasa wyższa to dyski Fibre Channel o prędkościach obrotowych 10.000 i 15.000 RPM. Na samym szczycie znajdują się dyski SSD – bardzo szybkie i niestety drogie, średnio cena 1GB jest 7 – 8 razy wyższa niż dla dysku FC. Tradycyjne podejście polega na ocenie zapotrzebowania aplikacji na I/O, a następnie przygotowanie dla niej miejsca na dyskach o odpowiedniej prędkości i w odpowiednio dobranej grupie RAID. Takie działanie, jeżeli jest podparte solidną wcześniejszą analizą, może być zadowalające, ale niekoniecznie optymalne.

Czym jest automatyczny tiering

Idea automatycznego tieringu jest dość prosta. Macierz sprawdza, które dane są najczęściej używane i automatycznie przenosi je na odpowiednio szybkie dyski. Z kolei nieużywane fragmenty przenoszone są na nośnik wolniejszy. Dzięki temu możliwe jest bardziej optymalne rozmieszczenie aplikacji i poprawienie ogólnej wydajności. Administrator zwykle ogranicza się do samego zdefiniowania warstw i ich procentowego udziału, cała reszta spoczywa na barkach samej macierzy i jej oprogramowania. Warstwy różnią się nie tylko typem dysków na jakich są zdefiniowane (SSD, FC, SATA), administrator może je różnicować, wybierając typy RAID (np: Tier1 – RAID10 , Tier2 – RAID5).

Wyróżnia się dwie metody używania automatycznego tieringu. Pierwsza z nich to traktowanie go jako pamięci cache. Systemy macierzowe mają swój własny bardzo szybki cache, ale wykorzystanie górnego poziomu jako dodatkowej puli cache pozwoli na znaczne jej powiększenie. W metodzie tej dane są kopiowane na najwyższą warstwę. Dodatkowo warstwa ta służy wyłącznie do odczytu, wszystkie zapisy omijają dodatkowo stworzony cache i trafiają od razu na dyski wolniejsze, robi się tak, aby w wypadku uszkodzenia dysku najwyższej warstwy nie utracić danych. Trzeba jednak pamiętać, że ta metoda ma słabe strony. Pewne partie danych są zduplikowane na dwóch warstwach, czyli zajmują dwa razy więcej miejsca. Innym mankamentem jest zachowanie przy systemach z dużą ilością zapisów, wędrują one do warstw niższych, w rezultacie następuje utrata całego zysku wydajnościowego.

Drugą metodą jest traktowanie wyższych warstw jako normalnej przestrzeni użytkowej. Dane często używane, zostają przez system umieszczone na wyższych warstwach i rezydują tam, dopóki macierz stwierdzi, że aktywność z nimi związana zmalała lub też pojawią się inne LUNy, wykorzystywane jeszcze częściej. Rozwiązanie takie niweluje obydwie wady występujące w przypadku pierwszej metody. Dane na danym poziomie mogą przebywać kilka tygodni zanim zostaną przesunięte na inne miejsce. Natomiast przy zastosowaniu alternatywnej metody czas ten czas można liczyć w minutach bądź godzinach.

Kolejnym czynnikiem, który pozwala podzielić automatyczny tiering na różne podkategorie jest poziom na jakim zachodzi. Przyjmując to kryterium można wyróżnić trzy warianty: na poziomie pojedynczego LUNa, pliku bądź bloku danych. Najbardziej optymalna, ale też najtrudniejsza do wdrożenia jest metoda optymalizowania na poziomie bloku danych. Przenoszenie na poziomie LUNa musi opierać się na danych uśrednionych. Nie zawsze są one jednak reprezentatywne. Pewne jego części, nawet stanowiące większość, mogą być mało aktywne, a średnia jest zawyżana przez małe bloki danych używane bardzo często. W wyniku takiego zachowania cały LUN, wraz z masą nieużywanych danych ląduje na najwyższych warstwach. Podobnie sytuacja wygląda przy tieringu na poziomie plików – ciężko w ten sposób oszacować aktywność poszczególnych części przy bazach danych.

Automatyczny tiering to bardzo dobre i przyszłościowe rozwiązanie. Nie brakuje jednak wątpliwości, m.in. w jaki sposób proces wpływa na replikację bądź odzysk danych z taśm. Na razie automatyczny tiering znajduje się w fazie wczesnego rozwoju i na niektóre pytania nie ma jeszcze prostej i skutecznej odpowiedzi.

Wojciech Ogórek
Autor jest specjalistą IT w wydziale zarządzania pamięciami masowymi, ING Bank Śląski.

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ