Nowa piramida pamięci masowej

Rosnące możliwości obliczeniowe serwerów sprawiają, że konieczne staje się zwiększanie wydajności operacji wejścia-wyjścia pamięci masowej. Miniony rok na rynku serwerów i pamięci masowych obfitował w dużą liczbę premier produktów z technologią SSD (Solid State Disk), która właśnie zapewnia zwiększoną wydajność.

Wąskie gardło

Postęp związany z nieustannie zwiększającymi się możliwościami obliczeniowymi komputerów doskonale oddaje podstawowe prawo informatyki, jakim jest "Prawo Moore’a". Sercami serwerów stają się coraz wyżej taktowane i coraz bardziej wielordzeniowe procesory. Ich układy krwionośne - szyny wewnętrzne serwerów oraz interfejsy sieciowe - również oferują coraz większą przepustowość dla przepływających bitów.

Jednak na ścieżce danych od serwera do pamięci masowej istnieje jeden, jakże kluczowy element, którego tempo wzrostu wydajności jest w zasadzie niezmienne od kilkunastu lat. Oczywiście, chodzi o dysk twardy, którego pojemność, owszem podwaja się, ale liczba oferowanych operacji wejścia/wyjścia (IOPS) już niekoniecznie i pozostaje od pewnego czasu na mniej więcej tym samym poziomie. Na przeszkodzie staje mechanika dysku twardego i wynikający z jej działania czas dostępu do danych. Ten ostatni zależy w głównej mierze od dwóch czynników charakteryzujących każdy dysk twardy: czasu wyszukiwania danych oraz opóźnienia obrotowego.

Dysk twardy i jego mechaniczne komponenty

Dysk twardy i jego mechaniczne komponenty

Typowy czas dostępu dla dysków twardych jest mierzony w milisekundach; w najszybszych z nich wynosi ok. 5 ms. W takim czasie obecne serwery mogą wykonać miliony operacji. Podczas gdy procesor oczekuje na dane od dużo wolniejszej pamięci masowej, nie wykonuje innych obliczeń. Powstaje "wąskie gardło" w systemie, co powoduje wydłużenie czasu odpowiedzi aplikacji, dłuższe wykonywanie zadań, a w konsekwencji obniżenie produktywności i komfortu pracy użytkowników. Jeżeli jest to aplikacja obsługująca np. klientów banku, straty z niedomagań wydajnościowych systemu łatwo można przeliczyć na konkretne pieniądze.

Z pomocą w obsłudze żądań procesora przychodzi pamięć cache i RAM - w serwerze lub w kontrolerze macierzy. Jeśli dane użytkownika rezydują w pamięci cache kontrolera, są szybko odnajdywane i dostarczane do miejsca przeznaczenia; potocznie takie zdarzenie określa się jako "trafienie" (cache read hit), a czas dostępu jest wtedy mniejszy od milisekundy. Jeżeli zaś dane użytkownika nie znajdują się w pamięci cache kontrolera, muszą zostać odczytane z dysków twardych i czas odpowiedzi odpowiednio się wydłuża, czyli występuje tzw. cache read miss. Czas dostępu do danych wynosi wtedy 6-7 ms lub nawet więcej.

Cache dla danych jest sposobem na poprawę wydajności systemu. Jednak pod względem pojemności jest ona najczęściej tylko małym procentem pojemności mechanicznych dysków backendowych, a jej zwiększenie często jest kosztowne lub architektonicznie niemożliwe. W rezultacie administratorzy aplikacji oraz pamięci masowej szukają poprawy wydajności poprzez strojenie lub rekonfigurację systemów.

Karta pamięci akcelerująca operacje odczytu z dysków macierzy – NetApp Performance Acceleration Module

Karta pamięci akcelerująca operacje odczytu z dysków macierzy – NetApp Performance Acceleration Module

Istnieją metody strojenia, czy też, jak kto woli, "tuningowania" wydajności podsystemu dyskowego do pracy z systemami transakcyjnymi (OLTP). Metodą zaliczaną do kategorii dobrych praktyk jest zawężenie obszaru dla operacji I/O tylko do zewnętrznej części talerza dyskowego. W ten sposób ramię dysku nie musi szukać lub zapisywać danych na położonej bliżej środka, wolniejszej części talerza. Zastosowanie tej techniki znacząco zwiększa wydajność, ale dzieje się to kosztem utraty 50-75% efektywnej przestrzeni podsystemu dyskowego. Kierując się wymogiem zapewnienia wysokiej ilości IOPS, najczęstszym rozwiązaniem jest konfiguracja dużej puli szybkoobrotowych (15 000 rpm) dysków Fibre Channel. Pojedynczy dysk FC 15k rpm o pojemności 300 GB może wykonać ok. 200 operacji wejścia-wyjścia na sekundę.

Solid State Drive

Prostszą i elegantszą receptą na walkę z wąskim gardłem, jakim jest wydajność pamięci masowej, jest zastosowanie technologii SSD jako tzw. tier 0 w hierarchii pamięci masowej. Napęd wykonany w technologii SSD różni się od tradycyjnego dysku twardego tym, że brak w nim jakichkolwiek części mechanicznych, dane są przechowywane w modułach pamięci, najczęściej typu NAND flash, chociaż dostępne są również układy typu DRAM. Natomiast, w odróżnieniu od ulotnej pamięci RAM, pamięć SSD jest nieulotna, nie traci więc stanu swoich komórek w momencie wyłączenia zasilania i może przechowywać dane, tak jak tradycyjne dyski twarde. Charakterystyki wydajności SSD pokazują, że są one do 100 razy szybsze pod względem obsługi operacji IO aniżeli tradycyjne dyski Fibre Channel. Niestety, obecnie ich koszt jest również ponad 10 razy większy w przeliczeniu na gigabajt pojemności w porównaniu z napędami FC. Przy zastosowaniu technologii SSD, czas dostępu do danych skraca się z milisekund do wartości poniżej jednej mikrosekundy, jest to więc ogromna różnica.

Nowa piramida pamięci masowej

Nowa piramida pamięci masowej

Oprócz podstawowej zalety, jaką jest wydajność w operacjach IO, napędy SSD charakteryzują się również niskim poborem prądu. Półka dysków SSD może zastąpić pod względem wydajności całą szafę rack wypełnioną tradycyjnymi dyskami Fibre Channel. Oszczędności w poborze energii i konieczności chłodzenia widać gołym okiem. Energooszczędność technologii SSD i mniejsze wydzielanie ciepła - doskonale wpisują się w przyjęte przez niektóre strategie spod znaku "Green IT". Ponieważ w SSD nic się nie kręci i brak jest części mechanicznych, cechuje je również mniejsza awaryjność niż tradycyjnych napędów dyskowych.

Główna wada SSD to obecnie przede wszystkim bardzo wysoka cena. Ich pojemność nie jest duża, ale wraz z rozwojem technologii Flash na pewno będzie się zwiększać. Szukając innych wad czy ograniczeń technologii SSD, należy zwrócić uwagę na kilka aspektów. Pierwszą jest skończona liczba zapisów, jaka może być dokonana w komórce pamięci. Konsumenckie wykonane w technologii MLC pozwalają na ok. 10 tys. zapisów do pojedynczej komórki. Natomiast napędy SSD klasy enterprise, wykorzystujące technologię SLC, pozwalają dokonać ok. 100 tys. zapisów do komórki, zanim stanie się ona bezużyteczna. Producenci implementują w kontrolerach napędów SSD wiele wyrafinowanych algorytmów, których zadaniem jest optymalizacja i redukcja liczby wymaganych zapisów per komórka pamięci. W zależności od producenta, dyski SSD mają gwarancje na od 3 do 5 lat oraz parametr MTBF (Mean Time Between Failure) zbliżony do miliona, co stawia je na równi z dyskami twardymi. Inną rzeczą, na którą warto zwrócić uwagę, jest niższa wydajność zapisów do komórek NAND flash, aniżeli wydajność z nich odczytów. Wynika to z konieczności wymazywania bloków pamięci przed ich ponownym zapisaniem. Wydajność zapisów będzie większa, gdy bloki pamięci są wyczyszczone; wraz ze zmniejszaniem się ich dostępnej ilości i koniecznością ich kasowania przed ponownym zapisem, wydajność operacji zapisów zauważalnie się obniży. Aby zmniejszyć różnicę między wydajnością odczytów i zapisów, producenci SSD często dodają małą pamięć cache typu DRAM, funkcjonującą jako bufor dla zapisów. Jednak w nowszych rozwiązaniach raczej się od tego odchodzi, w kierunku zrównoleglenia obsługi żądań IOPS oraz równoległego czyszczenia nieużywanych bloków.

Słowniczek pojęć:

Single Level Cell (SLC) - SLC NAND flash przechowują jeden bit w komórce.

Z powodu wysokiego poziomu wytrzymałości (średnio 100 tys. zapisów na komórkę)

oraz kosztu; są przede wszystkim używane w rozwiązaniach klasy enterprise.

Multi Level Cell (MLC) - MLC NAND flash używa 2 bitów na komórkę. Ma ok. 1/10 wytrzymałości SLC NAND flash, kosztuje dużo mniej; MLC jest najczęściej wykorzystywana na rynku konsumenckim.

Flash memory - flash jest pamięcią nieulotną ponownego zapisu. W przeciwieństwie do DRAM, wymaga czyszczenia bloków danych przed zapisem, co w rezultacie obniża wydajność zapisów w porównaniu z odczytami. W zależności od technologii flash, umożliwia tylko skończoną liczbę zapisów. Pamięć Flash memory jest dostępna w dwóch rodzajach: NOR i NAND. Powszechnie wykorzystuje się NAND, ponieważ jest trwalsza, tańsza, ma gęstsze upakowanie komórek, a czyszczenie oraz zapis są szybsze w porównaniu z pamięcią typu NOR flash.

Solid-State Drive (SSD) - wykorzystują układy pamięci (najczęściej nieulotnej flash), zamiast obracających się talerzy do składowania danych. Korzyści to niskie opóźnienie, mały pobór energii i większa żywotność w porównaniu z tradycyjnymi dyskami, ze względu na brak części mechanicznych.

---

O nowej piramidzie pamięci masowych czytaj na stronach NetWorld.