Nieulotne trzęsienie ziemi

Systemy pamięci masowych czeka duża zmiana technologiczna. Na szczęście dla klientów, skok odbywa się w ramach konsorcjum obejmującego czołowych dostawców technologii, systemów operacyjnych i środowiska open source.

Dotychczasowe wykorzystanie pamięci półprzewodnikowych w zastosowaniach biznesowych ograniczało się głównie do zastępowania dysków magnetycznych „dyskami” Flash (Solid State Drive) – przy zachowaniu sprawdzonych interfejsów SATA/SAS/Fibre Channel. Ewolucyjne podejście do nowości technologicznych w tym obszarze jest zrozumiałe i uzasadnione. Zmiany są jednak nieuniknione.

Słynna dzięki Stevowi Wozniakowi firma Fusion IO pokazała branży, że nowe medium zasługuje na nową architekturę. Z jej kart Flash przeznaczonych zarówno dla stacji roboczych, jak i dla serwerów korzysta wiele firm, niekoniecznie niszowych (vide: Facebook). W ten sposób powstał ferment, dzięki któremu tuż za rogiem stoi nowy standard interfejsu dla szybkich pamięci półprzewodnikowych: NVMe.

Standard z rozmachem

Non-Volatile Memory express – tak rozwija się skrót NVMe. Nazwa standardu ujmuje zgrabnie dwie kluczowe rzeczy. Po pierwsze, interfejsem dla pamięci masowych jest PCIe, czyli PCI Express i jego kolejne odsłony. Po drugie, standard zakłada, że jeden kontroler NVMe może zarządzać różnymi typami pamięci nieulotnych, nie tylko NAND (Flash), ale także np. Phase-Change Memory (PCM) i innymi wynalazkami będącymi w fazie testowej. To m.in. dlatego standard NVMe został zdefiniowany na wysokim poziomie. NVMe definiuje tylko 13 komend obligatoryjnych: 10 sterujących i 3 do zarządzania danymi. Pozostałe komendy są opcjonalne.

Sterowniki

Platformy oferujące sterowniki dla NVMe:

  • Windows 7 64-bit
  • Windows 8 64-bit
  • Windows Server 2008 R2 64-bit
  • Windows Server 2012 64-bit
  • Linux z jądrem 3.3 lub nowszym
  • FreeBSD 9.2 (koniec sierpnia 2013 r.)
  • Solaris 11
  • VMware (na koniec 2013 r.)
  • UEFI 2.4
Głównym celem NVMe jest optymalizacja wydajności całego (a nie tylko części) podsystemu wejścia/wyjścia pod kątem szybkich pamięci nieulotnych. Obecną architekturę trudno uznać za optymalną. Interfejsy SAS/SATA/FC były optymalizowane pod kątem współpracy ze skrajnie niewydajnym pod względem operacji I/O medium, jakim był (sic!) dysk twardy. Z punktu widzenia pamięci półprzewodnikowych są po prostu zbędne – niepotrzebnie wydłużają ścieżkę danych i ograniczają pasmo I/O. Rezygnacja z nich znacznie zmniejszy opóźnienia. Intel sugeruje, że samo przejście z SAS na NVMe zmniejsza opóźnienie na interfejsie z 6 μs do 2,8 μs.

Interfejs to jednak tylko część układanki. Prawie połowa opóźnień w istniejących architekturach wynika z wielowarstwowej, powolnej obsługi operacji I/O w systemie operacyjnym, a także nieoptymalnego zarządzania samym ruchem danych. NVMe zakłada, że obsługa operacji wejścia/wyjścia zostaje całkowicie wyjęta spod kontroli systemu operacyjnego, podobnie jak obsługa sieci została przejęta przez karty z mechanizmami TCP Offloads. W połączeniu z eliminacją archaicznych protokołów pośrednich daje to szansę na znaczne przyspieszenie.

Przedsmak tego, co nadchodzi, pokazał Intel, prezentując kartę pamięci Flash o kodowej nazwie Chatham, wyposażoną w prototypowy kontroler NVMe z interfejsem PCIe. Na komputerze z 4-rdzeniowym procesorem i5-2500 z 6 MB pamięci podręcznej, z zegarem 3,3 GHz, działającym pod kontrolą systemu Red Hat Linux EL 6.0 z jądrem 2.6.32-71, karta ta uzyskała wydajność ponad 1 mln operacji I/O na sekundę. A trzeba pamiętać, że nowe technologie pamięci półprzewodnikowych mają oferować prędkości nawet 1000-krotnie większe niż pamięć Flash.

Branża powiedziała „tak”

Produkty zgodne z NVMe
Samsung XS1715

Według producenta, wydajność sekwencyjnego odczytu danych sięga 3 GB na sekundę przy wydajności I/O sięgającej 740 tys. Operacji na sekundę. Urządzenie jest dostępne w trzech pojemnościach: 400 GB, 800 GB i 1,6 TB.

Micron P520

Mająca się wkrótce ukazać karta SSD z interfejsem NVMe o pojemności skalującej się od 1 do 16 TB. W sam raz na dużą bazę danych. Więcej danych nie jest chwilowo dostępnych.

Hitachi GST (Western Digital)

Wiadomo jedynie, że firma pomyślnie przetestowała dysk SSD na zgodność ze specyfikacją NVMe. HGST nie ujawniła oficjalnie żadnych nazw, szczegółów funkcjonalnych ani dat wprowadzenia produktu na rynek.

Wsparcie dla nowego standardu na poziomie systemów operacyjnych jest już bardzo zaawansowane. Dla systemu Windows 8.1 dostępny jest zarówno sterownik firmowy, jak i open source rozwijany przez Microsoft we współpracy z Open Fabrics Alliance. Niezależnie sterowniki dla platform Windows powstają w ramach grupy open source, w której aktywnymi członkami są: Huawei, IDT, Intel, LSI i SanDisk.

Trzecia iteracja ww. sterowników (wersja 1.2) wspiera wszystkie komendy obligatoryjne na 64-bitowych platformach: Windows 7, Windows 8, Windows 2008 R2 i Windows Server 2012. Sterowniki open source wspierają ponadto operacje I/O niezależne od systemu operacyjnego (IOCTL). W wersji 1.3, która pojawi się pod koniec 2013 r., będzie też wsparcie dla systemów 32-bitowych i dla mechanizmów ochrony danych opartych na DIF/DIX – sumy kontrolne zawarte w blokach SCSI wyliczane i sprawdzane na poziomie kontrolera HBA (DIF) lub dedykowanej aplikacji (DIX)).

Sterowniki dla systemów Linux dostępne są od wersji jądra 3.3. Ich rozwojem zajmuje się grupa, której członkowie reprezentują następujące firmy: Fastor, IDT, Intel, Linaro, Oracle, SanDisk i Trend Micro. Wśród ostatnich nowości można wspomnieć o wsparciu dla bloków o wielkości 4 KB, autonomicznych operacji I/O (IOCTL), PCIe 3.0, a także dla komend typu Deallocate. Trwają prace nad wsparciem dla DIF/DIX, integracją z systemami plików i udogodnieniami dla architektur NUMA.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200