Kiedy kontynuujemy rozważania nad technologiami przyspieszania operacji wejścia/wyjścia stosowanymi w macierzy dyskowej, zaczynając od , należy zatrzymać się nad jedną z bardzo popularnych opcji, jaką jest tiering (Auto Tiering). Chociaż ideologia działania tej funkcji jest dość podobna u różnych producentów systemów magazynowania, przyjrzymy się szczegółom realizacji tieringu na przykładzie .

Pomimo różnorodności danych przechowywanych w macierzy dyskowej, można je podzielić na kilka grup w zależności od ich użyteczności (częstotliwości użycia). Do najbardziej popularnych („gorących”) danych ekstremalnie ważne jest zorganizowanie maksymalnie szybkiego dostępu, podczas gdy przetwarzanie mniej pożądanych („zimnych”) danych może być realizowane z mniejszym priorytetem.
Funkcjonalność tieringu jest stosowana do organizacji takiego schematu. W takim przypadku zbiór danych nie składa się z jednorodnych dysków, lecz z kilku grup nośników tworzących różne poziomy (tier) przechowywania. Dzięki specjalnemu algorytmowi dane są automatycznie przenoszone między poziomami w celu zapewnienia maksymalnej wydajności końcowej.

Macierz dyskowa obsługują do trzech poziomów przechowywania:
- Poziom 1: SSD, maksymalna wydajność
- Poziom 2: HDD SAS 10K/15K, wysoka wydajność
- Poziom 3: HDD NL-SAS 7.2K, maksymalna pojemność
Pula Auto Tiering może zawierać zarówno wszystkie trzy poziomy, jak i tylko dwa w dowolnych kombinacjach. W obrębie każdego poziomu nośniki są łączone w tradycyjne grupy RAID. Dla maksymalnej elastyczności poziom RAID w każdym poziomie może być różny. Tzn. na przykład nie ma przeszkód w zorganizowaniu struktury typu 4x SSD RAID10 + 6x HDD 10K RAID5 + 12 HDD 7.2K RAID6
Po utworzeniu wolumenów (wirtualnych dysków) na puli rozpoczyna się działanie tła zbierającego statystyki o wszystkich operacjach wejścia/wyjścia. W tym celu przestrzeń jest dzielona na bloki o rozmiarze 1 GB (tzw. sub LUN). Przy każdym dostępie do takiego bloku przypisywany jest mu współczynnik 1. Z biegiem czasu współczynnik ten maleje. Po 24 godzinach, przy braku żądań wejścia/wyjścia do tego bloku, będzie wynosił już 0.5 i będzie nadal spadał po każdej kolejnej godzinie.
W określonym czasie (domyślnie codziennie o północy) następuje ranking zgromadzonych wyników według aktywności sub LUN na podstawie ich współczynników. Na tej podstawie podejmowane są decyzje, które bloki przenieść i w jakim kierunku. Następnie odbywa się relokacja danych między poziomami.

W macierzach Qsan doskonale zaimplementowano zarządzanie procesem tieringu za pomocą wielu parametrów, co pozwala na bardzo elastyczne dostosowanie końcowej wydajności macierzy.
Aby określić początkowe położenie danych i priorytetowy kierunek ich przenoszenia, stosowane są polityki, które są ustalane oddzielnie dla każdego woluminu:
- Auto Tiering – polityka domyślna, początkowe rozmieszczenie i kierunek przeniesień są ustalane automatycznie, tj. „gorące” dane dążą do najwyższego poziomu, a „zimne” dane schodzą w dół. Początkowe rozmieszczenie wybierane jest na podstawie dostępnej przestrzeni na każdym z poziomów. Należy jednak pamiętać, że system przede wszystkim stara się maksymalnie wykorzystać najszybsze nośniki. Dlatego w przypadku posiadania wolnej przestrzeni dane będą umieszczane na wyższych poziomach. Ta polityka nadaje się do większości scenariuszy, gdy nie można z góry przewidzieć zapotrzebowania na dane.
- Rozpocznij od wysokiego poziomu, a następnie Auto Tiering – różni się od poprzedniego jedynie początkowym rozmieszczeniem danych (na najszybszym poziomie)
- Maksymalnie wysoki poziom – dane zawsze dążą do zajęcia najszybszego poziomu. Jeśli w trakcie pracy są przesuwane w dół, to przy pierwszej możliwości powracają z powrotem. Ta polityka nadaje się dla danych, do których potrzebny jest maksymalnie szybki dostęp.
- Minimalny poziom – dane zawsze dążą do zajęcia najniższego poziomu. Ta polityka doskonale nadaje się dla rzadko używanych danych (np. archiwa).
- Bez przeniesienia – system automatycznie określa początkowe położenie danych i nie dokonuje ich przeniesienia. Jednak statystyki są nadal zbierane na wypadek, gdyby później zaszła potrzeba ich relokacji.
Warto zauważyć, że mimo że polityki ustalane są przy tworzeniu każdego woluminu, można je wielokrotnie zmieniać „w locie” w trakcie życia systemu.
Oprócz polityk dla mechanizmu tieringu ustawia się również częstotliwość i tempo transferu danych między poziomami. Można określić konkretny czas transferu: codziennie lub w określone dni tygodnia, a także skrócić interwał zbierania statystyk do kilku godzin (minimalna częstotliwość to 2 godziny). Jeśli istnieje potrzeba ograniczenia czasu realizacji operacji transferu danych, można określić ramy czasowe (okno na transfer). Oprócz tego określa się prędkość relokacji – 3 tryby: szybki, średni, wolny.

W przypadku potrzeby natychmiastowej relokacji danych istnieje możliwość wykonania jej w trybie ręcznym w dowolnym momencie na polecenie administratora.
Jasne jest, że im częściej i szybciej będzie odbywał się transfer danych między poziomami, tym elastyczniej macierz będzie dostosowywać się do obecnych warunków eksploatacyjnych. Należy jednak pamiętać, że transfer to dodatkowe obciążenie (przede wszystkim dla dysków), dlatego nie ma sensu „pędzić” danych bez wyraźnej potrzeby. Lepiej zaplanować transfer na momenty minimalnego obciążenia. Jeśli jednak praca macierzy wymaga cały czas wysokiej wydajności w trybie 24/7, warto zmniejszyć tempo relokacji do minimum.
Obfitość ustawień tieringu z pewnością ucieszy zaawansowanych użytkowników. Jednak dla tych, którzy stykają się z taką technologią po raz pierwszy, nie ma co się obawiać. Można spokojnie zaufać ustawieniom domyślnym (polityka Auto Tiering, transfer z maksymalną prędkością raz dziennie nocą) i w miarę zbierania statystyk dostosowywać poszczególne parametry do osiągnięcia pożądanych rezultatów.
Porównując tiering z tak równie popularną technologią zwiększania wydajności, jak , należy pamiętać o różnych zasadach działania ich algorytmów.
SSD caching
Auto Tiering
Szybkość wystąpienia efektu
Prawie natychmiast. Jednak zauważalny efekt dopiero po „wstępnej fazie” cache'a (minuty-godziny)
Po zbieraniu statystyk (od 2 godzin, w idealnym przypadku – 24 godziny) plus czas na transfer danych
Czas trwania efektu
Dopóki dane nie zostaną wypchnięte nową porcją (minuty-godziny)
Dopóki zapotrzebowanie na dane jest aktualne (24 godziny lub dłużej)
Wskazania do zastosowania
Natychmiastowe zwiększenie wydajności przez krótki czas (bazy danych, środowiska wirtualizacji)
Zwiększenie wydajności przez dłuższy okres (serwery plikowe, webowe, pocztowe)
Jedną z cech tiering jest możliwość jego wykorzystania nie tylko w scenariuszach typu „SSD + HDD”, ale także „szybkie HDD + wolne HDD” lub wręcz wszystkie trzy poziomy, co w przypadku zastosowania pamięci podręcznej SSD jest zasadniczo niemożliwe.
Testowanie
Aby sprawdzić działanie algorytmów tiering, przeprowadziliśmy najprostszy test. Stworzono pulę z dwóch poziomów SSD (RAID 1) + HDD 7.2K (RAID1), na której umieszczono wolumin z polityką „minimalnego poziomu”. Tzn. dane zawsze powinny znajdować się na wolnych dyskach.


Interfejs zarządzania wyraźnie pokazuje rozmieszczenie danych między poziomami
Po wypełnieniu woluminu danymi, zmieniliśmy politykę rozmieszczania na Auto Tiering i uruchomiliśmy test IOmeter.

Po kilku godzinach testu, kiedy system zebrał statystyki, rozpoczął się proces relokacji.

Po zakończeniu przenoszenia danych, nasz testowy wolumin w całości „przeskoczył” na wyższy poziom (SSD).


Werdykt
Auto Tiering to wspaniała technologia, która pozwala na zwiększenie wydajności systemu magazynowania przy minimalnych nakładach finansowych i czasowych dzięki intensywniejszemu wykorzystaniu szybkich nośników. W odniesieniu do jedynym wydatkiem jest licencja, która jest nabywana raz na zawsze bez ograniczeń co do pojemności/liczby dysków/półek itp. Funkcjonalność ta jest wyposażona w tak bogate ustawienia, że może spełnić praktycznie wszelkie potrzeby biznesowe. A wizualizacja procesów w interfejsie umożliwia efektywne zarządzanie urządzeniem.
Źródło: habr.com
