with Brak komentarzy

Macierze mid-range vs. macierze high-end. Które lepsze?

Przede wszystkim muszę się przed Tobą wytłumaczyć, skąd taka długa przerwa w pisaniu. Powód jest w zasadzie jeden. Brak czasu.

A ten z kolei był wynikiem:

  • natłoku projektów w firmie, w której pracuję na co dzień oraz
  • przygotowań do otwarcia kolejnego sezonu u siebie w Adventure Golf Park w Łebie.

 

Park jest już otwarty, a projekty „ogarnięte”. Dlatego mogę wrócić, mam nadzieję do regularnego pisania. A plany są obiecujące: sztuczna inteligencja, NVMe, disaster avoidance. To tylko niektóre zagadnienia, o których napiszę w najbliższym czasie.

Na pierwszy ogień, po tej dłuższej przerwie, chcę jednak wziąć temat, który „męczył mnie” już od jakiegoś czasu. Postanowiłem przeprowadzić krótką analizę trendu, który zaobserwowałem w pracy z niektórymi przedsiębiorstwami. Firmy te jeszcze całkiem niedawno kupowały macierze klasy high-end. Dzisiaj natomiast decydują się na zakupy większej ilości, ale za to mniejszych macierzy klasy mid-range.

 

Czy jednak rzeczywiście można mówić o trendzie?

A jeżeli tak, to czy zapowiada on zmierzch macierzy klasy high-end?

Próbkę firm na podstawie, której wyciągnąłem opisane tutaj wnioski trudno nazwać reprezentatywną. A celem przedstawionych poniżej argumentów jest (mam nadzieję) „rozpętanie” dyskusji, a nie jednoznaczne stwierdzenie, które podejście jest lepsze. Takie stwierdzenie jest bowiem niemożliwe. Dlaczego? Ponieważ prowadzenie tego typu dyskusji bez osadzenia jej w określonym kontekście jest moim zdaniem zagadnieniem czysto akademickim. Na pytanie, które podejście jest lepsze prawdziwy, rasowy konsultant odpowie: „to zależy”. I podobnie jest tutaj.

 

Przyjrzyjmy się zatem tematowi z obydwu perspektyw.

 

Przestałem(am) kupować macierze klasy high-end, ponieważ…

…są drogie.

Albo inaczej. Często mogę kupić je relatywnie „tanio”, ale potem ich rozbudowa i utrzymanie przestają być aż tak atrakcyjne cenowo, jak pierwotny zakup. Nie zamierzam brnąć w tematy TCO, ROI, ROA, kosztów operacyjnych (OPEX) vs. nakładów inwestycyjnych (CAPEX). Fakt, że macierze klasy high-end są droższe od macierzy klasy mid-range pozostaje faktem. Trudno jest kupić nowego Mercedesa klasy S w cenie auta klasy C. I tutaj sytuacja wygląda bardzo podobnie.

 

…macierze klasy mid-range gwarantują wystarczająco wysoką wydajność.

To prawda. Obecnie oferowane macierze mid-range są w stanie zaspokoić wymagania związane z dostarczaniem wysokiej wydajności (IOPS) i przepustowości (MB/s) oraz niskich czasów odpowiedzi (ms) na wystarczającym dla wielu poziomie. Wymagania jakie ma wiele organizacji w tym zakresie są dodatkowo często sztucznie nadmuchiwane i po uruchomieniu macierzy okazuje się, że procesory w kontrolerach, porty zewnętrzne i dyski twarde obciążone są w bardzo niewielkim stopniu w stosunku do swoim możliwości. Tym bardziej wdrażanie macierzy klasy high-end w takich przypadkach jest niepotrzebnym wydawaniem pieniędzy. Pamiętaj jednak, aby przy wyborze macierzy jej wydajność wymiarować w taki sposób, aby zaspokoiła ona Twoje wymagania również w scenariuszu awarii któregoś z jej komponentów. Sprawdź co się stanie z wydajnością, gdy uszkodzeniu ulegnie jeden z kontrolerów.

 

…macierze klasy mid-range oferują w większości przypadków te same funkcjonalności co macierze klasy high-end.

To znowu jest prawda i trudno z tym dyskutować. Niektórzy producenci posiadają w swoim portfelu urządzenia mid-range i high-end, które działają w oparciu o ten sam system operacyjny (firmware, mikrokod). To oznacza, że niezależnie od modelu macierzy otrzymam ten sam zestaw narzędzi, programów i funkcjonalności. A w takim przypadku mojego wyboru mogę dokonać już tylko na podstawie skalowalności danego urządzenia pod kątem jego wydajności oraz pojemności. I jeżeli mieszczę się tutaj z moimi wymaganiami w zakresie możliwości macierzy mid-range, to po co miałbym przepłacać i kupować macierz high-end.

 

…macierze klasy mid-range pozwalają na budowę bezpiecznych środowisk disaster recovey oraz disaster avoidance.

Tak. I związane jest to również z tym, o czym pisałem w poprzednim punkcie. Dodatkowo, skoro mam ten sam system operacyjny, to często mogę replikować dane pomiędzy różnymi modelami macierzy (w tym również pomiędzy macierzami mid-range i high-end).

 

…macierze klasy mid-range są bardziej „kompaktowe”, zajmują mniej miejsca w serwerowni, pobierają mniej prądu i nie posiadają takich wymagań związanych z chłodzeniem, jak macierze high-end.

Zgadza się. Chociaż pamiętaj, że aktualnie w dobie trendu bycia „green”, parametry środowiskowe macierzy klasy high-end są również bardzo atrakcyjne.

 

…dyski flash są coraz tańsze, a to powoduje, że i tak coraz częściej decyduję się na macierz AFA (All Flash) klasy mid-range.

Pamiętaj jednak, że taką macierz również należy zwymiarować pod kątem Twoich oczekiwań względem wydajności oraz możliwości kontrolerów, które tę wydajność powinny dostarczyć. To one często są pierwszym wąskim gardłem. Co z tego, że mam bardzo szybki worek dysków SSD, który jest w stanie konsumować miliony operacji na sekundę, skoro (1) moje środowisko nigdy nie wygeneruje takiego obciążenia oraz (2) wydajność macierzy ograniczona zostanie wydajnością jej kontrolerów. Patrz punkt drugi na powyższej liście i przeanalizuj swoje życzenia (jak chciałbyś widzieć, aby Twoje środowisko „performowało”) vs. rzeczywistość (jak to środowisko „performuje” na co dzień).

 

Skoro nie ma różnic, to dlaczego macierze klasy high-end są nadal dostępne na rynku. Ano właśnie. Czy aby na pewno nie ma różnic?

 

Nadal kupuję macierze klasy high-end, ponieważ…

…nie mam innego wyboru.

Używam środowisk Mainframe, gdzie tylko takie macierze mogą być wykorzystywane. To jest jednak przypadek dość mocno ograniczonej liczby przedsiębiorstw. Skupmy się zatem na wszystkich pozostałych.

 

…chcę konsolidować wiele różnych środowisk w jednym urządzeniu i zależy mi na tym, aby jakość ich obsługi (QoS) została zagwarantowana na poziomie sprzętowym (po mojemu – „w krzemie”).

Dedykowane fizyczne układy ASIC (a nie ich emulacje uruchamiane w procesorach klasy x86) zajmują się swoimi wyspecjalizowanymi zadaniami, nie obciążając w ten sposób procesorów odpowiedzialnych za obsługę mikrokodu. A dodatkowo układy te są optymalizowane do obsługi tych konkretnych zadań.

 

…muszę zapewnić poprawną pracę macierzy i zagwarantować oczekiwaną wydajność również w scenariuszu ewentualnej awarii kontrolerów.

To oczywiście jest argument ważny dla wszystkich organizacji. Również tych, które pracują z macierzami klasy mid-range. Jednak, te nieliczne, które naprawdę potrzebują (a nie tylko wymagają) wydajności liczonej w setkach tysięcy operacji na sekundę (IOPS) mogą potrzebować macierzy, która skaluje się dość wysoko w tym zakresie. I często tylko macierz klasy high-end spełni takie wymagania.

 

…moja macierz będzie skalowała się w przedziale nie kilkuset dysków, ale raczej kilku tysięcy dysków.

Potrzebuję przy tym utrzymać wydajność macierzy również dla jej maksymalnej pojemności oraz przy jej maksymalnym obciążeniu. I chcę, aby wydajność ta skalowała się proporcjonalnie wraz ze wzrostem pojemności.

 

…a jednocześnie zależy mi na tym, aby wszystkie lub większość moich środowisk aplikacyjnych skonsolidować w ramach jednej macierzy (jednej pary macierzy).

Chcę mieć jeden punkt zarządzania. Korzystać z jednej polityki disaster recovery. Wykorzystywać jeden mechanizm do wykonywania kopii wolumenów. Monitorować SLA dla całego środowiska w jednym miejscu i na całej drodze IO. A być może również automatyzować niektóre zadania administracyjne za pomocą tego samego narzędzia. A wszystko po to, aby ułatwić moim administratorom zarządzanie tym ogromnym i ciągle rosnącym workiem terabajtów / petabajtów danych.

 

…chcę zwirtualizować posiadane macierze i w ten sposób skonsolidować już istniejące środowisko macierzowe.

Dlatego potrzebuje wydajnego wirtualizatora, który być może jednocześnie będzie pozwalał na instalację dysków wewnętrznych, pracujących jako warstwa najszybsza (tier 0). Podczas takiej konsolidacji wszystkie funkcje macierzowe (klony, replikacja, tiering, snapshoty, itp.) będą realizowane przez ten właśnie wirtualizator. Dlatego muszę uważnie zwymiarować ten element architektury pod kątem wydajności i przepustowości. Wszystkie dane przechowywane na zwirtualizowanych macierzach będą konsumowane poprzez ten właśnie wirtualizator. Oczywiście dla wielu środowisk wystarczą tutaj znowu macierze / wirtualizatory klasy mid-range. Ale znajdą się również i takie, w których wymagania związane z wydajnością wirtualiztora (skalowaniem tej wydajności) będą prowadziły do urządzeń klasy high-end.

 

…chcę utworzyć dla moich różnych środowisk niezależne wirtualne macierze (partycje) w ramach jednego urządzenia.

Każda wirtualna macierz będzie miała swój własny numer seryjny i będzie konsumowana niezależnie przez różnych klientów / aplikacje. Chcę w ten sposób utrzymać jakość usług i spełnić wymagane przez każdego z tych klientów / aplikacji SLA. A ponieważ tych środowisk mam bardzo dużo, dlatego potrzebuję dużej skalowalności również w tym zakresie. A dodatkowo dla wirtualnych macierzy chcę dedykować niezależne zasoby fizyczne. A to oznacza, że po pierwsze tych zasobów powinienem mieć sporo, a po drugie muszę mieć możliwość alokowania ich w sposób bardzo elastyczny.

 

…potrzebuję utrzymać dużą elastyczność rozbudowy.

Ponieważ świadczę usługi dla różnych linii biznesowych lub zewnętrznych klientów, muszę w szybki i elastyczny sposób reagować na zapotrzebowanie na nowe zasoby. A nie zawsze są to tylko nowe dyski. Często muszę dostarczyć dodatkowej ilości portów zewnętrznych. Mocniejszej przepustowości w podsystemie dyskowym. Większej ilości pamięci cache. Albo po prostu większej mocy obliczeniowej (ilości procesorów / kontrolerów). I chciałbym skalować wszystkie te elementy niezależnie od siebie, w elastyczny sposób, abym mógł jak najlepiej dostosować się do potrzeb moich klientów. I tylko architektura typu high-end potrafi zagwarantować taki poziom szczegółowości i tak dużą elastyczność skalowania.

 

…muszę zagwarantować bardzo dużą niezawodność i dostępność danych.

Są wprawdzie na rynku macierze klasy mid-range, które gwarantują nawet 100% dostępności do danych. Aby jednak móc być pewnym tych 100% należy w odpowiedni sposób wdrożyć i skonfigurować te macierze. Co oczywiście ma sens i jest uzasadnione. Tutaj zwróć uwagę na takie scenariusze jak aktualizacja mikrokodu (co się będzie działo z procesorami kontrolerów podczas takiej aktualizacji i jak ucierpi wydajność macierzy), rozbudowy urządzenia oraz naprawa uszkodzeń (czy wszystkie potencjalne naprawy są realizowane on-line). Również w tym przypadku często zaciera się granica pomiędzy macierzami mid-range i high-end. Ale jak to zwykle bywa, diabeł tkwi w szczegółach i warto o te szczegóły podpytać.

 

…skoro płacę za pamięć cache, to chciałbym, aby była ona optymalnie wykorzystywana.

Pamięć cache w niektórych macierzach klasy high-end podzielona jest na sub-segmenty, które pozwalają na bardziej efektywne wypełnienie jej przestrzeni zapytaniami IO o różnej wielkości bloku. Dodatkowo taka pamięć cache potrafi rozpoznać jaki jest charakter obciążenia w danej chwili (stosunek ilości odczytów do zapisów). I na tej podstawie dynamicznie dostosować wielkość obszaru przeznaczonego dla zapisów i dla odczytów. Co to dla mnie oznacza? Macierz klasy high-end z taką pamięcią podręczną jak opisana powyżej potrafi lepiej i efektywniej wykorzystać swoją przestrzeń. To wpływa pozytywnie na współczynniki trafień w cache i przekłada się na lepszą jakość obsługi moich aplikacji.

 

No dobrze. Ale ja zamiast jednej dużej macierzy high-end, mimo wszystko wolę kupić kilka mniejszych macierzy mid-range. A dodatkowo niektóre z nich będą macierzami AFA (All Flash). Rozdzielę sobie swoje środowiska pomiędzy te macierze w taki sposób, żeby każda dostarczała wymaganego SLA dla działających tam aplikacji.

Wszystko fajnie, jeżeli rzeczywiście jest to kilka macierzy. Wtedy temat jest z reguły do ogarnięcia. Koszmar związany z zarządzaniem takim parkiem urządzeń zaczyna się w sytuacji, kiedy tych maszyn przybywa (najczęściej przy stałej liczbie administratorów). Oczywiście z pomocą przychodzą wówczas aplikacje, które pozwolą na sprawne monitorowanie SLA oraz automatyzację zadań. Ale co w przypadku, kiedy każde z tych urządzeń pochodzi od innego producenta?

Poza tym pamiętaj, że środowiska te często żyją swoim własnym życiem i są zazwyczaj bardzo dynamiczne. I raczej nie da się ich skonfigurować i pozostawić samym sobie.

 

Wnioski?

Moim zdaniem zapowiedź zmierzchu macierzy klasy high-end jest mocno naciągana. Ja przynajmniej nie widzę w najbliższej przyszłości powodów, dla których taki zmierzch miałby nastąpić. Są organizacje, które w swoich środowiskach nie będą widziały innej alternatywy.

Pytanie natomiast należałoby zadać nieco inaczej. Jaką strategię przechowywania danych zamierzasz wdrożyć w swojej organizacji i które z powyższych argumentów bardziej pasują do Twojej sytuacji?

 

 

W tekście powyżej znajdziesz sporo odniesień do tematu wydajności. A o zagadnieniach związanych z wydajnością pisałem również w tych artykułach:

Monitorowanie wydajności

Co warto wiedzieć na temat wydajności?

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *