Nieulotne trzęsienie ziemi
- 03.09.2013
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.
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
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”
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 P520Mają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.
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.