2009/10/30

Phase Change Memory (PCM)

Intel razem z firmą Numonyx pracują nad nową technologią kości pamięci - Phase Change Memory.

Materiał z którego zbudowane są komórki tego układu może przyjmować dwa stany - krystaliczny lub nieustalony, co dla komputera oznacza oczywiście 0 lub 1. Najważniejsze jest to, że stan komórek utrzymuje się po odłączeniu zasilania! Można więc budować z tej pamięci rozwiązania SSD. W odróżnieniu od Flash zmiana wartości komórki nie wymaga:
  • wysokiego napięcia
  • uprzedniego kasowania poprzedniego statu
  • nadpisania całego bloku bloku (erase segment)
Przekłada się to na na zdecydowanie lepszą wydajność, dłuższą żywotność komórek i "zieloność".
Wczoraj został zaprezentowany testowy egzemplarz PCM, zbudowany w technologii wielowarstwowej. Ma on stosunkowo niewielką pojemność 64Mb. Twórcy tej technologii przekonują jednak , że potencjał jest duży. Czekamy.

2009/10/15

Dysk jest jak zeszyt ucznia

Przygotowując tekst o wydajności dysków i SSD zastanawiałem się jak w miarę prosty sposób wyjaśnić charakter pracy dysku. Myślę, że znalazłem dobre porównanie. Ostatecznie nie pojawiło się ono w artykule. Postanowiłem je zamieścić tutaj. A więc tak:
"Dysk twardy jest jak zeszyt oszczędnego ucznia. Zapisuje on w nim ołówkiem lekcje ze wszystkich przedmiotów. Jak kończą się wolne kartki wyciera gumką niepotrzebne mu informacje i tam zapisuje nowe. Z czasem okazuje się, że pojedyncza lekcja może być zapisana na różnych stronach. Często jest tak, że nawet wyrazy jednego zdania są rozrzucone po całym zeszycie.
Uczeń jest sprytny i na pierwszych stronach prowadzi spis treści, który wskazuje gdzie należy szukać potrzebnych mu informacji. W ten sposób efektywnie wykorzystuje papier swojego zeszytu. Nie musi prowadzić oddzielnych dla każdego z przedmiotów, które w dużej części byłyby niezapisane. Nie marnuje też stron na zbędne informacje.
We współczesnych komputerach jednocześnie wykonuje się wiele zadań. Dlatego, aby ta analogia była dokładna to należy dodać, że z tego jednego zeszytu jednocześnie korzysta tak naprawdę cała klasa!
Uczeń szybko może przeczytać zdanie, które jest zapisane jednym ciągiem. Jeżeli jednak kolejne słowa są na różnych stronach, to czas wykonania tej czynności znacznie się wydłuży. Jeżeli nawet zdanie jest w całości to może się okazać, że ktoś inny jednocześnie chce przeczytać coś innego. Taka jest właśnie różnica między strumieniem sekwencyjnych i losowych danych na HDD. W praktyce okazuje się, że dużo częściej dysk musi obsługiwać losowe operacje.
Przykład z zeszytem jest też dobry do zobrazowania wielkości bloku danych. Znam tylko dwie osoby, które potrafią czytać całymi akapitami (tz. szybkie czytanie). Trochę więcej ludzi opanowało sztukę operowania pełnymi zdaniami. Najwięcej z nas czyta z dokładnością do jednego lub kilku wyrazów, ale bywa też, że ktoś musi jeszcze literować. Mniej więcej podobnie rozkłada się to w przypadku wielkości operacji i/o na dysku."

2009/10/14

Cała prawda o wydajności twardych dysków i (część prawdy o) SSD.

Zapraszam do lektury mojego nowego artykułu na storagefocus.pl - Cała prawda o wydajności twardych dysków i SSD. W oryginalnym tytule było "... i część prawdy o SSD". Nie znam jeszcze SSD tak dobrze jak HDD. Jak widać Krzysztof zmienił tytuł - pewnie za długi.

Tekst ten pierwotnie pisałem na zamówienie innego wydawnictwa. Został on jednak oceniony przez redakcję jako nieatrakcyjny dla czytelników. Próbowałem też w innych poczytnych serwisach z równie miernym skutkiem. Szkoda, że z tą wiedzą tak trudno się przebić do rynku masowego. W zamian za to ludzie otrzymują informacje i porady o wątpliwej przydatności.
Czytając to, odniesiecie wrażenie, że uważam mój artykuł za wartościowy materiał. Tak też jest. Na podstawie doświadczeń, dociekań, szperania i podpytywania napisałem tekst, który jest sprzeczny z powszechnie przedstawianą "prawdą" o wydajności pamięci masowej. Niestety wiedza w nim zawarta ciągle dostępna jest tylko dla wąskiego grona specjalistów. Sorry, zazwyczaj jestem bardziej skromny :)
Dzięki Krzysztofie za itfocus.pl, jedno z nielicznych miejsc na obiektywne dziennikarstwo techniczne.

2009/09/16

IBM 350 - pierwszy dysk

Nie mogłem się powstrzymać przed wstawieniem tu tego filmu. Jest to materiał reklamowy komputera IBM RAMAC 305, w którym to został użyty pierwszy dysk twardy - IBM 350. Jego pojemność to około 4,4 MB rozłożone na 50 magnetycznych talerzach. Prędkość obrotowa to 1200 RPM. Średni czas dostępu wynosił 600 ms (0,6 sekundy). Łatwo policzyć, że średnie losowe iops tej maszyny to 1,66. Jest to tylko jakieś 100x mniej niż we współczesnych dyskach! W tym samym czasie pojemność HDD wzrosła o 476625 razy! Więcej szczegółów o tym sprzęcie na wikipedii.

HDD Speaker System

Kolejny pomysł na wykorzystanie dysków twardych po tym jak nie będą już potrzebne.


Funkcjonalność tego jest co najmniej dyskusyjna.

2009/09/10

Konferencja IBM IIS Forum 2009

Coroczna konferencja IBM dotycząca pamięci masowych ma teraz nową nazwę - Information Infrastructure Solution Forum. Przygotowałem z tego wydarzenia krótki materiał filmowy, taką niby-relację.


Byłem tam głównie dla jednego człowieka - Moshe Yanai, człowieka który zaprojektował Symmetrix'a!. Jego wystąpienie dotyczyło oczywiście XIV. Zaraz po nim była prezentacja nowej macierzy serii DS5000. Zestawienie tych dwóch tematów obrazuje ciekawe zjawisko jakie występuje w IBM po zakupie firmy XIV - swego rodzaju konflikt interesów. Najpierw bowiem Moshe opowiada o tym, że dedykowany ASIC i współdzielony cache nie jest dobrym pomysłem, a zaraz potem inny pan mówi zupełnie na odwrót. I komu tu wierzyć?

2009/09/09

Adaptec MaxIQ™ - nowy sposób na SSD

Adaptec, znany producent kontrolerów RAID, pokazał dzisiaj nowy produkt. Pokazuje on pomysł jaki ma ta firma na wykorzystanie SSD. Produkt ma nazwę Adaptec MaxIQ™ SSD Cache Performance Kit. Składa się z jednego 32GB napędu SLC SSD od Intel'a oraz z software'u. Napęd podłącza się do wolnego kanału SAS, a soft można załadować na kontrolerach Adaptec Series 2, Series 5 i Series 5Z Unified Serial® Storage.


Rozwiązanie to umożliwia utworzenie hybrydowej puli pamięci masowej (hybrid storage pool), składającej się ze zwykłych dysków twardych (SATA lub SAS) i z napędów SSD (do 5). Oprogramowanie MaxIQ na podstawie analizy wykorzystania danych kopiuje najintensywniej dostępowane bloki danych na SSD. Kolejne operacje odczytu dla tych bloków wykonywane są już z tej szybkiej pamięci flash. Przypomina to cache readzilla w ZFS wykorzystany w Open Storage. Rozwiązanie Adaptec'a nie używa SSD dla operacji zapisu. Są one wykonywane bezpośrednio na dyski twarde.
Imponująca jest ilość wspieranych systemów operacyjnych: Windows XP, Server 2003/2008, Vista, VMware ESX 3.x, ESXi 3.x and vSphere 4, Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), SCO OpenServer, UnixWare, Sun Solaris 10x86, FreeBSD.Wynika to z faktu, że jest to rozwiązanie sprzętowe, oparte na produkowanych od dawna kontrolerach. Dla systemu operacyjnego jest ono przezroczyste.
Podoba mi się kierunek implementacji SSD jaki wybrał Adaptec. Ceny dobrych pamięci flash'owych są ciągle bardzo wysokie. Nie wszystkie dane wymagają też tak wysokiej wydajności. MaxIQ pozwala na użycie SSD dla tych obszarów, które rzeczywiście tego potrzebują. Szkoda, że tylko dla odczytów. Może w kolejnej wersji będzie też cache dla zapisów?

2009/09/03

Szlifierka - przyszłość dysków twardych :)

Do czego będziemy mogli wykorzystać nasze twardziele, jak SSD zdominuje rynek.

Sun F5100 - macierz modułów FMod

W marcu Sun ogłosił nowy standard - Open Flash Module - pamięć flash w postaci modułu ze standardowym złączem SO-DIMM. Urządzenie zbudowane z wykorzystaniem tych modułów miało pojawić się w lipcu. Prawdopodobnie zawirowania związane z przejęciem Sun'a przez Oracle spowodowało opóźnienie. Produktu ciągle nie ma, ale chyba już niedługo się pojawi. Wnioskuje to po tym, że na stronach z dokumentacją pojawiły się manuale do Sun Storage F5100, pierwszej macierzy zbudowanej z Flash Module (FMod).
Urządzenie może zostać wyposażone w maksymalnie 80 pamięci FMod. Ich wielkość nie jest jeszcze znana. Prawdopodobnie będzie to 64GB. Daje to 5 TB surowej przestrzeni. Nie jest to macierz FC, ani iSCSI. Do łączenia z hostami przeznaczone jest 16 portów SAS, co daje możliwość podłączenia do 64 komputerów.

2009/09/02

i/o tuning - linux

Skończyły się wakacje, czas odpoczynku i lenistwa. Dzieci i młodzież wracają do szkoły, dorośli zapominają o urlopach i biorą się do roboty. Czas odkurzyć klawiaturę i dodać nowej treści do tego bloga. Zaczynam od rozpoczęcia nowego cyklu dotyczącego tuningu różnych systemów operacyjnych pod kątem współpracy z macierzą dyskową.

Kilka miesięcy temu pewien Portugalczyk, konsultant z Microsoftu, młody człowiek z wielką charyzmą, uświadomił mi, że przy strojeniu współczesnych systemów operacyjnych najlepsze efekty można uzyskać w podsystemie i/o. Druga w kolejności, ale dosyć daleko, jest pamięć operacyjna, a parametry systemowe dotyczące pozostałych elementów sprzętu - procesorów, magistral, ..., - nie mają już praktycznie żadnego znaczenia dla wydajności całego systemu.

Powodem takiego stanu rzeczy jest fakt, że współczesne dyski mają wydajność nie wiele większą niż te z poprzedniego wieku. W tym samym czasie moc procesorów wzrosła o kilka tysięcy procent. Przy tak wielkiej różnicy wydajności tych podzespołów, dyski zawsze będą metalową kulą u nogi całego systemu.

Całe szczęście jest kilka mechanizmów, które przy prawidłowych ustawieniach są w stanie znacznie polepszyć tą sytuację. Większość z nich występuję we wszystkich systemach operacyjnych, czasami inaczej się nazywają i inaczej są konfigurowane. W tym wpisie opiszę te, które są istotne w systemie linux (RedHat 5, kernel 2.6):

- długość kolejki niepotwierdzonych operacji i/o (outstanding i/o queue depth)

Każda zlecenie z systemu operacyjnego do macierzy dyskowej wymaga potwierdzenia. Zawiera ono informacje o statusie zakończenia operacji i/o. Nie jest jednak powiedziane, że system musi czekać z wysłaniem nowego zlecenia na potwierdzenie zakończenia poprzedniego. System posiada kolejkę, w której umieszcza zlecone operacje i/o. Czekają one tam na potwierdzenie ich wykonania. Długość tej kolejki określa ile zleceń system może wysłać. (tu przeczytasz o tym więcej). W linux'ie wielkość tą konfiguruje się na poziomie sterownika karty HBA. Jest to jeden parametr który określa długość kolejki dla każdego lun'a obsługiwanego przez ten sterownik. Wpisujemy go do pliku /etc/modprobe.conf:

dla kart Qlogic dopisujemy:
options qla2xxx ql2xmaxqdepth=długość kolejki

dla kart Emulex dopisujemy:
options lpfc lpfc_lun_queue_depth=długość kolejki

Niestety konieczny jest restart systemu.
Parametr ten decyduje o ilości operacji i/o na sekundę (iops) jaką może zlecić system operacyjny. Zwiększanie go nie ma sensu jeżeli macierz nie jest w stanie wykonać tylu IOPS. Często jednak macierz może więcej, ale system jest ograniczany krótką kolejką. Widać to po różnicy w czasie wykonania operacji i/o na macierzy (szybko) i czasie wykonania operacji i/o w systemie (długo). W takiej sytuacji wydłużenie kolejki powinno zwiększyć wydajność.

- I/O scheduler (elewator)

Developerzy jądra linux'a, mając świadomość ograniczeń wydajnościowych dysków twardych, zaimplementowali mechanizm i/o scheduler'ów zwanych również elewatorami. Znając budowę dysku (sektory, cylindry) stara się on grupować operacji i/o przed wysłaniem do dysku, tak aby jednocześnie trafiły w ten sam region talerza. Mechanizm ten sprawdza się przy pojedynczych dyskach, ale w przypadku macierzy jest zupełnie nieprzydatny. Co więcej może ograniczać wydajność systemu. Dlatego najlepsze co można zrobić to go wyłączyć. Robi się to poprzez ustawienie na dyskach elewatora noop. Można to zrobić globalnie dla całego systemu dodając opcję elevator=noop w linii z parametrami kernela w pliku /boot/grub/grub.conf, np.:

kernel /boot/vmlinuz-2.6.18-32.el5 ro root=LABEL=/1 rhgb quiet elevator=noop

Następnie należy wykonać restart systemu.
Można również zmienić elewator dla konkretnego dysku:

echo noop > /sys/block/nazwa dysku/queue/scheduler

Operacja ta jest online, jednak wymaga powtórzenia po każdym restarcie (potrzebny skrypt startowy). Więcej o scheduler'ach można poczytać w Red Hat Enterprise Linux 5 IO Tuning Guide

I to tyle w temacie tuning i/o w systemie Linux.