Pokazywanie postów oznaczonych etykietą flash. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą flash. Pokaż wszystkie posty

niedziela, 8 grudnia 2013

XtremeIO - torpeda odpalona...po półtora roku czekania...

Ostatnio EMC ogłosiło GA (General Availability), czyli produkt dostępny w sprzedaży bez ograniczeń, dla swojej pierwszej macierzy klasy AFA (All-flash-array). Produktu od początku zbudowanego i zaprojektowanego do obsługi dysków SSD i żadnych innych.

Temat dysków SSD i macierzy wyspecjalizowanych w ich obsłudze od jakiś dwóch lat jest jednym z "najgłośniejszych" i najbardziej "trendy" w środowisku storage. Na początku bardzo szybko zaczęły powstawać nowe "startup"-y z produktami tej kategorii (np: Violin, Pure Storage, Solid Fire). O firmach tych zaczynało być coraz głośniej, pojawiło się coraz więcej nowych funkcjonalności (np: inline deduplikacja), a same urządzenia zaczęły być dostępne nie tylko lokalnie (do 100km od Doliny Krzemowej ;) ) ale też do zamówienia nawet na takim końcu świata jak np: Polska (Pan się nie boi, serwisant jest dostępny i w razie potrzeby doleci z Londynu w 5h). W końcu, czyli jakieś półtora roku temu, wkroczyliśmy w etap gdy niszą macierzy AFA zainteresowali się najwięksi gracze na rynku storage i rozpoczęło się przejmowanie przez nich firm siedzących w temacie. IBM kupił Texaco Memory Systems, CISCO kupiło WhipTail (całkiem niedawno), HP rozpoczęło sprzedaż i serwis urządzeń Violin, a EMC w maju zeszłego roku przejęło firmę XtremeIO.

No właśnie...
Przejeło, zrobiło wielki szum i ogłoszenie startu "tajemniczego" projektu "X" (i ubicie równie tajemniczego projetu "Thunder""), po czym nastała cisza...
Pojawiały się co jakiś czas informacje zarówno ze strony EMC (optymistyczne) jak i konkurencji (sarkastyczne) oraz niezależnych blogerów (różne) na temat zaawansowania prac nad macierzą all-flash bazującą na produktach XtreamIO, ale ogólnie to było w tym temacie bardzo, ale to bardzo cicho. Świat oczywiście nie stał w miejscu i macierze AFA stawały się coraz popularniejsze, było o nich coraz głośniej (choć oczywiście dalej jest to margines całej sprzedaży urządzeń storage) i wyglądało na to, że EMC nie ma za bardzo pomysłu i produktu, który mógłby wyróżnić się w tym obszarze na tle konkurencji.

14 listopada 2013 , po półtora roku od momentu przejęcia XtremeIO, EMC ogłosiło nowy produkt. Pierwszą w swoim portfolio macierz od początku do końca budowaną z przeznaczeniem do bycia ekstremalnie szybkim urządzeniem opartym na dyskach SSD.

Czy opłacało się czekać?


Nowa macierz składa się z tak zwanych X-Bricks. Cała konfiguracja może mieć od jednej do czterech takich cegiełek (wsparcie dla większych konfiguracji pewnie zostanie za niedługo ogłoszone). Każdy X-Bricks to w chwili obecnej 10TB przestrzeni (używane są dyski SSD 400GB), a także dodatkowa para kontrolerów. Dodawanie kontrolerów powoduje, że liniowo skaluje się wydajność rozwiązania - przy 4 X-Brickach jest ona określona na 1.000.000 IOPSów ( 4k random , 100% read)
Jeszcze w temacie konfiguracji hardware można wspomnieć o połączeniach między X-Brickami, które są oparte na inifinbandzie.

Bardzo ciekawie jest rozwiązane zarządzanie/konfigurowanie macierzy. Administrator nie musi robić praktycznie nic. XtremeIO nie ma RAIDów, LUNów, storage grup, nie ma tieringu, nie trzeba konfigurować cache, wielkości bloków itd... Jedyne co trzeba zrobić to wskazać do jakiego serwera ma być wystawiona przestrzeń i ile jej ma być.

Jak więc działa macierz?

Po pierwsze dane są rozrzucane po dyskach - zawsze po wszystkich i zawsze po równo (EMC pokazuje statystykę macierzy zajętej w 80% gdzie maksymalna różnica w zajętości między dwoma dowolnymi dyskami jest nie większa niż 0,2%).
Po drugie "thin provisioning" i deduplikacja są zawsze włączone. Dane wpadające na macierz są dzielone na 4Kb bloki i sprawdzane jest czy taki blok już się na macierzy znajduje. Jeżeli tak to oczywiście nie jest zapisywany ponownie.
Po trzecie - zabezpieczenie danych na dyskach nie opiera się na standardowych grupach RAID ale mechanizmie nazwanym XDP (XtremeIO Data Protection). Jeżeli chodzi o odporność na awarie to XDP odpowiada (w dużym przybliżeniu) RAID6, czyli posiada redundancję N+2. Różnica tkwi jednak w narzucie na protekcję (czyli ilości przestrzeni jaka jest "tracona" na zapewnienie ochrony danych) - w przypadku XDP jest to około 8% więc bardzo niewiele, oraz zredukowaniu tzw: Write amplification/write penalty czyli potrzebie zwielokrotnienie operacji I/O przy zapisywaniu danych na dyski w konfiguracjach RAIDowych. Przykładowo pojedyncze żądanie zapisu przy RAID6 wymaga wykonania aż 3 operacji odczytu i 3 zapisu na samych dyskach, dla XDP jest to 0 operacji odczytu i około 1.2 operacji zapisu (średnio oczywiście). Wpływ takiego działania w oczywisty sposób powoduje wzrost wydajności takiego rozwiązania w porównaniu do podobnych ale opartych o RAIDy


Krytyka:

EMC (jak to EMC) zrobiło z okazji wejścia na rynek duży szum. Na szczęście mieli na tyle przyzwoitości lub instynktu samozachowawczego i nie głosili wszem i wobec, że oto przedstawiają Rewolucję i Nową Jakość (koniecznie pisaną dużą literą) ale promocją produktu zajęli się bardzo porządnie.

Cicho nie siedziały także inne firmy oferujące swoje produkty w obszarze macierzy AFA i dość szybko pokazały się artykuły i wpisy w blogach firmowych dość sceptycznie podchodzące do nowego dziecka EMC.

Nimbus bardzo obrazowo pokazał efektywność nowej macierzy na prostej grafice porównującej macierz EMC z ich urządzeniem o podobnej pojemności:

Źródło: http://www.nimbusdata.com/newsevents/blog.php

Ktoś mógłby powiedzieć, że może i większe ale urządzenie EMC jest wydajniejsze lub zapewnia lepszą funkcjonalność. Otóż nie bardzo. Porównania część dalsza (po lewej EMC, po prawej Nimbus):

Źródło: http://www.nimbusdata.com/resources/v_xtremio.php

Jeszcze dalej w porównaniu poszedł IBM który zestawił ze sobą macierz XtremeIO nie tylko ze swoją macierzą AFA ale także z "tradycyjnym" V7000 tyle tylko że wypełnionym dyskami SSD:

Źródło: www.ibm.com/developerworks/community/blogs/InsideSystemStorage/

Oprócz samych porównań, konkurencja krytycznie wypowiadała się także o możliwościach XrtremeIO - szczególnie o "rzekomym" braku mechanizmu "garbage collection", odporności na utratę/uszkodzenie jednego z nodów, oraz brak kompresji i deduplikację stałym blokiem.
Cóż, taka rola konkurencji, żeby wbijać szpilki...


Podsumowanie:

Rozwiązanie EMC to nie rewolucja, tylko kolejny już (dwudziesty-trzydziesty?) produkt w tym obszarze, ma  fajne rozwiązania, ale w wielu przypadkach odstaje od obecnych na rynku urządzeń. Na pewno XtremeIO będzie miało tą przewagę, że EMC ma największe możliwości jeżeli chodzi o moce przerobowe w obszarze logistyki i zaplecza serwisowego. Poczucie, że specjaliści dostawcy od danego produktu są na wyciągnięcie ręki, a nie na drugim końcu świata, jest bardzo ważne dla dużych firm gdzie priorytetem jest stabilność działania i bardzo szybkie rozwiązywanie wszystkich awarii.
Jeżeli chodzi o "szum" wokół XtremeIO to należy go przyjmować ze zdrowym dystansem. Z jednej strony nie wierzyć w propagandę sukcesu ze strony EMC, z drugiej tak samo traktować opnie i "obiektywne" porównania konkurencji :D
Najlepiej było by samemu spróbować...


Do poczytania:
XtremIO - Taking the time to do it right
EMC finally releases the XtremIO all flash array
IBM FlashSystem versus EMC XtremeIO all flash arrays
XtremIO - Hardware/software overview architecture deepdive  (Mocno techniczny i dokładny opis! Dobre!)
NimbusData - BLOG

sobota, 18 maja 2013

Macierze flashowe - poradnik kupującego na 2013

Ostatnio DCIG wypuszcza całkiem sporo"buyer's guide"-ów na najróżniejsze produkty z obszaru storage. W jednym z ich ostatnich opracowań porównano kilkadziesiąt modeli macierzy flashowych (tzw: AFA - All Flash Arrays), urządzeń wykorzystujących do przechowywania danych wyłącznie (lub w większości) dysków SSD. Rynek tych urządzeń od około 2 lat cały czas rośnie i obecnie z fazy start-upów, przeszedł do etapu wykupywania mniejszych (ale dobrze rokujących) firm przez gigantów.

Macierze SSD mają kilka zdecydowanych zalet nad rozwiązaniami bazującymi na "tradycyjnych" dyskach. Oprócz najbardziej oczywistej, czyli dużo większej wydajności, wykorzystanie takich rozwiązań pozwala na lepszą utylizację CPU w serwerach (które przy pracy z normalnymi macierzami dużo czasu marnotrawią na czekanie na odpowiedzi z sytemu dyskowego) oraz ograniczenie zużycia energii i miejsca w serwerowni.

Założenia

Aby zakwalifikować się do porównania, macierz musiała spełniać następujące warunki:
  • Dostępna jako applinace - czyli odrębne urządzenie z własnym oprogramowaniem (firmware).
  • Nie bazuje na MS Windows Storage Server
  • Wspiera konfigurację opartą w 100% na dyskach SSD
  • Może wspierać konfiguracje oparte na wymieszaniu dysków SSD z tradycyjnymi 
  • Musi wspierać minimum 16 dysków
  • Musi obsługiwać przynajmniej jeden protokół SAN (iSCSI, FCP, FCoE,Infiniband)
  • Może wspierać protokoły NAS (CIFS,NFS)
  • Musi być dostępna w sprzedaży od 1 listopada 2012

Kryteria 

Macierze były oceniane według kilku kategorii. W odróżnieniu od poprzednich wpisów dotyczących "Buyer's guide"-ów od DCIG nie będę wyliczał wszystkich składowych razem z ich opisem. Zdecydowana część jest oczywista. Bardziej szczegółowo skupię się na ocenianych funkcjonalnościach związanych z zarządzaniem napędami flashowymi.

Management & Replication
W tej sekcji urządzenia są oceniane biorąc pod uwagę kilkanaście kategorii. Głównie chodzi o wspieranie przez macierze pewnych konkretnych funkcjonalności takich jak: Thin Priovisioning, Snapshoty, Deduplikacja czy wsparcie dla VMware (np: obsługa VAAI i VASA)

Storage Array Hardware
Szczegóły dotyczące hardware jaki posiada i wspiera dane urządzenie (ilość cache, rodzaje interfejsów, max pojemności obsługiwane itd...)

Flash Management
W tej części mamy specjalne możliwości związane z zarządzaniem pamięciami/dyskami flash. Sprawdzana jest obecność 5 rodzajów funkcjonalności:
  • Write Coalescing - technika polegająca na grupowaniu zapisów w cache i nagrywaniu ich na dysk dopiero wtedy, kiedy osiągną wielkość bloku do usunięcia (EBS - erasure block size). Funkcjonalność ta poprawia wydajność, oraz wydłuża czas życia nośnika i jest to związane z mechanizmem działania pamięci flash. Dane na dysku SSD nie mogą być nadpisane, aby zmienić wartość komórki należy ją skasować, a dopiero potem na nowo zapisać wartość. Dodatkowo kasowanie nie może być wykonane per komórka ale dzieje się jednocześnie dla większej ilości danych - najmniejszy "kasowalny" jedną operacją obszar to właśnie EBS. Użycie Write Coalescing zmniejsza ilość operacji kasowania, przy zapisywaniu danych.  
  • Variable RAID Stripe Sizing - kolejna funkcjonalność poprawiająca wydajność i czas życia. Też opiera się na wielkości EBSa. Tym razem macierz dba o to aby dane rozrzucane (stripe) były po obszarze równemu wielkości EBS.
  • Data Aging Timer Tuning - czy dostępna jest dla administratora możliwości ustawiania/zmiany pewnych liczników odpowiedzialnych za "starzenie" się danych
  • Inline Deduplication - czy macierz wspiera deduplikacje w czasie rzeczywistym (in-line)
  • Block Level Compression - czy macierz wspiera kompresję na poziomie bloku
  • Hardware Accelerated Compression - czy urządzenie posiada dedykowane układy (ASIC) do obsługi kompresji.
Application Layer
Obsługa protokołów dostepu plikowego (NFS,CIFS) i objektowego (REST,SOAP), rodzaje wspieranej autentyfikacji (logowanie przez AD, Kerberos, NIC itd...)

Support
Jakie wsparcie zapewnia dostawca swoim produktom.


Przetestowane modele

Asute Networks
www.astutenetworks.com

Asute chwali się kilkoma "unikalnymi" możliwościami jakie mają ich produkty. Pierwszym z nich jest DataPump Engine czyli dedykowany układ (ASIC) ktory zarządza ruchem przychodzącym do macierzy. W porównaniu do rozwiązań konkurencji opartych na standardowym układzie x86, ASIC Asute ma charakteryzować się dużo większą wydajnością.
Kolejnym atutem jest deduplikacja w czasie rzeczywistym, która ma zerowy wpływ na wydajność.

Asute podkreśla także bardzo ekonomiczość ich rozwiązania, twierdząc, że ich produkty mają najlepszą cenę jednostkową per IOPS.

DCIG przetestował 3 modele macierzy Asute  (seria ViSX) różniące się obsługiwaną pojemnością:
  • ViSX G4 2400
  • ViSX G4 4800
  • ViSX G4 9600

GreenBytes
getgreenbytes.com/

Firma pozycjonuje się jako dostawca infrastruktury dla rozwiązań VDI-owych czyli wirtualnych terminali.
Tego typu środowiska zwykle mają bardzo duże wymagania dotyczące wydajności storage na których są zbudowane.
Model, który został przetestowany to:
  • IO Offload Engine (5,000 VDI Model)


Huawei Enterprise
enterprise.huawei.com/

Huawei to firma mająca bardzo różnorodne portfolio produktów z najróżniejszych obszarów infrastruktury IT. Storage jest tylko malutkim kawałeczkiem w ich ofercie, a macierze AFA (All Flash Array) to już zupełnie drobinka, w sumie jeden niewyróżniający się niczym szczególnym model:
  • OceanStor Dorado2100

Kaminaro
www.kaminario.com

Kolejny start-up działający na rynku macierzy All Flash. Podobnie jak inne firmy specjalizujące się w tym obszarze, ma swoje własne rozwiązania związane z architekturą i oprogramowaniem zarządzającym pamięcią flash, w Kaminaro nazywają się one SPEAR (Scale Out Performance Storage Archtecture)
  • K2 F

Nimbus
www.nimbusdata.com

Nimbus dość odważnie poczyna sobie na rynku macierzy flash. Firma ma kilka "rodzin" macierzy z których największe to "E Class" (Enterprise) i "S Class"(Standard). Rodzina "E" wyróżnia się przede wszystkim architekturą zapewniającą dużo większą dostępność i odporność na awarie. Oprócz tego Nimbus od niedawna ma także trzecią linię macierzy nazywaną Gemini.

Największym klientem Nimbusa jest E-Bay który kupił macierze AFA o ponad 100TB pojemności.

Do porównania DCIGa wzięte zostały następujące macierze klas E i S (poszczególne podele w obrębie rodziny różnią się pojemnościami):
  • E Class Flash Memory System E6400M+E1000X
  • E Class Flash Memory System E6400M+E2000X
  • S Class Flash Memory System S255M / S255X
  • S Class Flash Memory System S505M / S505X
  • S Class Flash Memory System S1005M / S1005X

PureStorage
www.purestorage.com

Firma o której kiedyś krążyły plotki, że ma być wykupiona przez EMC (w ostateczności EMC kupiło XIO).
Rozwiązania PureStore obsługują deduplikacje w czasie rzeczywistym, przez co pozalają na dużo większą "gęstość" upakowania danych, obsługiwane są także snapshoty oraz thin provisioning (co nie jest standardem w obszarze macierzy flash).

W teście DCIGa pojawiły się dwia (z dostępnych \dwóch) modeli macierzy PureStorage. FA-310 to urządzenie z pojedynczym kontrolerem, FA-320 ma ich dwa.
  • FA310
  • FA320

Tegile
www.tegile.com

Tegile to kolejny start-up skupiony na macierzach flash i hybrydowych. Macierze Tegile są w stanie udostępniać dane zarówno po sieci SAN jak i z wykorzystaniem protokołów plikowych. Z kilku modeli dostępnych DCIG to testów wybrał tylko jeden, ale najsilniejszy:
  • Zebi  HA2800

Texas Memory Systems (IBM)
TMS

TMS to firma najdłużej działająca na rynku macierzy flashowych, jeszcze kilka lat temu praktycznie jako jedyna oferowała tego typu produkt. W zeszłym roku firma została wykupiona przez IBMa. IBM ostatnio przedstawił swoje plany co do produktów dawnego TMSa, same macierze zmieniają się (przynajmniej na razie) w niewielkim stopniu natomiast nazwa całej linii została przemianowana na FlashSystem-s.

W porównaniu DCIGa pojawiały się trzy macierze, jeszcze w starym nazewnictwie:
  • RamSan 720
  • RamSan 810
  • RamSan 820

Seria 7xx jest oparta o pamięci eMLC, natomiast 8xx to flash typu SLC (Więcej o typach pamięci SSD można znaleźć TUTAJ )

Violin Memory
www.violin-memory.com

Violin to druga (oprócz TMS) firma o której można powiedzieć, że nie jest już startup-em tylko dojrzałym bytem specjalizującym się w macierzach AFA. Oprócz tego firma sprzedaje także flashowe karty PCI-Express.

Violin w obszarze macierzy flashowych ma dwie główne rodziny produktów: Seria 3000 i Seria 6000. W obydwu znajdują się macierze zarówno oparte o dyski MLC jak i SLC, główną różnicą między rodzinami jest znacznie większe zabezpieczenie przed awariami (podwójne kontrolery, brak SPOFów) w przypadku Serii 6000.
  • Series 3000: 3120/3202/3205/3210/3220
  • Series 6000: 6212/6232/6606/6616

Whiptail
whiptail.com

"Last but not least" - Whiptail, kolejny ze startupów wyspecjalizowany w sektorze macierzy AFA.
Firma ma dwie (a w zasadzie 3 bo Invicta jest podzielona jeszcze na kategorię "normal" i "infinity") linie macierzy: Accela to macierze "entry level" z pojedynczym kontrolerem, o wymiarach 2U i różnych pojemnościach (od 1,5TB do 12TB), Invicta to architektura opierająca się na węzłach (nodes) o różnych wielkościach (6,12 i 24TB) które można ze sobą łączyć tworząc większe konfiguracje.

W podsumowaniu DCIG uwzględnione zostały następujące modele:
  • Accela ASSA 1500
  • Accela ASSA 3000
  • Accela ASSA 6000
  • Accela ASSA 12000
  • Invicta ISSA 6
  • Invicta ISSA 12
  • Invicta ISSA 24

Wyniki:


Wyniki są trochę zaskakujące muszę przyznać.

"Best-in-Class":

Pierwsze miejsce i kategorię "Best-in-class" zdobyła macierz Tergile Zebi HA2800. W większości ocenianych kategoriach otrzymała bardzo wysokie oceny a dodatkowo obsługuje wszystkie funkcjonalności zapewniane przez VAAI. Na plus zasługuje także bardzo duża ilość pamięci cache, obsługa replikacji lokalnej, zdalnej, wsparcie dla protokołów zarówno NASowych, jak i SANowych, a także bardzo efektywna deduplikcja. Zebi jestnie tylko macierzą All Flash, wspiera także konfiguracje hybrydowe z dyskami tradycyjnymi.

"Recommended":

Kolejne 4 macierze zostały ocenione jako "Recommended". Serbrny medal trafił do PureStorage FA320, a następna trójka to produkty firmy Nimbus (zarówno S jak i E klasa). Macierze w tej klategorii cechowały się dobrym wsparciem dla VMware (choć nie wszyskie funkcjonalności VAAI były wspierane), a także dużą ilością dodatkowych własności takich jak np: thin provisioning czy replikacja - rzeczy te są standardem przy "tradycyjnych" macierzach ale w obszarze urządzeń flashowych nie są to zbyt popularne funkcjonalności - przynajmniej jeszcze do niedawna

"Excellent":

Oczko niżej, pod recommended, jest kategoria Excellent, na którą załapało się 7 macierzy. Początek tej listy to pozostałe urządzenia Nimbusa i PureStorage, zaraz za nimi grupa 3 macierzy Violin Memory (seria 6xxx) i na końcu GreenBytes. Urządzenia które tutaj trafiły miały nieco gorsze (ale wciąż bardzo dobre) oceny z poszczególnych kategorii i obsługę dodatkowych funkcjonalności. Wszyskie miały też conajmniej 96GB pamięci Cache oraz wspierały zarówno FC jak i iSCSI - nie wszyskie jednak obsługiwały dostęp plikowy.

"Good":

Największa kategoria - 14macierzy. Zaczna się od Violina, potem Huawei i pozostałe macierze Violinowe, wymieszane z Whiptail. Można powiedzieć, że urządzenia "Good" to taki trochę standard na rynku. Wsparcie raczej tylko dla portokołów SANowych, brak deduplikacji, raczej ubogo z innymi funkcjonalnościami (np: Thin Provisioning").

"Basic":

Na końcu macierze "proste/podstawowe", 8 modeli z czego na początku Huawei, potem Astute i Kaminaro, zaś ostatnie trzy miejsca w rangingu dzielnie zamykają produkty IBM/TMS.
Basic to basic - jeden protokół SANowy, ubogo w dodatki, ciężkie zarządzanie...


Podsumowanie:

Jak wszystkie pozostałe "Buyers Guide"-y od DCIG, tak i ten stanowi bardzo dobre i obszerne porównanie produktów z danego obszaru. Osobiście zaskoczył mnie wynik - zarówno jeżeli chodzi o Tergile na miejscu pierwszym, jak i na TMSy (zwane od niedawna FlashSystem-s) na szarym końcu.
No cóż, "raz na wozie, raz pod wozem".


niedziela, 15 lipca 2012

Macierze "solid state" - demony prędkości (Część 3 - Nieco więcej technikaliów)

W poprzednich częściach dotyczących dysków SSD oraz macierzy wyłącznie z nich zbudowanych ("Solid state arrays") opisaliśmy podstawy tej technologii oraz firmy, które w tej branży działają. Teraz chciałbym wejść trochę głębiej w mechanizmy działania tego typu urządzeń.

Jak zbudowany jest dysk SSD

Dysk SSD jaki jest każdy widzi -główna różnica między nim a jego "tradycyjnymi kolegami" polega na braku mechanicznych obracających się części (talerze, głowica). Z tego powodu dyski SSD są ciche, niezawodne i zużywają mało energii.

Gdyby otworzyć obudowę dysku i spojrzeć do środka można by wyróżnić następujące komponenty
  • Kontroler
  • Interfejsy I/O
  • Pamięci Flash

Kontroler:

Czyli mózg dysku SSD, odpowiada zarówno za wszyskie "podstawowe" operacje na pamięci flash (zapis/odczyt/skasowanie) jak i za komunikację dysku ze światem zewnętrzny, a także zarządza wszyskimi specjalnymi funkcjami które są specyficzne dla technologii SSD jak np: TRIM czy Garbage Collection (o których będzie później). Sam kontroler to prosty procesor 16 lub 32 bitowy.

Najbardziej znane firmy produkujące kontrolery SSD to:
  • SandForce (wykupiony z początekiem roku przez LSI)
  • Indilinx (zależny od OCZ)
  • JMicron
  • Marvell
Udział w produkcji kontrolerów SSD mają także tacy giganci jak Intel i Samsung.

Interfejs I/O:

Układy łączące dysk ze światem zewnętrznym. Mogą występować w najróżniejszych standardach z których te najbardziej popularne to SATA,FC,SAS, 

Pamięci Flash:

Układy pamięci flash mogą być wykonane w dwóch technologiach: NAND i NOR, ponieważ jednak NOR-y są dużo wolniejsze, umożliwiają mniejsze upakowanie danych oraz cechują się mniejszą wydajnością tak więc praktycznie nie są używane przy produkcji flash-y.
Pamięci NAND możemy podzielić na takie które po pojedynczej komórce są w stanie przechować jeden bit danych (SLC) i takie które mogą ich przechowywać dwa (MLC) lub więcej (TLC). Bardziej szczegółowe informacje o tym podziale znajdują się w pierwszym wpisie dotyczącym SSD: LINK


Jak działa dysk SSD

Tak naprawdę chciałbym tutaj skupić się na kilku pojęciach związanych z dyskami SSD, a przy okazji ich opisu przedstawić także specyfikę działania tego typu napędów.

Te pojęcia to:
  • Write Amplification
  • TRIM
  • Garbage Collection
  • Wear Leveling
Write Amplification (WA):

Dyski SSD są dużo szybsze przy operacjach odczytu niż zapisu, a różnica w prędkości wykonywania tych działań może być nawet kilkunastokrotna. Odpowiedzialny za to jest sposób w jaki dysk SSD zapisuje dane.
Są dwie główne różnice w sposobie zapisu przed dysk tradycyjny i flashowy.
Po pierwsze dysk SSD nie może bezpośrednio nadpisać danych. Jeżeli jakaś komórka już zawiera informacje najpierw musi ona być wyczyszczona i dopiero potem można w niej pisać. Po drugie kontroler SSD nie jest w stanie wyczyścić danych z  pojedynczej komórki, musi to zrobić całą tzw: stroną, która ma ich od kilkunastu do kilkudziesięciu. W rezultacie po otrzymaniu polecenia zapisu, kontroler SSD musi odczytać zawartość całej strony, w której znajduje się blok do nadpisania (aby nie utracić przy czyszczeniu strony już zapisanych w niej bloków). Następnie strona zostaje wyczyszczona. Ostatni krok to ponowne zapisanie danych które wcześniej na niej rezydowały a także nowo zmienionego pojedynczego bloku (tak naprawdę działa to nieco inaczej ale to zostanie wyjaśnione w części poświęconej Garbage Collection, w tej chwili dla lepszego zrozumienia zostańmy przy opisanej powyżej wersji)
Współczynnik Write Amplification (WA) wynika z działania tego mechanizmu i określa ile razy więcej danych jest naprawdę zapisywanych na dysku SSD, w porównaniu do danych które zostały do niego "wysłane".
Oczywiście im więcej takich nadmiarowych zapisów trzeba robić, tym dłużej trwa ta operacja - jest to bezpośrednia przyczyna dużo mniejszej wydajności napędów przy zapisach (pojedynczy zapis jest tak naprawdę serią operacji R/W), dodatkowo im wyższe WA tym szybciej dysk się zużyje, gdyż więcej cyklów zapisu jest potrzebnych dla każdego pojedynczego żądania.
Kolejnym negatywnym efektem, jest fakt iż im więcej danych jest na dysku tym wolniej będzie działał (w stronach czyszczonych będzie więcej bloków do przepisania).

TRIM:

TRIM jest to komenda SATA która pomaga w zmniejszeniu współczynnika WA, a przez to zwiększa szybkość działania i żywotność dysku SSD.
Co robi TRIM?
Jeżeli usuwamy dane (np: pliki) w systemie operacyjnym (obojętnie jakim), system ten odnotowuje sobie ten fakt i traktuje zajmowaną przez nie przestrzeń jako wolną ale nie wysyła informacji o tym do dysku.  Z punktu widzenia systemu operacyjnego miejsce jest wolne i może zostać nadpisane, ale dla dysku są to dane istotne, o których bezpieczeństwo trzeba zadbać, do czasu aż nie przyjdzie polecenie ich skasowana lub nadpisania. Dlatego też dane te zostają odczytane i zapisane za każdym razem gdy kontroler czyści stronę na której się znajdują (aby nadpisać jakiś inny blok). Jest to działanie niepotrzebne gdyż dane te są już skasowane tylko dysk nie dostał tej informacji.
Polecenie TRIM wysyła do dysku informację o skasowaniu danych, gdy tylko jest to robione na poziomie systemu operacyjnego. Dzięki temu dane te nie są przepisywane przy czyszczeniu strony i nie zwiększają współczynnika WA. Polecenie TRIM aby działało musi być wspierane zarówno przez system operacyjny jak i przez sam dsyk SSD.

Garbage Collection (GC):

Nieco wyżej psiałem, że aby nadpisać dane kontroler dysku SSD odczytuje całą stronę czyści go a następnie przepisuje na powrót stare dane + nadpisana nowa. W rzeczywistości odbywa się to nieco inaczej i uczestniczy w tym proces nazywany Garbage Collection (GC).
Nowe dane nie nadpisują starych ale są zapisywane w nowych blokach, natomiast te już nieaktualne dalej rezydują na dysku, są tylko zaznaczone do usunięcia, GC to proces który co jakiś czas przepisuje istotne dane do nowych stron, a na starych zostawiając tylko te już nieaktualne, potem takie strony są automatycznie czyszczone i gotowe na przyjecie nowych zapisów. Zalety stosowania GC to przede wszystkim szybsze zapisy - dane są nagrywane do nowych czystych stron i nie ma potrzeby czyszczenia i nadpisywania. Oczywiście nie ma nic za darmo, sam proces GC obciąża dysk i dlatego uruchamiany jest w okresie gdy generowany jest do niego mniejszy ruch. Problemy zaczynają się gdy sam dysk jest utylizowany bardzo mocno i dodatkowo zaczyna zapełniać się jego pojemność. W takiej sytuacji kontroler często nie jest w stanie znaleźć pustych stron na zapisy i musi uruchamiać proces GC w trakcie pracy, co powoduje spowolnienie samego napędu.

Wear Leveling (WL):


Każda komórka z której składa się dysk SSD ma swoją "wytrzymałość", która określa ile razy może ona przejść cykl czyszczenia i zapisu. Ponieważ niektóre dane po zapisaniu prawie się nie zmieniają, natomiast inne modyfikowane są prawie non stop (np: plik stronicowania OSa) część komórek w dysku jest obciążona dużo bardziej i wielokrotnie szybciej niż pozostałe może osiągnąć swoją granicę "używalności". Aby uniknąć takiego przedwczesnego zużycia, kontroler stosuje różne mechanizmy aby równomiernie rozłożyć ruch do/z dysku. Nazywa się do Wear Levelingiem(WL) i zwykle polega na przeadresowywaniu komórek pamięci na dysku. Ponieważ zmieniają się adresy komórek więc nie ma ryzyka że ciągle zapisy tych samych danych będą trafiały w to samo miejsce nadmiernie je eksploatując.




Na tym kończę serię wpisów dotyczących technologii SSD i macierzy "solid state"  - zajęło mi to dużo więcej czasu niż początkowo zakładałem ale mocno doskwiera michroniczny brak czasu i nadmiar innych zajęć. Co będzie w następnych wpisach jeszcze nie wiem, może wrócę do tematu Clariionów, a może nie.

czwartek, 5 kwietnia 2012

Macierze "solid state" - demony prędkości (Część 1 - Dysk SSD)

Jednym z najbardziej obecnie obiecujących trendów w obszarze storage i coś co pojawia się bardzo często we wszystkich zestawieniach związanych z przyszłościowymi technologiami to macierze składające się wyłącznie z dysków SSD.
Ponieważ ostatnio przygotowywałem w pracy analizę rynku takich rozwiązań i zebrałem trochę materiału oraz uzupełniłem swoją wiedzę na ten temat, to z miłą chęcią podzielę się tymi informacjami tutaj.

Zaczniemy od początku czyli opisania czym w ogóle jest dysk SSD

Dysk SSD

Podstawy:

Dysk SSD jest urządzeniem do przechowywania danych o zastosowaniach analogicznych jak „tradycyjne” dyski twarde. W odróżnieniu od nich SSD nie posiada części mechanicznych (talerze, głowice) a dane przechowywane są na elektronicznych układach półprzewodnikowych.

Zalety:
  • Dużo szybsze od tradycyjnych dysków (szczególnie podczas tzw swobodnych odczytów - random reads)
  • Brak mechanicznych części powoduje iż ich awaryjność jest dużo mniejsza, a odporność na wstrząsy i wpływ środowiska bardzo duża. 
  • Małe zużycie energii - to także wynika z budowy tych urządzeń.
Wady:
  • Koszt, znacząco większy niż dla dysków tradycyjnych. 
  • Mniejsze pojemności.
  • Ograniczona żywotność liczona w tzw cyklach zapisu. Cykl zapisu polega na wykasowaniu zawartości bloku z danymi i nadpisaniu go nowymi danymi – komórki pamięci na dyskach SSD mogą wykonać taką operację jedynie ograniczoną liczbę razy.  
Parametry wydajnościowe:

Napędy SSD są dużo szybsze niż ich mechaniczne odpowiedniki. Dysk SAS 15k potrafi osiągnąć około 180IOPSów. Wielkość ta jest zależna od dwóch czynników: szybkości obrotowej dysku oraz tzw "seek time", czyli czasu potrzebnego do głowicy dysku, na ustawienie się nad właściwym sektorem. Czynniki te są zależne od samej fizycznej budowy napędów i w najbliższej przyszłości nie jest możliwe ich podniesienie (np: zwiększenie prędkości obrotowej ponad 15.000obrotów powoduje bardzo duże wzrost siły bezwładności działającej na talerze) - z tego względu można powiedzieć, że dyski "tradycyjne" zbliżyły się do swoich granic wydajnościowych. W przypadku SSD nie ma ograniczeń mechanicznych i potrzeby "pozycjonowania" się głowicy nad danymi do odczytu, dlatego też napęd może obsłużyć dużo większą ilość żądań zapisu/odczytu. Dyski SSD mają jednak bardzo skomplikowany i wprowadzający duże opóźnienia mechanizm zapisu danych - dlatego też występują spore różnice między wydajnością przy zapisach (około 500IOPSów) a odczytach (40.000IOPSów). Przy standardowym "wymieszanym" ruchu dyski SSD są klikanaście razy szybsze od mechanicznych.
Kolejnym z parametrów wydajnościowych jest czas odpowiedzi. W przypadku HDD dla dysków 15k wynosi on około 3ms , przy dyskach SSD mówimy o wielkościach rzędu 100µS (0,1ms).

Podział dysków SSD -> Flash i DRAM:

Dyski SSD można podzielić według kilu kryteriów,j ednym z nich jest rodzaj układów półprzewodnikowych używanych do przechowywania danych. Można wyróżnić dwie kategorie: SSD zbudowane na modułach flash oraz na kościach DRAM.
Dyski SSD używane w komputerach stacjonarnych i laptopach, a także zdecydowana większość dysków używanych w serwerach oraz macierzach jest oparta o moduły flash.  DRAM obecny jest jedynie w niewielkiej ilości specjalizowanych macierzy opartych na tej technologii oraz w kartach PCIe. Poprzedni paragraf zatytułowany "Parametry wydajnościowe" opisywał tak naprawdę nie ogół dysków SSD ale właśnie ich podkategorię opartą na modułach flash.

Jeżeli chodzi o różnice między tymi dwoma technologiami to dyski DRAM są o wiele szybsze niż ich flashowe odpowiedniki. Czas odpowiedzi z pamięci DRAM mieści się w granicach 10-50µS, a z dysków flash około 100µS. Różnica jest znaczna, ale obydwie te wartości i tak są bardzo niskie jeżeli porównamy je do dysków tradycyjnych.
W układach DRAM nie występuje także zjawisko "zużywania" się komórek pamięci, które jest widoczne we flash-ach.
Jedną z ważniejszych różnic w działaniu jest reakcja na utratę zasilania - po odcięciu dopływu prądu komórki DRAM tracą zawartą w nich informację, dyski flash są na to zjawisko niewrażliwe. Z tych powodów macierze oprarte na DRAM muszą być zaopatrzone w baterie, do podtrzymywania zawartości pamięci w przypadku awarii zasilania.
Kolejna sprawa jaka wyróżnia te dwie grupy to wydzielanie ciepła - w przypadku DRAMu jest on dużo większy, co wpływa na potrzebę instalowania dodatkowych modułów chłodzących.

Podział dysków SSD --> SLC/MLC/eMLC/TLC

Zostając przy dużo bardziej popularnych dyskach opartych na modułach flash (bardzo często mówiąc SSD myślimy właśnie o dyskach flashowych) to je także można podzielić na kilka kategorii.
Różnica polega na budowie pojedynczej komórki pamięci i ilości przechowywanych w niej danych. Główne rodzaje komórek to SLC i MLC.
Komórki SLC (Single Level Cell)  przechowują jeden bit pamięci i mogą przyjmować tylko dwie wartości (1 i 0). Komórki MLC (Multi Level Cell) mogą znajdować się w czterech stanach (00,01,10,11) tak więc przechowują dwa bity informacji.
Przechodząc teraz z poziomu pojedynczej komórki do poziomu dysku SSD wykonanego w danej technologii:
Dyski SSD MLC mają dużo większe pojemności (dwa bity zamiast jednego na komórkę), są także tańsze. Jednak większa liczba stanów, w jakich może znajdować się pojedyncza komórka, sprawia, że różnice między nimi się zacierają, przez co dużo większa jest możliwość popełnienia błędów oraz mniejsza odporność na zużywanie. Dyski MLC są także nieco wolniejsze niż SLC.

Można również spotkać się z dwoma innymi rodzajami flashowych dysków SSD, a mianowicie eMLC i TLC. eMLC (Enterprise Multi Level Cell) to dysk oparty na komórkach MLC ale o poprawionej odporności na zużycie - "zwykłe" komórki MLC wytrzymują około 10.000 cykli czyszczenia/zapisu, natomiast eMLC to około 30.000cykli (dla porównania SLC - 100.000cykli).
TLC (Triple Level Cell) - to komórki przechowujące 3 bity danych (8 stanów) - otrzymujemy jeszcze większą gęstość danych ale oczywiście cierpi na tym niezawodność i odporność na "zużycie".



Na chwilę obecną wystarczy tyle informacji o dyskach SSD, kolejny wpis będzie poświęcony macierzą opartym wyłącznie na tych napędach i firmom które je dostarczają. Jeszcze potem myślę wrócić do tematu samych dysków i opisać trochę dokładniej ich działanie (funkcje takie jak TRIM, Garbage Collection itd...)


Do poczytania:

SSD - Wikipedia
What eMLC and eSLC do for SSD longevity
Flash SSDs - Inferior Technology or Closet Superstar?
Solid State Disk Overview
SLC kontra MLC gdzie dwóch się bije