Odzyskiwanie danych

O ile lepszy jest NVMe?

(cz. II) Interfejs pamięci masowej

Prawie zawsze łatwiej jest ulepszyć to, co masz, zamiast próbować czegoś nowego – nawet jeśli się ograniczasz – a zwłaszcza jeśli masz dużo czasu, pieniędzy i zainwestowanych wysiłków.

109

Starsze projekty interfejsu Small Computer System Interface (SCSI) i Advanced Technology Attachment (ATA) przeszły wiele poprawek w celu zwiększenia ich wydajności. Jednak potrzeba zachowania wstecznej kompatybilności ze starszymi komputerami i urządzeniami pamięci masowej ogranicza możliwości zwiększenia wydajności.

Non-Volatile Memory Express (NVMe) to wysokowydajny, skalowalny interfejs kontrolera hosta, zaprojektowany z myślą o potrzebach pamięci masowej dla przedsiębiorstw i systemów klienckich.

Jego celem nie było zachowanie wstecznej kompatybilności dla rotacyjnej pamięci masowej. NVMe obsługuje obecną pamięć flash i jest elastyczny w pracy z przyszłymi technologiami trwałej pamięci masowej klasy pamięci.

Standard PCI express

Standard PCI Express (PCIe) jest standardem szybkiej magistrali szeregowej komputera. Poprawia szybkość w stosunku do poprzednich standardów autobusowych, oferując

  • Wyższa maksymalna przepustowość magistrali
  • Mniejsza liczba pinów wejścia/wyjścia (IO)
  • Mniejszy rozmiar fizyczny
  • Lepsze skalowanie wydajności
  • Bardziej szczegółowe wykrywanie i raportowanie błędów
  • Natywna możliwość wymiany na gorąco

Te zalety prowadzą do bardziej wydajnych, niezawodnych, łatwych w utrzymaniu i skalowalnych połączeń między procesorami a urządzeniami peryferyjnymi, w tym pamięcią masową.

NVMe jako protokół

Oprócz określenia fizycznych połączeń i charakterystyk interfejsu między procesorem a pamięcią masową, NVMe jest również zoptymalizowany pod kątem przesyłania danych z pamięci masowej półprzewodnikowej do procesorów za pośrednictwem wielu typów połączeń. Jednym z takich połączeń jest magistrala Peripheral Component Interconnect Express (PCIe), bardzo powszechne wewnętrzne połączenie systemowe. Inne połączenie jest realizowane przez sieć, taką jak Ethernet lub Fibre Channel (FC), powszechnie znaną jako NVMe over Fabrics (NVMeOF).

NVMeOF to protokół sieciowy, który przesyła dane przez szkielet (sieć) do procesorów.

Oprócz optymalizacji pod kątem wydajnego przesyłania danych, NVMe jest elastycznym protokołem, który jest w stanie obsługiwać przyszłe technologie półprzewodnikowe, które zastępują dzisiejsze pamięci flash.

NVMe a starsze interfejsy

NVMe został zaprojektowany tak, aby w pełni wykorzystać możliwości pamięci flash i zapewnia znaczną przewagę wydajności nad interfejsami Serial ATA (SATA) i Serial Attached SCSI (SAS). Dane są przesyłane między procesorem a kontrolerem NVMe za pośrednictwem aż 65 535 kolejek z aż 65 536 poleceniami na kolejkę.

Dla porównania, urządzenia SAS i SATA mają jedną kolejkę, która obsługuje odpowiednio do 254 i 32 poleceń. Te limity SAS i SATA były wystarczające do obsługi wydajności dysku twardego, ale znacznie odbiegają od obsługi pamięci flash.

Kolejki NVMe są zaprojektowane tak, aby polecenia IO i powiązane odpowiedzi działały na tym samym rdzeniu procesora, aby wykorzystać możliwości przetwarzania równoległego procesorów wielordzeniowych. Dzięki temu każda aplikacja lub wątek może mieć własną niezależną kolejkę, minimalizując wpływ na wydajność systemu

Konstrukcja NVMe zapewnia wiele ważnych korzyści:

  • Mniejsze opóźnienia we/wy dzięki ulepszonym sterownikom, zwiększonej liczbie kolejek i zwiększonej liczbie poleceń w kolejce
  • Lepszą przepustowość dzięki wykorzystaniu szybkich interfejsów PCIe
  • Mniejsze obciążenie procesora podczas obsługi operacji we/wy, pozostawiając więcej cykli na inne obliczenia
  • Potrafi lepiej wykorzystać wielordzeniowe procesory
  • Zwiększa czasy odpowiedzi aplikacji dzięki wyższym IO na sekundę (IOPS) przy bardzo małych opóźnieniach

Testy wykazały, że NVMe zapewnia ponad dwukrotnie więcej operacji we/wy na rdzeń jednostki centralnej (CPU) w porównaniu z konkurencyjnymi implementacjami SAS i SATA.

Dodatkowe funkcje NVMe

Interfejs NVMe przekazuje bloki pamięci, a nie polecenia SCSI, co w końcu jest celem interfejsu pamięci masowej. Skutkuje to zmniejszonym opóźnieniem dostępu do pamięci w porównaniu z innymi protokołami interfejsów. NVMe obsługuje również wymianę na gorąco 2,5-calowego urządzenia pamięci masowej o rozmiarze dysku. Umożliwia to system przechowywania

aby zapewnić dostępność aplikacji i zapewnić skalowalność zasobów przechowywania danych na żądanie. Co więcej, najnowsze procesory zaimplementowały NVMe bezpośrednio na CPU, eliminując potrzebę stosowania adaptera magistrali hosta lub oddzielnego kontrolera IO. To nie tylko

zmniejsza opóźnienia, ale także poprawia niezawodność. Przy takim samym zużyciu energii, co podsystem SATA, podsystem NVMe może zapewnić ponad pięciokrotnie wyższą wydajność.

NVMe eliminuje zbędne narzuty na polecenia SCSI i ATA IO. Uproszczone przetwarzanie poleceń jest możliwe dzięki temu, że wszystkie polecenia mają ten sam rozmiar i znajdują się w tym samym miejscu. Ogólnie rzecz biorąc, systemy oparte na NVMe są mniej złożone, wydajniejsze, łatwiejsze w obsłudze i łatwiejsze w użyciu niż starsze systemy oparte na SATA i SAS.

 

 

Jacek Sumiński

Jacek Sumiński

Jacek Sumiński

Latest posts by Jacek Sumiński (see all)

Komentarze

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Zaakceptować Czytaj więcej

Polityka prywatności i plików cookie