2008/12/29

Czy benchmarki SPC mają sens?

EMC2, gigant w świecie systemów pamięci masowych nie poddaje swoich macierzy testom SPC. To znaczy same testy zapewne zostały wykonane, ale ich wyniki nigdzie oficjalnie się nie ukazały. Firma oczywiście uzasadnia dlaczego nie bierze udziału w testach, o czym możemy poczytać chociażby na blogu dotConnector.

EMC głównie zarzuca SPC, że ich model testów nijak nie odzwierciedla rzeczywistego przetwarzania w środowisku produkcyjnym. Nie mam wystarczająco wiedzy, aby się z tym zgodzić lub nie. Mogę jednak sprawdzić inny argument używany w tym temacie przez EMC, a mianowicie - "Co to za benchmark, który pokazuje tylko , że im więcej dysków tym lepsza wydajność?". Wrzuciłem do Excel'a wyniki testu SPC-1, które kilka tygodni temu mozolnie przepisałem do tabelki i stworzyłem taki oto wykres:


Pokazuje on jak wydajność (iops) testowanych sprzętów zależy od ilości zainstalowanych w nich dysków (dysk#). No i rzeczywiście - ilość dysków jest zasadniczym parametrem wpływającym na moc macierzy i bezpośrednio przekłada się na możliwą do osiągnięcia ilość IOPS. Sześć lat postępu technicznego (z takiego okresu są wyniki SPC), różne prędkości FC, różne ilości pamięci cache, krótsze i dłuższe pętle FC na backend'zie, dziesiątki rodzai i wersji software'u, a wszystko i tak zależy od tego ile dysków siedzi w pudle. Dodam, że wszystkie testowane urządzenia miały ten sam rodzaj dysków - 15k RPM.

Czy to oznacza, że EMC ma rację, a testy SPC nie mają sensu? Po części wydaje mi się, że tak. Dyski są wolne i szybsze nie będą (nie piszę tutaj o SSD). W temacie wydajności inne komponenty macierzy muszą się równać do wolnych dysków.  Chyba, że macierz jest na tyle źle skonstruowana, że nie jest w stanie wykorzystać nawet tej małej wydajności dysków. Może to jest odpowiedź na pytanie dlaczego EMC nie publikuje wyników testów SPC swoich macierzy? Może sens testów SPC to właśnie udowodnienie, że sprzęt potrafi wycisnąć z dysków ile tylko ich ograniczenia fizyczne na to pozwalają? 

Na wykresie jak widać jest też kilka ciekawych wyjątków, do których może kiedyś wrócę.

2008/12/19

Liczenie wydajności macierzy

Już od tygodnia przymierzam się do opublikowania wyników testów macierzy 3PAR z dyskami NearLine. Powody przeciągającego się przygotowywania do tego aktu są dwa. Pierwszy to brak czasu spowodowany końcem roku, zbliżającymi się świętami i padniętym dyskiem w firmowym pececie (proszę się nie śmiać). Drugim powodem był brak wszystkich danych potrzebnych mi do napisania tego tekstu. Konkretnie brakowało mi formuły do wyliczenia wydajności macierzy przy zadanej charakterystyce przetwarzania. Wynik tej formuły chcę porównać z rzeczywistymi osiągami macierzy, co da mi jako-taki obraz testowanego sprzętu.

Znalazłem wolną chwilę i z pomocą Ani napisałem formułę, która wydaje się, że jest ok. Przygotowałem odpowiedni arkusz i wrzuciłem go na Google Docshttp://spreadsheets.google.com/ccc?key=p1Eb9oyys8Yahfh7yF5g8MA. W innej wolnej chwili zrobię kawałek strony WWW z tą formułą. Póki co można wyeksportować ten dokument do xls'a i edytować w Excel'u.

Sprzęt jest tak mocny jak najsłabszy jest jego element. W przypadku macierzy tym elementem jest dysk. Dlatego w moim sposobie liczenia wydajności nie biorę pod uwagę innych podzespołów macierzy. Wynik formuły to maksymalna ilość losowych operacji IO możliwa do osiągnięcia z macierzy przy zadanej charakterystyce przetwarzania, z określonej ilości dysków jednego typu, sformatowanych w jednym rodzaju RAID. Przyznaję, że jest to mocno uproszczone podejście do tematu. Jestem jednak zdania, że daje w miarę wiarygodne wyniki.  A oto parametry formuły:
W tym miejscu planowałem zamieścić wzór i jego opis, ale sobie to odpuszczę. Zainteresowani i tak pewnie sprawdzą jak to wygląda w arkuszu, a dla innych byłoby to trochę nudne. Poza tym jest już późno i idę spać.

Teraz jak już mogę wyliczyć sobie wszystkie dane to myślę, że już niedługo napiszę o wspomnianych testach.

2008/12/18

Choinka

Nie mogłem się oprzeć przed pokazaniem tego zdjęcia:



Choinka jest zrobiona z wnętrzności 70 dysków twardych. Pod zdjęciem link do oryginalnego artykułu.

2008/12/10

Dlaczego RAID10 jest szybszy od RAID5?

Przyznam się, że na to pytanie bardzo długo odpowiadałem w durny sposób, o tak: "Dla RAID5 kontroler macierzy musi wyliczać parzystość danych co powoduje jego słabszą wydajność." Nie mogę patrzeć na bzdurę, którą właśnie napisałem, a przecież przez wiele lat było to moje zdanie w tym temacie. Częściowo słuszne może ono było, ale do lat 90'tych poprzedniego stulecia, kiedy procesor w kontrolerze nie był dość szybki. Oto kolejny przykład na to, że uczyć się trzeba cały czas i że warto zwracać uwagę na zmieniające się warunki.

Kontrolery aktualnie to mocne maszyny, które przy liczeniu parzystości nie kucają :) Co więc powoduje, że RAID5 ze względu na swoją gorszą wydajność nie jest lubiany np. przez Oracle'a? Powodem jest jego większa zachłanność na najbardziej deficytowy towar w macierzy dyskowej - ilość operacji IO. Przy pojedynczej operacji zapisu na wolumen w RAID5 wykonywane są na dyskach 2 odczyty i 2 zapisy, podczas gdy w RAID10 zachodzą przy tym tylko 2 zapisy. Czyli np. grupa dysków w RAID5 o wydajności 800 IOPS (suma IOPS dysków) podczas zapisów będzie mogła obsłużyć tylko 200 IOPS. Raczej spory spadek wydajności. Te same dyski w RAID10 obsłużą 2x więcej IOPS - 400. Operacje odczytu będą wykonywane z pełną wydajnością grupy w obu przypadkach. Przy charakterystyce operacji 50% odczytów/50% zapisów osiągniemy w tych przypadkach odpowiednio ~320 IOPS z RAID5 i ~533 IOPS z RAID1.
W tradycyjnej macierzy gdzie grupa dyskowa to kilka, kilkanaście dysków, różnica przy zapisach na te dwa typy RAID'u jest na tyle duża, że wybór jest oczywisty. Niestety lepsza wydajność RAID1 kosztuje gorszą efektywność wykorzystania przestrzeni dyskowej. W nowych rozwiązania takich jak 3PAR czy Pillar Axiom, w których wolumeny "rozsmarowane" są po wielu dyskach większa ilość IO generowane przez RAID5 nie jest już tak istotna. Odpowiednio duża ilość dysków w takim box'ie zapewni nam wydajność wystarczającą dla niemal dowolnych systemów bez względu na typ raid'u. Tu jednak też znajdą się przypadki takich aplikacji dla których RAID5 nie będzie dość wydajny.

(korzystałem z informacji z bloga Storage Advisors)

2008/12/08

Co z tym full duplex'em FC?

Wykasowałem ten tekst. Opierał się na błędnym założeniu, że częstotliwość transmisji w sieci SAN dotyczy całych ramek. :( Muszę teraz dalej szukać wyjaśnienia faktu, że nie jestem w stanie wysycić portu z serwerze w obie strony.

2008/12/04

SPC-1 TOP5 w kategorii macierz

SPC nie publikuje wyników swoich benchmarków w formie ułatwiającej porównywanie testowanych sprzętów. Sprzedawcy i presalesi producentów i dystrybutorów sprzętu storage co i raz pokazują nam odpowiednio przygotowane rankingi SPC, na których to ich produkt jest najlepszy. Odpowiednio manipulując danymi i czasami lekko oszukując każdemu może to się udać. Przykład z wrześniowej konferencji SNIA: IBM pokazuje, żę ich SVC 4.3 jest na pierwszym miejscu - nieprawda! - wynik TMS RamSan-400 jest lepszy. Co prawda RamSan to zupełnie inna kategoria sprzętu - macierz DDR, ale w takim razie dlaczego SVC - appliance/wirtualizator - jest porównywane z macierzami?

Wykonałem mrówczą pracę i przepisałem wyniki SPC-1 do tabelki i teraz mogę robić swoje rankingi. Na początek TOP5 w kategorii macierz dyskowa. Wygląda to tak:



1. 3PAR T800
2. HDS USP V/HP XP24000/SUN 9900V (to samo pudło w różnych kolorach)
3. IBM DS8300 Turbo
4. Fujitsu ETERNUS8000 Model 1100
5. Fujitsu ETERNUS6000 Model 1100

DS8300 jak widać ma jeszcze niewykorzystany potencjał. Testowana macierz miała tylko 512 dysków i na każdego z nich przypadło aż 240 IOPS. Wydaje się, że większa ilość dysków mogłaby poprawić ogólny wynik.

2008/12/02

Wyniki SPC-1 w tabelce

Po firmowym wyjeździe integracyjnym jestem chory. Organizm osłabiony alkoholem nie był w stanie obronić się przed mazurskimi wirusami, czy też jakimiś bakteriami. Wziąłem zwolnienie i siedzę w domu. Trochę z nudów, ale bardziej z od dawna narastającej potrzeby postanowiłem efektywnie wykorzystać ten czas i zrobiłem tabelkę z wynikami SPC-1. Można ją obejrzeć tu: http://spreadsheets.google.com/pub?key=p1Eb9oyys8YYm0R9yJf-tRg. Siedziałem pewnie ze dwie godziny i klepałem. Starałem się sprawdzać, ale jakieś literówki mogły się przemknąć. Teraz pewnie się okaże, że w sieci taka tabelka jest już od dawna :) Trudno - ja nie mogłem znaleźć. 

Do czego mi te dane? A no na przykład do zrobienia takiego oto wykresu:


No tak - słabo widać. A więc tłumaczę - wykres pokazuje jak ilość dysków w testowanej macierzy (niebieska linia)  wpływa na liczbę SPC-1 IOPS™ przypadającą na pojedynczy dysk w tej macierzy (czerwona linia). Jak widać po linii trendu (czarna) im więcej dysków, tym z dysku mniej IOPS'ów. Z czego to może wynikać. Może z tego, że operacje IO na poszczególnych dyskach w macierzy z dużą ich ilością są bardziej losowe niż w mniejszych pudłach. Jaki z tego wniosek? Może taki, że jeżeli zależy nam na wysokiej wydajności pamięci masowej, to nie warto wypełniać macierzy dyskami do oporu, a lepiej postawić obok drugiego box'a. Oczywiście wszystko to tylko teoria. Właściwym impulsem do wykonania tego obrazka była jedna z prezentacji na ostatniej konferencji SNIA w Warszawie, ale o tym innym razem.