NVMe (non-volatile memory express) to interfejs kontrolera hosta i protokół pamięci masowej stworzony w celu przyspieszenia szybkości przesyłania danych między systemami korporacyjnymi i klienckimi oraz dyskami SSD (solid state drives) przez szybką magistralę PCIe (Peripheral Component Interconnect Express) komputera.
ponieważ technologia półprzewodnikowa stała się preferowanym nośnikiem na rynku pamięci masowych, szybko stało się jasne, że istniejące interfejsy i protokoły-w szczególności szeregowe zaawansowane łącza technologiczne (SATA) i szeregowe łącza SCSI (SAS)-nie są odpowiednie, szczególnie w środowiskach centrów danych. Prace nad nowym protokołem zaprojektowanym specjalnie dla NAND flash rozpoczęły się już w 2007 roku. Na początku 2011 roku została wydana początkowa Specyfikacja NVMe-w rozwój zaangażowanych było prawie 100 firm technologicznych.
Specyfikacja NVMe definiuje interfejs rejestru, zestaw poleceń i zbiór funkcji dla dysków SSD opartych na PCIe, których celem jest wysoka wydajność i interoperacyjność w szerokim zakresie podsystemów NVM. Specyfikacja NVMe nie określa ostatecznego modelu użytkowania, takiego jak pamięć półprzewodnikowa, pamięć główna, pamięć cache lub pamięć zapasowa.
NVMe stanowi alternatywę dla standardu Small Computer System Interface (SCSI) i standardu ATA do łączenia i przesyłania danych między systemem hosta a peryferyjnym urządzeniem pamięci masowej. Zestaw poleceń ATA używany z dyskami SSD SATA i zestaw poleceń SCSI dla dysków SSD SAS zostały opracowane w czasie, gdy dyski twarde (HDD) i taśma były głównymi nośnikami pamięci masowej. NVMe został zaprojektowany do użytku z szybszymi nośnikami.
główne zalety dysków PCIe SSD opartych na NVMe w porównaniu z dyskami SSD opartych na SAS i SATA to zmniejszone opóźnienia w stosie oprogramowania hosta, wyższe operacje wejścia / wyjścia na sekundę (IOPS) i potencjalnie niższe zużycie energii, w zależności od współczynnika kształtu i liczby użytych pasów PCIe.
protokół NVMe może obsługiwać dyski SSD, które wykorzystują różne typy pamięci nieulotnej, w tym NAND flash i technologię 3D XPoint opracowaną przez Intel i Micron Technology. Sterowniki referencyjne NVMe są dostępne dla różnych systemów operacyjnych (OSE), w tym Windows i Linux.
NVMe nie tylko umożliwia szybsze i wydajniejsze działanie istniejących aplikacji; w rzeczywistości jest to kluczowy czynnik sprzyjający nowszym i rozwijającym się technologiom i aplikacjom, takim jak internet rzeczy (IoT), sztuczna inteligencja (AI) i uczenie maszynowe (ML), które mogą korzystać z niskiego opóźnienia i wysokiej wydajności pamięci masowej podłączonej do NVMe.
Jak działa NVMe
NVMe mapuje polecenia wejścia/wyjścia (I/O) i odpowiedzi na pamięć współdzieloną w komputerze hosta przez interfejs PCIe. Interfejs NVMe obsługuje równoległe wejścia / wyjścia z procesorami wielordzeniowymi, aby ułatwić wysoką przepustowość i złagodzić wąskie gardła jednostki centralnej (CPU).
NVMe oferuje bardziej usprawniony zestaw poleceń do przetwarzania żądania We / Wy niż zestawy poleceń SCSI i ATA. NVMe wymaga mniej niż połowę liczby instrukcji procesora niż zestaw poleceń SCSI w przypadku urządzeń SAS, a zestaw poleceń ATA w przypadku dysków SATA.
dyski SSD NVMe vs.dyski SSD SATA
SATA to protokół komunikacyjny opracowany dla komputerów do interakcji z systemami pamięci masowej HDD. Wprowadzony w 2000 roku przez grupę głównych graczy technologicznych, SATA zastąpił parallel ATA i szybko stał się wszechobecnym protokołem systemu pamięci masowej dla komputerów, od laptopów po serwery. Z biegiem lat Poprawiono zmiany specyfikacji i obecnie działa ona z prędkością 6 Gb / s z efektywną przepustowością do 600 Mb / s.
mimo, że zostały opracowane dla technologii dysków twardych z mechanicznymi talerzami obrotowymi i głowicami do odczytu/zapisu sterowanymi siłownikiem, wczesne dyski SSD były sprzedawane z interfejsami sata, aby wykorzystać istniejący ekosystem SATA. Był to wygodny projekt i pomógł przyspieszyć przyjęcie dysku SSD, ale nie był-i nadal nie jest-idealnym interfejsem dla urządzeń pamięci masowej NAND flash i był coraz częściej postrzegany jako wąskie gardło systemu.
zaprojektowany dla pamięci flash, prędkość NVMe i niskie opóźnienia pozostawiają SATA w pyle, a NVMe pozwala na znacznie większe pojemności pamięci w mniejszych rozmiarach, takich jak M. 2. Ogólnie rzecz biorąc, parametry wydajności NVMe przewyższają parametry SATA pięciokrotnie lub więcej.
SATA może być bardziej ugruntowana z dłuższą historią i niższymi kosztami wdrożenia niż NVMe, ale to wyraźnie technologia dysku twardego została zmodernizowana do bardziej nowoczesnych nośników pamięci.
dyski SSD NVMe vs.dyski SSD SAS
NVMe obsługuje 64 000 poleceń w jednej kolejce komunikatów i maksymalnie 65 535 kolejek We / Wy. Natomiast głębokość kolejki urządzenia SAS zazwyczaj obsługuje do 256 poleceń, a dysk SATA Obsługuje do 32 poleceń w jednej kolejce.
jednak dyski SSD PCIe oparte na NVMe są obecnie droższe niż dyski SSD oparte na SAS i SATA o równoważnej pojemności; chociaż Delta maleje. Ponadto wysokiej klasy dyski SSD klasy korporacyjnej NVMe mogą zużywać więcej energii niż dyski SSD SAS lub SATA. Stowarzyszenie handlowe SCSI twierdzi, że bardziej dojrzałe dyski SSD SAS oferują dodatkowe korzyści w porównaniu z dyskami SSD PCIe NVMe, takie jak większa skalowalność, możliwość podłączenia podczas pracy w czasie rzeczywistym i sprawdzone możliwości przełączania awaryjnego. Dyski SSD NVMe PCIe mogą również zapewniać poziom wydajności, którego wiele aplikacji nie wymaga.
Historia i ewolucja NVM Express
Grupa Robocza Non-Volatile Memory Host Controller Interface (Nvmhci) rozpoczęła prace nad specyfikacją NVMe w 2009 roku i opublikowała wersję 1.0 1 marca 2011 roku. 1.Specyfikacja 0 obejmowała interfejs kolejkowania, zestaw poleceń NVM, zestaw poleceń administracyjnych i funkcje bezpieczeństwa.
Grupa Robocza NVMHCI, powszechnie znana jako grupa robocza NVM Express, wydała aktualizację specyfikacji NVMe w październiku. 11, 2012. NVMe 1.1 Dodano obsługę dysków SSD z wieloma portami PCIe, aby umożliwić wielościeżkowe I / O oraz udostępnianie przestrzeni nazw. Inne nowe funkcje obejmowały autonomiczne przejścia stanu zasilania w czasie bezczynności w celu zmniejszenia zapotrzebowania na energię oraz rezerwacje umożliwiające dwóm lub większej liczbie hostów koordynowanie dostępu do wspólnej przestrzeni nazw w celu poprawy odporności na awarie.
grupa robocza NVM Express zorganizowała swój pierwszy Plugfest w maju 2013 roku, aby umożliwić firmom przetestowanie zgodności swoich produktów ze specyfikacją NVMe i sprawdzenie interoperacyjności z innymi produktami NVMe.
grupa robocza NVM Express została założona pod nazwą organizacji NVM Express W marcu 2014 roku. W tym czasie członkami założycielami byli Cisco Systems, Dell, EMC, spółka zależna Western Digital HGST, Intel, LSI, Micron Technology, NetApp, Oracle, PMC-Sierra, Samsung Electronics, SanDisk i Seagate Technology.
organizacja NVM Express później stała się znana po prostu jako NVM Express Inc. Organizacja non-profit ma ponad 100 firm technologicznych jako członków.
Specyfikacja NVMe 1.2 pojawiła się w listopadzie 3, 2014, z ulepszeniami, takimi jak obsługa aktualizacji oprogramowania układowego na żywo, ulepszone zarządzanie energią i opcja kompleksowej ochrony danych.
17 grudnia 2015 organizacja NVM Express ratyfikowała wersję 1.0 interfejsu zarządzania NVM Express (NVMe-MI), aby zapewnić architekturę i zestaw poleceń do zarządzania podsystemem pamięci nieulotnej poza pasmem. NVMe-MI umożliwia kontrolerowi zarządzającemu wykonywanie zadań, takich jak wykrywanie urządzeń i możliwości SSD, monitorowanie stanu i temperatury oraz nieprzerwane aktualizacje oprogramowania układowego. Bez NVMe-MI menedżerowie IT polegali na własnych, specyficznych dla dostawcy interfejsach zarządzania, aby umożliwić administrowanie dyskami SSD PCIe.
NVMe 1.3 ulepszenia funkcji
NVM Express wydał NVMe 1.3 w czerwcu 2017. Najważniejsze informacje koncentrują się na operacjach dezynfekcji, nowej strukturze znanej jako dyrektywy i ulepszenia wirtualizacji.
w operacji dezynfekcji wszystkie dane użytkownika w podsystemie NVMe są modyfikowane tak, że odzyskiwanie nie jest możliwe „z dowolnego bufora, nieulotnego nośnika lub bufora pamięci kontrolera”, zgodnie z arkuszem referencyjnym NVM Express. Operacje dezynfekcji są zalecane, gdy dysk SSD jest wycofywany lub ponownie używany w Nowym przypadku użycia. Tryby dezynfekcji obejmują niskopoziomowe usuwanie bloków na nośnikach NAND, Crypto-erase, aby zmienić klucz szyfrowania mediów i nadpisać.
ramy dyrektyw definiują mechanizm wymiany danych między hostem a podsystemem NVMe. Umożliwia to tagowanie poleceń per-I / O i daje administratorom IT możliwość konfigurowania raportowanych atrybutów i ustawień.
pierwszym zastosowaniem dyrektyw jest funkcja Streams do optymalizacji umieszczania danych w celu zwiększenia wytrzymałości i wydajności dysków SSD NAND. Tradycyjnie, zanim nowe dane zostaną zapisane na dysku SSD, duże bloki danych muszą zostać najpierw usunięte.
funkcja strumieni umożliwia hostowi użycie „identyfikatora strumienia” w celu wskazania określonych logicznych bloków pamięci, które należą do grupy powiązanych danych. Umożliwia to oznaczanie odczytu lub zapisu powiązanymi danymi przechowywanymi w innych lokalizacjach.
ulepszenia wirtualizacji określają, w jaki sposób Pamięć flash NVMe może być używana we współdzielonym środowisku pamięci masowej, w którym znajdują się zarówno fizyczne, jak i wirtualne Kontrolery, w tym podstawowe kontrolery pamięci masowej i dodatkowe kontrolery pamięci masowej. NVM Express powiedział, że celem jest umożliwienie zespołom programistycznym dedykowania określonego dysku SSD do określonej maszyny wirtualnej (VM).
NVMe 1.4 ulepszenia funkcji
NVMe 1.4 został wprowadzony w lipcu 2019 roku. Ta najnowsza wersja zawiera szereg ulepszeń i nowych funkcji, w tym:
- Rebuild Assist poprawia odzyskiwanie danych i usprawnia operacje migracji danych.
- trwały Dziennik zdarzeń przechowuje szczegółową historię dysku, która może być używana do debugowania i określania przyczyn problemów.
- Zestawy NVM i determinizm IO poprawiają wydajność i jakość usług (QoS).
- asymetryczny dostęp do przestrzeni nazw (ANA) zwiększa wielościeżkę dla wysokiej dostępności.
- bufor pamięci hosta (HMB) zmniejsza opóźnienia i pomaga w projektowaniu dysków SSD.
- Region pamięci Persistent Memory (PMR) umożliwia systemom hostów odczyt i zapis bezpośrednio do dynamicznej pamięci o dostępie swobodnym (DRAM) dołączanej do dysków SSD wraz z ich podstawową pamięcią flash, która była używana głównie do buforowania
nowe funkcje będą wymagały od producentów dysków flash aktualizacji swoich produktów w celu włączenia ulepszeń. Nowe sterowniki będą również wymagane dla Systemów Operacyjnych.
współczynniki kształtu i standardy NVMe
potrzeba interfejsu pamięci masowej i protokołu w celu lepszego wykorzystania potencjału wydajności NAND flash w środowiskach korporacyjnych była głównym impulsem do rozwoju specyfikacji NVMe. Jednak przeobrażenie standardu połączeń otworzyło drzwi do kilku różnych typów implementacji interfejsów, które mogłyby pozostać w granicach nowej specyfikacji, oferując jednocześnie różne opcje implementacji.
w krótkim czasie pojawiło się wiele formatów pamięci flash zgodnych ze specyfikacjami NVMe, w tym konwencjonalne karty dodatkowe (AIC) dla magistrali PCIe oraz nowe formaty dysków SSD nazwane M. 2 i U. 2.
- AIC. Format AIC umożliwia producentom tworzenie własnych kart, które są włożone do magistrali PCIe bez martwienia się o projekty gniazd pamięci lub podobne ograniczenia. Karty są często przeznaczone do specjalnych zastosowań i mogą zawierać dodatkowe procesory i inne układy scalone w celu zwiększenia wydajności pamięci półprzewodnikowej.
- M. 2. M.2 form factor został opracowany w celu wykorzystania kompaktowych rozmiarów NAND flash i niskiego rozładowania ciepła. W związku z tym urządzenia M. 2 nie są przeznaczone do montażu w tradycyjnych przedziałach wnękowych, ale do zastosowania w znacznie mniejszych przestrzeniach. Dyski SSD M. 2, często opisywane jako rozmiar gumy, mają szerokość 22 mm i zazwyczaj długość 80 mm, chociaż niektóre produkty mogą być dłuższe lub krótsze.
- U. 2. W przeciwieństwie do formatu M. 2 dyski SSD U. 2 zostały zaprojektowane tak, aby pasowały do istniejących wnęk pamięci, pierwotnie przeznaczonych dla standardowych urządzeń SATA lub SAS. U.2 dyski SSD wyglądają bardzo podobnie do tych starszych nośników, ponieważ zwykle używają obudów 2,5 cala lub 3,5 cala, które są znane obudowom Dysków Twardych. Chodziło oczywiście o to, aby wdrożenie technologii NVMe było jak najprostsze przy jak najmniejszym przebudowie.
innym, mniej rozpowszechnionym czynnikiem formatu NVMe jest format SSD enterprise i data center, czyli EDSFF. Jest wspierany przez kluczowych graczy z branży pamięci masowej, takich jak Intel, Dell EMC, Hewlett Packard Enterprise (HPE), Lenovo, Samsung i inne. Celem EDSFF jest zwiększenie wydajności i pojemności systemów pamięci masowej klasy korporacyjnej. Być może najbardziej znanym przykładem Flasha EDSFF są E1 firmy Intel.L (długi) i E1.S (krótkie) urządzenia flash, które są dostarczane w tym, co było pierwotnie określane jako „linijka” współczynnik kształtu.
NVMe nad tkaninami
NVM Express Sp. z o. o. opublikowano wersję 1.0 specyfikacji NVMe over Fabrics (NVMe-oF) 5 czerwca 2016. NVMe-oF został zaprojektowany w celu rozszerzenia zalet NVMe o wysokiej wydajności i niskich opóźnieniach w tkaninach sieciowych łączących serwery i systemy pamięci masowej, takie jak Fibre Channel (FC), Ethernet i InfiniBand.
transporty tkanin obejmują NVM-zdalnego bezpośredniego dostępu do pamięci (RDMA) i NVMe-zmapowanego do FC. Podgrupa techniczna NVM Express Inc. pracował nad NVMe-oF z RDMA, a Komitet T11 Międzynarodowego Komitetu Standardów Technologii Informacyjnych (INCITS) jest odpowiedzialny za rozwój NVMe nad FC (FC-NVMe).
Specyfikacja NVMe jest w dużej mierze taka sama jak specyfikacja NVMe. Jedną z głównych różnic między NVMe-oF I NVMe jest metodologia nadawania i odbierania poleceń i odpowiedzi. NVMe jest przeznaczony do użytku lokalnego i mapuje polecenia i odpowiedzi na współdzieloną pamięć komputera za pośrednictwem PCIe. Natomiast NVMe over Fabrics wykorzystuje system oparty na komunikatach do komunikacji między komputerem hosta a docelowym urządzeniem magazynującym.
celem projektu NVMe-oF było dodanie nie więcej niż 10 mikrosekund opóźnienia komunikacji między komputerem głównym NVMe a urządzeniem pamięci masowej NVMe podłączonym do sieci, w porównaniu do opóźnienia związanego z urządzeniem pamięci masowej NVMe Przy Użyciu magistrali PCIe komputera lokalnego.