Pamięci półprzewodnikowe w firmowym środowisku

W niektórych przypadkach małe urządzenie o rozmiarze 2U z pamięcią Flash może zastąpić całą szafę dysków, a niewielki moduł może kilkudziesięciokrotnie przyspieszyć pracę serwera aplikacji.

Pamięci Flash nie zawierają części ruchomych i dzięki temu charakteryzują się bardzo krótkim czasem dostępu. Mogą być jednak wykorzystywane w różny sposób, w postaci modułów pamięci podręcznej dołączanych do magistrali PCI Express w serwerach, jako pamięć podręczna w macierzach dyskowych czy jako zasób, na którym przechowywane są dane w macierzach.

Adrian Flores, menedżer działu inżynierii składowania danych w firmie IBM. podczas konferencji IBM Edge 2013 powiedział: "Dostępne na rynku rozwiązania różnią się realizacją (sprzętową lub programową), rodzajem sprzętu (własnościowy lub standardowy), wyborem pamięci (SLC, MLC), miejscem i sposobem wdrożenia, sposobami ochrony danych, gęstością, skalowalnością, funkcjonalnością i dostępnością. Każda z tych cech wyróżnia konkretne rozwiązania i wskazuje na sposób zastosowania ich w firmie. Dziś wszyscy używamy pamięci Flash, różnica polega na tym, w jaki sposób to robimy".

Jednym z najważniejszych parametrów wydajności aplikacji jest opóźnienie wprowadzane przez pamięć masową. Wydajność pamięci masowej wykorzystującej Flash zależy tylko od implementacji rozwiązania.

Adrian Flores wyjaśnia: "Najszybsze są pamięci dołączone za pomocą magistrali PCI Express, gdyż znajdują się najbliżej procesora. Oferują one silną akcelerację aplikacji pracujących na pojedynczym serwerze. Wolniejsze, ale nadal szybkie są macierze zbudowane w całości z pamięci Flash, dołączone przez sieć SAN. Najwolniejsze są macierze hybrydowe, zawierające zarówno dyski mechaniczne, jak i moduły półprzewodnikowe, ale oferują o wiele większą pojemność".

Karta w serwerze

Moduły PCI Express takich firm jak Fusion-IO umożliwiają ominięcie opóźnień wprowadzanych przez: stos sieciowy, kontrolery sieci, transmisję w SAN i opóźnienia kontrolerów macierzowych. W niektórych realizacjach pamięć Flash może być adresowana bezpośrednio przez procesory serwera. Użycie bramek FPGA umożliwia poprawę urządzeń, wprowadzenie nowego oprogramowania firmware i optymalizację urządzenia pod kątem jak najmniejszych opóźnień. Moduły sprawdzają się przy pojedynczych aplikacjach odseparowanych od współdzielonej sieci SAN. Przy aplikacjach, które intensywnie wykorzystują lokalną pamięć, karty PCI Express z pamięcią Flash mogą przynieść kilkudziesięciokrotne przyspieszenie pracy. Wadą omawianych modułów jest ograniczenie do pojedynczego serwera, a zatem nie wszystkie aplikacje można w ten sposób akcelerować, ponadto nie da się osiągnąć wysokiej dostępności. Skalowalność również jest ograniczona.

Dysk SSD zamiast mechanicznego

Nieco wolniejsze od modułów PCI Express są napędy Flash obsługiwane przez system serwera tak samo jak zwykłe mechaniczne dyski. Są dołączone do kontrolerów dyskowych i wykorzystywane do składowania lokalnych plików. Nadal nie można ich łatwo współdzielić, ale są one przydatne, gdyż odciążą sieć SAN. Można je wykorzystać do lokalnej obsługi znacznie obciążonych maszyn wirtualnych, przy wirtualizacji desktopowej, w komputerach dużej mocy obliczeniowej lub bardzo mocnych stacjach roboczych, szczególnie akcelerowanych za pomocą kart GPU. Skalowalność takich dysków jest lepsza niż modułów PCI Express, ale nadal jest ograniczona, poza tym dane muszą przejść przez kontroler, co wprowadza dodatkowe opóźnienie rzędu 1-3 ms.

Macierz hybrydowa

Moduły Flash powszechnie stosuje się w macierzach dyskowych, by połączyć szybkość modułów półprzewodnikowych z tanią pojemnością dysków mechanicznych. Umieszczenie pamięci SSD w macierzy dyskowej powoduje radykalną poprawę wydajności bez konieczności zmiany infrastruktury macierzy. To technologia dojrzała, która znalazła się we wszystkich liczących się macierzach dyskowych budowanych w tradycyjny sposób. Wadą jest słabe wykorzystanie pamięci Flash, która może przynieść o wiele lepsze efekty niż tylko te osiągalne w przypadku klasycznych macierzy dyskowych.

Adrian Flores wyjaśnia: "Gdy wykorzystujemy Flash jako pamięć podręczną i stosujemy podział na warstwy, polegamy na mechanizmie pobierania porcji z dysków do pamięci cache (prefetch). Jesteśmy ograniczeni przez wydajność i możliwości kontrolera, który musi zarządzać kopiowaniem danych do pamięci SSD. Czasami właśnie ten kontroler może być wąskim gardłem, ponadto zawsze działa reaktywnie i nie osiągnie takiej wydajności, jaką zaoferuje macierz w pełni półprzewodnikowa".

Macierz półprzewodnikowa

Największą wydajność przy najmniejszych opóźnieniach dla współdzielonego systemu pamięci masowej zaoferują macierze półprzewodnikowe. Są dołączane za pomocą sieci SAN, najczęściej magistralą światłowodową. Charakteryzują się opóźnieniami rzędu 100µs-1ms także przy maksymalnym deklarowanym obciążeniu liczonym w setkach tysięcy operacji wejścia/wyjścia na sekundę z pojedynczego urządzenia, co wykracza poza możliwości macierzy hybrydowych i zbliża się do możliwości wolniejszych kart PCI Express. W odróżnieniu od modułów dołączanych bezpośrednio do serwera, macierze takie mają opcje wysokiej dostępności i mogą być współdzielone między serwerami. Jeśli w firmie eksploatowane są aplikacje o skrajnie wysokich wymaganiach odnośnie do przepustowości pamięci masowych, macierze SSD mogą być korzystniejsze pod względem całkowitych kosztów od rozbudowanych macierzy z setkami dysków mechanicznych i wieloma modułami Flash.


TOP 200